测序数据的解析:Fastq与FastQC

2022-05-05 13:26:01 浏览数 (1)

Fastq格式

二代测序平台获得的原始数据为fastq(或为压缩文件fq.gz)格式,包含双末端测序所得的正向和反向两个文件(通常用“1”和“2”来区分),如下所示:

每一个read包含四行内容,其中第一行以@开头,后面是reads的属性信息,也即read名称。中间用“:”隔开。例如上例中HISEQ为测序平台名称,266为测序运行run的编号,HHNWKBCXX为流通池(flowcell)编号。接下来四个数字为位置信息,2代表流通池中的第2个lane,1101代表第2个lane中的第1101个tile,10010:58789代表该read在该tile中的x:y坐标信息。1为读取编号,双末端一共有两次读取(不包含index的读取)。N代表没有被仪器过滤掉,也即通过了初步质量过滤;0为controlnumber,代表对照序列的鉴定情况。GGCTAC为文库Index序列。

第二行为read序列信息。一般条件下read1里面最前面为特异性Barcode和反向引物的序列,read2里面最前面为正向引物的序列。

第三行以“ ”开头,跟随者该read的名称(一般与@后面的内容相同),可以省略,但“ ”一定不能省。

第四行代表read每个碱基的测序质量。每个碱基对应的字符在ASCII码中对应的十进制数字减去33即为该碱基质量(也即Phred33体系),例如上图中第一个碱基的质量为D,对应的十进制数字为68(见下表),则碱基质量为68-33=35。碱基质量Q=-10*lgP,P为碱基被测错的概率。也即Q为30代表被测错的概率为0.001,碱基质量越高,则被测错的概率越低。

FastQC质检

对于新下机的原始数据,我们可以使用软件FastQC来对其测序质量进行可视化,软件地址:

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/

FastQC使用方法如下:

代码语言:javascript复制
fastqc -oqt fastqfile

其中参数-o设置结果文件输出路径,默认为当前路径;-q为安静模式运行;-t设置所使用的核数,根据服务器情况而定,更多命令行选项使用命令fastqc -h来查看。fastqfile为原始测序数据,也可以是fq.gz压缩文件:

代码语言:javascript复制
#可以同时检查正反向原始数据:
fastqc -o fastqc -t 20 R1.fastq R2.fastq
#对于大批量的数据,也可以用过管道命令和shell脚本进行批量处理:
ls rawdata/*fq | while read id; do fastqc -o fastqc -q -t 20 $id; done
#或者后台运行模式(一次提交多任务,所以核数要调小):
ls rawdata/*fq | while read id; do nohup fastqc -o fastqc -q -t 2 $id & done
#上面的while循环是很常用的一种文档批处理方法,注意变量的运算使用的是通配符而非正则表达式。对引用标准输入还可使用xargs函数:
ls rawdata/*fq | xargs -n 1 -P 5 fastqc -o fastqc -q -t 10
#有时候一个项目有大批量样品甚至大批量文库,需要合并来检测质量并做报告,这时候可以使用以下命令合并序列文件:
cat *1.fq > total.R1.fq
cat *2.fq > total.R2.fq

打开生成的html结果报告文件,就可以看到可视化的质检结果。在查看结果之前,我们要对自己的数据有一定的把握,例如是否已经去掉接头,是扩增子测序数据还是鸟枪法测序数据等。基因组宏基因组鸟枪法测序数据reads比较随机均匀,碱基分布也会比较均匀,而扩增子数据由于两端都有引物,以及插入片段均为16S,所以会出现很多重复序列,且碱基分布非均匀。接下来详细解析不同检测结果的含义。

使用浏览器打开html文件后,即可看到基本的参数以及质量分析结果,结果分为绿色的"PASS",黄色的"WARN"和红色的"FAIL",如下所示:

⑴BasicStatistics

包括测序技术/平台、reads数量、长度、GC含量等。

⑵Per base sequence quality

所有reads碱基的测序质量统计结果。箱线图中红色线表示中位数,黄色是25%-75%区间,延伸线是10%-90%区间,蓝线是平均数曲线。若任一位置碱基的下四分位数低于10或中位数低于25,报"WARN";若任一位置的下四分位数低于5或中位数低于20,报"FAIL"。

⑶Pertile sequence quality

流通池中不同芯片(tile)的碱基测序质量平均值对比,显示了测序仪的系统差错。热图中蓝色部分是质量较好的点,红色越明显则是测序质量越低。纵坐标为tile编号,如果某tile的测序质量很低,可以考虑去除该tile的序列数据。

⑷Per sequence quality scores

每条read的碱基质量均值的统计结果。横轴为测序质量quality,纵轴是read数目。从图中可以容易得看出不同质量范围内的read数量。其中当峰值也即最大read质量小于27(错误率0.2%)时报"WARN",当峰值小于20(错误率1%)时报"FAIL"。

⑸Per Base Sequence Content

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

⑹Per sequence GC content

统计reads的平均GC含量的分布。横轴为GC比例,纵轴为reads数量。红线是实际情况,蓝线是理论分布(正态分布,均值不一定在50%,而是由平均GC含量推断的)。曲线形状的偏差往往是由于文库的污染或是部分reads构成的子集有偏差(overrepresentedreads)。形状接近正态但偏离理论分布的情况提示我们可能有系统偏差。偏离理论分布的reads超过15%时,报"WARN";偏离理论分布的reads超过30%时,报"FAIL"。

⑺Per Base N Content

当测序仪器不能辨别某条read的某个位置到底是什么碱基时,就会产生“N”。对所有reads的每个位置,统计N的比例。

正常情况下N的比例是很小的,所以图上常常看到一条直线,但放大Y轴之后会发现还是有N的存在,这不算问题。当Y轴在0%-100%的范围内也能看到“凸起”时,说明测序系统出了问题。当任意位置的N的比例超过5%,报"WARN";当任意位置的N的比例超过20%,报"FAIL"。

⑻Sequence Length Distribution

统计reads长度的分布。横轴为片段长度,纵轴为read数量。当reads长度不一致时报"WARN";当有长度为0的read时报"FAIL"。

⑼Sequence Duplication Levels

统计序列的重复度(duplication level,也即一个文库中某条序列的copy数),理论上大部分序列都只出现一次,低的重复度意味着高的基因组覆盖率。测序深度越高,越容易产生一定程度的重复,这是正常的现象;但如果duplication的程度很高,就提示我们可能有bias的存在(如建库过程中的PCR duplication)。

可以想象,如果原始数据很大(事实往往如此),对所有序列的比较将会需要很大内存,所以FastQC只用前100,000条reads来进行统计,以反映全部数据中序列重复度情况。而且,大于75bp的reads只取前50bp进行比较,由于reads越长越不容易完全相同(由测序错误导致),所以这样做使得重复度的统计更加严格。

序列duplication level分布图将会展示文库中不同重复度的序列所占比例,其中横坐标是duplication levels,纵坐标是duplicated reads的比例。图中蓝色线展示了全部序列中不同重复度序列的百分比,红线显示的是有重复序列中不同重复度序列的百分比(所有序列的重复度减去1)。

由于展示范围的限制,重复数目大于等于10的reads会被按照区间合并统计,造成在duplicationlevel为10的时候曲线突然凸起,结果如下所示:

当非unique(也即duplication level大于1)的reads占总数的比例大于20%时,报"WARN";当非unique的reads占总数的比例大于50%时,报"FAIL"。

⑽Overrepresented Sequences

如果有某个序列大量出现,就叫做over-represented。FastQC的标准是占全部reads的0.1%以上。和上面的duplicate analysis一样,为了计算方便,只取了fastq数据的前100,000条reads进行统计,所以有可能over-represented reads不全在里面。而且大于75bp的reads也是只取50bp。统计结果以列表形式展示,当发现超过总reads数0.1%的reads时报"WARN",当发现超过总reads数1%的reads时报"FAIL"。

⑾Adapter Content

统计接头序列的含量。一般测序仪自带软件会切去接头序列,所以下机数据并没有接头序列。

⑿Kmers Content

如果某n个碱基的短序列在reads中大量出现,其频率高于统计期望的话,FastQC将其记为over-representedkmer(重复短序列)。默认的n=5,可以通过设置-k参数的值来调节n的大小,范围是2-10。出现频率总体上3倍于期望或是在某位置上5倍于期望的k-mer被认为是over-represented。FastQC除了列出所有over-representedkmers,还会绘制前6个k-mers的分布图。如下图所示我们的数据中只检测出一个k-mer序列:

如下所示为k-mers分布图,其中横坐标为k-mer出现的碱基位点,纵坐标为该位点k-mers数目:

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

0 人点赞