NGS数据分析实践:05. 测序数据的基本质控 [1] - FastQC
文接上篇:NGS数据分析实践:04. 准备测序数据
前言
目前,以illumina为首的NGS测序,一般均采用边合成边测序的技术。碱基的合成依靠的是化学反应,这使得碱基链不断地从5’端一直往3’端合成并延伸下去。但,随着合成链的增长,DNA聚合酶的效率会不断下降,特异性也开始变差,因此,越到后面碱基合成的错误率就会越高,这也是为何当前NGS测序读长普遍偏短的一个原因。有时测序仪在刚开始进行合成反应的时候也会由于反应还不够稳定,同样会带来质量值的波动,不过这个波动一般都在高质量值区域(如下图3)。
一般我们可以从如下几个方面来分析测序数据质量:
- read各个位置的碱基质量值分布 (Per base sequence quality)
- 碱基的总体质量值分布 (Per sequence quality scores)
- read各个位置上碱基分布比例 (Per base sequence content)
- GC含量分布 (Per sequence GC content)
- read各位置的N含量 (Per base N content)
- read是否还包含测序的接头序列 (Adapter Content)
- read重复率,这个是实验的扩增过程所引入的 (Sequence Duplication Levels)
1. FastQC
FastQC是一款基于Java的软件,一般在linux环境下使用命令行运行,它可以快速多线程地对测序数据进行质量评估(Quality Control)。在做read质量值分析的时候,FastQC并不单独查看具体某一条read中碱基的质量值,而是将Fastq文件中所有的read数据都综合起来一起分析。
1.1 帮助信息及运行代码
fastqc --help
# 基本格式# fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
# 主要是包括前面的各种选项和最后面的可以加入N个文件
# -o --outdir FastQC生成的报告文件的储存路径,生成的报告的文件名是根据输入来定的
# --extract 生成的报告默认会打包成1个压缩文件,使用这个参数是让程序不打包
# -t --threads 选择程序运行的线程数,每个线程会占用250MB内存,越多越快咯
# -c --contaminants 污染物选项,输入的是一个文件,格式是Name [Tab] Sequence,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析,一般用不到
# -a --adapters 也是输入一个文件,文件的格式Name [Tab] Sequence,储存的是测序的adpater序列信息,如果不输入,目前版本的FastQC就按照通用引物来评估序列时候有adapter的残留
# -q --quiet 安静运行模式,一般不选这个选项的时候,程序会实时报告运行的状况。
代码如下:
dat_batch1=/filepath
ls $dat_batch1/Cleandata/ | while read file; do fastqc $file -t 10