基于生物信息学数据库的基因序列比对算法的设计与实现.docx

上传人:b****8 文档编号:29367493 上传时间:2023-07-22 格式:DOCX 页数:67 大小:241.73KB
下载 相关 举报
基于生物信息学数据库的基因序列比对算法的设计与实现.docx_第1页
第1页 / 共67页
基于生物信息学数据库的基因序列比对算法的设计与实现.docx_第2页
第2页 / 共67页
基于生物信息学数据库的基因序列比对算法的设计与实现.docx_第3页
第3页 / 共67页
基于生物信息学数据库的基因序列比对算法的设计与实现.docx_第4页
第4页 / 共67页
基于生物信息学数据库的基因序列比对算法的设计与实现.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

基于生物信息学数据库的基因序列比对算法的设计与实现.docx

《基于生物信息学数据库的基因序列比对算法的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于生物信息学数据库的基因序列比对算法的设计与实现.docx(67页珍藏版)》请在冰豆网上搜索。

基于生物信息学数据库的基因序列比对算法的设计与实现.docx

基于生物信息学数据库的基因序列比对算法的设计与实现

编号:

毕业设计说明书

题目:

基于生物信息学数据库的

基因序列比对算法的设计与实现

院(系):

应用科技学院

专业:

计算机科学与技术

学生姓名:

易聪聪

学号:

0401110231

指导教师单位:

桂林电子科技大学

姓名:

王文翰

职称:

讲师

 

题目类型:

理论研究实验研究工程设计工程技术研究软件开发

2008年6月5日

摘要

序列比对是生物信息学中的一个基本问题,通过序列比较可以发现生物序列中的功能、结构和进化的信息,序列比较的基本操作是比对。

随着生物序列数据库中序列数据的激增,开发兼有高度生物敏感性和高效率的算法就显得非常迫切。

本文研究了生物信息学中的双序列和基于生物序列数据库的序列比对算法。

通过C#语言结合面向对象与动态规划思想设计实现了一个包含Needleman-Wunsch、Smith-Waterman和BLAST算法的基于Windows操作系统的中文序列比对系统。

其功能主要有序列查看,序列比对算法选择、参数选择,比对结果输出等。

可分别适用与双序列间的全局比对、局部比对以及基于生物序列数据库的序列搜索。

虽然系统实现的初期有一些不完善的功能。

经过测试和修整,系统已经可以长时间稳定运行。

用户通过使用该系统从数据库中搜索可以轻松获取基因序列功能、结构信息。

从而可以进一步判断序列是否同源。

该系统的投入使用,可以在一定程度上提高生物工作者的工作效率,从而使得人力物力得到有效利用。

加之本系统操作简洁明了,可以让更多对生物信息学学有兴趣的人能够加入到研究序列比对的队伍中来。

关键词:

生物信息学;数据库;序列比对

Abstract

SequencealignmentisabasicfieldinBioinformatics.Wemaydiscoverfunctional,structuralandevolutionaryinformationinbiologicalsequencesbysequencecomparing.Becausesequencedataincreaserapidlyinbiologysequencedatabase,itisveryexigenttodevelopalgorithmsthathavehighbiologysensitivityandefficiency.

PairwiseandsequencealignmentalgorithmsbaseinbiologysequencedatabaseofBioinformaicsarestudiedinthisPaper.AndaChinesesequencealignmentsoftwaresystemwhichwasbasedinWindowsoperatingsystemandincludedNeedleman-Wunsch,Smith-WatermanandBLASTalgorithmswasprogrammedinC#programmelanguagewithusingthethoughtoftheobject-orientedandDynamicprogramming.ItsMainfunctionalareshowthesequence,choosethealgorithms,preferences,Outputandsoon.ThesystemshouldbeusedintheGlobalsequencealignmentandthelocalsequencealignmentinPairwisesequenceortofindoutsequenceinbiologysequencedatabaseofBioinformaics.Althoughthesystemrealizestheinitialperiodhassomeimperfectfunction.Afterthetestandtheconditioning,thesystemalreadymightbesteadyoperationforalongtime.

Userscouldeasilygetfunctionalandstructuralinformationinbiologicalsequencesbyusingthissystemtosearchinthedatabase.ThentheycanFurtherjudgementwhethertheTwospeciesareHomology.Theinvestmentofusingthesystemwillhaveacertainextentimprovethebiologistservicepotency,andthensavealotofmanpowerandresources.Andthefoundationsystem’soperationissimpleandbrief,itmayletmorepeoplewhohavetheinteresttothebiologicalinformationsciencesstudycanjoincomparestotheSequencealignment.

Keywords:

Bioinformatics;Database;SequenceAlignment

 

引言

由于最近几年生物测序工作的快速进展,基因和蛋白质序列数据量急剧增长,生物信息学面临着从海量的数据中发现新的规律和知识的任务。

在生物信息学的研究中,有一个常用的方法,就是通过比较分析获取有用的信息和知识。

最常用的比较方法是序列比对,它为两个或更多个序列的残基之间的相互关系提供了一个非常明确的图谱。

序列比对是通过对序列间的相似性进行打分,从而评估序列间相似性大小的一种方法。

由于这种方法是生物信息学中进行其它诸如基因结构、功能等研究中的基本操作,因此比对方法的好坏在很大程度上决定这些研究的结果。

将未知序列同已知序列进行比较分析已经成为一种强有力的研究手段,生物序列相似性比较中绝大部分的问题在计算机科学领域中主要体现为字符串的匹配和查找。

本文在对序列比对系统进行了全面的需求分析后,结合生物工作者的具休情况,对系统进行了设计与实现。

该系统使用了目前比较流行的MicrosoftVisualStudio2005开发软件运用C#语言编程实现。

其中采用了面向对象和动态规划的编程技术,极大的提升了系统的性能与安全性。

全文共分为七个部分,首先对基因序列比对系统的背景进行概述,其次是进行系统需求以及项目中所涉及的关键技术进行阐述,再次对系统的概要设计进行描述,最后详细叙述了系统的详细设计以及系统功能测试。

 

1基因序列比对系统概述

1.1基因序列比对系统背景

当前人类基因组研究已进入一个重要时期,2004年已获得人类基因组的全部序列,这是基因组研究的转折点和关键时刻,意味着人类基因组的研究将全面进入信息提取和数据分析阶段,即生物信息学发挥重要作用的阶段。

到1999年12月15日发布的第115版为止,GenBank中的DNA碱基数目已达46亿5千万,DNA序列数目达到535万;其中EST序列超过339万条;UniGene的数目已达到7万个;已有25个模式生物的完整基因组被测序完成,另外的70个模式生物基因组正在测序当中;到2005年初为止,人类基因组的序列完成测定;同时功能基因组和蛋白质组的大量数据已开始涌现。

如何分析这些数据,从中获得生物结构、功能的相关信息是基因组研究取得成果的决定性步骤。

基因序列比对系统由此应需而生。

1.2生物信息学简介

生物信息学是新发展起来的综合运用生物学、数学、物理学、信息科学以及计算机科学等诸多学科的理论方法的崭新交叉学科。

生物信息学是内涵非常丰富的学科,其核心是基因组信息学,包括基因组信息的获取、处理、存储、分配和解释。

基因组信息学的关键是“读懂”基因组的核苷酸顺序,即全部基因在染色体上的确切位置以及各DNA片段的功能;同时在发现了新基因信息之后进行蛋白质空间结构模拟和预测,然后依据特定蛋白质的功能进行药物设计。

了解基因表达的调控机理也是生物信息学的重要内容,根据生物分子在基因调控中的作用,描述人类疾病的诊断、治疗内在规律。

它的研究目标是揭示"基因组信息结构的复杂性及遗传语言的根本规律",解释生命的遗传语言。

生物信息学已成为整个生命科学发展的重要组成部分,成为生命科学研究的前沿。

1.3序列比对系统的内容

比较是科学研究中最常见的方法,通过将研究对象相互比较来寻找对象可能具备的特性。

在生物信息学研究中,比对是最常用和最经典的研究手段。

最常见的比对是核酸序列之间的两两比对,通过比较两个序列之间的相似区域和保守性位点,寻找二者可能的分子进化关系。

比对还是数据库搜索算法的基础,将查询序列与整个数据库]的所有序列进行比对,从数据库中获得与其最相似序列的已有的数据,能最快速的获得有关查询序列的大量有价值的参考信息,对于进一步分析其结构和功能都会有很大的帮助。

本系统正是针对序列间的两两比对与数据库搜索而设计。

用户可以根据自己的需要选择不同的算法进行不同的操作。

比如比较两条已知的序列,或在数据库中搜索与未知序列相似的序列。

以获得有价值的信息。

1.4目的与意义

自从1990年美国启动人类基因组计划以来,人与模式生物基因组的测序工作进展极为迅速。

迄今已完成了约40多种生物的全基因组测序工作,人基因组约3x109碱基对的测序工作也接近完成。

至2004年,被誉为生命"阿波罗计划"的人类基因组计划,经过美、英、日、法、德和中国科学家的艰苦努力终于完成。

这是人类科学世上又一个里程碑式的事件。

截止目前为止,仅登录在美国GenBank数据库中的DNA序列总量已超过70亿碱基对。

人类科学研究史表明,科学数据的大量积累将导致重大的科学规律的发现。

例如:

对数百颗天体运行数据的分析导致了开普勒三大定律和万有引力定律的发现;数十种元素和上万种化合物数据的积累导致了元素周期表的发现;氢原子光谱学数据的积累促成了量子理论的提出,为量子力学的建立奠定了基础。

历史的经验值得注意,有理由认为,今日生物学数据的巨大积累也将导致重大生物学规律的发现。

数据并不等于信息和知识,但却是信息和知识的源泉,关键在于如何从中挖掘它们。

由此可见研究序列之间的关系是十分必要的。

而将未知序列同已知序列进行比较分析又正是一种强有力的研究手段。

所以设计出一种更快,更准确的序列比对算法和序列比对系统是非常有意义的。

1.5国内外现状

生物信息学的发展在国内、外基本上都处在起步阶段,所拥有的条件也大体相同,即使我国有关条件差一些,但差别也不大。

目前最常见基因序列比对工具有FASTA工具和BLAST工具。

FASTA是第一个被广泛应用的序列比对和搜索工具包,包含若干个独立的程序。

FASTA为了提供序列搜索的速度,会先建立序列片段的“字典”,查询序列先会在字典里搜索可能的匹配序列,字典中的序列长度由ktup参数控制,缺省的ktup=2。

FASTA的结果报告中会给出每个搜索到的序列与查询序列的最佳比对结果,以及这个比对的统计学显著性评估E值。

BLAST是现在应用最广泛的序列相似性搜索工具,相比FASTA有更多改进,速度更快,并建立在严格的统计学基础之上。

NCBI提供了基于Web的BLAST服务,用户可以把序列填入网页上的表单里,选择相应的参数后提交到数据服务器上进行搜索,从电子邮件中获得序列搜索的结果。

BLAST包含五个程序和若干个相应的数据库,分别针对不同的查询序列和要搜索的数据库类型。

其中翻译的核酸库指搜索比对时会把核酸数据按密码子按所有可能的阅读框架转换成蛋白质序列。

BLAST对序列格式的要求是常见的FASTA格式。

FASTA格式第一行是描述行,第一个字符必须是“>”字符;随后的行是序列本身,一般每行序列不要超过80个字符,回车符不会影响程序对序列连续性的看法。

序列由标准的IUB/IUPAC氨基酸和核酸代码代表;小写字符会全部转换成大写;单个“-”号代表不明长度的空位;在氨基酸序列里允许出现“U”和“*”号;任何数字都应该被去掉或换成字母(如,不明核酸用“N”,不明氨基酸用“X”)。

此外,对于核酸序列,除了A、C、G、T、U分别代表各种核酸之外,R代表G或A(嘌呤);Y代表T或C(嘧啶);K代表G或T(带酮基);M代表A或C(带氨基);S代表G或C(强);W代表A或T(弱);B代表G、T或C;D代表G、A或T;H代表A、C或T;V代表G、C或A;N代表A、G、C、T中任意一种。

对于氨基酸序列,除了20种常见氨基酸的标准单字符标识之外,B代表Asp或Asn;U代表硒代半胱氨酸;Z代表Glu或Gln;X代表任意氨基酸;“*”代表翻译结束标志。

 

2基因序列比对系统需求及相关技术

2.1业务需求

根据生物工作者与爱好者的需要,该系统需求如下:

(1)可以以明文查看序列数据库中的某一条序列的具体信息,其中包括该序列的序列号,定义,长度,数据内容等。

(2)可以手动输入两条序列进行比对并根据选择的不同的算法和参数显示出比对结果。

(3)可以把一条未知的序列与数据库中某一条特定的序列进行比对并根据选择的不同的算法和参数显示出比对结果。

(4)可以把一条未知的序列与数据库中的某些序列进行比对并根据选择的不同的算法和参数显示出比对结果。

(5)可以在数据库搜索出与未知序列最为匹配或者相似的序列。

(6)可以对输入的序列字符串进行翻转旋转等操作。

2.2硬件需求

处理器:

PentiumIV级,1600MHz或以上

内存:

256M内存或以上

硬盘:

200M或以上空闲硬盘空间

操作系统:

Windows2000(sp0,sp1,sp2,sp3,sp4),WindowsXP(sp0,sp1)

编程环境:

MicrosoftVisualStudio2005

2.3相关技术

在为了提高系统的可靠性,可重用性、维护性以及运行效率,开发序列比对系统时主要运用了面向对象的开发方法和动态规划的编程技术。

在规范了开发流程的同时也缩短了理论模型与实际的应用系统开发之间的差距。

2.3.1面向对象技术简介

面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。

它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。

这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

PeterCoad和EdwardYourdon提出用下面的等式识别面向对象方法:

面向对象=对象(Object)+分类(classification)+继承(inheritance)+通过消息的通信(communicationwithmessage)。

可以说,采用这4个概念开发的软件是面向对象的。

类是构成面向对象编程的基础,一个类定义了一组大体上相似的对象。

一个类所包含的方法和数据描述一组对象的共同行为和属性。

把一组对象的共同特征加以抽象并存储在一个类中的能力,是面向对象技术最重要的一点;是否建立了一个丰富的类库,是衡量一个面向对象程序设计语言成熟与否的重要标志。

使用类来编程有如下好处:

(1)类具有"独立性".

由于这种独立的存在,使得和其他的"过程也好,对象也罢"能够不彼此牵引.避免"牵一发而动全身"的局面.这有利于维护和调试.

(2)类具有"通用性".

这种通用性,是通过抽象得来的.所谓抽象,就是抽取出事物的共同特征并且加以概括.正是因为这种"通用性"的实现,才造就了"re-use"的可能.

(3)类具有"灵活性".

由于第二个特征的存在,加上客观事物的特殊性,有可能通用的类中一部分成员方法变得"不通用",这个时候通过继承和Overload的机制,使得它能够应付某些特殊情况,从而实现了"灵活性".

2.3.2动态规划技术简介

动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程最优化的数学方法。

它建立在最优原则的基础上。

采用动态规划方法,可以优雅而高效地解决许多用贪婪算法或分而治之算法无法解决的问题。

动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。

若用分治法来解这类问题,则分解得到的子问题数目太多,以至于最后解决原问题需要耗费指数级时间。

然而不同子问题的数目常常只有多项式量级。

在用分治法求解时,有些子问题被重复了许多次。

如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,从而得到多项式时间的算法。

为了达到这个目的,我们可以用一个表来记录所有已解决的子问题的答案。

不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。

这就是动态规划法的基本思路。

动态规划算法通常用于求解具有某种最优性质的问题。

在这类问题中,可能会有许多可行解,每个解都对应于一个值,我们希望找到具有最优值(最大值或最小值)的那个解。

设计一个动态规划算法,通常可按以下几个步骤进行:

(1)找出最优解的性质,并刻画其结构特征;

(2)递归地定义最优值;

(3)以自底向上的方式计算出最优值;

(4)根据计算最优值时得到的信息,构造一个最优解。

步骤

(1)~(3)是动态规划算法的基本步骤。

在只需要求出最优值的情形下步骤(4)可以省略。

若需要求出问题的一个最优解,则必须执行步骤(4)。

此时,在步骤(3)中计算最优值,通常需记录更多的信息,以便在步骤(4)中根据所记录的信息,快速构造出一个最优解。

 

3基因序列和序列比对算法

3.1基因资料

DNA,即脱氧核糖核酸。

DNA是由脱氧核苷酸和碱基间通过碱基互补配对,在氢键的作用下形成的双螺旋结构.在脱氧核苷酸内部,磷酸基和脱氧核糖是通过3,5磷酸二脂键连接的.DNA是反向(向右)双螺旋结构.DNA的碱基有4种,分别是腺嘌呤(Adenine)、鸟嘌呤(Guanine)、胞嘧啶(Cytosine)和胸腺嘧啶(Thymine)。

DNA链是称为核苷酸的小单元组成的序列。

为了回答某些重要的研究问题,研究人员把基因串看作计算机科学的字符串—也就是说,可以忽略基因串的物理和化学性质,而将其想像成字符的序列。

比如说A和T是互补的碱基对,C和G也是互补的碱基对。

这意味着一个链中的A与另一个链中的T组成一对(反之亦然),一个链中的C与另一个链中的G组成一对(反之亦然)。

所以,如果知道一个链中的A、C、T和G的顺序,那么就能推导出另一个链中的顺序。

所以,可以将一条DNA链想像成由字母A、C、G和T组成的字符串。

3.2序列比对

基因学的一个主要主题就是比较DNA序列并尝试找出两个序列的公共部分。

如果两个DNA序列有类似的公共子序列,那么这些两个序列很可能是同源的。

在比对两个序列时,不仅要考虑完全匹配的字符,还要考虑一个序列中的空格或间隙(或者,相反地,要考虑另一个序列中的插入部分)和不匹配,这两个方面都可能意味着突变。

在序列比对中,需要找到最优的比对(最优比对大致是指要将匹配的数量最大化,将空格和不匹配的数量最小化)。

如果要更正式些,您可以确定一个分数,为匹配的字符添加分数、为空格和不匹配的字符减去分数。

比对的算法可分为两类:

全局比对和局部比对。

本文主要研究了其中的Needleman-Wunsch、Smith-Waterman和Blast算法。

其中Needleman-Wunsch算法主要运用于序列间的全局比对,Smith-Waterman算法主要运用于序列间的局部比对,而Blast算法则主要运用于在大型序列数据库中搜索与用户输入的序列相似的序列。

3.2.1Needleman-Wunsch算法

Needleman-Wunsch算法由Bellman于50年代提出。

这个算法使用二维表格,一个序列沿顶部展开,一个序列沿左侧展开。

而且也能通过以下三个途径到达每个单元格:

(1)来自上面的单元格,代表将左侧的字符与空格比对。

(2)来自左侧的单元格,代表将上面的字符与空格比对。

(3)来自左上侧的单元格,代表与左侧和上面的字符比对(可能匹配也可能不匹配)

然后计算出两个序列的相似分值,存于这个二维表格中。

根据此表格,按照回溯的方法寻找最优的比对序列。

Needleman-Wunsch算法可用伪代码表示如下:

前提条件,用于填充二维表格的第一行与第一列:

分数(0,0)=0

分数(i,0)=分数(i-1,0)+匹配得分(前提序列第i个字符,空位)

分数(0,j)=分数(0,j-1)+匹配得分(空位,命中序列第j个字符)

递归关系,用于填充二维表格的其余位置:

分数(i-1,j-1)+匹配得分(前提序列第i个字符,命中序列第j个

分数(i,j)=最大值字符,)

分数(i-1,j)+匹配得分(前提序列第i个字符,空位)

分数(i,j-1)+匹配得分(空位,命中序列第j个字符)

回溯,根据填充完毕的二维表格的分值还原出两条序列的最优比对:

for(i=前提序列的长度,j=命中序列的长度;i>0&&j>0;){

if(分数[i,j]=分数[i–1,j–1]+是否相同(前提序列的第i个字符,命中序列第j个字符))

{i––;j––;}

elseif(分数[i,j]=分数[i–1,j]+是否相同(前提序列的第i个字符,空位))

{i––;在命中序列的第j个字符上插入空位}

elseif(分数[i,j]=分数[i,j–1]+是否相同(空位,命中序列第j个字符)))

{j––;在前提序列的第i个字符上插入空位;}

}

至此,前提序列和命中序列都已为最佳比对。

一般来说规定每个匹配字符一分,一个空格扣两分,一个不匹配字符扣一分。

3.2.2Smith-Waterman

在生物学中局部比对比全局比对更具有实际的意义。

Smith-Waterman算法致力于发现两条序列在哪一些局部的区域内具有很高的相似度。

在Smith-Waterman算法中,不必比对整个序列。

两个零长字符串即为得分为0的局部比对,这一事实表明在构建局部比对时,不需要使用负分。

这样会造成进一步比对所得到的分数低于通过“重设”两个零长字符串所能得到的分数。

而且局部比对不需要到达任何一个序列的末端,所以也不需要从右下角开始回溯,可以从得分最高的单元格开始回溯。

这导致Smith-Waterman算法与Needleman-Wunsch

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

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1