基因组组装数学建模.doc

上传人:李司机 文档编号:1091149 上传时间:2022-06-23 格式:DOC 页数:12 大小:143.50KB
返回 下载 相关 举报
基因组组装数学建模.doc_第1页
第1页 / 共12页
基因组组装数学建模.doc_第2页
第2页 / 共12页
基因组组装数学建模.doc_第3页
第3页 / 共12页
基因组组装数学建模.doc_第4页
第4页 / 共12页
基因组组装数学建模.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基因组组装数学建模.doc》由会员分享,可在线阅读,更多相关《基因组组装数学建模.doc(12页珍藏版)》请在三一办公上搜索。

1、word基因组组装摘要基因组测序是生物信息学的核心,有着极其重要的应用价值。新的测序技术大量涌现,产生的reads长度更短,数量更多,覆盖率更大,能直接读取的碱基对序列长度远小于基因组长度。所以测序之前DNA分子要经过复制假如干份、随机打断成短片段。要获取整个DNA片段,需要把这些片段利用重合局部信息组织连接。如何在保证组装序列的连续性、完整性和准确性的同时设计耗时短、内存小的组装算法是此题的关键。本文建立改良后OLC算法模型。该模型首先使用了特定的编码规定,通过C+程序对庞大的数据先后进展十进制和二进制的处理,不改变数据准确性的前提下尽可能减小内存和缩短计算机操作时间,并引入解决碱基识别错误

2、问题的一般思路消除初始reads中的碱基错误。然后通过深度优先算法,设定适当的阈值,找出具有重叠关系的碱基片段并形成一有向赋权图,其中点是碱基片段,边代表具有重叠关系,权值代表片段重叠的多少,将问题转化为图论中寻找最大赋权通路的问题,从而对OLC算法进展改良,采用图论的方法更直观和更具操作性的解决DNA的拼接问题,从而对OLC算法进展改良。最后再根据OLC算法对Hamilton 路劲进展拼接,生成共有序列,通过多序列比对等方法,获得最终的基因组序列。关键词:基因组测序 OLC算法 深度优先算法 Hamilton 路径 一 问题的重述问题背景快速和准确地获取生物体的遗传信息对于生命科学研究具有重

3、要的意义。对每个生物体来说,基因组包含了整个生物体的遗传信息,这些信息通常由组成基因组的DNA或RNA分子中碱基对的排列顺序所决定。获得目标生物基因组的序列信息,进而比拟全面地揭示基因组的复杂性和多样性,成为生命科学领域的重要研究内容。问题提出确定基因组碱基对序列的过程称为测序。目前能直接读取的碱基对序列长度远小于基因组序列长度,因此需要利用一定的方法将测序得到的短片段序列组装成更长的序列。通常的做法是,将基因组复制假如干份,无规律地分断成短片段后进展测序,然后寻找测得的不同短片段序列之间的重合局部,并利用这些信息进展组装。例如,假如有两个短片段序列分别为ATACCTTGCTAGCGTGCTA

4、GCGTAGGTCTGA如此有可能基因组序列中包含有ATACCTTGCTAGCGTAGGTCTGA这一段。由于技术的限制和实际情况的复杂性,最终组装得到的序列与真实基因组序列之间仍可能存在差异,甚至只能得到假如干条无法进一步连接起来的序列。对组装效果的评价主要依据组装序列的连续性、完整性和准确性。连续性要求组装得到的多条序列长度尽可能长;完整性要求组装序列的总长度占基因组序列长度的比例尽可能大;准确性要求组装序列与真实序列尽可能符合。利用现有的测序技术,可按一定的测序策略获得长度约为50100个碱基对的序列,称为读长reads。基因组复制份数约为50100。基因组组装软件可根据得到的所有读长组

5、装成基因组,这些软件的核心是某个组装算法。一个好的算法应具备组装效果好、时间短、内存小等特点。新一代测序技术在高通量、低本钱的同时也带来了错误率略有增加、读长较短等缺点,现有算法的性能还有较大的改善空间。具体解决问题如下:(1)建立数学模型,设计算法并编制程序,将读长序列组装成基因组。你的算法和程序应能较好地解决测序中可能出现的个别碱基对识别错误、基因组中存在重复片段等复杂情况。(2)现有一个全长约为120,000个碱基对的细菌人工染色体,采用Hiseq2000测序仪进展测序,测序策略以与数据格式的简要说明见附录一和附录二,测得的读长数据见附录三,测序深度约为70,即基因组每个位置平均被测到约

6、70次。试利用你的算法和程序进展组装,并使之具有良好的组装效果。二 问题分析问题一分析鉴于现代测序技术的不完备性,各种基因组测序技术还有待改良和开展的空间,本文尝试性的建立数学模型,一方面对经典的OLCoverlap-layout-consensus算法进展改良和开展,另一方面对现代测序技术提供参考和见解。对于基因组测序问题,本文采用图论的方法更直观和更具操作性的解决DNA的拼接问题。为了较好地解决测序中可能出现的个别碱基对识别错误,本文首先引入解决碱基识别错误问题的一般思路。鉴于OLC技术需要对碱基片段进展两两配对寻找重叠的碱基片段所造成的时间度复杂问题。本模型使用了特定的编码规定,通过C+

7、程序对庞大的数据先后进展十进制和二进制的处理,使得不改变数据准确性的前提下大大降低了内存和缩短计算机操作时间。本模型首先通过深度优先算法,设定适当的阈值,找出具有重叠关系的碱基片段并形成一有向赋权图。其中点是碱基片段,边代表具有重叠关系,权值代表片段重叠的多少。这样问题将转化为图论中寻找最大赋权通路的问题。2.2 问题二分析基于问题一建立的模型,代入数据进展验算。三 模型假设 (1)假设测序过程中没有其他因素的干扰;(2)假设题目所给定的序列相对位置的碱基全部遵循GU-AC法如此;(3)假设题目中所有的序列都是正常可判别的序列,没有出现序列的基因突变等情况;(4)假设一个完整基因组,打断成50

8、0bp的片段是随机的;(5)假设基因组每个位置被测到的几率是等可能的;(6)所有片段上的碱基都已经被识别出来,不存在未知碱基。四 符号说明符号意义reads利用现有的测序技术,可按一定的测序策略获得长度约为50100个碱基对的序列,称为读长contig由reads经过一定算法拼接产生3kb10Mb以内的一些基因组片段k-mer长度为k的一段DNA片段quality每一个reads都含有一个质量值,该值能反映该reads的正确率。质量值越高,reads的正确率越高五 模型建立与求解5.1 数据预处理5.1.1 数据简化处理由于基因组进展编码的时候信息量非常的巨大,而且本文采用的数学模型需要对待定

9、的所有reads进展两两的配对,以此确定无向图。假如采用字符串的存储方式,显然会造成内存空间的大量消耗,甚至内存耗尽。为此,必须寻找其他的的存储方式,以达到降低内存空间消耗的目的。算法采用一套编码规如此,将字符 A 编码为 00,字符 T 编码为 11,字符 G 编码为 01,字符 C 编码为 10。为便于研究,将二进制数转再化为对应的十进制数,这样就能大大的减少数据庞大给计算机运行和计算带来的难度,如图1图1 编码规如此5.1.2消除初始reads中的碱基错误(1)收集的大量资料明确,测序数据中会有许多全A或者根本上全是A的reads,这些数据很可能是Solexa测序过程中的人工数据,需要去

10、除。方法为:设定A的含量阈值为0.9,过滤掉含量大于等于0.9的reads。(2)测序数据中含有一些未知的碱基,通常用“N或“.表示,其对拼接有不利的影响,因此含有未知碱基的read需要过滤掉。5.1.3 序列片段中错误碱基的修正本模型建立在传统测序技术中的OLCoverlap-layout-consensus算法的改良上,由于现代测序技术并不完美,在测序前要通过 PCR 手段对待测片段进展扩增,从而增加了测序的错误率。在测序模型建立之前,为了降低PCR手段扩增带来的错误。有必要对 reads 数据进展预处理,修正 reads 中测序错误的碱基从而提高 DNA 序列拼接的效果。以下将引用常用的

11、一种修正序列片段中错误碱基的方法。由于基因组中每个位置进展测序的次数可能不止一次,每个位置的碱基在测序得到的序列片段集合中出现的期望次数为序列片段集合的覆盖率,因此在序列片段集合中可能存在多条在某一区域重叠的序列片段,如图 2 所示。图2 序列片段集合中可能存在多条在某一区域重叠的序列片段基于这个事实,当某个公共序列 U 达到一定的长度,并且序列片段集合中包含该公共序列的序列片段达到一定的数目时,我们可以认为该公共序列 U 是从基因组 G 的某一个区域测序得到的,并且序列片段集合中所有包含该公共序列 U 的序列片段都是从该区域附近的某一个位置开始测序得到的。我们可以对紧跟在满足上述条件的公共序

12、列后面的序列进展多序列比对,以此来修正序列片段中的错误碱基。图 3 是修正序列片段中错误碱基的一个简单、直观的例子,我们可以看到,通过这种方法第二条序列片段的倒数第四个碱基 C 被改为 G,最后一条序列片段第 19 个位置缺失的碱基 G 也被补上了。图3 修正序列片段中错误碱基过程5.2 基于OLC策略与改良的深度优先算法对问题一模型的建立针对 Sanger 测序技术产生的长度较长、错误率较低的序列片段,人们进展了广泛的研究,其中大局部技术都是采用基于 Hamilton 路径的算法实现的。本文基于哈密顿路径问题建立数学模型,使得传统的OLC测序算法达到更优。以全部待拼接的reads为节点,给定

13、一个适当的阈值,如此用节点间的连线代表reads点之间有重叠局部,且这个重叠局部大于阈值。那么就把DNA测序问题转化为一般图论问题。对于可定图,和分别代表图的顶点、边和边上的权的集合。其中,表示重叠局部,以待定reads为始点,寻找一条通路,使得有且只有一次经过尽可能多的点并使得权值最大,即哈密顿通路。此时DNA测序问题将转化为图论中对于给定图求赋权值最大的所有哈密顿通路问题。其中哈密度通路的条数为contig条数,权值最大的哈密顿通路为最长contig。如图4所示:图4 重叠关系图该算法的核心是构建重叠关系图对于处理 Sanger 数据或者 454、Ion Torrent 数据具有优势。主要

14、包括 2个步骤:1处理本模型首先需要对待定的所有reads进展两两的配对,当两对reads的重叠局部超过某个设定的阈值的时候,说明这一对reads有联系。针对该问题,我们采用改良的深度优先算法把有联系的reads点连接起来,从而得到一个复杂的有向赋权图。首先介绍改良的深度优先算法的根本思路:1把一个具体的问题抽象成了一个图论的模型有向图状态对应着结点,状态之间的关系或者说决策方案对应着边;2从当前的某个节点开始历遍所有的点,去掉所有低于阈值的路,构成一个新的有向赋权图;3在各个阶段尝试方案时,采取的是穷举的思想。根据该算法,我们定义每两条reads重叠局部的碱基数量为权,两个reads之间重叠

15、越多如此两个节点之间的权越大。2拼接该步骤是将第一步中全局比对得到的覆盖信息组装并构建一X重叠关系图。根据节点处数的大小,可以判断该是否为可靠。计算机根据全图的节点,计算 Hamiltonian通路。所有通路上的reads串联就构成了一条完整的链。1首先取任一条reads为contig,接着寻找与该reads的两端含有重叠区域的reads,如此可能存在无数条这种reads,那么我们需要先设定一个阈,当重叠区域的碱基数量超过阈值时才能将其视为满足条件;2排列reads,确定reads之间的相对位置,建立overlap图,然后分析overlap,获得历遍整个图的最优近似路径,找到Hamilton

16、路径;3生成共有序列,通过多序列比对等方法,获得最终的基因组序列。六 模型评价6.1优点:(1)本模型的算法容易推广到实际的基因组组装中,具有一定的实际应用价值;(2)利用并行技术提高数据处理效率。新一代测序平台产生的序列片段数据量庞大,要将本文的数据处理方法用于实际测序工程需要解决速度和内存两方面的问题。利用并行技术,实现算法在集群环境的并行化将是不错的解决方案。6.2缺点:(1)忽略了碱基存在的内环境因素与其生化结构的影响;(2)在实际中,基因组组装是一个复杂的数学问题,存在着大量的不确定性;(3)一些新的想法缺乏足够的理论根据,所以有些问题的解决带有一定的主观性(4)该模型处理重复片段的

17、能力较弱。当有reads拼接失败时,意味着小于reads长度的重复片段被检验出来,但无法处理大于reads长度的重复片段。6.3模型的改良 对于处理重复片段弱的情况,尝试使用覆盖度分析,建立相应对的概率模型,必要时使用配对reads信息,来发现大于reads长度的重复片段。七 模型推广运用本模型可以在个人计算机上解决相对不大的数据,也可以在内存较大的计算机上解决数据量较大的基因组组装问题,同时此种算法模型还可以作为根底模型,解决一些降低重复数据的生产生活问题。八 参考文献1陈传艺.针对新一代测序技术的序列拼接算法研究D.某某农林大学,2012.2赵洁,赵志军.新一代测序技术与其应用J.白求恩军

18、医学院学报,2012,04:344-345.3韩东涛.基于概率模型的基因组从头测序算法研究D.某某工业大学,2012.4蔡毅,骆志刚.DNA序列拼接算法分析与并行化探讨A.中国电子学会信息论分会、邮电大学研究生院.2007地区高校研究生学术交流会通信与信息技术会议论文集上册C.中国电子学会信息论分会、邮电大学研究生院:,2008:6.5X书翠. 基于高通量测序的Klebsiella pneumoniae基因组拼接的研究D.某某师X大学,2013. 九 附录1.提取数据与处理数据的C+程序程序1#include#include#includeusing namespace std;void ma

19、in()ifstream in(F:/McMc_BAC_1.fq.gz.clean.dup.clean);/打开文件1if(!in)coutFile open error!endl;return;ifstream fin(F:/McMc_BAC_2.fq.gz.clean.dup.clean);/打开文件2if(!fin)coutFile open error!endl;return;ofstream f(F:/read1碱基序列集.txt);/打开写入文件,假如文件不存在如此新建if(!f)coutFile write error!endl;return;int i=0;string s;w

20、hile(getline(in,s)/着行读取文件1数据并存于s中,直至数据全部读取i=i+1;if(i+2)%4=0)fs.c_str()endl;ofstream of(F:/read2碱基序列集.txt);/打开写入文件,假如文件不存在如此新建if(!of)coutFile write error!endl;return;while(getline(fin,s)/着行读取文件2数据并存于s中,直至数据全部读取i=i+1;if(i+2)%4=0)ofs.c_str()endl;程序1% 求那些数据一样% 其中:% j表示有n-j个连续碱基一样% i,k表示第i个与第j个数据一样% 假定k=

21、4% 计算一样项的位置clear,clcfid=fopen(E:123.txt,r);data=fread(fid);m,n=size(data);data=reshape(data,90,85);data=data;K=84;m,n=size(data);n=n-2;d1=;d2=;d3=;for j=1:K-1 for i=1:m for k=i+1:m index1=; for t=j+1:n index=abs(data(i,t)-data(k,t-j); index1=index1,index; end index2=sum(index1); if index2=0 d1=d1,j;

22、 d2=d2,i; d3=d3,k; end end endendd=d1;d2;d3;c=d;xlswrite(E:dnanew.xlsx,c); fclose(fid); 程序2% 计算最优路径clear,clcc=xlsread(E:dnanew.xlsx);c=c;j=c(1,:);i=c(2,:);k=c(3,:);n=length(j);a=;b0=0;a0=;for t=1:n a=i(t); b=88; for tt=t:n if k(t)=i(tt) k(t)=k(tt); i(t)=i(tt); a=a,i(tt); b=b+j(tt); end end if b0=b b

23、0=b; a0=a; endenda0,b0 l=a0;xlswrite(E:a0.xlsx,l); % 将所得的数据储存在中程序3% 此程序解决基因链组装clear,clcfid=fopen(E:123.txt,r); % 打开E盘文件,其中储存基因链组data=fread(fid); % 将fid转换成数据更具ASCII码m,n=size(data);data=reshape(data,90,85); % 重塑数据成90*85的矩阵多了回车和换行字符data=data;c=xlsread(E:dnanew.xlsx); % 读取前期形成的,其中储存路径c=c;j=c(1,:);a=xlsread(E:a0.xlsx); % 读取前期形成的,其中储存具体路径a=a;dt=data(a(1),1:88);for i=2:length(a) k=89-j(a(i); dt=dt,data(i,k:88);enddt;dlmwrite(E:final.txt,char(dt),); % 将获得的长链储存在中fclose(fid);12 / 12

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号