数据质量什么叫做好,以及Trimmomatic sickle等过滤软件的比较

在二代测序合成的过程中随着合成链的增长,DNA聚合酶的效率会不断下降,特异性也开始变差,这就会带来一个问题——越到后面碱基合成的错误率就会越高,以下几个指标用于观察数据的质量情况

  • read各个位置的碱基质量值分布 :大于30且波动较小

  • 碱基的总体质量值分布:大部分高于20

  • read各个位置上碱基分布比例,目的是为了分析碱基的分离程度,AT CG在1%以内

  • GC含量分布

  • read各位置的N含量,一般不该出现

  • read是否还包含测序的接头序列:

    当测序read的长度大于被测序的DNA片段【注】时,就会在read的末尾测到这些接头序列(如下图)。一般的WGS测序是不会测到这些接头序列的,因为构建WGS测序的文库序列(插入片段)都比较长,约几百bp,而read的测序长度都在100bp-150bp这个范围。不过在进行一些RNA测序的时候,由于它们的序列本来就比较短很多只有几十bp长(特别是miRNA),那么就很容易会出现read测通的现象,这个时候就会在read的末尾测到这些接头序列。

  • read重复率,这个是实验的扩增过程所引入的

rimmomatic的好处在于,它不但可以用来切除illumina测序平台的接头序列,还可以去除由我们自己指定的特定接头序列,而且同时也能够过滤read末尾的低质量序列,多线程运行,数据快,适合RNA-seq数据的预处理,由于数据结果中reads长度不一,剔除的数据量要多一些,不适用于denovo组装的short reads.

rimmomatic 使用参数

  • ILLUMINACLIP,接头序列切除参数。LLUMINACLIP:TruSeq3-PE.fa:2:30:10省掉了路径)意思分别是:TruSeq3-PE.fa是接头序列,2是比对时接头序列时所允许的最大错误数;30指的是要求PE的两条read同时和PE的adapter序列比对,匹配度加起来超30%,那么就认为这对PE的read含有adapter,并在对应的位置需要进行切除【注】。10和前面的30不同,它指的是,我就什么也不管,反正只要这条read的某部分和adpater序列有超过10%的匹配率,那么就代表含有adapter了,需要进行去除;

【注】测序的时候往往只会在测到一些部分的adapter,因此read和adaper的时候肯定是不需要要求百分百匹配率的,上述30%和10%其实是比较推荐的值。

  • SLIDINGWINDOW,滑动窗口长度的参数,SLIDINGWINDOW:5:20代表窗口长度为5,窗口中的平均质量值至少为20,否则会开始切除;

  • LEADING,规定read开头的碱基是否要被切除的质量阈值;

  • TRAILING,规定read末尾的碱基是否要被切除的质量阈值;

  • MINLEN,规定read被切除后至少需要保留的长度,如果低于该长度,会被丢掉。

FastUniq 去除illumine paried reads中的PCR重复。对de novo组装或序列覆盖度的分析很有意义。

使用:fastuniq -i input.list -o reads1.rd.fastq -p reads2.rd.fastq

接下来是sickle:

$ sickle se -f raw_data/untreated.fq -t sanger -o u.sickle.fq

SE input file: raw_data/untreated.fq

Total FastQ records: 250000FastQ records kept: 249742FastQ records discarded: 258

这里的fastq输入文件通过 -f 参数传入,输出结果通过 -o 参数指定。需要重点注意的是 -t 参数,这里需要明确指定fastq具体的质量值体系( 详见第2节 )。sickle能够处理所有三种不同的质量值体系: solexa Phred64,illumina Phred64 和 Phred33 ,这里的sanger指的就是phred33,我认为这个叫法和SOAPnuke的质量值体系命名是一样的原因!


最后是seqtk,修剪低质量碱基的功能模块是 trimfq,默认情况下只需直接给定一个fastq输入文件就行了,结果会直接输出到屏幕,这里我们将其重定向到一份新的输出文件中:

$ seqtk trimfq raw_data/untreated.fq > u.trimfq.fq


seqtk trimfq的功能比较单一,只能处理phred33,其他的都不行,参数很简洁。


【注意】 sickle和seqtk trimfq都不能用于adapter序列的切除,它们没有这个功能。


Trimmomatic最优,sickle次之,seqtk第三。当然,这其中结果最好的Trimmomatic丢弃掉的数据要比其他的略多(约1%~2%)。这三种里面比较特殊的是seqtk,它不丢弃任何read,只是将其截短,而且如果长度低于设定的最低read长度就不切除了,直接保留原数据。这也是为什么它相比于Trimmomatic和sickle而言质量要差的重要原因,可即便如此它们的结果其实相差并不多。反观SOAPnuke,不得不说SOAPnuke的过滤效果是最差的,几乎没什么效果

如果需要同时去除测序接头序列,那么建议使用Trimmomatic;如果只需过滤低质量碱基或者低质量read,可以选择Trimmomatic或sickle,有时sickle会更快一些,如果不愿意read被过滤掉而且质量值体系是phred33,那么可以选择seqtk。


https://mp.weixin.qq.com/s/MiDxubb1FEExziYFCef2yQ

猜你喜欢

转载自blog.csdn.net/sunwanying123/article/details/80907934
今日推荐