查看原文
其他

梅零落 2018-06-06

在开始数据分析之前,一个很重要的工作就是对数据进行评估,数据质量的好坏会直接影响到数据分析的结果。

当我们从测序公司拿到原始数据以后,如何评估测序质量呢?今天主要给大家介绍一款简单实用的工具FastQC。

FastQC的使用

1.安装简介

官网主页:https://www.bioinformatics.babraham.ac.uk/projects/fastqc/

该软件支持多个系统平台(Windows、Linux以及MacOS),它是一款Java软件,使用之前得保证自己的系统拥有Java Runtime Environment(JRE),这里介绍的是它在Linux系统中的安装。

  • 安装方法1:wget/axel命令下载安装包,unzip命令解压,chmod u+x 命令修改为可执行权限。

  • 安装方法2:conda命令直接安装,使用该命令需要先安装Bioconda。

    conda install -c bioconda fastqc=0.11.5

2.命令说明

fastqc -o output dir -f fastq|bam|sam seqfile1 .. seqfileN

①-o 用来指定输出文件的目录,fastq是不能新建目录的。输出的结果是.zip文件,默认自动解压缩,如果加上--noextract参数则不解压缩。

②-f 用来强制指定输入文件格式,默认会自动检测。

③-c用来指定一个contaminant文件,fastqc会把overrepresented sequences去这个contaminant文件里搜索。contaminant文件的格式是"Name\tSequences",#开头的行是注释。

④-q 会进入沉默模式,即不出现下面的提示:

Started analysis of target.fqApprox 5% complete for target.fqApprox 10% complete for target.fq

注意:-o参数用于指定FastQC报告的输出目录,这个目录需要事先创建好,如果不指定特定的目录,那么FastQC的结果会默认输出到测序文件的同一个目录下。它输出结果只有两个,一个html和一个.zip压缩包。

3.报告解读

我们可以直接通过浏览器打开html,就可以看到FastQC给出的所有结果,zip压缩包解压后,从中我们也可以在对应的目录下找到所有的QC图表和Summary数据。另外,FastQC支持同时输入多个fq文件(或者以通配符的形式输入fq),当我们的fq文件比较多时,这种用法会比较方便。

这里选用官网的Bad Illumina Data进行说明,报告包括如下内容:

左边是12项指标的概要,右边是各项指标对应的结果,每项结果的颜色包括绿色√(合格),黄色!(警告)和红色×(不合格)。右上角是报告生成的日期和对应的文件名称。

12项指标的官方解读

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/3%20Analysis%20Modules/

  • Basic Statistics

Encoding指测序平台的版本和相应的编码版本号,可推测是Phred 64 质量分数的编码方式。

Total Sequences指输入文本的reads的数量。

Sequence length指测序的长度

%GC 是我们需要重点关注的一个指标,这个值表示的是全部序列中的GC含量,这个数值一般具有物种特异性,比如人类细胞就是42%左右。

  • Per base sequence quality

用箱式图的方式展示数据质量,图中每1个位置,都是该位置的所有序列的测序质量的一个统计。横轴表示测序序列的位置;纵轴是质量得分,Q =-10*log10(p),p为测错的概率。所以一条reads某位置出错概率0.01时,其quality就是20。红色表示中位数,黄色是25%-75%区间,触须是10%-90%区间,蓝线是各个位置的平均值的连线。

若任一位置的下四分位数低于10或中位数低于25,报"黄色!";若任一位置的下四分位数低于5或中位数低于20,报"红色×"。一般要求此图中,所有位置的10%分位数大于20,也就是常说的Q20过滤。由此可知这个测序结果质量很差,报"红色×"。

  • Per tile sequence quality

这一模块是检查在测序平台上,reads中每一个碱基位置在不同的测序小孔之间的偏离度,偏离度越高,碱基质量越差。横轴表示测序序列的位置;纵轴表示测序小孔。蓝色表示低于平均偏离度,越红则说明偏离平均质量方差越多,也就是说质量越差。如果出现质量问题可能是短暂的,如有气泡产生,也可能是长期的,如在某一小孔中存在杂质。

偏离度小于平均值2以上报"黄色!",偏离度小于平均值5以上报"红色×"。本图结果较差,故报"红色×"。

  • Per sequence quality scores

每条reads的quality的均值的分布:为了检测一部分质量特别差的reads,如果有,则会在图上出现多个峰,如在测序仪边缘的reads。横轴表示质量分数,代表不同Phred值对应了多少的reads;纵轴表示reads数目。

当峰值小于27(错误率0.2%)时警报,当峰值小于20(错误率1%)时不合格。本图测序结果的峰值主要集中在高分(31),证明测序质量良好。

  • Per base sequence content

对所有reads的每一个位置,统计ATCG四种碱基(正常情况)的分布: 正常情况下四种碱基的出现频率应该是接近的,而且没有位置差异。因此好的样本中四条线应该平行且接近。当部分位置碱基的比例出现bias时,即四条线在某些位置纷乱交织,往往提示我们有overrepresented sequence的污染。当所有位置的碱基比例一致的表现出bias时,即四条线平行但分开,往往代表文库有bias (建库过程或本身特点),或者是测序中的系统误差。横轴表示测序序列的位置;纵轴表示百分比。当任一位置的A/T比例与G/C比例相差超过10%,报"黄色!";当任一位置的A/T比例与G/C比例相差超过20%,报"红色×"。本图中有位置出现A/T比例与G/C比例相差超过10%,所以报"黄色!"。

  • Per sequence GC content

统计reads的平均GC含量的分布:红色曲线是实际的测序GC含量分布图,而蓝色曲线则是理论分布(正态分布,不过均值不一定都是50%,而是由平均GC含量推断的)。如果红色曲线形状存在比较大的偏差,往往是由于文库的污染造成的。红色曲线越平滑越好,越接近蓝色曲线越好。形状接近正态但偏离理论分布的情况提示我们可能有系统偏差。横轴表示平均GC含量;纵轴表示测序文件每个序列的全长。

偏离理论分布的reads超过15%时发出警报,超过30%时报不合格。

  • Per base N Content

对所有reads的每个位置,统计N的比率:当测序仪器不能辨别某条reads的某个位置到底是什么碱基时,就会产生"N"。横轴表示测序序列的位置;纵轴表示百分比。正常情况下N的比例是很小的,当纵轴在0%-100%的范围内也能看到"鼓包"时,说明测序系统出了问题。

当任意位置的N的比例超过5%,报"黄色!";当任意位置的N的比例超过20%,报"红色×"。

  • Sequence Length Distribution

reads长度的分布:每次测序仪测出来的长度在理论上应该是完全相等的,但是总会有一些偏差,如此图中,40bp是主要的,但是还是有少量的39和41bp的长度,不过数量比较少,不影响后续分析。当测序的长度有很大不同时,则表明测序仪在此次测序过程中产生的数据不可信,但对于某些测序平台,具有不同的read长度是完全正常的。

当reads长度不一致时警告,当有长度为0的read时不合格。

  • Sequences Duplicate Levels

统计序列完全一样的reads的频率:横轴表示reads重复的次数;纵轴表示重复次数对应的reads占不重复的reads的比例。测序深度越高,越容易产生一定程度的duplication,这是正常的现象,但如果duplication的程度很高,那么表明存在富集的偏好(enrichment bias)(比如:测序过程中的PCR重复,转录组测序中某些基因表达量高),序列重复比例越高,则表明实际有用的序列越少。图中有蓝红两条线,蓝色线表示的是文件中所有的序列中duplicate程度的分布,红色线表示的是去冗余之后的序列,含量表示的在全部序列都考虑时不同冗余程度的序列所占的比例。

重复reads占总数的比例大于20%时报"黄色!",大于50%时报"红色×"。

  • Overrepresented sequences

如果有某个序列大量出现,就叫做over-represented。fastqc的标准是占全部reads的0.1%以上。和上面的duplicate analysis一样,为了计算方便,只取了fq数据的前200,000条reads进行统计,所以有可能over-represented reads不在里面。而且大于75bp的reads也是只取50bp。

当发现超过总reads数0.1%的reads时报"黄色!",当发现超过总reads数1%的reads时报"红色×"。

  • Adapter Content

此图衡量的是序列中两端adapter的情况,如果在fastqc分析的时候-a(指定含adapters序列文件)选项没有内容,则默认使用图例中的通用adapter序列进行统计。

含有adapter超过所有reads的5%的报"黄色!",超过10%报"红色×"。

  • Kmer Content

如果某k个bp的短序列在reads中大量出现,其频率高于统计期望的话,fastqc将其记为over-represented k-mer。默认的k = 5,可以用-k --kmers选项来调节,范围是2-10。出现频率总体上3倍于期望或是在某位置上5倍于期望的k-mer被认为是over-represented。fastqc除了列出所有over-represented k-mers,还会把前6个的per base distribution画出来。

当有出现频率总体上3倍于期望或是在某位置上5倍于期望的k-mer时,报"黄色!";当有出现频率在某位置上10倍于期望的k-mer时报"红色×"。本图所显示的结果来自于表格中前六个序列。

文末福利:Fastqc视频学习链接(,这里推荐两个不同的视频,英语视频:http://v.youku.com/v_show/id_XNTQ2NjA4Mzc2.html;中文视频:https://v.qq.com/x/page/c0359foiqg1.html?ptag=qqbrowser),点击阅读原文即可观看中文视频进行学习。

批量显示QC结果:MultiQC

官网主页:http://multiqc.info

功能:把多个测序结果的qc结果整合成一个报告。支持fastqc、trimmomatic、bowtie、STAR等多种软件结果的整合。

安装:使用conda命令安装,需要先安装Anaconda。

  1. conda install -c bioconda multiqc   # install multiqc

  2. multiqc .           #Run

该软件能批量显示QC结果,限于本文的篇幅,这里不做过多介绍,详情请看参考链接。

补充:

1、数据质控是一个综合的评价标准,其中主要指标为碱基质量与含量分布,如果这两个指标合格了,后面大部分指标都可以通过。如果这两项不合格,其余都会受到影响。

1、数据质控是一个综合的评价标准,其中主要指标为碱基质量与含量分布,如果这两个指标合格了,后面大部分指标都可以通过。如果这两项不合格,其余都会受到影响。

2、其中一些指标并不适合所有数据,例如DNA数据与RNA测序数据之间的差异等,要根据具体数据类型,具体分析。

3.一般顺序是先查看数据质量而后对所的序列利用runtrimmomatic等软件对序列进行处理,在一般我们获得的数据中,质控一般做的还是比较到位的。

参考链接

1.用FastQC检查二代测序原始数据的质量  (http://yanshouyu.blog.163.com/blog/static/214283182201302835744453/)

2.Illumina测序数据的质量控制(QC)-1(https://zhuanlan.zhihu.com/p/24608131?group_id=871001548837228544)

3.批量显示QC结果的利器(http://fbb84b26.wiz03.com/share/s/3XK4IC0cm4CL22pU-r1HPcQQ1iRTvV2GwkwL2AaxYi2fXHP7)

还有更多文章,请移步公众号阅读

如果你生信基本技能已经入门,需要提高自己,请关注上面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存