原先就想仔细研究一下fastqc和fastp的质控报告,对比一下到底有多大区别。正好现在对一个公开数据进行质控,还正好发现质控前后有明显的指标变化。(SRR5809347
)
首先我们应该先了解一下,fastqc所提供几个指标什么意思。
自主了解参考:
质控流程
在质控过程中我一般关注两个点,一个是碱基质量,一个是read重复和覆盖程度。碱基质量关乎序列组装的质量,read重复和覆盖会增加组装过程中的资源消耗。低质量碱基的裁剪不仅提高数据组装质量,而且减低数据量。read重复和覆盖是单纯降低数据量,但是不影响组装质量。
- 使用fastp去除低质量碱基(
-q 30 -u 10 -n 5
)、启用重复数据消除以删除重复的读取/对(--dedup
)以及遗弃较短的read(-l 100
) - 使用
bbtools
中的bbnorm.sh降低序列的覆盖程度。
fastp -c -q 30 -u 10 -n 5 -w 12 -i $fq1 -I $fq2 -o $out_fq1 -O $out_fq2 -h "$name"_report.html --dedup -l 100
$DIR_bbmap/bbnorm.sh in1=$out_fq1 in2=$out_fq2 out1=$out_norm1 out2=$out_norm2 target=10 min=2 histcol=2 khist=khist.txt peaks=peaks.txt
这里可以解释一下我认为的read重复和覆盖程度,read重复就是一模一样的read出现多次;然后就是read覆盖程度,这里的read虽然不是一模一样,但是可能对于某部分的序列出现了过多层的覆盖,就是相当于是read中部分内容重复次数过度。
质控效果
以往几乎看不出来多少差距,SRR5809347
明显在fastp 后GC含量达到了预期理论值,所以没有了警告。bbnorm后序列的Sequence Duplication Levels
警告消除。这是标题上看出来的区别。
---分割线---
接下来一步步看质控报告
0.Basic Statistics
40,398,283
>12,042,775
>3,647,924
Sequence length
可以明显感受到数量的变化
1.Per base sequence quality
横坐标:碱基所在的测序位置,read中1-150bp。
纵坐标:测序质量。20%代表错误为1%的错误读取率,30%代表0.1%的错误读取率。
红色线代表中位数,蓝色代表平均数,黄色柱状是25%~75%区间质量分布,error bar是10%~90%区间质量分布。若任一位置的下四分位数低于10或者中位数低于25,出现“警告”;若任一位置的下四分位数低于5或者中位数低于20,出现“失败,Fail”。
上图可以看见经过fastp质控,碱基质量提升明显,但是同时这个数据集中的低质量碱基大量的被消除了。这一点查看fastp的质控报告可以发现的更明显,删除了好几个G的低质量碱基。
2.Per sequence quality scores
横轴表示Q值,纵轴表示每个值对应的read数目,当测序结果主要集中在高分中,证明测序质量良好。
可以观察到经过fastp以后碱基质量的起点已经在35了,bbnorm后read数量又是进一步的下降。
3.Per base sequence content
横轴为位置,纵轴为碱基含量。统计在序列中的每一个位置,四种不同碱基占总碱基数的比例,检测有无AT、GC分离的现象。一般来说,AT含量高于CG含量,AT含量约28%,CG含量约22%。由于测序问题,通常第一二位置的碱基测序质量比较低,ATCG含量也不正常。偏离理论分布的reads超过15%时,报'WARN';偏离理论分布的reads超过30%时,报'FAIL'。
我这个明显在150末端位置A的百分比出现了断崖下降,这也是出现红叉的原因。较为正常的结果可以查看这篇出现警告的图,较好的结果应该是四条平行线,AT、GC线几乎吻合。
4.Per sequence GC content
横轴表示GC含量,纵轴表示不同GC含量对应的read数。红线是实际情况,蓝线是理论分布(正态分布,均值不一定在50%,而是由平均GC含量推断的)。偏离理论分布的reads超过15%时,报"WARN";偏离理论分布的reads超过30%时,报"FAIL"。如果出现两个或多个峰值,表明测序数据里可能有其他来源的DNA序列污染,或者有接头序列的二聚体污染。
本实验经过上述两个质控操作,就成功让其符合理论分布了。
5.Per base N content
横轴为碱基分布,纵轴为N比率,当任一位置N的比率超过5%报WARN,超过20%报FAIL。
正常情况下,N值非常小,所以图上常常看到一条直线。
6.Sequence Length Distribution
横轴是read长度,纵轴是read数量
7.Sequence Duplication Levels
横轴表示重复等级,纵轴表示重复的reads的数目。
这里看出来fastp启用重复数据消除以删除重复的读取/对(--dedup)的效果不如使用bbtools中的bbnorm.sh降低序列的覆盖程度。bbnorm.sh降重效果明显。
8.Overrepresented sequences
No overrepresented sequences
重复度过高的序列
9.Adapter Content
横坐标:碱基所在位置。纵坐标:接头所占比例。