有关数据下载已经在上一篇笔记《RNA-seq上游流程》 中介绍,这里将使用其中的数据进行演示。
1.质控
fastqc
使用fastq-dump 生成的.fq.gz 文件 走fastqc做质控(单端数据)
cat SRR_Acc_List.txt | while read id ; do fastqc -t 10 -o ./ $id.fq.gz ; done
运行后会生成fastqc.zip结尾的文件和html的报告
2.过滤
过滤会介绍两种软件trimmomatic 和 trim_galore,这里使用的输入文件都要用fq.gz文件,而不是fastqc生成的zip文件
(1)trimmomatic
trimmomatic使用起来参数比较多,需要特别注意(先演示单端)
java -jar trimmomatic-0.38.jar SE -phred33 SRR3581356.fq.gz SRR3581356.trim.gz ILLUMINACLIP:/disk/201931107010071/Trimmomatic-0.38/adapters/TruSeq2-SE.fa:2:30:10 SLIDINGWINDOW:5:20 LEADING:20 TRAILING:20 MINLEN:75
这个软件比较麻烦,就再补充一个双端的
java -jar ~/Trimmomatic-0.38/trimmomatic-0.38.jar PE -phred33 SRR6232298_1.fq.gz SRR6232298_2.fq.gz -baseout SRR6232298.fq.gz ILLUMINACLIP:/disk/201931107010071/Trimmomatic-0.38/adapters/TruSeq3-PE.fa:2:30:10 SLIDINGWINDOW:5:20 LEADING:20 TRAILING:20 MINLEN:75
这里有一个小技巧,trimmomatic有四个输出文件,自己写输出文件名是比较麻烦的,可以用 -baseout+前缀 来代替。软件会自动生成四个文件。
(2)trim_galore
trim_galore的代码比较短 ,运行速度也比较快
trim_galore -q 25 --phred33 --length 36 --stringency 3 -o ./ SRR3581356.fq.gz #单端
trim_galore --paired -q 25 --phred33 --length 36 --stringency 3 -o ./ SRR6232298_1.fq.gz SRR6232298_2.fq.gz #双端
执行之后会生成trimmed.fq结尾的文件
当然fastqc和trimmomatic或者fastqc和trim_galore的流程也是比较旧的流程了,可能比较耗时间。感觉现在还是fastp更方便,一行代码就可以解决这两个软件做的。(上一篇笔记里有fastp使用说明)
3.定量
salmon
用salmon做定量的好处是输入文件是fq文件,不需要进行比对获取bam文件
先下载参考基因组fasta序列文件然后使用salmon构建index文件
salmon index -k 25 -t GCF_000001735.4_TAIR10.1_genomic.fna -i GCF_000001735.4_TAIR10.1_genomic.salmon.index
生成转录本定量信息
cat SRR_Acc_List.txt| while read id ; do salmon quant -i GCF_000001735.4_TAIR10.1_genomic.salmon.index -l SF --gcBias --seqBias -r ${id}.fq.gz -p 2 -o ${id}_output ; done
运行后会生成.quant.sf的文件,第四列是TPM值
用作者给出的脚本提取每个文件的TPM,制作表达矩阵
multipleFieldSelection.py -i ../project/salmon/SRR*/quant.sf -k 1 -f 4 -o iso_tpm.txt
(注意输入文件的文件路径,选择自己文件的路径)得到 iso_tpm.txt的内容 ,还需要格式化一下,转化为行为基因,列为样本的矩阵
perl -alne '{/(\|.*\|)\t/; ;s/$1//g;s/\|//g;print}' iso_tpm.txt > iso_tpm_formatted.txt
这里生成的iso_tpm_formatted.txt文件,就是TPM表达矩阵了,可以用来做RNA-seq的下游分析了。
网友评论