数据的质量控制软件 | FastQC

拿到二代测序数据后,首先要查看一下测序质量如何,以评估该测序数据是否满能够进行后续的生信分析。

这里介绍一款常用的二代测序数据质量评估软件,FastQC。该软件使用Java编写,可以快速多线程地对测序数据进行质量评估。并最终生成一份评估报告,包含多项内容,如测序reads碱基质量、GC含量、reads长度、k-mer分布等信息,以便我们快速得知测序数据质量。

注:目前在较新的FastQC版本中,添加了对三代PacBio、三代Nanopore测序数据的质量评估功能,使得FastQC不再仅限于对二代测序数据的评估。但在本篇只演示其在二代测序中的质控评估过程(因为我也没尝试过使用它评估三代数据,不知效果如何)。

FastQC官方网站:http://www.bioinformatics.babraham.ac.uk/projects/fastqc/

一、FastQC下载安装

在Linux系统下,我们可以既可以通过conda直接安装,也可以在官网中下载可执行程序直接使用,二者选一即可,都挺方便的。

1.可直接使用conda安装。

conda install fastqc

2.在官网中找到下载链接下载。下载后给“fastqc”主程序添加可执行权限即可使用,无需编译。

#在 Linux 系统中,解压后,给主程序添加可执行权限即可使用

unzip fastqc_v0.11.8.zip && cd FastQC
chmod +x fastqc

二、使用FastQC评估二代测序reads数据(fastq格式)

1. FastQC程序的各项参数。

fastqc -h

其中,在二代测序数据评估中的常用参数选项说明:
-o:结果输出路径;
--extract:默认情况下,会将所有结果文件打包后生成一个压缩文件,该参数存在时将解压缩;
-t:程序运行时的线程数;
-c:指定一个文件,该文件内容为“name[tab]sequence”样式,记录可能的污染序列, FastQC会根据该文件中的序列信息评估测序数据的污染程度,不指定时不评估;
-a:指定一个文件,该文件内容为“name[tab]sequence”样式,记录测序接头序列,FastQC会根据该文件中的序列信息评估测序接头序列的残留情况,不指定时将自动识别通用接头序列;
-k:指定k-mer统计时的k-mer长度,取值范围2-10,默认7;
-q:默认情况下,程序会实时报告运行的状况,该参数存在时仅报告错误信息。

2. 实例

测试数据中,包含了二代测序原始下机数据raw reads以及经过质控后的clean reads,我们对这些都进行评估,以查看质控前后的数据质量。

FastQC识别fastq格式,也识别gzip压缩后的fastq格式,两种格式的二代测序数据均可作为输入文件。一般情况下,指定输出路径(这里直接输出在当前路径下)及线程数后,其它使用默认参数即可。

#评估测试数据(一般使用默认参数即可)
#fastqc [options] [data]
fastqc -o ./ -t 4 Bacillus_subtilis.raw_R1.fastq.gz
fastqc -o ./ -t 4 Bacillus_subtilis.raw_R2.fastq.gz
fastqc -o ./ -t 4 Bacillus_subtilis.clean_R1.fastq.gz
fastqc -o ./ -t 4 Bacillus_subtilis.clean_R2.fastq.gz

程序运行完毕后,对于每个测序数据,得到两个结果文件,“.zip”以及“.html”。其中,“.html”即为FastQC所得评估报告,主要关注这份报告即可;“.zip”为打包压缩后的结果文件,其中包含了“*.html”,以及一些统计结果、图片结果等信息。

此外,也可在FastQC官网中,点击这些链接查看官方所给定的示例评估报告,包含了更多种的测序类型。


三、FastQC网页报告内容解读

此处我们继续使用上述运行结果文件中的“Bacillus_subtilis.clean_R1_fastqc.html”来进行内容展示。

Summary
Summary简要展示出哪些指标评估质量良好(PASS,绿色√),哪些指标评估质量一般(WARN,橙色!),哪些指标评估质量较差(FAIL,红色×)。绿色√越多表明测序数据质量越佳。对于红色×部分,需重点关注并探其原因。

接下来查看各详细评估指标。

Basic Statics
Basic Statics中统计了测序数据类型、测序平台、测序数据中包含的总reads数、测序reads长度范围及测序reads的平均GC含量等信息。

Per base sequence quality
Per base sequence quality,以箱线图的形式展示了测序reads沿5’到3’方向所有碱基的测序质量值的分布。图中,横坐标为碱基在reads中的位置,纵坐标为单碱基错误率Q,其中Q = -10*log10(error P)即20表示1%的错误率,30表示0.1%。

根据测序技术的特点,测序片段末端的碱基质量一般会比前端的低,属正常现象。若reads末端测序质量明显较差,可考虑将末端碱基统一裁剪去除。

若任一位置的下四分位数低于10或中位数低于25,报“WARN”;若任一位置的下四分位数低于5或中位数低于20,报“FAIL”。

在本示例中,我们可见测序数据“Bacillus_subtilis.clean_R1.fastq.gz”中的碱基质量几乎全部集中在高质量区域(绿色区域),表明该数据测序质量良好。

Per tile sequence quality
Per tile sequence quality,每个tail测序情况,横轴表示碱基位置,纵轴表示tail的index编号。这个图主要是为了防止在测序过程中某些tail受到不可控因素的影响而出现测序质量偏低,蓝色表示测序质量很高,暖色表示测序质量不高。当某些tail出现暖色,在后续的分析种把该tail测序结果全部去除。

在本示例中,我们可知测序数据的测序质量良好。

Per sequence quality scores
Per sequence quality scores,横轴为reads碱基平均质量值,纵轴是reads数目。若测序质量越高,则绝大多数reads分布在高质量值区域,即曲线峰值的横坐标对应在高分区。

当峰值横坐标小于27(错误率0.2%)时报“WARN”,当峰值横坐标小于20(错误率1%)时报“FAIL”。

在本示例中,我们可见测序数据中,reads碱基平均质量值集中分布在高质量区域,即峰值的横坐标在36的位置,表明该测序数据质量良好。

Per base sequence content
Per base sequence content,统计了测序碱基A、T、C、G的含量分布,可以一定程度上反映测序是否正常。图中横坐标为碱基在reads中的位置,纵坐标为该位置处各碱基含量百分比,根据碱基互补原则,A和T的比例应该接近,C和G的比例也应该是接近的。

实验过程所用的随机引物会引起前几个位置的碱基组成出现波动,这属于正常情况,或者可考虑将5'端前几个位置处的碱基统一裁剪去除。

当任一位置的A/T比例与G/C比例相差超过10%,报“WARN”;当任一位置的A/T比例与G/C比例相差超过20%,报“FAIL”。

在本示例中,我们可见测序数据“Bacillus_subtilis.clean_R1.fastq.gz”中,A、T、C、G四种碱基的含量稳定(报“WARN”是因为起始位置的碱基出现波动所致),表明该测序数据质量良好。

Per sequence GC content
Per sequence GC content,展示了测序reads的GC含量分布。图中横坐标为reads GC含量,纵坐标为reads数量;蓝色曲线为理想状态下的GC含量曲线(显著单峰),红色曲线为实际的GC含量曲线。

若红色曲线与蓝色曲线的拟合程度越高,则测数据序质量越好。曲线形状的偏差往往是由于文库的污染或是部分reads构成的子集有偏差(overrepresented reads),形状接近正态但偏离理论分布的情况提示我们可能有系统偏差,当红色出现双峰是表示混入了其它DNA序列。

偏离理论分布的reads超过15%时,报“WARN”;偏离理论分布的reads超过30%时,报“FAIL”。

在本示例中,我们可见测序数据“Bacillus_subtilis.clean_R1.fastq.gz”的GC曲线显著单峰,且几乎完全与理论曲线相吻合,表明该测序数据质量良好。

Per base N content
Per base N content,当出现测序仪不能分辨的碱基时会产生N,该图统计了N碱基的含量分布。图中横坐标为碱基在reads中的位置,纵坐标为该位置处N碱基含量百分比,N碱基含量越低越好。

当任一位置N的比率超过5%报“WARN”,超过20%报“FAIL”。

在本示例中,我们可见测序数据“Bacillus_subtilis.clean_R1.fastq.gz”中几乎不含有N碱基,即测序质量良好。

Sequence Length Distribution
Sequence Length Distribution,统计了测序reads的长度分布,图中横坐标为reads长度,纵坐标是reads数目。

对于测序原始raw reads,每次测序仪测出来的长度在理论上应该是完全相等的;对于质控后的clean reads,由于切除测序接头、低质量碱基等后会导致长度出现波动,但就“好的测序数据”来讲,reads长度分布仍然集中在最长区域。

当reads长度不一致时报“WARN”;当有长度为0的read时报“FAIL”。

在本示例中,“Bacillus_subtilis.clean_R1.fastq.gz”为clean reads数据,其reads长度集中分布在147-150nt的位置几乎与测序读长一致(illumina PE150测序,raw reads全长150nt),且未见明显的小片段reads,表明测序数据质量良好。此处报“WARN”是由于reads长度不一致(clean reads长度不一,完全属正常现象)。

Sequence Duplication Levels
Sequence Duplication Levels,统计序列完全一致的reads的频率,判定为duplication reads(重复序列),由二代测序过程中PCR的偏好性扩增导致。一般测序深度越高,越容易产生一定程度的duplication reads,属于正常现象。图中,横坐标表示duplication的次数,纵坐标表示duplication reads的数目。理论上,duplication reads的比例越低越好。

当测序数据量很大时,使用全部数据计算duplication reads将相当费时,此时FastQC会选取数据中前200000条reads统计其在全部数据中的duplication reads情况,同时重复数目大于等于10的reads被合并统计。由于reads越长越不容易完全相同(由测序错误导致),所以其重复程度仍有可能被低估。

当duplication reads占总数的比例大于20%时,报“WARN”;当duplication reads占总数的比例大于50%时,报“FAIL”。

在本示例中,我们可见测序数据“Bacillus_subtilis.clean_R1.fastq.gz”中,duplication reads占总数的比例低于20%,表明测序数据质量良好。

Overrepresented sequences
Overrepresented sequences,如果有某个序列大量出现,就称其为overrepresented read,该值越低越好。

同上述duplication reads,当测序数据量很大时,使用全部数据计算overrepresented read将相当费时,此时FastQC会选取数据中前200000条reads统计其在全部数据中的overrepresented read情况,因此可能会存在有的overrepresented read被忽略。

当overrepresented read超过总reads数的0.1%时报“WARN”,超过1%时报“FAIL”。

在本示例中,对于测序数据“Bacillus_subtilis.clean_R1.fastq.gz”而言,未检测到overrepresented read,表明该数据测序质量良好。

Adapter Content

Adapter Content,统计测序reads两端接头序列(adapter sequence)长度所占比例,图中横坐标为碱基在reads中的位置,纵坐标表示该位置的碱基为测序接头序列碱基的百分比。

对于raw reads来讲,会存在一定比例的测序接头序列,需要过滤去除;而对于clean reads来讲,理论上测序接头序列应当已经被过滤干净。

在本示例中,“Bacillus_subtilis.clean_R1.fastq.gz”为clean reads数据,我们可见其接头序列已被完全过滤干净。

Kmer Content
Kmer Content,出现频率总体上3倍于期望或是在某位置上5倍于期望的k-mer被认为是overrepresented k-mers。fastqc除了列出所有overrepresented k-mers,还会把前6个的per base distribution画出来。

当有出现频率总体上3倍于期望或是在某位置上5倍于期望的k-mer时,报“WARN”;当有出现频率在某位置上10倍于期望的k-mer时报“FAIL”。

在本示例中,对于测序数据“Bacillus_subtilis.clean_R1.fastq.gz”而言,未检测到overrepresented k-mers,表明该数据测序质量良好。

参考文献

Patel R K, Jain M. NGS QC Toolkit: a toolkit for quality control of next generation sequencing data. Plos One, 2012, 7(2):e30619.
http://blog.sciencenet.cn/blog-3406804-1161193.html

你可能感兴趣的:(数据的质量控制软件 | FastQC)