- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学建模“基因重组问题”.
基因组组装
摘要
快速和准确地获取生物体的遗传信息获得目标生物基因组的序列信息,进而比较全面地揭示基因组的复杂性和多样性,是生命科学领域的重要研究内容。本文主要研究的是利用一定的方法将测序得到的短片段序列组装成更长的序列。 本文根据目前的测序新策略,首先按照策略的思想,确定主要算法,再根据所确定的算法编写对应的程序,最后导入数据,得出最长的组装序列。
对于问题一:本文采取分部解决问题的方法,具体步骤如下:步骤一:我们运用Matlab软件,对数据进行了预处理,将读长序列完整的提取出来;步骤二:我们采取了基因组组装算法优化模型,使得碱基数目尽可能大及组装序列的总长度的比例尽可能大;步骤三:在步骤二的基础上,我们建立了de?Bruijn图方法的模型,该模型能较好地解决测序中可能出现的个别碱基对识别错误、基因组中存在重复片段等复杂情况,形象地描述了我们前面所建立的模型。
对于问题二:这个问题刚好成为问题一我们所建立的模型与编写的程序的检验,根据问题一所建立的模型和编写的程序,我们将数据导入程序之中,利用matlab软件运行并得出结果,最后在所得结果进行连续性、完整性、准确性的检验。???????????????
关键词:基因组组装,Matlab编程,de Bruijn图,读长(read)序列
问题重述
快速和准确地获取生物体的遗传信息对于生命科学研究具有重要的意义。获得目标生物基因组的序列信息,进而比较全面地揭示基因组的复杂性和多样性,成为生命科学领域的重要研究内容。确定基因组碱基对序列的过程称为测序(sequencing)。
当然,由于技术的限制和实际情况的复杂性,最终组装得到的序列与真实基因组序列之间仍可能存在差异,甚至只能得到若干条无法进一步连接起来的序列。对组装效果的评价主要依据组装序列的连续性、完整性和准确性。连续性要求组装得到的(多条)序列长度尽可能长;完整性要求组装序列的总长度占基因组序列长度的比例尽可能大;准确性要求组装序列与真实序列尽可能符合。
基因组组装软件可根据得到的所有读长组装成基因组,这些软件的核心是某个组装算法。常用的组装算法主要基于OLC(Overlap/Layout/Consensus)方法、贪婪图方法、de Bruijn图方法等。
问题一:建立数学模型,设计算法并编制程序,将读长序列组装成基因组。算法和程序应能较好地解决测序中可能出现的个别碱基对识别错误、基因组中存在重复片段等复杂情况。
问题二:现有一个全长约为120,000个碱基对的细菌人工染色体(BAC), 采用Hiseq2000测序仪进行测序,测序策略以及数据格式的简要说明见附录一和附录二,测得的读长数据见附录三,测序深度(sequencing depth)约为70×,即基因组每个位置平均被测到约70次。利用你的算法和程序进行组装,并使之具有良好的组装效果。
问题分析
问题一分析:首先,我们把问题一细分成几个小问题,需要我们逐步攻破。
(1)根据测序策略,基于读长(reads)建立数学模型,并设计相关算法和程序将读长序列组装成基因组;
(2)尽量解决组装过程可能出现的若干问题,比如个别碱基对错误、基因组存在重复片段等;
(3)建立的模型要尽可能符合连续性要求、完整性要求、准确性要求;
问题一中我们根据最新的测序策略,确定出自己的算法,根据我们确定下
来的算法编写相应程序,具体算法步骤如下:
步骤一:将原始数据构造成矩阵D;
步骤二:计算矩阵维度m,n(m表示矩阵宽度,n表示矩阵长度);
步骤三:赋值,j=1,i=1,k=2。其中j表示忽略的字符数,i表示第i组数据,k表示第k组数据;
步骤四:将矩阵中两组数据作差(一组数据从第j项到第n项,另一组数据从第1项到第,并且j依次递增)。判断其值是否为0,若真,则记录此时的i,j,k。若假,则继续步骤五;
步骤五:,? 若真,则返回步骤四,若假,则继续步骤六;
步骤六: 若真,则, 。返回步骤四,若假,则结束。
问题二分析:问题二是在问题一的基础上,根据测序获取的两组读长序列,基于上述建立的的算法和程序,组装一个全长约为120,000个碱基对的细菌人工染色体(BAC)。
首先我们对数据进行预处理,用Matlab软件,从两组reads(读长)筛选出所需碱基序列,我们只需由所给数据中提取出其中的碱基序列,即按从第二行起,将每隔四行的数据提取,保存为新的文本以供后续程序运行调用。结合问题二的已知数据,在MATLAB软件中输入问题一所编写的相关模型求解代码,最后对所得结果进行连续性、完整性和准确性的分析,验证我们的算法具有良好的组装效果。
三、问题假设
1.假设所提供的数据与真实数据误差相对较小;
2.假设测序及组装过程操作中碱基的属性和对应原则不受影响;
文档评论(0)