已经存在的多序列比对算法主要有三类:精确比对算法,渐进式比对算法和迭代比对算法。Thompson和Higgins于1994年对渐进式多序列比对算法进行了实现,提出了Clustal W算法。它在数据量较大和距离较远的序列比对中更准确,且消耗时间更短,该算法还在不断改进以适应数据量剧增的多序列比对需求。......
2023-10-25
本节根据MSAA的特征模型和渐进式比对算法构件的交互模型,利用Apla语言的高抽象性、对泛型及ADT的良好支持以及易于正确性验证等优点,来形式化实现多序列比对算法构件。由于主要是说明如何用Apla语言刻画算法构件,因此,本文只介绍基于树的渐进比对算法。基于动态规划的双序列比对构件在我们团队之前的工作中已经实现,所以本文只对其他构件予以介绍,在程序代码中只给出了对于MSAA构件的定义以及关键参数的具体释义。
(1)seq_check构件
检查序列组是否满足生物学定义,例如DNA序列的字符集为{A,T,C,G}。
(2)目标函数构件
为了便于目标函数的设置,将sp定义为ADT,同时将目标函数构件也设计为ADT,使用的是仿射空位罚分模型。gapOpen表示开放空位罚分,gapExtend表示扩展空位罚分,subMatrix表示替换矩阵的分值,并通过子程序setOFpara设置具体参数的取值。泛型子程序getOF中定义了泛型操作参数comp,可运用比对和函数或COFFEE函数计算目标函数的值。
(3)msa_mode构件
我们将msa_mode构件定义为一个ADT,它主要进行多序列比对操作模式的选择,以及对需要的数据结构和信息进行初始化。泛型子程序msa根据用户在组装过程中传入的ADT类型,生成不同的多序列比对算法。
(4)dist_matrix构件(www.chuimin.cn)
该构件包含一个泛型子程序calDistMat,可传入不同类型的双序列比对操作和遗传模型,利用序列组中的两两比对得分计算距离矩阵。函数get-Dist的作用是返回两条序列的距离值。
(5)phy_tree构件
我们首先将phylotree的数据结构定义为一个ADT,便于后续对树进行操作。将phy_tree构件也定义为ADT,该构件利用距离矩阵中序列间的距离计算系统发生树,该ADT内部包含泛型子程序generateTreeByDist,并将selAlgorithm作为它的泛型操作参数,可以通过不同的生成树算法生成系统发生树。calWeight子程序表示计算多序列比对得分所需的各个序列的权值,readTree子程序用于读取已生成的系统发生树中的信息,函数getSteps用于获取后续多序列比对的顺序。
(6)prog构件
该构件为ADT类型HMSAA中的泛型子程序,根据传入不同类型的计算比对步骤进行渐进式比对。
(7)result_op构件
该构件为ADT类型,泛型子程序multiAlign_op在多序列比对结果的基础上,对结果进行格式化输出。格式化模式常用的有Clustal W格式、Phylip格式、Html格式等。运用format泛型操作参数指定输出的格式化模式。子程序phyloTree_op将系统发生树结果进行输出。
有关形式化开发多序列比对算法的文章
已经存在的多序列比对算法主要有三类:精确比对算法,渐进式比对算法和迭代比对算法。Thompson和Higgins于1994年对渐进式多序列比对算法进行了实现,提出了Clustal W算法。它在数据量较大和距离较远的序列比对中更准确,且消耗时间更短,该算法还在不断改进以适应数据量剧增的多序列比对需求。......
2023-10-25
通过对目前常用的多序列比对算法进行研究,利用FODM的建模方法对MSAA进行特征建模。多序列比对操作是MSAA的核心服务,双序列比对操作、系统发生树构建操作、启发式多序列比对操作,目标函数是该领域中的主要功能,其中双序列比对操作、系统发生树构建操作为可选择的功能,目标函数和启发式多序列比对是必选的功能。此外,目标函数计算参数选择也是其行为特点,包括罚分模型和替换矩阵两个值。图5-1MSAA的特征模型......
2023-10-25
本实验采用C++语言,使用VS2019集成开发环境。替换矩阵采用Clustal W中默认的IUB矩阵。最终比对结果与Clustal W和Clustal O的比对结果,如图5-7所示。图5-7算法结果比较通过对PAR方法和PAR平台的使用,我们运用Apla语言以半自动的方式组装形成了基于系统发生树的渐进式比对算法,并将Apla程序转换成了C++代码,得到了可运行的算法程序,算法结果与Clustal W和Clustal O进行了比较,基本的保守位点和相似区域都可有效发现,具有一定的生物学意义。......
2023-10-25
变换的开始、中间到结束、产物是一符号串,这种形式化方法称为完全形式化方法。所以,目前软件开发的形式化方法主要是以部分形式化方法为主。总体上,形式化软件开发方法大致可分为以下五类:基于模型的方法。......
2023-10-25
虚线箭头表示在算法执行过程中两个构件之间需进行交互,例如多序列比对模式构件需调用双序列比对构件、目标函数构件、系统发生树构件来进行组装操作。......
2023-10-25
经过上述分析,我们可以对图5-2中的交互模型做进一步细化,将模型中关于渐进式比对的构件进行拆分,形成图5-4所示的渐进式多序列比对算法构件交互模型。图5-3常见的渐进式比对算法的步骤下面对关键构件进行简单的形式化描述,以便于该领域算法构件的实现。seq_check构件图5-4渐进式多序列比对算法构件交互模型msa_mode构件|[in user settings out msa_mode:ADT]|AQ:用户的相关设置。......
2023-10-25
在序列比对的过程中,由于无法使用能否准确反映生物学意义这一概念来衡量序列比对结果的质量,因此我们引入了目标函数这一数学模型对序列比对结果进行评价。然而,在多序列比对中,目标函数的计算要复杂得多,且如何选择合适的目标函数也需要加以考虑。理论上目标函数可以尽可能准确、有效地反映多序列比对结果的质量,并能发现更多的生物学意义。目前,对于目标函数的研究还在持续地进行,相关的优化方式也在不断提出。......
2023-10-25
由此可见,双序列比对也是MSAA的重要组成部分。在多序列比对中常用的双序列比对算法包括动态规划算法和启发式快速比对算法,动态规划算法主要包括NW算法、SW算法、Hirschberg算法等。本文研究中所需的双序列比对算法也是应用了《基于动态规划的双序列比对算法构件设计与实现》一文中的实现方式。以保留的种子片段在靶序列中出现的位置为基础进行两端的扩展,并形成比对,比对的方式可以是动态规划算法。......
2023-10-25
相关推荐