欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

转录组分析 (3) - 质量控制

最编程 2024-07-15 12:31:55
...
目的

现在的NGS测序,以illumina为首基本都是运用边合成边测序的技术。碱基的合成依靠的是化学反应,这使得碱基链可以不断地从5'端一直往3'端合成并延伸下去。但在这个合成的过程中随着合成链的增长,DNA聚合酶的效率会不断下降,特异性也开始变差,这就会带来一个问题——越到后面碱基合成的错误率就会越高;有时候测序仪在刚开始进行合成反应的时候也会由于反应还不够稳定,同样会带来质量值的波动。由于测序数据的质量好坏会影响我们的下游分析,所以在开始进行下游分析之前,对数据的质量有一个准确的认知是非常有必要的。

操作
安装
# 手动安装
wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.7.zip
unzip fastqc_v0.11.7.zip
cd FastQC 
chmod 755 fastqc
# apt-get 安装
sudo apt-get install fastqc
# conda 安装
conda activate py3
conda install fastqc
运行
mkdir result
fastqc -f fastq -q -o result -t 3 sample1.fq.gz sample2.fq.gz sample3.fq.gz

命令比较简单,这里唯一值得注意的地方就是 -o 参数用于指定FastQC报告的输出目录,这个目录需要事先创建好,如果不指定特定的目录,那么FastQC的结果会默认输出到文件untreated.fq的同一个目录下。它输出结果只有两个,一个html和一个.zip压缩包。

解读

关于测序数据的质量,我们一般关注以下几个方面:(1) read各个位置的碱基质量值分布;(2) 碱基的总体质量值分布;(3)read各个位置上碱基分布比例,目的是为了分析碱基的分离程度;(4) GC含量分布;(5) read各位置的N含量;(6) read是否还包含测序的接头序列;(7)read重复率,这个是实验的扩增过程所引入的。其中主要指标为碱基质量与含量分布,如果这两项不合格,其余都会受到影响。

基本信息
image.png

Filename, 质控文件名;Encoding, 测序平台;Total Sequences, reads数量;Sequence Length, reads长度;%GC, GC含量

碱基质量分布
image.png

此图中的横轴是read上碱基的位置,纵轴是质量得分,Q = -10*log10(error P)即20表示0.01的错误率,30表示0.001,图中红线表示中值,蓝色的细线是各个位置的平均值的连线。Warning 警告:如果任何碱基质量低于10,或者是任何中位数低于25; Failure 不合格:如果任何碱基质量低于5,或者是任何中位数低于20。
好的测序结果中,大部分质量值的分布都在大于30的绿色背景的区域,表明质量值很高,而且波动很小,说明质量很稳定。差的测序结果中,质量值的分布都在小于20的红色背景的区域,表明质量值很差,有大量的质量差的reads,并且波动很大,对于这种结果,最好重新测序,如果实在要用于分析,应该将这些低质量的reads过滤掉以后进行下游分析。

碱基总体质量值分布
image.png

该图横轴Q值,纵轴是每个值对应的reads数目。reads的质量值是指该条read每个位置Q值的平均值。只要大部分read的质量都高于20,那么就比较正常。一般来说,对于二代测序,最好是达到Q20的碱基要在95%以上(最差不低于90%),Q30要求大于85%(最差也不要低于80%)

碱基分布
image.png

这个图横轴是read上碱基的位置;纵轴是百分比,图中四条线代表A、T、C、G在每个位置平均含量。这个指标是为了分析碱基的分离程度。理论上,假如测序过程是比较随机,A和T应该相等,G和C应该相等,两者之间即使有偏差也不应该太大,最好平均在1%以内。如果过高,除非有合理的原因,比如某些特定的捕获测序所致,或者测序刚开始的时候测序仪状态不稳定,否则都需要注意是不是测序过程产生偏差。

GC含量分布
image.png

该图横轴是0 - 100%; 纵轴是每条序列GC含量对应的数量,蓝色的线是程序根据经验分布给出的理论值,红色是真实值,两个应该比较接近才比较好。GC含量指的是G和C这两种碱基占总碱基的比例。二代测序平台或多或少都存在一定的测序偏向性,GC含量可以协助我们判断测序过程是否足够随机。一般基因组的GC含量有一个理论值,例如人类基因组的GC含量一般在40%左右。因此,如果发现GC含量的图谱明显偏离理论值,说明测序过程存在较高的序列偏向性,结果就是基因组中某些特定区域被反复测序的几率变高,这些区域的测序深度远高于平均测序深度,这将会影响下游的变异检测和CNV分析。

N含量分布
image.png

这个图横轴是read上碱基的位置;纵轴是含N的比例。Warning 警告 如果任意位置的N比例超过5%,Failure 不合格 如果任意位置的N比例超过20%。N在测序数据中一般是不应该出现的,如果出现则意味着,测序的光学信号无法被清晰分辨,测序仪器不能辨别某条reads的某个位置都是ATCG哪个碱基,如果这种情况多的话,往往意味着测序系统或者测序试剂的错误。

接头序列
image.png

这个图横轴是read上碱基的位置;纵轴是含各种接头的比例。当测序read的长度大于被测序的DNA片段时,就会在read的末尾测到这些接头序列。由于有些RNA的序列本来就比较短,很多只有几十bp长(特别是miRNA),那么测序的时候就很容易会出现read测通的现象,这个时候就会在read的末尾测到这些接头序列,此时,在图中的3‘端位置,adapter的比例曲线会上升。这些被测到的接头序列在正式分析之前需要被切除。

重复序列
image.png

统计序列完全一样的reads的频率。横坐标是duplication的次数,纵坐标表示各重复次数下的 reads 数占总 reads 的百分比,蓝线展示所有 reads 的重复情况,红线表示在去掉重复以后,原重复水平下的 reads 占去重后 reads 总数的百分比;Warning 警告 非 unique 的 reads 占总 reads 数的 20 % 以上,Failure 不合格 占总 read 数的 50 % 以上。

整合

Fastqc每次对一个样本进行质量控制并生成评估报告,当样本数量过多时,查看报告显然极不方便。Multiqc能将fastqc生成的多个报告整合成一个报告(HTML和PDF格式),方便的查看所有测序数据的质量。Multiqc支持多种分析类型的质控结果查看,包括:RNAseq、Whole-Genome Seq、Bisulfite Seq、Hi-C等。

安装
# conda 安装,multiqc 基于 python3
conda activate py3
conda install multiqc
运行
# 整合包含fastqc结果的文件夹
multiqc -o multi_out fastqc_out
# 整合指定的几个fastqc结果
multiqc -o multi_out sample1_fastqc.zip sample2_fastqc.zip sample3_fastqc.zip

推荐阅读