打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
论转录组组装之前的数据预处理

通常read的末端序列质量是下降的(见下图),这也是第一代和第二代测序技术( Sanger,Illumina,SOLiD,454)的典型特征,但是新三代测序技术(如PacBio)则不同。如果按整个read长度中的匹配质量计算,read中错误率高的低质量的碱基序列会降低整个匹配的分值。因此,通过去除read中的低质量的碱基,可以使比对上的read的总数量得到提升。同样,在从头组装流程中,如果是基于read间的重叠区(overlap)开展的,去掉低质量的碱基也是有益的。然而在以de Bruijn图为基础的方法中,reads的低质量尾部序列在位图中将会形成尖端(tips)和死胡同。但由于位图是基于k-mer的,低质量序列存在于read的尾部而不影响起始区段的k-mer。对reads进行修剪将减少死胡同的数量从而简化位图,但保留测序错误与低质量序列并不阻碍组装,只是过多的低质量序列和过高的数据量在任何情况下都是会拖慢计算过程的。错误的reads会增加位图中的节点从而增加内存的使用量。不过,最初利用原始数据进行组装仍然不失为一个好主意。这样可以同用处理后的序列开展组装的结果进行比较,从而观察对原始序列进行质量控制处理的效果。更加重要的是,这是一种用来检测处理过程是否有误的好方法。

无论哪种组装方式,在文库构建过程中产生的人为因素影响要从reads中尽可能去除。这些人为因素包括可能残留在reads序列中的接头序列。同样,如果在序列中存在的ployA也要去除。

软件使用者应该要知道测序文库是如何构建的,还有read是如何生成的。在Illumina公司的双端测序中,成对的两条reads是相向的。另外一个信息是链特异性文库,它可以构建一个可以知道read从哪条链来的测序文库。链特异性文库的优点就在于可以解决来自不同链上的基因重叠问题。

1. read 错误矫正

对read进行过滤和修整就意味着去掉read的部分或全部序列,这些程序都会使整个序列数据量减少。一个完全不同的想法是试图对read的错误进行矫正。如果这个方法成功了,那就会获得更多的有效序列数据。

Read修正的一个主要应用就是在从头组装中,使用以de Bruijn位图为基础的组装软件,每一个k-mer(实际上是(k-1)-mer)在位图中分派一个节点。测序错误会产生许多不正确的k-mers和无效的节点,这都会导致计算效率的降低和内存消耗的增加。然而,在二倍体和多倍体生物中,测序数据中并不是所有的变异都是由于测序错误随机产生的。它们可能是由于等位基因间的差异而产生的非随机变异。在某些情况下,排除了针对这些变异导致的“过度矫正”是有好处的。如果从测序reads中移除SNP和indel,数据将变得更加均质化,de Burijn位图也更简洁化,同时可以生成更长的重叠群(contig)。之后可以通过把未经矫正的原始reads比对到重叠群来鉴定序列变异。Read矫正是基于我们高深度的测序进行了,因此测序深度必须要有充分的保证。通过将reads同基因组或转录组进行比对,通过少数服从多数就很容易地鉴定到测序错误的碱基并矫正。带来的挑战性工作就是当没有参考序列存在的情况和重复序列相似区段存在的情况。


2. Seecer

第一个专门用于RNA-seq测序的错误矫正软件是SEECER[15],它对reads是逐一矫正的。对每个被矫正的read,其他与之至少拥有一条相同k-mer的read都被选出来。为了区分来自不同转录本的read,采用了聚类方法。Read的一个子集被用来构建隐马可夫模型(HMM),这个概率模型还标识一群序列。之后采用Viterbi算法将read联配到HMM上,read矫正就基于HMM的一致性。在这些序列中其可能性超出给定阈值的就意味着它们同这个概率模型吻合良好,也就意味着它们被矫正。一旦read被矫正,它就会从需要被矫正的序列池中被移出来,而后程序继续针对剩余的序列重复这个处理过程。

错误矫正对内存要求高,所以在普通台式计算机上可能无法运行。取决于测序数据量的大小和read长度,SEECER程序有可能需要几十GB的可用内存。SEECER软件包可以在这个网址下载 http://sb.cs.cmu.edu/seecer/。错误矫正程序使用的是Bash shell脚本 run_seecer.sh,它要求使用FASTA或FASTQ格式的文件作为输入文件。K-mer计算可以在这个软件内部执行,也可以使用外部软件Jellyfish执行。默认的k-mer值是17,推荐使用这个值,特别是在数据量很大的情况下。

运行SEECER要求GNU科学库(GSL),所以要求使用sudo权限来在默认位置安装它。

1, 从http://ftpmirror.gnu.org/gsl/下载gsl-1.16.tar.gz (在作者的案例中,最近的FTP镜像站点是http://www.nic.funet.fi/pub/gnu/ftp.gnu.org/pub/gnu/gsl/)

$ tar xvfz gsl-1.16.tar.gz

$./configure

$ make

$ sudo make install

2, 从http://sb.cs.cmu.edu/seecer/install.html 下载SEECER-0.1.2.tar.gz

$./configure

$ make

3,运行 SEECER。可选参数可以用-h参数来列出

$ bash bin/run _ seecer.sh –h

为计算过程创建临时文件夹“tmp”,运行矫正程序。文件“reads1.fq”“reads2.fq”包含了双端测序的reads.

$ mkdir tmp

$ bash bin/run_seecer.sh -t tmp reads1.fq reads2.fq

矫正后的reads是保存在FASTA格式文件中,并保存在原始序列文件相同文件夹中以“_corrected.fa”文件名结尾。


如有任何问题欢迎大家加入WeGAP讨论社区

扫描二维码即可加入

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
用FastQC检查二代测序原始数据的质量
六步教会你基因组组装!
hisat2:比对基因组工具简介
使用bowtie2去除宿主序列
bam格式文件处理大全(四)
【直播】我的基因组70:比对文件并不能完美的还原出测序文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服