一、转录组SRA(Sequence Read Archive)数据组装FASTA文件流程:
(1)下载SRR数据:使用SRA Toolkit中的prefetch和fasterq-dump或fastq-dump工具。
(2)质量控制和修剪:使用FastQC检查质量,然后用Trimmomatic处理。
(3)组装转录本:使用Trinity(适用于真核生物)或SPAdes(可能更适合原核?需要确认)等工具。
(4)评估组装质量:使用BUSCO或TransRate等。
(5)输出FASTA文件:组装后的结果通常就是FASTA格式。
需要注意的细节:是否需要去除rRNA?是否需要比对到参考基因组(如果有的话)来进行指导组装?如果用户有参考基因组,可能可以使用StringTie等工具进行参考转录组组装,但如果没有,则需从头组装。
另外,可能需要解释每个步骤的目的,例如质量控制的重要性,以及不同组装工具的适用场景。例如,Trinity适用于真核生物,而SPAdes可能更适合原核或较简单的转录组。此外,在组装后可能需要去冗余,使用CD-HIT等工具聚类相似的转录本。
1. 下载SRR数据并解压SRA文件加验证文件
###使用NCBI的SRA Toolkit下载原始数据:
prefetch SRRXXXXXXX # 替换为实际SRR编号
###判断拿到的数据是单端还是双端数据,可以用fastq-dump -X 1 --split-spot SRRxxxxxxx.sra来判断测序类型。如果返回值是4,就是单端SE;如果返回值是8,那么就是双端PE。
fastq-dump -X 1 --split-spot -Z SRR5489805.sra | wc -l
###使用fastq-dump工具解压SRA数据,把双端测序文件分开
fastq-dump --split-files --defline-seq '@$sn[_$rn]/$ri' SRRXXXXXXX
#####验证生成的文件: 正确格式应显示类似:@SRR6892154.1_1/1 @SRR6892154.1_1/2
head -n 1 SRR6892154_1.fastq
head -n 1 SRR6892154_2.fastq
常见的参数有三类:
--split-spot: 将双端测序分为两份,但是都放在同一个文件中
--split-files: 将双端测序分为两份,放在不同的文件,但是对于一方有而一方没有的reads直接丢弃
--split-3 : 将双端测序分为两份,放在不同的文件,但是对于一方有而一方没有的reads会单独放在一个文件夹里
2. 质量控制与修剪-----质量好的可以不做修剪,直接组装
###质量检查:使用FastQC生成报告
fastqc SRR8652038_1.fastq SRR8652038_2.fastq
###fastqc的使用方法:
fastqc -t 12 -o out_path sample1_1.fq sample1_2.fq
运行结束后生成两个文件一个.html网页文件,一个是.zip压缩文件。
常用参数:
-o 用来指定输出文件的所在目录,生成的报告的文件名是根据输入来定的,注意是不能自动新建目录的。输出的结果是.zip文件,默认不解压缩,命令里加上--extract则压缩。
-f 用来强制指定输入文件格式,默认自动检测。支持fastq、bam、sam极相应的gz压缩格式
-c 污染物选项,输入的是一个文件,格式是Name[Tab] Sequence,#开头的行是注释,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析。
-q 会进入沉默模式,指定这个选项的时候,程序不会实时报告运行的状况,即不出现下面的提示:
####修剪低质量序列和接头:使用Trimmomatic
trimmomatic PE -threads 4 SRR8652038_1.fastq SRR8652038_1.fastq
SRR8652038_1_trimmed_paired.fq SRR8652038_1_unpaired.fq \
SRR8652038_2_trimmed_paired.fq SRR8652038_2_unpaired.fq \
ILLUMINACLIP:TruSeq3-PE-2.fa:2:30:10 LEADING:20 TRAILING:20 SLIDINGWINDOW:4:20 MINLEN:50
###查看trimmed后的文件中的reads名称是否符合Trinity的要求:
head -n 4 SRR9023132_1_trimmed_paired.fq
head -n 4 SRR9023132_2_trimmed_paired.fq
问题:如果遇到fastq格式报错解决办法:
确保文件是标准的FASTQ格式。
每对双端测序的reads名称(除了 /1 和 /2)必须完全一致
1、开始检查错误
head -n 4 SRR9023133_1.fastq
head -n 4 SRR9023133_2.fastq
####输出结果
@1/1
GTTGTGGTCTCACACTCGCAAGATTTTTTGAATGGTGTCTGTACCAACATGATTCACATGCAAAACAAGAAGTTGAAATTTTACACTGGT
+SRR9023133.1 1 length=90
JJFFFFJJJJJJJJJFJJJJJJJFJJ-FJAJF7FAFF-F<FAFJFFFJJJJJFJAA7AA7-7AAAFFJJFJF-F-FJJFFAFA<JJFJFF
@1/2
GTTCCCATCTGTACTGCTTCATCTGGTTCTCCTCCAGCTCTGTCCTGGTTTGGATACACTGGTCGTAATTACCAGTGTAAAATTTCAACT
+SRR9023133.1 1 length=90
FJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJAJJJ7FJJJJJJJJFJJJFJF7<7AJFJ-7AFJFFJFAAFAAJFFAFJFJ-<A7F
加粗的地方显示格式不对,手动进行修改:
(1)在文件1中,序列标识符为@1/1,但在质量分数行中出现了+SRR9023133.1 1 length=90。
(2)在文件2中,序列标识符为@1/2,质量分数行同样出现了+SRR9023133.1 1 length=90。
这种不一致可能会导致Trinity或其他工具解析时出现问题。建议统一序列标识符的格式,例如:
将@1/1和@1/2改为@SRR9023133.1/1和@SRR9023133.1/2。
质量分数行的标识符也应与序列标识符一致,例如+SRR9023133.1/1和+SRR9023133.1/2。
####解决方法:
使用以下命令修复文件格式:
###检查文件完整性
# 修复文件1
awk '{if(NR%4==3) {print "+" $1 "/1"} else {print}}' SRR9023133_1.fastq > modified_SRR9023133_1.fastq
# 修复文件2
awk '{if(NR%4==3) {print "+" $1 "/2"} else {print}}' SRR9023133_2.fastq > modified_SRR9023133_2.fastq
检查文件完整性
#验证修改后的结果:
head -n 4 modified_SRR9023133_1.fastq
head -n 4 modified_SRR9023133_2.fastq
@1/1
GTTGTGGTCTCACACTCGCAAGATTTTTTGAATGGTGTCTGTACCAACATGATTCACATGCAAAACAAGAAGTTGAAATTTTACACTGGT
+SRR9023133.1/1
JJFFFFJJJJJJJJJFJJJJJJJFJJ-FJAJF7FAFF-F<FAFJFFFJJJJJFJAA7AA7-7AAAFFJJFJF-F-FJJFFAFA<JJFJFF
@1/2
GTTCCCATCTGTACTGCTTCATCTGGTTCTCCTCCAGCTCTGTCCTGGTTTGGATACACTGGTCGTAATTACCAGTGTAAAATTTCAACT
+SRR9023133.1/2
FJJJJJJJJJJJJJJJJFJJJJJJJJJJJJJJJJJAJJJ7FJJJJJJJJFJJJFJF7<7AJFJ-7AFJFFJFAAFAAJFFAFJFJ-<A7F
运行Trinity组装:
###修剪低质量序列和接头:使用Trimmomatic,加了&后直接在后台运行
Trinity --seqType fq --left SRR9023132_1.fastq --right SRR9023132_2.fastq --CPU 8 --max_memory 60G --output trinity_out_9023132 &
结果文件:trinity_out/Trinity.fasta
关键参数说明:
--seqType:支持输入数据格式为fq或者fa
--max_memory:内存设置,这一步是最耗费资源的一步,所以这个内存主要由jellyfish控制
--left --right:如果是双端测序--left为read1,--right为read2,多个样品的reads由逗号隔开,不允许出现空格;如果是单端测序,参数为--single加上文件,多个样品的reads由逗号隔开,不允许出现空格。
--CPU:软件所用线程