二代数据NGS质控过滤

数据质控是从获得raw-data数据(原始下机数据经过拆分之后获得的数据)开始,一般处理的大致流程就是去低质量、去含N以及去接头,对于lncRNA等测序项目,还应该进行去rRNA的操作。步骤大体相同,但是所用的流程及软件还是相差特别大的,此处主要讲的是比较常用的分析软件及流程。

raw-data数据前处理

我们一般都是按照客户要求的数据量进行1-1.2倍上机,由于文库定量以及测序过程的影响,会导致得到的raw-data数据量存在偏差。如果raw-data数据量过少,需要加测,之后进行合并,简单的cat命令即可。

catsample1.1.R1.rq.gz sample1.2.R1.fq.gz … > sample1.2.R1.fq.gz

catsample1.1.R2.rq.gz sample1.2.R2.fq.gz … > sample1.2.R2.fq.gz

#在存在多个文件的条件下,cat命令后面的文件顺序一定要一致(1.1对应1.1),否则比对过程会存在错误,因为默认的R1和R2文件的相同行为一个paired-reads,后续以此为依据进行比对及进行插入片段统计

如果数据量过多,比如要求3G,测到了6G或者更多,最好截取。因为若不截取数据,后面分析的数据量明显增大,会增加分析时长。目前raw-data切割的文件有很多,一般都是通过随机数策略去删减,常用的软件是seqtk和seqkit

seqtk sample 1.R1.fq.gz 1000 |gzip > 1_cut.R1.fq.gz

seqkit sample -p0.5 -j 4 1.R1.fq.gz -o1_cut.R1.fq.gz

#seqtk指定输出的reads条数,seqkit指定-p百分比以及-j线程数,对于两个软件,虽然可以实现序列切割,但是读写方式不同,seqtk先把内容储存在内存中,之后输出,而seqkit实时输出,占用内存较少

去除低质量、含N以及含有adapter的reads

去除低质量及含N的reads

这一步主要是去除N(N 表示无法确定碱基信息)和低质量reads。对于这两个步骤,不同公司采用的标准往往不太一致,比如有的是含有N就会去掉,有的则看占比,比如1%,N碱基占read比例大于1%则删掉,对于PE150测序,就说明最多含有1个N碱基

fqtools可以去除低质量和含N的reads

fqtools sfpe -i 33 -q 15 -Q 0.5-n 0.01 R1.fq.gz R2.fq.gz

#去掉低质量碱基(质量值低于15)个数占整条read50%以上的reads

#去掉含N占比大于1%的reads

#从使用说明来看,fqtools还可以通过给定adapter序列还去除含有adapter的reads,至于速度和去除效率可以根据个人要求去衡量

去除含adapter序列的reads

经典的软件应该是cutadapt,用的也最广泛,速度上也还算可以。当然还有其他软件,可以尝试使用。详细信息可以参考网络资料[1],在此不再赘述。

或许你已经注意到了,使用fqtools可以一步实现clean-data的输出,但是运行速度上需要提高;当使用cutadapt去接头时,没办法去除低质量等序列,也就是说当使用cutadapt去除adapter去除接头时,还需要另外一款软件去去除低质量及含N的reads,这就导致了同一个fq.gz文件在这里至少要读取两次,时间比较长,当然,如果硬件设施很好,也可以通过增加线程来提高运行速度,然而很多软件都不支持多线程并发,这种情况下限制就很大了。

fastp软件对raw-data进行质控

一款超快速全功能的FASTQ文件自动化质控+过滤+校正+预处理软件,可以一步实现raw-data的各种过滤[2]。在之前,fastp不能提供adapter序列,依靠的是内置的算法去处理含有街头的序列,导致adapter去除效率很低,很多人也并没有使用这款软件。在最近一次更新中,fastp软件在运行时可以通过提供adapter序列实现含接头reads的去除,去除效率与fqtools和cutadapt几乎一致,在加上其特别快的运行速度,可以尝试使用。

fastp-i RawData_R1.fq.gz -I RawData_R2.fq.gz -o clean_R1.fq.gz -O clean_R2.fq.gz--adapter_sequence AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC --adapter_sequence_r2AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT -u 50 -n 1 -l 150 -q 15

#-u 一条read中低质量碱基占比

#-n 可以接受的碱基N出现的个数

#-q 允许的碱基最低质量值

#-l 允许的输出read长度(也就是说如果存在接头,则删掉该reads,而不是删除adapter序列)

#该软件输出html以及json格式的文件,可以通过解析获得相应的reads数目、碱基数目以及adapter占比等信息。

以上就是基本的质控要点,主要就是包括去低质量reads、去含Nreads以及去除含adapter序列的reads,虽然简单,但是各公司选用不同流程(软件),时间和效率存在差别。在基本的分析之外,对于特殊的建库分析数据,比如lncRNA,还需要进行rRNA占比的统计,过多时还需要删除。

至于rRNA的去除,是通过比对的方法。通过soap或其他比对软件将reads去比对rRNA数据库,比对到的即为rRNA序列,在统计出占比之后,根据设定的占比阈值,提取相应的序列。

除了去除rRNA,有的公司还用fastqc去统计数据质量,或者通过NT比对进行排污,这些都可以做,不过还是要考虑项目周期以及集群资源等因素。当获得clean_data数据之后,还需要统计数据量等信息,并根据这些信息进行数据可视化,至于具体要做什么,就要看每个人想要的是什么了。

参考文章:

[1]http://genome.annoroad.com/News/Industry/469.html

[2]https://github.com/OpenGene/fastp

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180806G1RQZP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券