背景
为什么要拼接基因组?
序列拼接也叫做基因组组装,是生物数据分析中最核心的工作。想要从基因组学角度来对一个生物进行研究,那么获得物种的全基因组序列,也就获得了其全部的遗传信息。这个就是序列拼接要完成的工作。
生物数据分析流程图
如上图所示,我们可以看到,序列拼接处于一个核心的位置,前期从样品提取,建库、测序等等做了大量工作,就是为了序列拼接这个步骤得到一个好的拼接结果。而在得到了拼接结果之后。就可以进行结构基因组学、功能基因组学以及比较基因组学的分析了。
其次,这些分析都依赖于序列拼接的结果,拼接结果的质量直接影响到后面分析结果的质量。例如序列拼接质量低,影响到基因预测,RNAseq 差异表达,可变监测识别,变异检测准确性等,所以,序列拼接这个步骤是处于整个数据分析中核心地位的。
当前虽然有很多物种基因组被发表出来,但这些基因组依然不是“完美的”,就拿做的最多的人基因组来说,目前使用的 hg38 人基因组上,依然有 8%左右的区域没有被拼接好。因此,拼接基因组依然是整个生物信息分析中最重要也是最难的工作。
一、目前已测序物种查询
目前已经有大量物种被测序发表出来,可以通过下面的网站进行查询。该网站来自维基百科,如果无法访问,请使用访问国外网站方法。
代码语言:javascript复制https://en.wikipedia.org/wiki/List_of_sequenced_plant_genomes
https://en.wikipedia.org/wiki/List_of_sequenced_eukaryotic_genomes
https://en.wikipedia.org/wiki/List_of_sequenced_archaeal_genomes
https://en.wikipedia.org/wiki/List_of_sequenced_bacterial_genomes
https://en.wikipedia.org/wiki/List_of_sequenced_fungi_genomes
https://en.wikipedia.org/wiki/List_of_sequenced_plastomes
二、基因组序列下载
常见的参考序列主要存储在国际三大核酸数据库 NCBI,EMBL,DDBJ 等,还包括 UCSC 以及一些物种单独的网站上。由于参考序列一般比较大,这里推荐使用 ftp 工具进行下载,ftp 工具是专门的针对 ftp 文件传输协议的工具,下载速度更快,并且支持断点续传,可以使用xftp 或者 filezilla 等访问 ftp 进行下载,也可以直接通过命令行 ftp 工具进行下载,例如 lftp 命令等。
代码语言:javascript复制NCBI: ftp://ftp.ncbi.nlm.nih.gov/
EMBL:ftp://ftp.ensembl.org/pub/
UCSC: http://genome.ucsc.edu/
JGI:https://jgi.doe.gov/
ENSEMBL:http://asia.ensembl.org/info/about/species.html
三、为什么基因组拼接比较难?
为什么基因组不好拼接?一个物种的基因的基因组包含了其全部遗传信息,但是每个物种的基因组差别很大,目前的测序技术无法从基因组的第一个碱基测序到最后一个碱基,nanopore 测序理论上可以做到这样,但是你也无法获取完整的 DNA 序列。所以,需要利用基因组拼接。
序列拼接是一项复杂的工作,影响序列拼接的因素有很多。这些因素有的影响比较大,而有的则很小。
首先内在因素,是基因组本身的特点。自然界的生物千差万别,有着非常高的多态性,与之对应的基因组也存在高度的多态性复杂性。例如多倍体,基因组杂合,高度重复,低复杂度,GC 偏差等都会影响基因组的拼接,其中重复序列是影响最大的因素。来自于基因组上重复序列的 reads,由于测序读长短,无法分辨出具体来自于哪段重复区,在计算机眼里都是一样的。计算机在拼接发生歧义的地方就选择断开。这也就是为什么基因组无法拼接成一条的主要原因。
外在因素包括测序的数据量,首先必须测序饱和,将基因组上所有的区域都覆盖到,只要测序到了才能够拼接出来。测序的质量会直接影响拼接的效果,例如测序错误率,duplication比率等。选择不同的文库大小会产生一定的影响,例如 350bp 或者 500bp,大的文库会跨过更长的重复序列,但是这个影响不是特别大。选择不同的 kmer 大小用来拼接也会有不同的结果,此外选择不同的拼接软件,设定不同的阈值都会影响到最终的拼接结果。
四、Denovo 拼接还是基于参考序列拼接?
序列拼接我们也常常说成 denovo 序列拼接。denovo 是从头开始的意思。也就是不要基于原有的序列来拼接。将一大堆测序的短 reads 输入给拼接软件,就能够得到了一个物种的全基因组序列了。这个操作并不难,但是软件需要经过大量数据处理过程,序列拼接是一项非常复杂的工作。这是一项非常复杂的工作,需要非常大的计算。基因组拼接就是要利用denovo 的拼接方法。
经常看到一种基于参考序列拼接的方法。利用这种方法得到的序列称为“一致性序列”,顾名思义,就是与参考序列保持一致。但这种方法得到的序列,并不是真实存在的基因组序列,所以不能使用基于参考序列的拼接方法。主要有以下原因:
1、参考序列的准确性,已发表出来的参考序列并不是 100%准确的,如果参考序列中累积的错误,使用该方法,会被逐渐累积方法;
2、该方法受参考序列影响很大,选择不同的参考序列就会得到不同的一致性序列;
3、参考序列与测序物种之间存在差别,如果二者存在较大的结构变异,则无法突出这些结构变异;
五、需要多少计算资源?
拼接基因组是非常消耗计算资源的,因为需要较大的计算量。不过无法统计具体的消耗总量。基因组拼接消耗的计算资源与数据量大小,基因组复杂大,测序数据错误率,CPU 线程,磁盘读写速度,使用的算法等多个因素有关。
要想知道具体计算资源消耗,需要根据具体案例来进行记录总结。可以使用 time,top 等命令对基因组拼接计算资源消耗情况进行记录。以下只给出基本配置,根据不同数据量以及复杂程度要有所增加。
CPU:16 线程以上;
内存:128G 以上;
磁盘:1tb 以上;
GPU:一般基因组拼接不需要。
六、选择哪种测序方法?
最早的方案是只用 sanger 测序,例如人类基因组计划。后来有了 454 高通量测序,只是用454 测序进行拼接,但价格比较贵。后来有了价格便宜的 illumina 测序技术,但因为读长较短,只能采用不同大片段文库,以及 sanger 补洞的方案。以上这些方案目前已经不具备优势,被逐步淘汰。
目前市场上还没有“完美”的测序方案,可以将基因组从头测到尾,因此,必须进行基因组的拼接工作。目前可以选择的测序方案有一代 sanger 测序,二代 illumina 以及 MGI,三代 pacbio以及 nanopore 测序。这几种测序方法各有优缺点。一代测序价格贵,不能进行高通量测序。
二代测序价格便宜准确性高,但读长短。三代 nanopore 测序读长长,但是准确性差。读长和准确性都有所保障的 pacbio hifi reads,通量小,价格高。所以目前主要的方案是采用二代加三代的方案。取长补短,发挥各自测序平台的优势。
对于多条染色体的复杂基因组,还需要结合 Hi-C 或者 Bionano 等技术,进行拼接结果的染色体挂载定位。
七、需要测序多少数据?
基因组拼接至少需要将基因组上所有的位置都测序出来,也就是要覆盖全基因组。如果能够从头测到尾,只需要测序一次。随着 reads 长度的缩短,就需要更多的数据。下面表格中给除了在测序 reads 一定情况下,随着测序深度的增加,基因组覆盖度逐渐增加的案例。当达到 10x 数据,覆盖全基因组。但考虑测序随机性,GC 含量,基因组重复等影响,拼接一个物种的基因组,至少要达到 30X 以上的数据。
八、了解基因组大小方法
在对一个物种进行测序拼接之前,需要知道一个物种的基因组大小。基因组大小是生物一个明显的特征以及一个非常重要的指标。通过知道物种的基因组大小,能够初步预估计算的复杂度。以及根据基因组大小决定测序数据量。基因组大小也是拼接完评估的一个重要指标。
一般来说越复杂的生物基因组大小越大,例如哺乳类大于鸟类,鸟类大于真菌,原核生物大于病毒。因为越复杂的生物需要越多的基因完成功能,不过也有很多特例,例如植物由于是多倍体,基因组大小可能非常大。目前已经测序出很多物种,当然可以通过基因组序列得到,也有一些网站收集已知物种基因组大小,方便查询。
8.1 获取基因组大小的方法
1、如果没有查询到对应物种基因组大小,可以查找近源参考序列;
2、测序完成之后,可以利用生物信息的方法推测基因组大小,例如 kmer;
3、利用实验的方法是使用流式细胞仪估计基因组大小;
4、当测序物种越来越多,原核生物,真菌,植物,动物等基因组还是具有一定的规律性的。
8.2 基因组大小查询网站
代码语言:javascript复制1、动物:http://www.genomesize.com/search.php
2、植物:http://data.kew.org/cvalues/
3、真菌:www.zbi.ee/fungal-genomesize/
4、原核生物:http://www.sci.sdsu.edu/~smaloy/MicrobialGenetics/topics/chroms-genes-prots/genomes.html
九、选择哪个拼接软件?
不同的拼接软件代表不同的算法,例如适合 illumina 数据,适合 pacbio 数据的 。一般同一款软件只适合一种数据类型,尽量不要混用。因为软件是针对特定类型数据开发的。另外,不同软件在拼接结果,消耗资源,计算速度等方面会有差别,拼接出来的基因组会有差别,这是正常的。并且不同软件有不同偏好性,比如一些软件追求节省资源以及计算速度,拼接结果相对弱一些,另外一些软件追求更高的拼接质量,相应更加消耗资源以及计算时间。根据各自情况进行选择。
建议,同一数据,选择多个拼接软件进行测试,综合评估结果。
十、长读长测序对于基因组拼接的作用?
基因组拼接的目的就是将短序列连成更长的片段,而长读长测序无需拼接,则可以得到更长的片段。例如 illumina 测序双端长度只有 2*300。而 pacbio 直接就可以达到 20K 以上,nanopore 测序目前最高记录可以达到 4M 以上。
长读长测序不仅可以直接得到很长的片段,也可以结合二代测序数据,连接二代测序拼接好的片段,或者用于补洞。
长读长测序对于基因组拼接的巨大作用
十一、不同物种之间的差别
不同物种基因组之间存在较大差别,下面列出一些不同物种之间基因组拼接难度的总结。
1、病毒:基因组较小,突变率高,高度杂合,测序覆盖度高,测序数据中包含宿主基因组,拼接难度大;
2、细菌基因组:基因组较小,单倍体,基因组大小一般都小于 10M,重复率低,可以进行纯培养,最容易拼接;
3、真菌:基因组在 10-100M 之间,有单倍体,也有多倍体,一般有多条染色体,拼接难度大于细菌;
4、植物:基因组大小变化较大,一般有多条染色体,多倍体,重复序列多,基因组拼接难度较大;
5、动物:基因组大小变化大,一般有多条染色体,二倍体,重复序列多,基因组拼接难度较大;
6、人基因组:基因组为 3G,二倍体,23-24 染色体类型,重复序列多,拼接难度较大;
7、宏基因组:包含多个物种,既包含原核生物也包含真核生物,也可能包含宿主,各个物种之间覆盖度不一致。
8、小基因组:线粒体,叶绿体、质粒等,需要与“宿主”分开,很难分;
9、转录组数据:转录本数据非全基因组,只需拼接出完整转录本即可,不追求“长度”;
10、宏转录组:宏基因组与转录组组合,既有真核也有原核,难度较大。
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。
代码语言:javascript复制bioinfoer.com
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。