基因组序列拼接

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014年成都理工大学校内数学建模竞赛论文

二0一四年五月二十五日

摘要:本文所要研究的就是全基因组的从头测序的组装问题。

首先,本文简要介绍了测序技术及测序策略,认真分析了基因系列拼装所面临的主要挑战,比如reads数据海量、可能出现的个别碱基对识别错误、基因组中存在重复片段等复杂情况,探讨了当前基因组序列拼接所采用的主要策略,即OLC(Overlap/Layout/Consensus)方法、de Bruijn图方法,且深入探讨了de Bruijn图方法。

其次,针对题中问题,以一条reads为基本单位,分为reads拼接和contig组装两个阶段,其中contig是由reads拼接生成的长序列片段。Reads的拼接阶段主要包括数据预处理、de-Bruijn 图、contig构建等,而contig的组装阶段主要包括序列的相对位置的确定以及重叠部分overlap的检测,用序列比对的方法来提高拼接的精度。

最后,进行了算法的验证与性能的评价,并且针对问题2,进行了组装分析与验证,结果表明,得到的拼接基因组序列在小范围内与原基因组序列大致吻合。

关键词:基因组系列拼接; reads;de Bruijn图;contig组装;k-mer片段;

一.问题重述

基因组组装

快速和准确地获取生物体的遗传信息对于生命科学研究具有重要的意义。对每个生物体来说,基因组包含了整个生物体的遗传信息,这些信息通常由组成基因组的DNA或RNA分子中碱基对的排列顺序所决定。获得目标生物基因组的序列信息,进而比较全面地揭示基因组的复杂性和多样性,成为生命科学领域的重要研究内容。

确定基因组碱基对序列的过程称为测序(sequencing)。测序技术始于20世纪70年代,伴随着人类基因组计划的实施而突飞猛进。从第一代到现在普遍应用的第二代,以及近年来正在兴起的第三代,测序技术正向着高通量、低成本的方向发展。尽管如此,目前能直接读取的碱基对序列长度远小于基因组序列长度,因此需要利用一定的方法将测序得到的短片段序列组装成更长的序列。通常的做法是,将基因组复制若干份,无规律地分断成短片段后进行测序,然后寻找测得的不同短片段序列之间的重合部分,并利用这些信息进行组装。例如,若有两个短片段序列分别为

ATACCTT GCTAGCGT

GCTAGCGT AGGTCTGA

则有可能基因组序列中包含有ATACCTT GCTAGCGT AGGTCTGA这一段。当然,由于技术的限制和实际情况的复杂性,最终组装得到的序列与真实基因组序列之间仍可能存在差异,甚至只能得到若干条无法进一步连接起来的序列。对组装效果的评价主要依据组装序列的连续性、完整性和准确性。连续性要求组装得到的(多条)序列长度尽可能长;完整性要求组装序列的总长度占基因组序列长度的比例尽可能大;准确性要求组装序列与真实序列尽可能符合。

利用现有的测序技术,可按一定的测序策略获得长度约为50–100个碱基对的序列,称为读长(reads)。基因组复制份数约为50–100。基因组组装软件可根据得到的所有读长组装成基因组,这些软件的核心是某个组装算法。常用的组装算法主要基于OLC(Overlap/Layout/Consensus)方法、贪婪图方法、de Bruijn 图方法等。一个好的算法应具备组装效果好、时间短、内存小等特点。新一代测序技术在高通量、低成本的同时也带来了错误率略有增加、读长较短等缺点,现有算法的性能还有较大的改善空间。

问题一:试建立数学模型,设计算法并编制程序,将读长序列组装成基因组。你的算法和程序应能较好地解决测序中可能出现的个别碱基对识别错误、基因组中存在重复片段等复杂情况。

问题二:现有一个全长约为120,000个碱基对的细菌人工染色体(BAC),采用Hiseq2000测序仪进行测序,测序策略以及数据格式的简要说明见附录一和附录二,测得的读长数据见附录三,测序深度(sequencing depth)约为70×,即基因组每个位置平均被测到约70次。试利用你的算法和程序进行组装,并使之具有良好的组装效果。

附录一:测序策略

测序策略如下图所示。DNA分子由两条单链组成,在图中表现为两条平行直

线,两条直线上相对位置的两个碱基相互结合形成碱基对(bp),并且与碱基A 结合的碱基必为T,与碱基C结合的碱基必为G。将一个含120,000个bp的完整基因组,随机打断成500bp的片段,然后对500bp的片段进行测序。测序方法如第3步所示,分别从500bp片段的两端,对两条单链进行测序,测得的读长记为reads1,reads2。reads1,reads2的长度均为88bp,且该对reads相距500bp。

图1 测序策略示意图

附录二:数据格式

读长数据格式为fastq格式:

每4行表示一条reads

第一行:@序列ID,包含index序列及read1或read2标志;

第二行:碱基序列,大写“ACGTN”;

第三行:“+”,省略了序列ID;

第四行:质量值序列:字符的ASCII码值-64=质量值。

附录三:读长数据

测序得到的读长数据存放于两个fastq文件中(见附件一),其中McMc_BAC_1.fq.gz.clean.dup.clean和McMc_BAC_2.fq.gz.clean.dup.clean分别存放reads1和reads2的数据。

二.问题分析

正如上面问题所描述的一样,我们要解决的是要将基因小序列read组装成连续的基因大序列乃至最终的完整基因序列,而这就要将两个read1和read2

片段进行比较与拼接,比较的时候,因为相似片段的长短问题而不能确定拼接正确性,因此可以用两片段相似的权值来判断拼接的合理性,这样,若用点来代替read,用加权的边来判断到底要和哪个片段进行拼接,我们在查阅资料后,发现可以通过de bruijn图并对其进行相应的改进后来建立数学模型对问题进行求解。

相关文档
最新文档