杂志的下一篇文章
无线传感器网络中汇聚的最小调度时间
下一篇特刊文章
编辑:序列分析和存储算法专刊
期刊上的上一篇文章
对审核人的确认算法2013年
特刊上一篇文章
从多个序列中发现次线性时间基序
 
 
订购文章重印
字体类型:
宋体 佐治亚州 宋体,Verdana
字体大小:
澳大利亚 澳大利亚 澳大利亚
行距:
列宽:
背景:
第条

用逆耦合重写系统建模序列和树上的动态规划问题

通过
罗伯特·吉里奇
1,*
H´el'ene Touzet先生
2,*
1
德国比勒菲尔德33594比勒菲尔德大学技术学院和生物技术中心
2
LIFL(里尔大学UMR CNRS 8022)和INRIA,Villeneuve d'Ascq Cedex 59655,法国
*
应向其发送信件的作者。
算法 2014,7(1), 62-144;https://doi.org/10.3390/a7010062
收到的意见:2013年3月19日/修订日期:2014年2月6日/接受日期:2014年2月14日/发布日期:2014年3月7日
(本文属于特刊序列分析和存储算法)

摘要

:
动态规划是一种经典的算法范例,它通常允许在多项式时间内计算指数大小的搜索空间。递归问题分解、中间结果列表以供重复使用以及Bellman的最优原则是其众所周知的组成部分。然而,算法往往缺乏抽象性,难以实现,调试繁琐,修改精细。本文提出了一个用于指定动态编程问题的通用框架。该框架可以处理各种顺序输入以及树结构数据。生物序列分析、文档处理、分子结构分析、以层次结构方式组装的对象的比较,以及通常考虑的所有域,其中字符串和有序根树用作自然数据表示。新方法引入了逆耦合重写系统它们将组合优化问题的解决方案描述为一个项重写关系的逆映像,该关系将问题解决方案简化为问题输入。这个规范导致了动态编程算法的简明而透明的规范。它们的实际实施可能具有挑战性,但最终,正如我们所希望的那样,它可以自动生成。本文通过描述计算生物学领域中出现的一组不同的动态规划问题,以及生物序列和分子结构分析中的示例,展示了这种新方法的范围。

1.简介

  • 从具体到抽象的映射
  • 总是比较容易的方法。
  • 哈拉尔德·甘津格

1.1. 动机

在生物序列分析领域,序列和树的组合优化问题出现在无休止的变化中。这些问题包括字符串比较、分子结构的预测和比较、树和森林中的模式匹配以及相关序列或结构家族的建模。通常,有一种基于动态编程范式的原型算法[1]并且必须适应不同的应用。让我们浏览一下我们从中得出本手稿中描述的算法问题的领域。
为了确定基因和蛋白质的相似性,有一种“Needleman-Wunsch”对齐算法,在更广泛的计算机科学领域中被称为“字符串编辑距离”[2,]. 它与各种计分方案一起使用,这些计分方案在对匹配和不匹配的处理、对差距的建模以及通过最小化距离或最大化相似性而有所不同。生物信息学中同样著名的是“Smith-Waterman”算法,该算法用于发现基因和蛋白质中最保守的子序列[4]也称为“局部相似性”算法。它是通过允许算法免费跳过两个序列的前缀和后缀而从字符串编辑距离派生出来的。除了最小化距离(这对局部相似性没有意义)之外,局部相似性与全局字符串编辑距离具有相同的变体。然后,有两种算法的混合:将完整序列与较长序列的子序列进行匹配,或“自由移位”对齐,其中一个序列可能会相对于另一个序列进行移位,但其他情况下,会寻求全局距离或相似性。当搜索序列数据库时,两个输入中的一个可能是固定的,从而产生(可能更快的)匹配算法。在所有应用程序中,有时我们只要求相似性或距离分数,有时我们需要一个最佳对齐来证明该分数,有时甚至希望获得达到某个分数阈值的所有接近最佳对齐,以便对其进行进一步分析。
结构RNA的分析也是算法问题的来源。RNA结构预测是通过基于随机或热力学模型的动态规划算法实现的。同样,人们需要最佳或接近最佳的结构、良好的局部结构、与给定模型结构匹配的结构等等。Sankoff算法解决了一个更复杂的问题[5]预测两个RNA分子的最佳共有结构。在非常抽象的层面上,可以说该算法同时使用了两个RNA折叠算法实例和一个序列比对实例,并具有联合优化目标。字符串比较的思想在结构比较中以更通用的形式被重新使用。RNA二级结构自然表现为有序的、有根的树。在树和森林上,出现了一组常见的问题变体。编辑距离和对齐在树上是略有不同的问题。同样,我们要求距离/相似性、局部/全局比较、原子/复合间隙、最佳/近最佳解决方案,我们可能只对最佳分数感兴趣,也可能对底层对齐感兴趣。在隐马尔可夫模型描述序列族的地方,结构族由协方差模型描述,协方差模型是随机无上下文文法的一种特殊形式。
虽然在树和序列的组合优化问题中有很多算法思想的重用,但这在我们表示具体算法的方式上并不透明。它们作为动态规划算法的形式要求我们整合所有问题方面——搜索空间的构建、评分、中间结果的制表,以及报告一个或多个解决方案。这导致了算法抽象程度较低,程序编写简单、调试繁琐、修改精细。代码可靠性和代码重用受到这种低抽象级别的影响。对于新的问题变体,一开始通常不清楚应该如何建模搜索空间,以及应该如何详细定义目标函数。尝试不同的方法是可取的,但大量的实施工作阻止了这一点。

1.2. 概述

我们介绍逆耦合重写系统(ICORE)作为序列和树上的一组不同组合优化问题的高级统一视图。ICORE基于以下思想:优化问题的候选解决方案在某些术语代数中具有自然表示,其函数符号反映了当前问题所需的案例分析。树语法可以通过描述格式良好的候选语言来进一步细化搜索空间。优化目标被指定为在适当的评分代数中对这些术语的解释,以及目标函数。输入项与其候选解之间的关系是通过项重写系统建立的。此重写系统在错误的将解决方案映射回所解决问题的输入。对于多个输入的问题,对这些输入的重写由不同的规则执行,但在耦合的方式。
这些成分提供了数学上精确和完整的问题规范。实现一个算法来解决这个问题是很重要的。要真正解决给定输入的问题,必须反转耦合重写关系。必须构建、评估候选人,并将目标应用于他们。为了有效地做到这一点,最终必须引入所有的动态编程机制,但问题规范中没有提到动态编程。
这项工作的目标是双重的。有人想这么做
  • 描述优化问题在声明性抽象层次上,基本思想不会被实现细节所掩盖,类似问题之间的关系是透明的,可以利用;
  • 实现算法解决方案以系统化甚至自动化的方式解决这些问题,从而将算法设计者从容易出错的编码和繁琐的调试工作中解放出来,实现tried和tested组件的重用,总体上提高了程序员的生产力和程序的可靠性。
在本手稿中,我们重点讨论了这些目标中的前者。我们将开发大量在我们的新框架中表示的问题规范,所有这些规范都来自计算生物学的应用领域。然而,虽然序列、树和动态编程在计算机科学中无处不在,但本文只涵盖了我们方法潜在范围的一个小领域。例如,我们在RNA二级结构中使用的树比较技术也被用于比较机器人组装的对象,或从网络中提取和比较文档[6,7]. 通过展示来自生物信息学的一组多样的现实世界示例,我们希望说服读者,第二个目标,即开发ICORE的实现技术,是一个新的、有价值的研究挑战。

1.3. 以前的工作

早在年轻的生物信息学领域,研究人员就提倡指定和实现此类算法的通用技术。在一系列论文中,塞尔介绍了形式语言理论中概念的使用以及生物序列分析中的问题[8,9,10]. 特别地,上下文无关文法提倡分子模式匹配,以及字母传感器引入了与DNA序列的字符串编辑距离相关的模型问题。这项工作在吸引计算机科学家研究生物序列分析问题方面产生了很大影响,但并没有带来竞争性的实现技术。不久之后,Lefebvre提倡使用s属性语法[11]. 他指出,不仅要进行序列比较,还要解决复杂的问题,例如两个RNA序列的同时对齐和折叠(上文称为Sankoff算法[5])可以用语法描述,并用合适的(生成的)解析算法求解。然而,s属性文法是最受限制的属性文法类[12],比将解析树的构造与通过结构递归进行的评估合并在一起几乎没有什么优势。也许是由于这种限制和属性文法带来的符号开销,这项工作在生物信息学社区中受到的关注比它应得的要少。
代数动态规划(ADP)[13]为序列数据上的动态编程问题提供了一种声明性方法。它超越了上述方法,使用代数语义增强了基于语法的描述,不仅可以对搜索空间结构进行形式化建模,还可以对不同目标下的搜索空间评估进行形式化模型化。ADP作为针对序列数据的动态编程的领域特定语言的几种实现已经开发出来[14,15,16].
第9节在我们设计了新的框架并探索了其应用范围之后,我们将明确地将我们的想法与Searls的字母变换器和Lefebvre的s属性文法联系起来。我们还将表明,新框架恰当地概括了当前ADP框架,并认为它甚至提高了其直观吸引力。

1.4. 文章组织

本文的结构如下。第2节显示了第一个应用程序示例,甚至在给出正式定义之前。第3节,我们从文献中收集熟悉的技术定义。对这些概念有很强背景的读者可能会跳过他们的正式阐述,直接跳到前面。第4节,我们正式推出ICORE。我们建议使用伪代码符号来编写ICORE,添加一些符号约定,并向读者提供ICORE设计练习。然后,我们对生物序列和结构分析中的各种问题进行建模。第5节讨论各种形式的序列比较问题,第6节处理将RNA序列折叠成二级结构和相关问题,如随机RNA家族模型,以及第7节重点介绍了树比较和模式匹配的几种变体。表1总结了这份手稿中呈现的ICORE。我们邀请好奇的读者跳过所有的技术细节,向前看一看,看看他们最熟悉的问题是如何打扮成ICORE的。同时第5节,第6节第7节关注各种问题类型的搜索空间的构建,第8节处理搜索空间的评估,包括几个评分方案和目标函数的组合使用。第9节,我们将ICORE与实现代数动态规划的当前最新技术以及早期工作中的其他计算模型联系起来。在结论中,我们回顾了首次阐述ICORE时做出的一些设计决策,并讨论了ICORE实现的挑战。
表1。本文概述了反向耦合重写系统(ICORE)。在少数情况下,没有指定完整的ICORE,而只指定了扩展另一个ICORE的语法。
表1。本文对逆耦合重写系统(ICORE)进行了总结。在少数情况下,没有指定完整的ICORE,而只指定了扩展另一个ICORE的语法。
ICORE/语法尺寸。解决的问题在节中第页
编辑距离2简单编辑距离/对齐4.277
仿射2编辑距离,仿射间隙5.182
   阿菲奥西奇2振荡仿射间隙5.184
   附加跟踪2序列轨迹,仿射间隙5.184
本地搜索2通用局部对齐5.285
MotifSearch(Motif搜索)2长对齐中的短对齐5.2.1.86
半全局对齐2半全局对齐5.2.2条。86
局部对齐2局部对齐5.2.3.86
匹配序列_S1硬连线序列匹配5.3.1.88
   匹配仿射_S1与仿射间隙模型相同5.3.1.88
匹配序列_S1配置文件HMM5.3.2.88
具有特定职位的分数
RNA折叠1RNA折叠6.393
StructAli公司2结构。线形原型6.497
同时折叠2广义折叠和对齐6.598
精确共识结构2精确共识结构6.5.2.98
对于两个RNA序列
桑苛夫2同时折叠和对齐6.5.3.99
S公司2S通用2协方差模型,通用6.6.1.101
S公司2SExact公司2匹配RNA序列6.6.2.100
到目标结构
匹配_S2_r(_r)2精确局部模匹配器6.6.4.103
匹配_S2_r(_r)1motif matcher,硬编码6.6.4.104
SCFG公司1随机上下文无关文法6.393
协方差模型_r1硬编码协方差模型6.6.5.106
树对齐2经典树排列7.2111
树LiGeneric2树对齐原型+变体7.2.2.113
Osci亚森林2树阿里。带摆动间隙7.2.2.117
树编辑2经典树编辑7.3119
RNATreeAli公司2RNA结构比对7.5127

2.激励示例

在进行正式定义之前,我们先用一个简单的例子来说明ICORE背后的主要思想。我们考虑经典的字符串编辑距离问题。我们得到了两个序列U型,在一个简单的编辑模型下进行比较。有三种编辑操作:替换字符符号、删除字符和插入字符,可用于转换U型进入之内反之亦然。每个位置U型只编辑了一次。(如果没有这个限制,我们将得出更一般的变换距离概念。只有当基本编辑模型满足三角形不等式时,最优编辑和变换才重合。)候选解的空间是U型,定义为转换的编辑操作序列U型进入之内。所有编辑操作都与加法分数相关联,最终,总分最小的编辑脚本定义了U型.
我们建议将这些编辑脚本视为形式对象,更准确地说,将它们编码为术语。为此,我们定义了三个功能符号,每个编辑操作一个: 代表 , 德尔 、和 英寸 。每个此类运算符都将操作中涉及的字符符号作为参数。我们还引入了一个常量运算符 mty公司 ,表示空的编辑脚本。
例如,考虑两个字符串 U型 = “ACGTA” = “AATAG”(AATAG)在DNA字母表上 { A类 , C类 , G公司 , T型 } 。一个可能的编辑脚本是:
      替换“A”通过“A”,
      替换“C”通过“A”,
      删除“G”,
      替换“T”通过“T”,
      替换“A”通过“A”,
      插入“G”
此编辑脚本由术语表示

          
            
              c(c)
              =
            
          代表(A、A、代表(C、A、del(G、代表(T、T、代表(A,A、ins(G,mty))))
我们称这些术语核心术语,因为它们代表候选解决方案的搜索空间。在本例中,这个编辑脚本的一个更好的视觉表示是两个序列的对齐
      A C G T A公司-
      A A-T A G公司
表示编辑脚本的术语在某种意义上包含两个输入序列:U型是的第一个参数的串联 代表 和,共 德尔 .是的第二个参数的串联 代表 和的第一个参数 英寸 此投影通过两个术语重写系统正式表示:
代表 ( , b条 , X(X) ) X(X) 代表 ( , b条 , X(X) ) b条 X(X) 德尔 ( , X(X) ) X(X) 德尔 ( , X(X) ) X(X) 英寸 ( , X(X) ) X(X) 英寸 ( , X(X) ) X(X) mty公司 ε mty公司 ε
字母字符符号b条用作nullary函数符号,由两个操作符~和扩展ε.~是用于连接两个字符串(或字符和字符串)的二进制运算符,以及ε是空字符串。所以U型A~C~G~T~AA~A~T~A~G.
通过构造,这两个重写系统具有相同的左侧。因此,我们可以方便地将它们的表示合并为一个表格形式。
X(X) 代表 ( , b条 , X(X) ) b条 X(X) X(X) 德尔 ( , X(X) ) X(X) X(X) 英寸 ( , X(X) ) X(X) ε mty公司 ε
由于我们搜索最佳编辑脚本,因此需要对所有候选词进行排名。操作员 { 代表 , 德尔 , 英寸 , mty公司 } 构成一个签名(类似于编程语言Java中的接口),其中运算符是参数和结果类型为泛型的函数。因此,可以使用分数代数实现为每个核心术语分配分数 代表 , 英寸 , 德尔 、和 mty公司 作为某些具体分数数据类型的函数。例如,Levenshtein距离中使用的单位成本模型用分数代数表示UnitScore公司.
代表 ( , b条 , x个 ) = (f) = = b条   然后   x个   其他的   x个 + 1 德尔 ( , x个 ) = x个 + 1 英寸 ( , x个 ) = x个 + 1 mty公司 = 0 ϕ = 最小值
ϕ = 最小值 意味着我们搜索成本最低的编辑脚本。代数解释不足UnitScore公司,我们的示例核心术语c(c)评估为3分(正好是最佳)。
考虑到这些因素,编辑距离问题的解决方案被定义为任何核心术语,重写为U型按上述重写规则,并在代数下求值UnitScore公司达到所有这些条款的最佳得分。
签名和术语、重写规则和代数——这似乎是定义两个字符串的Levenshtein距离的一点技术开销。然而,请注意,我们已经实现了搜索空间定义和评分的完美分离。这在指定更复杂的问题时是值得的。可以容易地为编辑距离问题提供更灵活的评分方案。例如,我们的函数可以以字符依赖的方式进行评分。相似性得分可以取代距离得分,比赛得分为正,差距得分为负,适当替换,并转换为 ϕ = 最大值 。在概率评分代数中,分数应该相乘(而不是相加),我们最好设置 mty公司 = 1 。评分方案的这种变化只需要一个新的代数定义。其他更改会影响签名,从而影响重写规则。我们会看到的第5节例如,为了引入仿射间隙评分,添加操作符就足够了 打开 _ 德尔 打开 _ 英寸 签名。
在优化中,有许多情况下,我们希望将一组可接受的解限制为那些满足附加条件的解。为此,我们在形式化机器中添加了另一个功能:我们将使用树文法将候选范围限制为核心项代数的子集。让我们回到字符串编辑距离问题,并专门讨论它。我们现在要求编辑脚本不能有两个相邻的索引(插入或删除)。例如,在RNA-RNA相互作用中应用这种约束。我们设计了一个树语法,相应地限制候选空间:
A类 * 代表 ( , b条 , A类 ) | 德尔 ( , M(M) ) | 英寸 ( , M(M) ) | mty公司 M(M) 代表 ( , b条 , A类 ) | mty公司
A类M(M)是非终结符。星号标记A类作为语法的公理符号。满足indels约束的编辑脚本集正是语法所接受的核心术语的语言。
我们对国际古迹遗址理事会的非正式介绍到此结束。熟悉签名、重写规则和树语法等既定概念的读者可以从这里跳到第4节.

3.机械

现在,我们将介绍贯穿本文所需的正式定义。术语重写是我们ICORE概念的基石。术语重写是一个建立良好的计算模型,具有丰富的理论基础[17,18]. 术语重写系统作为一种规范形式的魅力在于,它们也有很强的直觉吸引力,因为每个人都习惯了初等代数中的一些等式推理。
一般来说,术语重写是图灵完备的,术语重写的终止是不可判定的。这里我们针对的是一类组合优化问题。我们将限制术语重写的方式,以便能够以以下形式评估(通过动态编程)搜索空间:给定一个术语t吨,高效地查找重写为的所有术语t吨,并从该集合中选择某个评价函数下的最佳候选。因此,我们从项重写理论中得出的结论并不是项重写的全部威力,而是主要是已确立的技术概念(即签名、重写关系、重写模结合性),以及方便地对项进行代数解释的事实。我们首先回顾基本定义和固定符号。接下来,我们将介绍术语重写系统以及在此使用它们的受限形式。

3.1. 变量、签名、字母、术语和树

我们从签名和术语代数开始。
  • S公司 是一套。排序是抽象数据类型的名称或占位符。
  • 我们假设存在可数无穷变量集 α 每一种α属于 S公司 .所有人的联合 α 表示为.
  • 我们假设有限 S公司 -排序签名F类.一个 S公司 -排序签名是一组函数符号和排序声明 α 1 × × α n个 α 对于每个(f)属于F类.在这里 α 1 , , α n个 , α S公司 n个称为的arity(f)。arity 0的函数符号称为常量符号。
  • 一个签名F类可能包括字母表 A类 ,它是中nullary函数符号(常量符号)的指定子集F类在区分重要的地方 A类 被称为字符,其他函数符号称为操作员.
  • T型 ( F类 , ) 表示一组类型良好的术语F类它是集合的联合 T型 α ( F类 , ) 对于α在里面 S公司 归纳定义如下:
    • 的每个变量 α 是的一个术语 T型 α ( F类 , ) ,
    • 如果(f)是的功能符号F类带排序声明 α 1 × × α n个 α t吨 T型 α ( F类 , ) 为所有人 1 n个 ,然后 (f) ( t吨 1 , , t吨 n个 ) 在中 T型 α ( F类 , ) .
    T型 ( F类 , ) 被称为代数项F类.术语中出现的变量集t吨表示为 v(v) 第页 ( t吨 ) ,及其排序依据 o个 第页 t吨 ( t吨 ) 这样的话 o个 第页 t吨 ( t吨 ) = α 什么时候 t吨 T型 α ( F类 , ) .
  • T型 ( F类 ) 表示的一组基本项 T型 ( F类 , ) ,其中 v(v) 第页 ( t吨 ) = .
  • A类替代 σ将一组变量映射到一组术语,保留排序。替代品的应用σ到一个学期t吨替换中的所有变量t吨对于其中σ由其图像定义。表示结果 t吨 σ .
  • 术语和树:我们对作为树的术语采取双重观点。一个术语可以被视为一个有限根有序树,其叶子被标记为常量符号或变量。内部节点用arity大于或等于1的函数符号进行标记,使得内部节点的outdegree等于其标签的arity。注意,字母字符是nullary函数符号,只能出现在树的叶子上。
  • A类位置在一个项内可以表示为正整数序列,描述从根到该位置的路径(路径以杜威符号表示)。我们用表示 t吨 | 第页 the subterm oft吨在位置第页 t吨 [ u个 ] 第页 替换 t吨 | 第页 在里面t吨通过u个.

3.2. 重写系统

接下来,我们介绍术语重写系统以及我们将在这里使用它们的特殊形式。
  • A类重写规则是一对定向术语,表示为 第页 ,因此 o个 第页 t吨 ( ) = o个 第页 t吨 ( 第页 ) v(v) 第页 ( 第页 ) v(v) 第页 ( ) .由于最后一项要求,通常 第页 不是合法的重写规则,如果不生成未绑定的变量,则无法反转重写规则。此外,我们不允许 ,因为这样的规则允许重写任何术语,同时 第页 完全合法。
  • A类术语重写系统 R(右)是一组有限的重写规则。R(右),已写入 R(右) ,是在包含每个规则的上下文和替换下闭合的最小关系R(右)换句话说,一个术语t吨改写成一个术语u个,已写入 t吨 R(右) u个 ,如果存在位置第页在里面t吨,一条规则 第页 在里面R(右)和一个替代σ这样的话 t吨 | 第页 = σ u个 = t吨 [ 第页 σ ] 第页 . R(右) * 是的自反传递闭包 R(右) .
  • 在续集中,我们将考虑签名不相交的术语重写系统。我们这么说R(右)是一个术语重写系统带有不相交的签名如果可以分区F类分为两个子集ζ和∑,这样对于每个规则 第页 属于R(右),左侧属于 T型 ( ζ , ) ,和右侧第页属于 T型 ( Σ , ) 在这份手稿中,ζ被称为核心签名和∑卫星签名.基本条款 T型 ( ζ ) 被称为核心术语.ζ和∑都可以包含关联二元运算符,表示为 ζ Σ 分别(见下文)。
    实际上,核心签名可能与附属签名共享功能符号(可能不具有相同的arity)。他们经常共用字母表。按照惯例,当重写规则中出现共享符号时,它属于签名ζ左侧为∑,右侧为∑。在其他地方ζ为清楚起见,将签署。
  • 语法条件:重写规则可能具有与其适用性相关的语法条件,如
    (f) ( , b条 , X(X) ) X(X)   如果   = b条   对于   , b条 A类
    在我们的框架中,这些条件只涉及有限字母表中的字符。这仅仅是一种反对编写太多类似规则的速记方法,并没有提供计算能力。不得将其与一般条件项重写混淆,如 (f) ( x个 , ) + 2 * x个 如果 x个 = ,如果规则适用x个可以通过给定的重写系统将其重写为联合约简。

3.3. 重写模关联性

在某些应用中,我们将使用重写模结合性。在这种情况下,签名包含一个关联二进制函数符号,始终表示为~。对于每个此类符号~,我们提供一个中性元素符号ε以及一组方程,这些方程被视为对称规则:
A类 = { ( X(X) Y(Y) ) Z = X(X) ( Y(Y) Z ) , X(X) ε = X(X) , ε X(X) = X(X) }
= A类 是在上下文和替换下闭合的最小等价关系,包含A类一个术语t吨重写模A类到一个学期u个对于重写规则 第页 ,表示 t吨 A类 , 第页 u个 如果存在两个术语 t吨 u个 这样的话 t吨 = A类 t吨 , u个 = A类 u个 t吨 重写为 u个 按规定 第页 .
为什么我们需要这样的关联函数符号?第一个原因是字符串可以被描述为一元函数的组合或nullary运算符符号的序列。第一个案例似乎有些人为。在后一种情况下,我们需要引入一个额外的二元关联运算符~。考虑nullary函数符号,b条,c(c),术语b条c(c)指字符串“abcd”。此符号便于对序列输入进行模式匹配。例如,术语X(X)b条Y(Y)将匹配任何出现的“ab”以更长的顺序,以及X(X)b条Y(Y)b条Z对于任何重复出现的情况,使用与匹配的穿插字符Y(Y)。在使用的地方,结合性为重写系统增加了相当多的表现力。
除了处理字符串时的便利性之外,使用操作符~的第二个原因是希望在我们的框架中包含在有序、标记、根树上定义的问题。它们通常不是在签名上定义的,而是在(非类型化)上定义的操作符字母表,其中每个操作符可以用任意数量的子树标记任何树节点。将它们视为函数符号,它们具有灵活的arity,并且只使用单一排序(f)“具有可变数量的子树,例如 (f) ( x个 , ) (f) ( x个 , , z ) ,将在我们的框架中编写为 (f) ( x个 ) (f) ( x个 z ) ,它允许我们指定(f)作为签名中的一元运算符。

3.4. 树语法

一个签名F类定义术语的语言, T型 ( F类 ) 。我们将通过使用树语法来限制正在考虑的术语集。(严格来说,我们对术语作为树的双重观点是不必要的。我们的树语法实际上是“术语语法”,描述了 T型 ( F类 ) 。我们的树对齐(稍后讨论)也可以称为“术语对齐”,依此类推。然而,当术语被视为数据结构时,正如我们在这里所做的那样,树术语是更成熟的术语。)A类树语法 G公司 在签名F上由元组定义 G公司 = ( N个 , F类 , Z , P(P) ) ,其中
  • F类是签名,
  • N个是一组非终结符,与F类,其中每个元素都被分配了一个排序。
  • Z是开始的非终结符,带有 Z N个 、和
  • P(P)是表单的一组产品 X(X) t吨 ,其中 X(X) N个 , t吨 T型 ( F类 , N个 ) 、和X(X)t吨有相同的种类。
( G公司 ) 表示的语言 G公司 它是的(子)术语集 T型 ( F类 ) 可以从Z使用的产品P(P).

3.5. 代数

在我们的组合优化问题中,目标函数的评分和应用的每一个方面都将由代数建模。
  • 给出的签名F类,一个F-代数 A类关联载波集(,具体的数据类型),每个排序符号位于F类和相应类型的函数 (f) F类 . A类 ( t吨 ) 表示通过评估项获得的值t吨在代数给出的解释下A类通常,我们将提供几个代数来计算项。
  • 目标函数是一个函数ϕ : M(M) M(M) ,其中M(M)是给定代数中某个载波集上的多集(包)的域。(多个载波组导致一个过载实例ϕ在每个载波组上。)通常,ϕ将是最小化或最大化,但求和、枚举或采样也很常见。我们的目标函数是在多集合而不是集合上定义的,因为我们希望对问题进行建模,例如找到问题实例的所有协同最优解。
  • F类-多集在其每个载波集上的目标函数所扩充的代数称为评价代数.
到目前为止,我们已经收集了在理论计算机科学的不同领域中使用的技术概念。我们现在将把它们组装成ICORE。

4.反向耦合重写系统

在这一节中,我们具体阐述了第2节我们给出了ICORES的形式化定义及其语义,并建议了一种半形式化表示法,其中将给出示例。

4.1. ICORE定义

定义 1
逆耦合重写系统。
设k为正自然数。尺寸的ICOREk个 包括
  • 一组变量V,
  • a核心签名ζ和k卫星签名 Σ 1 , , Σ k个 ,因此 ζ ( Σ 1 Σ k个 ) = .(ζ的功能符号与所有 Σ ,但可能共享的字母表除外。)
  • 具有不相交签名的k项重写系统, R(右) 1 , , R(右) k个 ,都有相同的左手边 T型 ( ζ , ) (这些系统称为卫星重写系统。)
  • 可选树语法 G公司 核心签名ζ,
  • 核心签名ζ的评估代数A,包括目标函数。
在卫星重写系统中,同一左侧的多个右侧也称为规则投影并写在表格中 第页 1 第页 2 对于 k个 = 2 ,或使用双箭头 第页 1 | | 第页 k个 对于任何尺寸k个.
由于核心签名和附属签名是不相交的,每个重写步骤都会擦除重写规则左侧的所有运算符符号,所有附属重写系统都将终止。术语的任何部分都不能重写两次:一旦函数符号作为左侧的一部分被读取,它就会被消耗掉。这确保了术语中的位置只能参与重写一次,这与字符串比较中的经典编辑模型相对应:字符串中的每个字符最多只能编辑一次。与一般术语重写相比,这一基本限制将在第9.4条.
如何使用ICORE进行计算?我们引入了耦合重写这意味着用简单的话来说,核心术语被重写为k个通过在相同位置使用相同的重写规则来创建附属术语。从技术上讲,这个定义有点复杂,因为它需要跟踪一系列重写步骤中的“相同”位置。
定义 2
耦合重写关系。让c成为 T型 ( ζ , ) ,视为树(这意味着省略了~符号,当我们应用~的结合性时,符号的位置不会被修改)。我们提供了出现在c中的每个操作符符号及其在c中的初始位置(例如使用杜威符号)。c的耦合重写是k个重写派生序列 c(c) R(右) 1 * t吨 1 。。。, c(c) R(右) k个 * t吨 k个 这样就存在一些j和中间约化 ( t吨 1 0 , , t吨 1 j个 ) , , ( t吨 k个 0 , , t吨 k个 j个 ) 令人满意的
  • c(c) = t吨 1 0 = = t吨 k个 0 (耦合推导的开始),
  • t吨 1 = t吨 1 j个 , ..., t吨 k个 = t吨 k个 j个 (耦合推导结束),
  • 对于每个e, 0 电子 < j个 (耦合推导步骤),存在规则投影 第页 1 | | 第页 k个 这样的话 t吨 电子 将模结合性重写为 t吨 电子 + 1 按照规则 第页 所有重写都同时应用于同一位置。换句话说,对于每个i,都有一个术语 v(v) ,一个位置 第页 在里面 v(v) 和替代品 σ 这样的话 t吨 电子 = A类 v(v) , v(v) | 第页 = σ , t吨 电子 + 1 = v(v) [ 第页 σ ] 第页 ,并且所有的操作符符号都在c中具有相同的初始位置。
在续集中,我们将写 t吨 1 * c(c) * t吨 2 来表示 c(c) * t吨 1 c(c) * t吨 2 是一个耦合推导。我们将使用双箭头符号指定核心术语的耦合重写c(c)对于任何尺寸k个, c(c) * t吨 1 | | t吨 k个 .
示例1。第2节,我们为带核心签名操作符的字符串编辑距离问题引入了一个维数为2的ICORE { 代表 , 英寸 , 德尔 , mty公司 } 对于本次ICORE,核心术语 c(c) = 代表 ( A类 , A类 , 代表 ( C类 , A类 , 德尔 ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) ) ) 允许以下耦合重写派生。
                                  代表 ̲ ( A类 , A类 , 代表 ( C类 , A类 , 德尔 ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) ) ) A类 代表 ̲ ( C类 , A类 , 德尔 ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) ) A类 代表 ̲ ( C类 , A类 , 德尔 ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) ) A类 C类 德尔 ̲ ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) A类 A类 德尔 ̲ ( G公司 , 代表 ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) ) A类 C类 G公司 代表 ̲ ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , 百万年 ) ) ) A类 A类 代表 ̲ ( T型 , T型 , 代表 ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) ) A类 C类 G公司 T型 代表 ̲ ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) A类 A类 T型 代表 ̲ ( A类 , A类 , 英寸 ( G公司 , mty公司 ) ) A类 C类 G公司 T型 A类 英寸 ̲ ( G公司 , mty公司 ) A类 A类 T型 A类 英寸 ̲ ( G公司 , mty公司 ) A类 C类 G公司 T型 A类 mty公司 ̲ A类 A类 T型 A类 G公司 mty公司 ̲ A类 C类 G公司 T型 A类 A类 A类 T型 A类 G公司
在每个步骤中,重写中涉及的活动函数符号都带有下划线。我们说这两根弦“ACGTA”“AATAG”c(c)或等效的c(c)是逆耦合约简“ACGTA”“AATAG”(AATAG).我们写作
ACGTA公司 * t吨 * AATAG公司
在上面的例子中,除了核心术语c(c),还有许多其他核心术语也会重写为两个卫星输入。它们共同构成了优化问题的搜索空间。
定义3。 ICORE候选解决方案。给定卫星术语的k元组 ( t吨 1 , , t吨 k个 ) ,的候选解决方案集 ( t吨 1 , , t吨 k个 ) 核心术语集c是这样的
  • c由树语法识别: c(c) ( G公司 ) 、和
  • c对所有输入进行了耦合重写: c(c) * t吨 1 | | t吨 k个 .
事实1。 ICORE的候选解集是递归的。
证明。这是因为ICORE中的每个重写系统都在终止。因此,从给定的核心项开始,只有有限数量的推导,所有这些推导都是有限的。□
我们不深入探讨构建候选解集的有效算法的细节。这超出了本文的范围。一些研究方向将在第10节ICORE实际解决的问题由以下集合给出最优的候选解决方案。这个集合依赖于评估代数及其目标函数。
定义4。 ICORE的解决方案。给定ICORE和k-tuple ( t吨 1 , , t吨 k个 ) 在里面 T型 ( Σ 1 ) × × T型 ( Σ k个 ) ,最优解的多组由下式给出
ϕ ( [ A类 ( c(c) ) | c(c) ( G公司 ) , c(c) * t吨 1 | | t吨 k个 ] )
在这个定义中使用多集需要一些解释。虽然在我们的问题类型中最常见的应用是计算单个答案,但我们也希望这样做k个-最佳优化,或返回所有答案,直至得分阈值。答案的数量没有上限,这需要一个答案集。此外,可能存在不存在解决方案的情况(有时对于某些子问题),可以通过返回.但为什么多种-套?同时 c(c) ( G公司 ) 表示集合, [ A类 ( c(c) ) | c(c) ( G公司 ) , ] 表示多集,因为多个候选人可能会在A类。例如,我们希望能够说出解决方案中合作候选的数量。这些候选者可以根据第二代数进行评估B类并由另一个与B类。在我们搜索空间中所有最美味的披萨中,我们想要最便宜的有关此的更多信息,请参阅第8节这就是为什么我们在定义4中提供了多个元素。
定义4明确了我们谈论的原因反向重写系统。同时c(c)重写为 t吨 1 , , t吨 k个 根据的规则 R(右) 1 , , R(右) k个 ,个术语 t吨 是问题实例的实际输入,以及核心术语c(c)必须通过反向构造(耦合)重写来找到 c(c) * t吨 ,尽管如此c(c).
定义1、2、3和4完善了ICORE的正式框架。稍后,在第8节,我们将介绍从简单代数构建复杂求值代数的操作。由于这两个代数的乘积只是另一个代数,这将增加便利性,但不是对ICORE的概念扩展。

4.2. ICORE伪码

让我们为ICORE引入一种半正式的伪代码表示法。我们的目标是以简洁的方式描述ICORE——易于编写和阅读——并且在将ICORE实际编译为可执行代码所需的所有信息都完整的意义上。更重要的是:我们需要一定程度的冗余,允许编译器防止人为错误。例如,必须声明函数类型,尽管原则上可能会自动推断它们。我们在这里提出的符号是初步的,可以修改。
ICORE演示。我们总结了的字符串编辑距离示例第2节在ICORE编辑距离在我们的伪代码中。我们假设字母表 A类 从上下文中可以知道,但它也可以显式列出或声明为一组预定义的字母表之一,例如所有ASCII字符或DNA字母表 { A类 , C类 , G公司 , T型 } .
算法07 00062 i001
第一行给出ICORE的名称及其维度,即输入数量。第一个附属签名是显式声明的,而其名称是 S公司 E类 仅用于第二个卫星签名。两个破折号开始注释,该注释一直延伸到行尾。指定 T型 ( A类 ) 代替树语法,我们表示所有核心术语都是整个搜索空间的合法成员。(虽然这里不需要,但我们强烈建议使用树语法来明确限制搜索空间。这比将此类限制作为评分方案的责任的常见做法更安全,例如通过惩罚分数为 ± 在这种情况下,搜索空间中仍有未知数量的僵尸。它们可能不会作为最佳解决方案浮出水面,但除此之外,如何评估搜索空间的大小,或计算平均得分……])重写规则集没有额外的名称,但在必要时由ICORE名称引用。
可以为核心签名指定任意数量的代数。这里我们只展示代数UnitScore公司。在代数名称旁边,指定了签名中所有排序的载波集。这里只有一种, A类 ,这是由自然数解释的。对此类值(如min和+)进行操作的函数是从合适的编程环境中导入的。
对于函数式程序员,签名如下 A类 类似于代数数据类型,这里有构造函数 { 代表 , 德尔 , 英寸 , mty公司 } 事实上,这样的数据类型可以作为一个代数来提供,用于以符号形式枚举搜索空间。虽然对于实际的输入大小不可行,但在程序开发期间对小输入进行这样的枚举是有益的。
我们将始终按照上述顺序呈现ICORE的组成部分,尽管没有内在的需要。由于这些概念是声明性的,因此任何顺序都具有定义4给出的相同含义。我们为许多ICORE组件提供显式名称,并允许它们按名称导入,并可能在更多的ICORE中进行扩展。我们将通过扩展广泛使用继承(如在面向对象语言中)使用…构造。
进一步的符号惯例。当我们处理大量ICORE示例时,引入了更多的组件名称,我们遵循以下命名约定。
  • ICORE、语法和代数名称均以小型资本.
  • 签名中有三个或四个字母的名字ITA公司 低收入国家.
  • 排序名称有一个大写字母的首字母。
  • 运算符写入打字机 字体.
  • 具体的字母符号用打字机字体书写,例如A类,+.
  • 变量 , b条 , c(c) 指字母字符, X(X) , Y(Y) , Z 重写规则中的to(sub)项(可能需要进一步重写),以及 x个 , , z 从某些代数中的核心项导出的值。
  • 变量w个保留给目标函数作用的多个候选值集。

4.3。ICORE演习

尽管我们上面介绍的ICORE符号需要相当多的细节,但ICORE的设计从一个更非正式的层面开始。在本节中,我们定义了一个要解决的小但非平凡的问题,简述了第一个设计思想,并让读者在剩下的细节中添加。我们的问题如下:给定两个字符串,我们想确定它们在不寻常的约定下的最小汉明距离回文的任意输入字符串中的子序列都可以忽略,从而为距离提供固定的1分(与长度无关)。这就把汉明距离问题变成了一个优化问题,因为忽略哪些回文的不同决定会导致不同的分数。
示例2。对于序列“aabbccbb”“aaccbbaa”,四个示例候选人的距离分数分别为2、3、4和6:
    
aaBBccbbaa bBCCBb aaBBccbb aaBBccbb
    
aa ccbbAA aaCCb bAA aa ccbbAA aaccbbaa
其中大写字母表示回文选择,小写字母表示匹配字符。请注意“AABB”在第三种情况下标记长度为2的两个相邻回文。当然,还有更多的候选人必须考虑找到最低要求。□
由于当出现问题时,输入数据类型通常是清晰的,ICORE设计的第一步是决定核心术语的签名(在某种意义上,这推翻了关于动态编程的常见实践和大多数教科书建议(除非你已经坚持代数风格)。在那里,表示候选解决方案的数据类型没有明确定义。在实现中,我们显然不想显式表示指数大小的搜索空间。但对于开发算法来说,候选树实际上是设计的核心。我们相信我们最终的ICORE编译器会执行砍伐森林的操作,注意候选对象是经过评估的,而不是显式构造的。我们将在最后的讨论中回到这一方面。)必须捕捉到所有我们想要区分和打分不同的情况,因此最好画一个候选示例作为树。上面最左边的候选人可能看起来是这样的:
算法07 00062 i002
希望此示例包含所有相关案例。请注意 代表 ,只指定了一个字符。在这个应用程序中,“替换”是完全匹配的,在核心术语中不需要两次使用相同的字符。区分匹配部分和被忽略的回文需要两种类型的签名:A类对于任何类型的序列和P(P)对于回文序列。
核心签名
代表 : A类 × S公司 S公司 mty公司 : S公司 dpal公司 : P(P) × S公司 S公司 ipal公司 : S公司 × P(P) S公司 朋友 : A类 × P(P) P(P) : P(P)
dpal公司 用于在第一个输入中启动回文, ipal公司 第二个输入中有一个。即使我们计划对称地对这些案例进行评分,我们也必须区分它们,因为它们必须改写不同的内容。 帕尔 生成回文字符;每个字符只表示一次。现在让我们尝试一些重写规则。前两个处理字符匹配,其他处理回文:
S公司 代表 ( , S公司 ) S公司 ε mty公司 ε P(P) S公司 dpal公司 ( P(P) , S公司 ) S公司 S公司 ipal公司 ( S公司 , P(P) ) P(P) S公司 P(P) 朋友 ( , P(P) ) P(P) ε ε
根据这些规则,我们的候选项必须对输入进行耦合重写。手动执行几次耦合重写是很有见地的。对于
t吨 = 代表 ( , 代表 ( , dpal公司 ( 朋友 ( b条 , ) , 代表 ( c(c) , t吨 ) ) ) )   哪里
t吨 = 代表 ( c(c) , 代表 ( b条 , 代表 ( b条 , ipal公司 ( mty公司 , 朋友 ( , ) ) ) ) )
我们发现
aabbccbb公司 t吨 aaccbbaa公司
如预期。因此,我们的设计可能走上了正确的轨道。我们让读者试着把其他候选者写下来作为术语,并添加一些得分代数。第一个是代数B类这样的话 B类 ( t吨 ) = 2 如上所述。哪个操作符应该解释回文得分?我们应该担心空的回文?我们讨论过单字母和奇怪长度的回文了吗?如果我们想给回文分配一个仿射的、长度相关的分数,比上面公式更普遍,会怎么样?等等。玩得开心。

4.4. 为什么改写错误的方式?

在我们着手进行实际应用之前,让我们思考一下ICORE中的“逆”。为什么我们要通过重写输入的解决方案来指定问题,而不是反过来?
卫星术语提出了问题实例并定义了搜索空间不同的解决方案。核心术语代表单个解决方案以及评分的所有细节。在这样做时,核心术语比卫星更具体。从具体到抽象的映射总是更简单的方向——所有信息都在那里,我们只需对其进行转换,可能会丢弃其中的一部分。左侧与核心术语相匹配,右侧生成卫星。左侧的变量被实例化为核心术语的一部分,但可能会在新兴卫星中删除。这对我们有好处,因为这使我们的重写规则格式良好,满足了要求 v(v) 第页 ( 第页 ) v(v) 第页 ( ) 。试图改写另一种方式,从抽象到具体,细节必须生成除非解决方案是唯一的,否则必须通过优化过程从多种可能性中进行选择。从技术上讲,反向重写规则将引入自由变量,由搜索过程实例化。这个过程必须被描述,例如,通过制作DP重现,我们回到了过去繁琐和低级的实践。
ICORE提供的便利来自这样一个事实,即我们允许设计师以简单的方式指定他们的问题:混凝土→摘要,或结果→问题ICORE的语义颠倒了方向。定义4要求构建整个搜索空间并对其进行有效评估。简而言之:建模者描述了答案与问题的关系,我们希望自动提供从问题到答案的转换。

5.用于序列分析的ICORE

我们在中使用了字符串编辑距离作为解释性示例第2节我们现在演示了ICORE框架在序列分析中其他几个常见问题上的表达性和通用性。序列比较在计算生物学中有多种用途,用于处理DNA、RNA或蛋白质序列。同样,我们可能会比较文本文档或质谱分析的峰序列。我们将考虑与仿射间隙模型、局部搜索和近似匹配的对齐,并展示ICORE如何以系统的方式从给定问题转移到另一个问题。图1总结了所有这些问题。在本节中,我们假设使用通用字母表 A类 并使用核心签名 A类 = A类 { mty公司 , 代表 , 英寸 , 德尔 } .

5.1. 序列与仿射间隙模型的比较

5.1.1. 标准仿射间隙模型

我们使用仿射间隙模型改进了简单的编辑距离方法,如Gotoh算法中引入的模型[19]. 仿射间隙计分的概念是长度的间隙n个应收取类型成本 o个 + ( n个 - 1 ) 电子 ,其中o个是(高)初始“开启”充电,而电子是较小的间隙扩展费用。例如,这个模型是由基因比较驱动的,在基因比较中,DNA的断裂是罕见的,但一旦断裂,任何长度的插入或缺失都可能发生。为此,我们需要在核心签名中引入新的运算符, 打开 _ 德尔 打开 _ 英寸 ,而我们保留 德尔 英寸 现在指定间隙延伸。
图1。中解决的序列分析问题概述第5节。实心箭头线表示文本中详细说明的图标之间的转换。虚线箭头线表示留给读者练习的转换。
图1。中解决的序列分析问题概述第5节。实心箭头线表示文本中详细说明的图标之间的转换。虚线箭头线表示留给读者练习的转换。
算法07 00062 g001
算法07 00062 i003
ICORE公司仿射这是我们第一次使用树语法精确定义候选空间。语法确保每个间隙确实以间隙开始,然后可能是扩展操作。可以注意到依赖关系图(回忆一下依赖关系图语法:节点是非终结符。节点中有一条边,该边标记为非终结符S公司到非终结符标记的节点T型如果有表格生成 S公司 c(c) ( T型 ) )语法的阿菲与有限状态传感器具有相同的结构,通常与仿射间隙成本对准相关,如经典教科书中所示([20],第2章)。该传感器将第一个字符串作为输入,并输出第二个字符串。编辑脚本作为访问的状态列表获得,每个过渡弧都可以分配一个分数。图2a显示了该传感器,2b显示了阿菲.
图2。()用于与仿射间隙权重对齐的有限状态自动机(源[20]); (b条)语法的依赖关系图阿菲; (c(c))用于语法阿菲奥西奇; ()和语法附加跟踪。开始状态/公理符号由箭头标记。
图2。()用于与仿射间隙权重对齐的有限状态自动机(来源[20]); (b条)语法的依赖关系图阿菲; (c(c))用于语法阿菲奥西奇; ()和语法附加跟踪。开始状态/公理符号由箭头标记。
算法07 00062 g002
示例3。对于序列对“GCTGTCCA”“ACGAATGCA”核心术语
c(c) = 代表 ( G公司 , A类 , 代表 ( C类 , C类 , 打开 _ 英寸 ( G公司 , 英寸 ( A类 , 英寸 ( A类 , 代表 ( T型 , T型 , 代表 ( G公司 , G公司 , 打开 _ 德尔 ( T型 , 德尔 ( C类 , 代表 ( C类 , C类 , 代表 ( A类 , A类 , mty公司 ) ) ) ) ) ) ) ) ) ) )
对路线进行编码
      G C---T G T C C A
      |       | |     | |
      A C G A T G-C A
另一方面,如 代表 ( A类 , A类 , 德尔 ( T型 , 代表 ( G公司 , T型 , mty公司 ) ) ) 被语法禁止,因为间隙扩展没有前面的间隙打开。它与仿射间隙模型中的合法对齐不对应。边界示例是一个术语,例如 代表 ( A类 , C类 , 打开 _ 电子 ( G公司 , 德尔 ( A类 , 打开 _ 德尔 ( T型 , mty公司 ) ) ) ) ,因为“相同”间隙包含两个间隙打开操作。仿射间隙对齐的许多公式都考虑到了这种情况——它永远不会获得最佳分数,所以为什么要小心呢。然而,如果我们对接近最优的解决方案感兴趣,那么将畸形候选人排除在搜索空间之外会更加系统化。我们的语法排除了这个候选答案。□

5.1.2. 仿射间隙模型的变体:振荡间隙和轨迹

通过修改语法阿菲,我们也可以调整在寻找最佳路线时实际考虑的路线类型。我们举了两个这样的例子。
在第一个变体中,让我们提供摆动间隙.语法阿菲相邻的删除/插入或反之亦然,将收取两个缺口打开成本。对于振荡间隙,从删除直接切换到插入(或从插入直接切换到插入)不需要额外的间隙打开成本。要表达这种变化,我们只需替换语法阿菲具有阿菲奥西奇。而不是两种不同的间隙模式–非端子符号D类,我们只有一个州G公司(专家知道,在实现中,这会将三个动态编程表减少为两个。)依赖关系图如所示图2c。
语法阿菲奥斯基
A类 代表 ( , b条 , A类 ) | 打开 _ 德尔 ( , G公司 ) | 打开 _ 英寸 ( , G公司 ) | mty公司 G公司 德尔 ( , G公司 ) | 英寸 ( , G公司 ) | 代表 ( , b条 , A类 ) | mty公司
在第二种变体中,我们考虑痕迹而不是对齐。对齐的轨迹是匹配残基的序列。这意味着跟踪不会指定相邻删除和插入之间的顺序。在路线的图形表示中,可以通过强制执行删除总是在相邻插入之前的约定来建模。在下面的示例中,最左边的对齐满足跟踪条件,其他对齐被认为是冗余的。
    AACC--TT AA--CCTT AA-CC-TT AAC-C-TT AA--CTT
    ||    ||    ||    ||    ||    ||   ||    ||    ||    ||
    AA——GGTT AAGG——TT AAG——GTT AA-GTT AA-GG-TT
从语法开始阿菲,我们设计语法附加跟踪,不允许从状态转换进入状态D类依赖关系图如所示图2d。
语法附加跟踪
A类 代表 ( , b条 , A类 ) | 打开 _ 德尔 ( , D类 ) | 打开 _ 英寸 ( , ) | 百万年 D类 德尔 ( , D类 ) | 代表 ( , b条 , A类 ) | 打开 _ 英寸 ( , ) | mty公司 英寸 ( , ) | 代表 ( , b条 , A类 ) | mty公司
因此,如果路线中存在相邻的插入和删除,则只能用删除优先的核心术语来表示。附加跟踪允许核心术语,如 打开 _ 德尔 ( C类 , 打开 _ 英寸 ( G公司 , X(X) ) ) .由于其产品的不对称性,它排除了核心术语 打开 _ 英寸 ( G公司 , 打开 _ 德尔 ( C类 , X(X) ) ) 其将冗余地指定相同的迹线。请注意,当从标准仿射间隙移动到振荡间隙或轨迹时,这只需要不同的语法,而ICORE的其余部分保持不变。
算法07 00062 i004

5.2、。从全局比较到本地搜索

到目前为止,我们一直对全局比较感兴趣:对齐跨越输入序列的整个长度。如何将之前引入的ICORE转换为能够识别长序列中的局部相似区域?我们可以以统一的方式做到这一点。我们在核心签名中添加了三个新运算符: 跳过 _ 德尔 允许在第一个输入序列的开始和结束处跳过字符, 跳过 _ 英寸 允许在第二个输入序列的开始和结束处跳过字符,以及 开始 指示对齐的起始位置。 开始 取两个子组——左边的一个子组包含正确的对齐,右边的一个子组覆盖任何后面的序列部分。我们在一个名为本地搜索并在第85页上介绍,这将专门用于不同的应用。
ICORE本地搜索(注意,通过施工,本地搜索是一个完整的ICORE,仍然使用扩展ICORE的语法X(X)。此语法不使用任何扩展。因此本地搜索与的相同X(X)根据定义4,两个ICORE返回相同的解决方案。)通过语法的选择。在随后的示例中,我们假设X(X)=仿射.本地搜索扩展ICORE仿射,因此,指定的语法是的扩展仿射的语法阿菲.我们还可以使用阿菲奥西奇附加跟踪,在输入的匹配部分中实现替代的间隙模型。
算法07 00062 i005

5.2.1. Motif搜索

在第二个序列中找出第一个序列的最佳匹配项。
因为我们寻求序列的完全匹配x个按顺序排列,语法只使用 跳过 _ 英寸 运算符,允许我们跳过前缀和后缀根据代数不带电荷行业得分.

5.2.2. 半全局对齐

找到可能的最佳对齐方式,包括x个和结尾反之亦然。
此语法允许对齐跳过前缀(通过 跳过 _ 英寸 )和后缀x个(通过 跳过 _ 德尔 )反之亦然,根据代数,不收费行业得分。它不允许跳过前缀或后缀的所有其他组合。

5.2.3. 局部对齐

找到尽可能对齐的一对子字符串。这也称为Smith-Waterman算法。
算法07 00062 i006
此语法允许在正确对齐之前(在间隙模型A下)任意跳过前缀和后缀外国金融机构)。前缀和后缀跳过可以按任何顺序使用插入和删除。我们把它留给读者来提供一种语法,它强制执行一种明确的方式[21]前缀和后缀跳过。

5.3. 近似主题匹配和HMM

到目前为止,我们的对齐问题需要两个输入序列,称为U型在里面第2节现在我们考虑其中一个序列固定的场景。我们将使用这封信S公司而不是U型。当固定S公司将与许多“查询”序列进行匹配,一个特定的匹配器S公司令人感兴趣。这样的程序有S公司硬连线,需要作为其唯一的参数,并且有可能比我们的通用对齐算法更有效。此外,它可以配备一个评分代数,该代数应用特定位置的分数,从S公司.
硬接线S公司意味着通过消除与S公司在这个过程中,以前的ICORES语法专门用于S公司,则不再需要将其作为输入。这种专业化有一个系统的结构。我们从核心术语的多个语法副本开始,这些核心术语是S公司然后,我们专门化语法,只生成重写为S公司在第一个组件中。当这实现时,我们可以简化和删除所有的回忆S公司,并免除重写规则的第一个组件。整个推导过程可以被视为对原始ICORE相对于给定参数的部分评估S公司.

5.3.1. 近似匹配

让我们从ICORE开始编辑距离属于第2节开发近似匹配器匹配序列_S。此匹配器将解决与编辑距离应用于S公司,但只有作为其输入。它将从以下位置获得编辑距离通过修改语法。
编辑距离是一个简单的ICORE,其中基本语法只是:
S公司 代表 ( , b条 , S公司 ) | 德尔 ( , S公司 ) | 英寸 ( b条 , S公司 ) | mty公司
在这个语法中负责改写非输入字符S公司(这就是我们使用S公司也用于非终端符号的名称)。
的核心语言匹配序列_S应该完全由以下核心术语的子集组成编辑距离改写为S公司用于第一个卫星系统。为了指定这个集合,我们以以下方式专门化语法:假设 S公司 = 1 n个 .我们接受 n个 + 1 语法副本,我们在其中重命名S公司进入之内 S公司 1 S公司 n个 + 1 . S公司 1 是开始符号,并且 S公司 n个 + 1 在终止规则中使用。-副本,我们替换通过已知字符 。这给出了语法匹配_S如下所示。
的重写规则匹配序列_S只是规则编辑距离,现在我们将第一维降为1。当应用重写规则来减少 ( 匹配 _ S公司 ) ,变量总是绑定到S公司在语法中是硬编码的,而变量b条绑定到查询序列的符号.
算法07 00062 i007
在上面的例子中,我们选择从更简单的ICORE导出近似匹配器编辑距离我们也可以从ICORE中得到它仿射或其任何变体。例如,从语法派生的专用语法Affi公司如下所示:
语法匹配Affi_S
A类 代表 ( , b条 , A类 + 1 ) | 打开 _ 德尔 ( , D类 + 1 ) | 打开 _ 英寸 ( b条 , ) D类 德尔 ( , D类 + 1 ) | 代表 ( , b条 , A类 + 1 ) | 打开 _ 英寸 ( b条 , ) 英寸 ( b条 , ) | 打开 _ 德尔 ( , D类 + 1 ) | 代表 ( , b条 , A类 + 1 ) A类 n个 + 1 打开 _ 英寸 ( b条 , n个 + 1 ) | mty公司 D类 n个 + 1 打开 _ 英寸 ( b条 , n个 + 1 ) | mty公司 n个 + 1 英寸 ( b条 , n个 + 1 ) | 百万年
我们把其他的案子放在一边,阿菲奥西奇附加跟踪作为读者的练习。这些新语法被命名为匹配Osci_S匹配追踪_S,其依赖关系图如所示图3。任何变体阿菲我们从开始,我们将得到一个具有不同继承属性的维度1匹配器ICORE。

5.3.2. 从近似匹配到轮廓HMM

从近似匹配器到HMM主要是一种观点的改变。的确,语法匹配Affi_S已经具有概要文件HMM的体系结构。如所示图3。以下是一些差异和调整:
  • HMM通常被描述为摩尔机器,它在状态上发射符号,与转换无关。在我们的语法中,“发射”与转换相关:符号 从转换为时生成 S公司 S公司 + 1 从这个意义上说,他们更接近于Mealy机器。
  • 在概要HMM中,目标模型是根据多序列比对而不是单个序列构建的.在目标中S公司,“字符”现在是该对齐中的列。HMM的每个匹配状态(方形状态)都是目标序列中的一个位置。
  • HMM中的评分参数取决于位置这意味着ICORE的得分代数应考虑核心术语中的位置:in 代表 ( , b条 , x个 ) ,列 简单地表示为,用于查找此位置的分数参数。
图3。()剖面HMM的图形表示(左,来源:[20],图5.2.); (b条)语法依赖关系图匹配Affi_S; (c(c))的匹配Osci_S; 和()匹配跟踪_S.
图3。()剖面HMM的图形表示(左,来源:[20],图5.2.); (b条)语法依赖关系图匹配Affi_S; (c(c))的匹配Osci_S; 和()匹配跟踪_S.
算法07 00062 g003
将HMM视为特殊的ICORE,为轮廓HMM提供了新的线索。例如,教科书模型允许状态序列,例如 D类 1 1 1 1 D类 2 D类 . . . ,这只是同一情况下许多不同的转换路径之一:相邻的一组(例如)6个插入和3个删除 6 + 状态路径及其概率必须相加才能获得这种情况的正确概率。在这种情况下,返回最可能的状态路径是没有意义的。我们的匹配序列_S,派生自编辑距离,共享此不受欢迎的属性。
但从使用语法的ICORE开始附加跟踪相反,我们获得了具有更好性能的替代轮廓HMM。考虑图3d: 匹配器派生自附加跟踪继承了避免这种歧义的传统,通过强制执行这样的约定,即只要不被替换分隔,删除必须先于插入。在这种架构下,我们有一个状态转换序列 A类 1 D类 1 D类 2 D类 作为关键情况的唯一表示,它收集了单状态路径中这种情况的概率。

6.用于RNA二级结构分析的ICORE

6.1. RNA结构分析概述

RNA是遗传信息的活跃形式。与DNA相反,RNA是一个单链分子,它的骨架向后弯曲,形成了负责各种生物功能的结构。排列在主干上的某些碱基可以形成氢键,这组碱基对从它们的空间排列中抽象出来,称为次级结构RNA分子。一个小例子如所示图4RNA的计算分析产生了许多与分子序列和二级结构相关的问题:结构预测、结构比较、结构基序搜索等等。本节旨在说明如何通过ICORE统一解决所有这些问题。当被表述为ICORE时,不同问题之间的关系变得明确,而在传统的动态编程中,它们被细节所掩盖。
图4。RNA二级结构示例。此图显示序列的二级结构的二维表示“ACGACGGAUCUU”(左)。此结构包含四个基对:A-U公司,C-G公司,G-C公司G-C公司。我们还显示了它的括号-点表示(中间),以及它在卫星签名中的编码核糖核酸,SAS公司运输部(右)。
图4。RNA二级结构示例。此图显示序列的二级结构的二维表示“ACGACGGAUCUU”(左)。此结构包含四个基对:A-U公司,C-G公司,G-C公司G-C公司。我们还显示了它的括号-点表示(中间),以及它在卫星签名中的编码核糖核酸,SAS公司运输部(右)。
算法07 00062 g004
我们从RNA的最简单版本开始结构预测,从单个序列开始。这也有助于向没有生物信息学背景的读者介绍RNA结构问题。然后我们继续研究RNA的问题结构线形,其中两个序列已知或待预测将结构对齐,以使序列和结构达到最佳一致。此问题将作为后续问题的通用模板:同时折叠和对齐RNA序列,以及序列与结构比较.

6.2. RNA序列和结构的卫星特征

在继续之前,我们将介绍即将到来的ICORE共享的三个卫星签名。我们问题的输入将是一个或多个RNA序列,无论是否显示二级结构。第一个签名核糖核酸用于表示RNA碱基A(丹尼)、C(胞苷)、G(鸟嘌呤)和U(racil)字母表上的普通序列。
卫星签名核糖核酸
  字母表 { A类 , C类 , G公司 , U型 }
  操作员 { , ε }
第二个签名SAS公司以简洁的方式描述RNA序列及其二级结构。姓名SAS公司代表“结构注释RNA序列”。([这与我们将在图5。圆弧表示一个基对,并知道其两端位置。在一个SAS公司,您需要一个小解析器来查找匹配的 < U型 对于给定的 > A类 在这里,我们只考虑二级结构,而不考虑所谓的假结。这意味着碱基对对应于带圆括号的表达式。用结构注释序列的字母表是用字母表表示二级结构的著名点框符号的产物 { A类 , C类 , G公司 , U型 } 点表示未配对的碱基,而匹配的括号表示基本对。因此,这个字母表包含12个新颖的字符符号。(实际上,一个字符将使用两个ASCII字符字符串,一个包含基本序列,另一个包含注释。然而,由于它们的位置是严格耦合的,这在形式上是一个扩展字母表上的一维问题。)
图5。用于核心签名中编辑操作的运算符。删除一个碱基对可能会同时删除这两个碱基( 一对 _ 德尔 )或者只剩下5尺或3尺的搭档,剩下的搭档就成了凸块( 对L _ 德尔 对R _ 德尔 )。对称地,我们有用于插入操作的所有运算符。
图5。核心签名中编辑操作的运算符。删除一个碱基对可能会同时删除这两个碱基( 一对 _ 德尔 )或者只剩下5尺或3尺的搭档,剩下的搭档就成了凸块( 对L _ 德尔 对R _ 德尔 )。对称地,我们有用于插入操作的所有运算符。
算法07 00062 g005
卫星签名SAS公司
  字母表 { A类 , C类 , G公司 , U型 , < A类 , < C类 , < G公司 , < U型 , > A类 , > C类 , > G公司 , > U型 }
  操作员 { , ε }
第三个签名 D类 O(运行) T型 将用于指示结构的字符串没有序列信息:
卫星签名运输部
  字母表 { , < , > }
  操作员 { , ε }
图4显示了RNA序列的通常二维表示法,以及括号-dot格式的符号和签名核糖核酸,SAS公司运输部.

6.3. RNA折叠

我们的第一个与RNA相关的ICORE是经典Nussinov算法的一个版本,该算法在给定单个RNA序列的情况下,通过最大化碱基对的数量来预测其二级结构[22]. 这个问题属于维度1。输入是一个普通序列,表示为来自卫星签名的字符串 R(右) N个 A类 ,输出为二级结构。我们需要一个核心签名 S公司 T型 R(右) 来描述这种二级结构。为此,我们使用了四个运算符。操作员 mty公司 表示空结构, 一对 将两个字母和一个子结构作为输入,并围绕后者建立一个碱基对, 单一的 将一个字母作为输入,并将其作为未成对基添加到结构中 分裂 用于两个结构的连接,当结构分支时使用,如图4.
示例4。 图6显示了普通序列的核心术语“ACGACGGAUCUU”。此核心术语表示中显示的二级结构图4.□
图6。二级结构的核心术语图4.
图6。二级结构的核心术语图4.
算法07 00062 g006
语法SecStr(秒Str)(见下文)保证此表示是唯一的。它使用树高2的乘积来确保核心项唯一地表示二级结构,不允许使用诸如 分裂 ( mty公司 , mty公司 ) 语法SecStr(秒Str)没有对中的两个基地施加限制 一对 ( , S公司 , b条 ) ,因此结构项也可以表示具有非标准碱基对的结构。对于RNA折叠问题,规则中强制实施了合法碱基配对,其中 基地 是定义合法基对的语法谓词。标准定义是
基地 ( , b条 ) = { ( , b条 ) { ( A类 , U型 ) , ( U型 , A类 ) , ( C类 , G公司 ) , ( G公司 , C类 ) , ( G公司 , U型 ) , ( U型 , G公司 ) }
允许标准碱基对(Watson-Crick或摆动碱基对)。通过设置
基地 ( , b条 ) = 真的
我们也会允许非规范对,并让得分产生差异。这通常是在随机RNA家族模型中完成的,其中非标准碱基对的概率很低。
算法07 00062 i008
重写规则解释了如何从普通序列构建二级RNA结构:要么通过创建一个碱基对 一对 ,或通过使用 单一的 ,或通过将两个结构与 分裂 .用一些代数完成,得到ICORERNA折叠显示在第93页。
我们用ICORE提出了三个代数RNA折叠:
  • 代数BP最大值实现基对最大化作为我们的目标函数,正如在Nussinov算法中所做的那样。
  • 代数DotPar公司用于将预测结构可视化为点框符号中的字符串。在调用中自行使用RNA折叠(DotPar公司,),这个代数将枚举输入的全部候选空间通常,它用于与其他代数的乘积(参见。第8节)报告最佳候选人。
  • 代数探针为每个核心术语分配一个概率分数,例如使用随机上下文无关文法[20,23,24].
代数探针值得更多评论。随机上下文无关文法(SCFG)允许将字符串解析为任何类型的(上下文无关)结构,而随机评分方案允许我们为其选择最可能的解析,或计算所有解析的概率和。
参数 π , π b条 、和 π 第页 t吨 反映遇到未配对基数的概率,一个碱基对 ( , b条 ) 以及结构裂缝;它们必须根据一组训练数据进行估计。更复杂的SCFG将取代语法SecStr(秒Str)通过更精细的语法,可以产生更多的参数,但原则上,其他任何东西都不会改变。打电话RNA折叠用代数 P(P) 第页 o个 b条 输入序列 ϕ = 最大值 ,我们可以找到最可能的序列解析,这表明结构的可能性很高。自从语法SecStr(秒Str)语义无歧义[21,25](即,每个解析指定一个不同的结构),这也是分配给在给定的模型下。这被称为维特比得分.选择 ϕ = u个 相反,我们得到了序列的总概率在给定的模型下,总结了所有的解析。这也称为内部划线.

6.4. 结构线形

结构比对用于比较两个RNA序列,同时考虑两个信息水平:序列和二级结构。不仅像往常一样使用间隙对齐碱基序列,而且当涉及碱基对的两个碱基对齐时,它们各自的伙伴也必须优先相互对齐。通过简单地从 S公司 A类 S公司 字母表的算法第5节事实上,结构比对引起了许多有趣的相关问题,并吸引了RNA生物信息学的大量研究。
结构线形的常见可视化如所示图7。两个序列用不同但相似的结构进行注释,并与这些结构对齐。你可以在这个图中看到四个缺口符号,它们标记了三种不同的情况,得分也不同。第一个间隙(从左侧)标记为G公司底部插入到下部序列中。第二个标记为C-G公司在上面的序列中配对,其中C类残留物已在较低序列中丢失,而G公司还没有结婚。其余两个间隙符号标记aG-C公司上序列中的对,其中两个基在下序列中都没有对应项。
图7。结构RNA比对示例。竖线表示序列中匹配的碱基。请注意,这两种结构不同,但很相似。
图7。结构RNA比对示例。竖线表示序列中匹配的基数。请注意,这两种结构不同,但很相似。
算法07 00062 g007

6.4.1. 结构对齐的核心签名和语法

结构对齐的核心签名必须足够详细,以适应所有这些和类似情况,从而允许其独立评分。我们在这里考虑最通用的编辑操作集,如[26],用于arc-annotated序列,并允许任何类型的突变事件。表示单个基或基映射之间结构匹配的编辑操作是 mty公司 , 单一的 , 分裂 、和 一对 。我们重复使用签名中的名称STR公司,但请注意 单一的 一对 现在将两个序列中的基作为它们的参数。对于不匹配,我们需要编辑操作来删除和插入未配对的残基: 德尔 英寸 ,两者的语义与序列对齐中的语义完全相同(第5节)。我们还必须允许一个序列中的一个碱基对可能不存在于另一个序列,因为其中一个或两个碱基缺失,或者因为不能按照谓词的指示形成该对 基地 这些案件引发了8起新的行动, 一对 _ 英寸 , 一对 _ 德尔 , 对L _ 英寸 , 对L _ 德尔 , 配对R _ 英寸 , 对R _ 德尔 , 对LR _ 英寸 , 对LR _ 德尔 因此,我们总共有12个编辑操作(这不包括 mty公司 分裂 ,如标准模型中所示。在编辑操作中,拆分的左侧或右侧部分已丢失,这可能非常有用。它在的编辑模型中被忽视了[26],可能是因为结构的图形表示为arc-annotated序列,没有结构分支的显式表示。),在中以图形方式进行了总结图5。收集上述案例,我们得出核心签名STRAL公司有14名操作员。
在定义中STRAL公司, R(右) 表示RNA字母表 { A类 , C类 , G公司 , U型 } 、和斯特阿里是核心签名中的(唯一)一类术语。类似于语法SecStr(秒Str)结构对齐的语法,StructAli公司,应避免结构表示不明确,并通过使用额外的非终结符来实现P(P)ICORE见第97页。
例5。考虑以下以点框表示法表示的结构线形。
      ( . - - ) ( )
      A G-U C G
      | |     | |
      通用汽车公司
      ( ( ) . ) . .
它由核心术语编码
c(c) = 分裂 ( 一对 ( A类 , A类 , 分裂 ( 对L _ 英寸 ( G公司 , G公司 , mty公司 , C类 ) , 英寸 ( C类 , mty公司 ) ) , U型 , U型 ) , 对LR _ 德尔 ( C类 , C类 , mty公司 , G公司 , A类 ) 满足
< A类 G公司 > U型 < C类 > G公司 * c(c) * < A类 < G公司 > C类 C类 > U型 C类 A类
核心签名STRAL公司
算法07 00062 i009

6.4.2. 树木定线棱镜中的结构定线

之前[26],结构对齐方法不够精细,将碱基对视为只能删除或插入的单元[27]. 这相当于将RNA二级结构视为有序的有根树:每个碱基对是一个内部节点,每个单个碱基是一片叶子。因此,我们的情况 对L _ 德尔 由于基因组序列中的一个单点突变,必须建模并将其作为两个变化进行评分,即一对缺失加上一个碱基插入。这个更受限制的模型是从ICORE获得的StructAli公司只需删除规则 ( α 9 ) - ( α 14 ) (请注意,我们不需要正式限制核心签名以执行特定的编辑操作。由于它们不再出现在重写规则中,因此它们不是输入序列的逆映像的一部分,并且根据定义4,它们在搜索空间中不起作用。)

6.5. 具有变化的同时对齐和折叠的Sankoff算法

我们现在转向同时对齐和折叠的问题:我们得到了两个普通的RNA序列,目的是推断一个保守的共识结构。当假设两个输入序列是同源的时,这个问题是有意义的。桑科夫首先提出了这个问题[5]从那时起,产生了许多相关的问题公式。
为了为这个新问题系列设计ICORE,我们解释了ICORE是如何StructAli公司对于中所示的结构线形第6.4节可以系统地修改以处理二级结构未知的普通RNA序列。
算法07 00062 i010
算法07 00062 i011

6.5.1. 无给定结构的结构线形

如何将结构注释序列之间的对齐转换为结构要被猜测的序列之间的匹配?让我们从的输入中删除结构注释StructAli公司。卫星特征从SAS公司核糖核酸,因此我们调整了重写规则的右侧。我们替换每个符号 S公司 A类 S公司 表单的 < , > ,或 带有符号 R(右) N个 A类 .由于结构不再给定,我们通过谓词强加合法基对基地在重写规则中。否则,新规则是来自StructAli公司这就是ICORE所做的同时折叠,见第98页。核心签名和语法的运算符保持不变。
现在让我们研究一下这个新ICORE的两个简化。

6.5.2. 准确的共识结构

如果我们限制同时折叠遵守规则 ( β 1 ) - ( β 4 ) ,仅限操作员mty公司,单一的,分裂、和一对已授权。我们有一个我们称之为ICORE的精确共识结构,其中两个序列折叠成相同的结构,这是从两个序列的折叠空间的交集中选择的它们的确切一致性结构。不允许插入和删除,因此,两个序列的长度必须相同。如果它们的长度不同,那么精确共识结构的搜索空间将是空的。
例6。序列的可能共识结构是什么“GAUA”(通用汽车)“CAGU”? 我们发现(只有)三个核心术语重写到我们的两个示例序列中:
分裂 ( 一对 ( G公司 , C类 , 单一的 ( A类 , A类 , mty公司 ) , U型 , G公司 ) , 单一的 ( A类 , U型 , mty公司 ) )
单一的(G公司,C类,单一的(A类,A类,分裂(一对(U型,G公司,mty公司,A类,U型),mty公司))) ,
单一的 ( G公司 , C类 , 单一的 ( A类 , A类 , 单一的 ( U型 , G公司 , 单一的 ( A类 , U型 , mty公司 ) ) ) )
它们对应于以下完全一致的二级结构(顺序相同,从左到右):
通用通用
( . ) .        . . ( )       . . . .
通用通用通用
例如,第一个核心术语 c(c) = 分裂 ( 一对 ( G公司 , C类 , 单一的 ( A类 , A类 , mty公司 ) , ( U型 , G公司 ) ) , 单一的 ( A类 , U型 , mty公司 ) ) 重写为“GAUA” * c(c) * “CAGU”相反,核心术语
c(c) = 单一的 ( G公司 , U型 , 分裂 ( 一对 ( A类 , A类 , mty公司 , U型 , G公司 ) , 单一的 ( A类 , U型 , mty公司 ) ) )
无法重写到左侧卫星“CAGU”,因为条件 基地 ( A类 , G公司 ) 在规则中( β 4 )失败。

6.5.3. Sankoff算法

添加回规则 ( β 5 ) - ( β 6 ) ,我们进一步考虑在比对中插入和删除未配对残基的比对,例如下面的两个比对。
G-UCC-GUCC
(.)..                     .(..)
8月-8月
这正是Sankoff算法中使用的模型。直观地说,它融合了序列比对和RNA结构预测的思想[5]. 根据ICORE形式主义,实际情况如下:我们获得了ICORE桑苛夫通过增强精确共识结构根据indel的规则编辑距离.
例7。例如,
t吨 = 分裂 ( 一对 ( G公司 , A类 , 英寸 ( U型 , mty公司 ) , U型 , U型 ) , 单一的 ( C类 , G公司 , 德尔 ( C类 , mty公司 ) ) )
表示上面左侧的结构对齐。我们发现 国家电网公司 * t吨 * 8月 . 我们让读者在右侧编写代表结构对齐的核心术语。

6.6. 序列-结构比对和RNA家族建模

前面的两个小节以统一的方法讨论了结构对齐问题和同时折叠问题。这为这些主题的许多变体打开了大门,允许输入序列的任何组合,无论是来自核糖核酸或包含二级结构信息的序列SAS公司,甚至运输部如果我们有一个没有序列信息的结构模型。
我们在此更详细地研究顺序到结构对齐问题:一个输入是目标结构–来自SAS公司运输部–,另一个为普通序列核糖核酸我们想知道普通RNA序列折叠到目标结构中的程度。这个问题有两种形式:当结构可以作为输入参数时,我们称之为通用结构匹配问题。如果目标结构是固定的,可以将其硬编码到匹配器中,然后匹配器采用RNA基序匹配器的形式。这个RNA模体匹配器可以用来定义RNA家族模型。

6.6.1。一种通用结构匹配器

通用结构匹配器允许我们使用核心签名中可用的全部编辑操作将普通序列折叠到目标结构中 S公司 T型 R(右) A类 为此,我们从ICORE开始同时折叠StructAli公司回忆一下同时折叠将一个核心项减少为两个普通RNA序列,而StructAli公司将同一项简化为两个结构注释序列。为了获得序列到结构匹配问题的ICORE,我们需要做的就是每个问题取一半:规则结构Ali用于重写到目标结构t吨和的规则同时折叠用于重写RNA序列我们称之为新ICORE S公司 2 S公司 电子 n个 电子 第页 c(c) (第101页)。带输入t吨SAS公司核糖核酸,它将预测最佳对齐(无论由代数定义分数)到t吨。从更改第一个卫星签名 S公司 A类 S公司 D类 O(运行) T型 (和更换 使用•等等.在规则中)将为没有关联序列的纯结构目标解决相同的任务。

6.6.2. 泛型精确结构匹配

如果我们限制ICORES公司2通用遵守规则 ( γ 1 ) - ( γ 4 ) ,我们获得了ICORES公司2性感对于精确结构匹配问题:RNA序列是否与目标结构完全吻合?稍微宽松一点,遵守规则 ( γ 5 ) - ( γ 6 ) ,我们将允许与未配对的碱基相关的间隙,而目标中的所有碱基对仍然必须在查询中形成。
示例8。考虑核心术语
t吨 = 分裂 ( 一对 ( C类 , < , 单一的 ( A类 , , mty公司 ) , G公司 , > ) , 英寸 ( C类 , t吨 ) ) ,   哪里 t吨 = 分裂 ( 一对 ( A类 , < , 分裂 ( 一对 ( A类 , < , 单一的 ( G公司 , , 百万年 ) , U型 , > ) , mty公司 ) , ( U型 , > ) ) , mty公司 )
我们发现
卡加古 * t吨 * < > < < > >
请详细注意,第二个C类被视为查询中的插入。
算法07 00062 i012

6.6.3. 从泛型到硬编码结构匹配

在前一小节中,我们谈到了通用序列和结构匹配,因为我们使用了维度2的ICORE,其中RNA普通序列和目标二级结构都被作为输入。工具生产的结构匹配器RNA运动运动(Locomotif)[28,29]只取一个参数,即查询序列,而要匹配的结构在程序中进行硬编码(以提高效率)。我们展示了如何使用在第5.3小节用于序列分析。
对于以下两个部分,让目标结构为 第页 = < A类 < G公司 U型 > C类 G公司 > U型 < C类 > G公司 A类 .硬编码匹配器第页重新使用维度2的泛型匹配器的组成部分,但将语法替换为通过解析派生的特定语法第页具有SecStr(秒Str),并跟踪使用哪些规则生成中的哪些符号第页。让我们显式注释中的符号第页其位置在上标中:
第页 = < A类 1 < G公司 2 U型 > C类 4 G公司 5 > U型 6 < C类 7 > G公司 8 A类 9

6.6.4. 精确搜索的结构匹配器

为了清晰起见,我们首先使用简单ICORE的硬编码版本S公司2性行为,它只包含四条规则, ( γ 1 ) - ( γ 4 ) 。目标是构造一种语法,将搜索空间限制为所有且仅限于重写为的核心术语第页在第一颗卫星上。有了这种语法,就不再需要将核心术语重写为第页因此,我们将能够完全消除第一个附属程序和产生它的重写规则。我们从语法开始StructAli公司,并忽略所有处理删除和插入的规则,因为我们正朝着完全匹配的方向前进。这给我们留下了四条规则,在“内联”非终结符符号后,这些规则减少为三条P(P)以便简化。现在的语法很简单
S公司 单一的 ( , c(c) , S公司 ) | 分裂 ( 一对 ( , c(c) , S公司 , b条 , ) , S公司 ) | mty公司
作为第页有9个残数,我们创建了该语法的10个副本,其中使用了10个非终结符,按中的位置进行索引第页。这提供了语法模板
S公司 单一的 ( , c(c) , S公司 + 1 ) | 分裂 ( 一对 ( , c(c) , S公司 + 1 , b条 , ) , S公司 j个 + 1 ) | 百万年
哪里j个被确定为持仓的最终基本合伙人的持仓。现在我们专门化此语法模板,以保留可以应用于成功派生留数的结果在里面第页,然后删除第一个卫星输入的任何内容。对于每个符号 在里面第页,我们有一个产品
S公司 单一的 ( , c(c) , S公司 + 1 )
以及每对匹配的括号 < > b条 j个 在里面第页,我们有一个产品
S公司 分裂 ( 一对 ( , c(c) , S公司 + 1 , b条 , ) , S公司 j个 + 1 )
这导致语法和ICORE命名匹配_S2_r(_r)用于序列到结构与目标的对准问题第页,如第103页所示。为了清楚起见,我们在中添加了每个字符的位置第页在语法的上标中。
算法07 00062 i013
算法07 00062 i014
例9。使用ICORE匹配_S2_r(_r),我们发现有一些核心术语t吨这样的话
t吨 * GGUCUCAUG公司
虽然没有核心术语 t吨 这样的话
t吨 * 阿古堡
语法生成的核心术语匹配_S2_r(_r)包含关于目标结构的所有序列信息,因此,核心签名代数可以实现位置和序列特定的评分。如果不需要根据内化目标的序列内容进行评分,则可以通过不复制目标的残差来简化ICORE。核心签名简化了 S公司 T型 R(右) A类 S公司 T型 R(右) ,我们获得了一个新的ICORE,比赛_S2_r(_r)”见第104页。在这种简化形式中,该ICORE与RNA折叠(第93页),语法除外。当然,我们所做的只是预测一个普通RNA序列的结构,仅限于匹配目标。该ICORE在没有特定目标评分规定的情况下,也可能来源于RNA折叠直接。

6.6.5. 协方差模型的结构匹配

协方差模型[20,30,31]基于序列相似性和结构保守性描述RNA序列家族。对齐一组相关序列,确定共识结构,并使用特定的架构选择构建模型。从数据中训练随机参数。模型和参数应用于短查询序列,或在局部搜索模式下扫描整个基因组,以查找其他家族成员。新成员可以包含在定义模型和重新训练参数的集合中。包含的序列构成了模型的核心,在Rfam术语中称为“种子对齐”[32]而所有与模型匹配的已知序列都高于某个阈值分数,则构成“完全对齐”。因此,这不仅仅是解决一个直接的组合优化问题,还有很多事情要做——但在方法的核心,是对齐一个普通的RNA序列目标结构第页.
与精确匹配相比匹配_S2_r(_r)协方差模型允许从目标结构中删除,以及在RNA序列中插入。然而,它不允许从核心签名进行所有可能的操作 S公司 T型 R(右) A类 RNA序列中的插入总是被认为是不成对的(因为对于模型中不存在的特征,无法训练参数)。因此,我们将不使用 一对 _ 英寸 , 对LR _ 英寸 , 对L _ 英寸 、和 对R _ 英寸 .操作员 对LR _ 德尔 它代表两个未配对的碱基与目标中的一个碱基对对齐的情况。在协方差模型中,这些基数总是被认为是成对的,如果它们不能合法地成对,则得分的概率很低。So操作员一对已经处理了这个案子。内联非终结符P(P)和以前一样,这减少了语法结构Ali到以下产品。
S公司 * 单一的 ( , c(c) , S公司 ) | mty公司 | 德尔 ( , S公司 ) | 英寸 ( c(c) , S公司 ) | 分裂 ( 一对 ( , c(c) , S公司 , b条 , ) , S公司 ) | 分裂 ( 一对 _ 德尔 ( , S公司 , b条 ) , S公司 ) | 分裂 ( 对L _ 德尔 ( , c(c) , S公司 , b条 ) , S公司 ) | 分裂 ( 对R _ 德尔 ( , S公司 , b条 , ) , S公司 )
目前,这是一个通用匹配器,禁用了一些编辑操作。为了建立协方差模型,必须将目标结构内部化。所有变量(b条在上面的语法中)引用结构输入将消失。使用与相同的内部化结构匹配_S2_r(_r),我们从ICORE获得S公司2通用特定的匹配器协方差模型_r。我们使用相同的目标结构第页如前一示例所示。
例10。考虑顺序 = " 古卡古格 " 。它可以与结构对齐 第页 = ` ` < < > > < > " 以多种方式,例如
G公司-U型C类U型C类A类G公司U型G公司
<<•>•><−>•
G公司U型C类−−U型C类A类G公司U型G公司
<<•>•>-<−>•
G公司U型C类U型C类A类G公司U型G公司
-<-<•>•><>•
算法07 00062 i015
表示查询最左边对齐的核心术语协方差模型协方差模型_r派生自第页
t吨 = 分裂 ( t吨 , 分裂 ( 一对 ( A类 , 德尔 ( G公司 , mty公司 , U型 ) , 单一的 ( G公司 , mty公司 ) ) ) )   哪里
t吨 = 一对 ( G公司 , 分裂 ( 对L ( 单一的 ( U型 , mty公司 , C类 ) , 单一的 ( U型 , mty公司 ) ) , C类 )
上述ICORE描述了特定协方差模型的搜索空间。现在,让我们转向核心术语的评分。请注意,即使在第页删除后,语法仍然“知道”(通过下标的非终结符)查询的一部分在目标结构中的对齐位置。对于特定职位的分数,此信息应传递给评分功能。操作员一对例如,在随机代数(cf。第6.3节)作为
一对 ( , x个 , b条 ) = x个 * π b条
它与一起使用 S公司 1 , S公司 2 、和 S公司 7 在专业语法中。从参数估计中,我们获得了(潜在的)不同的概率 π b条 1 , π b条 2 、和 π b条 7 这些残留物。的不同用途一对必须能够使用这些不同的参数。通过通过位置参数扩展核心签名的操作符来适应这种特定于位置的评分,位置参数在构造核心项时提供。定义一对对的更改
一对 ( , , x个 , b条 ) = x个 * π b条
这同样适用于核心签名的所有其他运算符。作为一种通用技术,此额外参数使签名保持较小,并满足特定位置评分的要求。
例11。核心术语t吨示例10中,现在有位置信息,变为
t吨 = 分裂 ( 1 , t吨 , 分裂 ( 7 , 一对 ( 7 , A类 , 德尔 ( 8 , G公司 , mty公司 ( 8 ) ) , U型 ) , 单一的 ( 9 , G公司 , mty公司 ( 10 ) )   哪里
t吨 = 一对 ( 1 , G公司 , 分裂 ( 2 , 成对L ( 2 , 单一的 ( , U型 , mty公司 ( 4 ) , C类 ) , 单一的 ( 5 , U型 , mty公司 ( 6 ) ) ) , C类 )
然而,通常在实际中,当数据稀少时,为了避免过拟合,参数被绑定在一起,变得不那么特定于位置。S公司2S通用可能需要从类似结构中训练参数 第页 和背景序列组成。原则上,这可以在结构的家庭成员之前完成第页已知。S公司2S通用这可能是一个有趣的研究课题,而不仅仅是Sankoff算法和真诚地协方差模型。

6.7. 用于RNA分析的ICORE结论

在本节中,我们针对各种RNA问题提出了ICORE。所有这些ICORE都具有共同的特征,并且可以系统地导出:它们使用相同的核心签名、相同的重写规则或其子集。这样做,我们还展示了几个著名的形式主义作为我们框架的特例出现。图8概述了本节中所述的五个主要问题,以及图9显示ICORE问题规范之间存在的链接。
这种看待事物的方式也打开了一些新的视角。让我们回到完整的ICORE同时折叠,引入于第6.4小节.具有全套规则 ( β 1 ) - ( β 14 ) ,我们将Sankoff方法与完整编辑模型相结合。这种通用RNA比对剂有什么好处?它的搜索空间是两个(尚未展开的)RNA序列的所有可能结构对齐的集合。它将返回允许最佳结构对齐的两个结构。文献中没有研究过这种普遍性的模型。这看起来很有希望,虽然不是微不足道的,因为两个优化标准,即单个结构质量与结构和序列一致性,必须以新的谨慎方式进行平衡。对于结构质量,可以使用结构预测中使用的热力学模型。从生物学角度来看,这一观点具有强烈的吸引力:正如我们用现代方法计算的那样,共识结构是一个虚构的实体,而每个RNA分子都会折叠并单独运作,并且通常会产生与共识结构一致的碱基对,但不是共识结构的一部分。新方法可以提供两个折叠良好、一致但不需要完全相同的结构,这些结构可能更接近生物现实。
图8。中解决的所有RNA相关问题概述第6节。这些问题根据它们使用的编辑操作(左边的列)和输入类型进行分类。对于每个问题,我们都指出了文本中详细说明的有意义的限制。
图8。中解决的所有RNA相关问题概述第6节。这些问题根据它们使用的编辑操作(左边的列)和输入类型进行分类。对于每个问题,我们都指出了有意义的限制,这些限制在文本中有详细说明。
算法07 00062 g008
图9。我们五个主要RNA问题之间的关系。
图9。我们五个主要RNA问题之间的关系。
算法07 00062 g009
关于结构匹配问题,与ICORES公司2通用在里面第6.6小节,我们已经看到,将第一个输入固定到目标结构,忽略碱基对插入和内化导致ICORE协方差模型_r,它展示了协方差模型的体系结构。这些模型现在被用来定义结构RNA家族模型。还原此视图,S公司2通用可以被视为更通用的族模型构建器。Is具有以下新颖的方面:(i)我们可以将其与评分方案组合使用,而不一定是随机的;(ii)我们可以在查询中允许结构化插入,例如,特定大小范围的额外词干;(iii)我们可以内化t吨在不同程度上,使用例如结构骨架,但在搜索时提供序列基序。这种普遍性的方法尚未在文献中进行研究。与相同同时折叠,我们的ICORE只给出了搜索空间的定义——提供有意义的评分标准组合的挑战仍然存在。还请注意,这里展示的ICORE是一个全球匹配器,试图将其完整输入折叠到目标结构中。为了获得本地化版本,即在较长的RNA序列中定位与目标匹配的子序列第5.2.3节.可以重新使用。

7.树比较及相关问题

在本节中,我们将考虑有序标记树上的问题。比较这些树有两种主要模式:编辑距离和对齐。我们在ICORE框架中对它们进行编码,并展示它们如何组合。我们还讨论了仿射间隙模型的问题。最后,我们将把树比较的经典原子模型推广到一个更具表现力的模型,其中树编辑操作可以表示为特定于域的双向重写规则。

7.1. 符号和签名

树有一个根节点和一个子树林,林是一个(可能是空的)树序列。树木和森林问题递归地相互暗示,必须共同解决。我们遵循传统,简单地谈论树上的问题。
在经典公式中,树节点携带的标签没有任何意义。特别是,它们没有固定的arity或参数类型。这种约定严格绑定到经典的树编辑模型,在该模型中,节点可以插入或删除树中的任何位置。在签名上的树语言中,正如我们到目前为止使用的那样,这将导致违反相应运算符的arity。带有类型运算符和固定算术的树需要一个更精细的模型,我们将在中查看它们第7.5节.
目前,我们坚持经典公式,其中节点带有任意标签。为了在重写框架中适应这一点,我们将把所有节点标签视为一元运算符,并表示如下树 ( x个 , , z ) , ( x个 ) 、和作为 ( x个 z ) , ( x个 ) 、和 ( ε ) 分别是。森林是通过关联的二元运算符~从树上建立的,这样 ( b条 c(c) ) = b条 c(c) = ( b条 ) c(c) .给定一组F类对于节点标签,表示树的卫星签名为
卫星签名 T型 R(右) E类 E类
ε : T型 第页 电子 电子 空旷的森林 (f) : T型 第页 电子 电子 T型 第页 电子 电子 节点标签 , 对于   (f) F类 : T型 第页 电子 电子 × T型 第页 电子 电子 T型 第页 电子 电子 子树林的连接
我们的第一个核心签名旨在表示任意树对齐。表示树对齐的核心术语将使用运算符 代表 , 英寸 , 德尔 ,而来自F类输入签名中使用的字符现在起到了叶子标签字母表的作用。
核心签名TreeAl
字母表F类–参见上述备注
代表 : F类 × F类 × A类 A类 节点标签替换 德尔 : F类 × A类 A类 节点删除 英寸 : F类 × A类 A类 节点插入 mty公司 : A类 空树对齐 : A类 × A类 A类 子林连接
核心签名使用操作符~连接次级比对森林。

7.2. 树对齐方式

本节专门介绍Jiang的经典树对齐算法[27]及其最新的变体。不要将树对齐与树编辑距离问题混淆,这包括在第7.3节。有关这些(和其他)树比较模式之间的关系,请参阅[33]. 树对齐问题接受两棵树,并构造一棵在某种评分方案下最优的公共超树。

7.2.1. 经典树对齐

ICORE树对齐见第111页。我们的简单得分代数树相似性使用加权函数参数化的加性相似性评分w个更换和间隙惩罚δγ用于插入和删除。
算法07 00062 i016
例12。考虑核心术语 t吨 =
代表 ( , , ( 德尔 ( 电子 , 代表 ( b条 , b条 , mty公司 ) 德尔 ( c(c) , mty公司 ) ) 英寸 ( (f) , ( 英寸 ( c(c) , mty公司 ) 代表 ( , , mty公司 ) ) ) ) )
我们发现
( 电子 ( b条 , c(c) ) , ) = ( ( 电子 ( ( b条 c(c) ) ) ) ) * t吨 * ( b条 (f) ( c(c) ) ) = ( b条 , (f) ( c(c) , ) )
TREESIMILARITY公司 ( t吨 ) = 2 δ + 2 γ + w个 ( , ) + w个 ( b条 , b条 ) + w个 ( , )
序列和树对齐之间的对应关系在ICORE中明确表示编辑距离树对齐.不分支的树表示序列,例如。, ( b条 ( c(c) ( ( ε ) ) ) ) 表示字符串“abcd”在这种情况下,不需要规则(1),ICORE的其他规则树对齐与中的相同序列对齐,对表示形式的变化取模。或者,我们可以表示序列“abcd”就像一片树叶的森林, ( ε ) b条 ( ε ) c(c) ( ε ) ( ε ) = ( ε ) ( b条 ( ε ) ( c(c) ( ε ) ( ε ) ) ) ) .两片这样的森林形成了形态的排列 代表 ( , , 百万年 ) 德尔 ( b条 , mty公司 ) ,向左重写为 ( ε ) b条 ( ε ) 。重写规则1–1总是与应用程序1相结合。将此步骤与其他规则集成,我们将获得这些规则
(f) ( ε ) X(X) 代表 ( (f) , , mty公司 ) X(X) ( ε ) X(X)
(f) ( ε ) X(X) 德尔 ( (f) , mty公司 ) X(X) X(X)
X(X) 英寸 ( (f) , mty公司 ) X(X) (f) ( ε ) X(X)
ε mty公司 ε
同样,以代表性的变化为模数,类似于ICORE编辑距离.

7.2.2. 基于仿射间隙评分的树对齐

带有仿射间隙计分的树对齐传递了第5.1小节从两两序列比对到树比对。不同之处在于,由于有不同的方法来定义缺口在树中,所有这些都可以在特定应用程序中得到证明。
这种多样性是一个很好的例子,可以看到ICORE的组件如何以模块化的方式进行合作。核心签名捕获仿射评分,重写规则定义(所有可能的)核心术语之间的映射,即对齐及其输入树。这些组件保持不变,而不同的语法用于捕获文献中研究的不同间隙模型。
复合差距评分的核心签名和重写规则。从ICORE开始树Ali利用其原子间隙模型,我们首先需要扩展核心签名来区分间隙开口和扩展,并描述合适的重写规则。我们在名为树LiGeneric第113页。
算法07 00062 i017
图10。用于树比较的间隙。
图10。树比较的间隙。
算法07 00062 g010
算法07 00062 i018
TreeAli通用将根据所考虑的间隙类型,使用不同的语法进行扩展。在文献中,我们可以找到多种方法来定义复合间隙在树上。我们回顾了其中的四个,如所示图10:(任意)子树、完整子树、(任意)子林和完整子林。T型做一棵树。A类子树t吨属于T型是的一组节点T型满足两个条件:t吨有一个最低的共同祖先,称为t吨,对于每个节点x个属于t吨,除根以外,的父级x个属于t吨.A型完整子树t吨属于T型是子树,对于每个节点x个属于t吨,所有的后代x个属于t吨.A型亚森林F类属于T型是子树的连续序列。A类全亚林是完整子树的连续序列,它们都共享同一父节点。
作为完整子树的间隙。在该模式下,间隙节点与其祖先节点属于同一合成间隙。我们要求差距的事实是完成子树意味着在多次插入和删除之后,无法在子树中继续对齐。这种对齐相当于编辑脚本,包括不删除也不插入内部节点。Chawathe提出了一种线性间隙权重问题的二次算法[34]. 允许任意间隙权重的替代解决方案见[35]. 我们在这里介绍一种语法完整子树对于这种间隙,它使用三个非终结符符号:N(o间隙)、D(删除)和I(插入)。
例13。考虑一下树 ( b条 ( c(c) (f) ) ) ( ( 电子 (f) ) ) .核心术语
t吨 = 代表 ( , , t吨 1 t吨 2 ) mty公司   哪里
算法07 00062 i019
t吨 1 = 打开 _ 德尔 ( b条 , 德尔 ( c(c) , mty公司 ) 德尔 ( (f) , 百万年 ) mty公司 ) mty公司
t吨 2 = 打开 _ 英寸 ( , 英寸 ( 电子 , mty公司 ) 英寸 ( (f) , mty公司 ) 百万年 ) mty公司
表示子树根所在的对齐方式b条删除,子树的根由已插入。注意,语法没有提供对齐标记的两个节点的方法(f)一旦我们删除/插入b条。此外 打开 _ 德尔 既不能承载插入,也不能承载进一步的删除打开,反之亦然 打开 _ 英寸 .  □
间隙为完整的亚林。前面的林隙模型可以通过考虑完整的子林而不是完整的子树来扩展。在这里,间隙节点可以是较大间隙的扩展,原因有两个——因为它的祖先是间隙节点(就像子树一样),或者因为它的左同级是间隙节点。根据这个定义,树中的任何间隙都是底层叶子序列上的间隙。在代表RNA二级结构的树中,与二级结构一致的一级序列上的任何间隙(即间隙不破坏任何碱基对)都是树中完整的亚林间隙。这些差距在[36,37,38].
与相比完整子树,语法完整子林需要两个附加符号:E(同级删除)和J(同级插入)。
例14。考虑一下这两棵树 ( b条 c(c) ( ) 电子 (f) ) ( b条 (f) ) 。在完整子树间隙模式中,对齐需要两个间隙:
t吨 1 = 代表 ( , , 代表 ( b条 , b条 , mty公司 ) 打开 _ 德尔 ( c(c) , 德尔 ( , mty公司 ) ) 打开 _ 德尔 ( 电子 , mty公司 ) 代表 ( (f) , (f) , mty公司 ) ) mty公司
在完整的子林模式中,它只需要一个间隙:
t吨 2 = 代表 ( , , 代表 ( b条 , b条 , mty公司 ) 打开 _ 德尔 ( c(c) , 德尔 ( , mty公司 ) ) 德尔 ( 电子 , mty公司 ) 代表 ( (f) , (f) , mty公司 ) ) 百万年
路线 t吨 1 也在搜索空间中完整子林与alignmet竞争 t吨 2 只使用一个删除打开。相反完整子树不允许生成 t吨 2 ,因此, t吨 2 不在的搜索空间中完整子树.  □
算法07 00062 i020
间隙作为子树。前面两个间隙定义不允许在多个插入和删除下的子树中使用替换继续对齐。可以通过考虑任意子树而不是完整子树(以及任意子林而不是完整子林,请参阅下文)来解决此问题。对于子树间隙,间隙节点是较大间隙的延伸,因为其祖先是间隙节点,就像完整子树一样。不同之处在于,覆盖整个子树不需要间隙。此间隙定义用于[35]. 为了继续在删除下面插入内容,然后再在下面替换内容,语法子树提供D和I之间的直接转换,并在其他树中打开间隙。
例15。回到前面的树示例 ( b条 ( c(c) (f) ) ) ( ( 电子 (f) ) ) ,我们现在可以对齐标记为(f)删除/插入后b条语法允许我们导出核心术语
t吨 = 代表 ( , , t吨 1 ) mty公司   哪里
t吨 1 = 打开 _ 德尔 ( b条 , 德尔 ( c(c) , mty公司 ) t吨 2 ) mty公司
t吨 2 = 打开 _ 英寸 ( , 英寸 ( 电子 , mty公司 ) 代表 ( (f) , (f) , mty公司 ) mty公司 ) mty公司
与之前的情况相比,次级校准 t吨 2 现在已嵌入 t吨 1 .  □
作为亚森林的缺口。这是我们对差距的最一般定义。gap节点可以扩展祖先gap节点或兄弟gap节点,就像使用完整的子树一样,gap可以停在树中的任何位置,就像使用任意子树一样。该定义在Schirmer算法中实现[39].
例16。考虑一下这两棵树 ( b条 ( c(c) ) ( 电子 (f) ) 小时 ( j个 k个 ) ) ( b条 ( c(c) ) (f) ( j个 k个 ) ) 。第一棵树与中描述的树同构图10对于各种差距,都有一个核心术语的形式
代表 ( , , 代表 ( b条 , b条 , 代表 ( c(c) , c(c) , 百万年 ) ) t吨 代表 ( , , 代表 ( j个 , j个 , mty公司 ) 代表 ( k个 , k个 , mty公司 ) ) )
算法07 00062 i021
哪里t吨是一个核心术语,用于描述 ( 电子 (f) ) 小时 (f)。在完整子树间隙模式中,此对齐需要三个间隙:第一个间隙用于删除完整子树 ( 电子 (f) ) ,第二个删除另一个完整子树小时,最后一个插入完整子树(f).
t吨 C类 o个 第页 电子 t吨 电子 S公司 u个 b条 t吨 第页 电子 电子 =
打开 _ 德尔 ( , 德尔 ( 电子 , mty公司 ) 德尔 ( (f) , 百万年 ) 德尔 ( , mty公司 ) ) 打开 _ 德尔 ( 小时 , 百万年 ) 打开 _ 英寸 ( (f) , mty公司 )
在完整的子林模式中,两个间隙删除可以合并为一个间隙: t吨 C类 o个 第页 电子 t吨 电子 S公司 u个 b条 (f) o个 第页 电子 t吨 =
打开 _ 德尔 ( , 德尔 ( 电子 , mty公司 ) 德尔 ( (f) , mty公司 ) 德尔 ( , mty公司 ) ) 德尔 ( 小时 , mty公司 ) 打开 _ 英寸 ( (f) , mty公司 )
在子树模式下,由标记的节点(f)不再删除或插入:我们删除子树 ( 电子 ) ,但保留(f).
t吨 u个 b条 t吨 第页 电子 电子 = 打开 _ 德尔 ( , 德尔 ( 电子 , mty公司 ) 代表 ( (f) , (f) , mty公司 ) 德尔 ( , mty公司 ) ) 打开 _ 德尔 ( 小时 , mty公司 )
在子林模式中,所有删除操作都属于单个间隙:
t吨 u个 b条 (f) o个 第页 电子 t吨 = 打开 _ 德尔 ( , 德尔 ( 电子 , mty公司 ) 代表 ( (f) , (f) , mty公司 ) 德尔 ( , mty公司 ) ) 德尔 ( 小时 , mty公司 )
最后,请注意,树对齐 t吨 c(c) o个 第页 电子 t吨 电子 S公司 u个 b条 t吨 第页 电子 电子 , t吨 c(c) o个 第页 电子 t吨 电子 S公司 u个 b条 (f) o个 第页 电子 t吨 、和 t吨 u个 b条 t吨 第页 电子 电子 与…共存 t吨 u个 b条 (f) o个 第页 电子 t吨 在搜索空间中亚森林,但由于空缺数量较多,他们在仿射得分代数下的得分会更差。□
摆动间隙。如中所示第5节振荡间隙模式意味着对齐可以在插入和删除之间切换,而不会产生另一个间隙打开惩罚。前面的四种语法都可以被转换来处理振荡间隙模式。本质上,必须合并区分插入和删除的非终结符。我们用语法来说明这一点亚森林.的五个符号亚森林在ICORE中减少到三个:N(o间隙)、P(arent间隙)和S(ibling间隙)Osci亚森林第117页。
例17。现在考虑一下核心术语t吨,
t吨 = 代表 ( , , 打开 _ 德尔 ( 电子 , 代表 ( b条 , b条 , mty公司 ) 德尔 ( c(c) , 百万年 ) ) t吨 )
哪里   t吨 = 英寸 ( (f) , 英寸 ( c(c) , mty公司 ) 代表 ( , , mty公司 ) )
以图形方式显示图11为了理解语法是如何传递有关间隙上下文的信息的,我们邀请读者写出这个术语的派生词。首先,请注意t吨(Osci亚森林)它使用一个开口进行两次删除和两次插入,形成一个振荡间隙。我们发现
( 电子 ( b条 , c(c) ) , ) = ( 电子 ( ( b条 c(c) ) ) ) * t吨 * ( b条 (f) ( c(c) ) ) = ( b条 , (f) ( c(c) , ) )
根据的重写规则树LiGeneric.  □
图11。具有摆动间隙的树对齐的图形视图。核心运营商mty公司和~未显示。请注意,在为删除电子,插入时摆动允许间隙扩大(f)在这个核心术语中代表节点和 打开 _ 德尔 派生自非终结符N个,两个英寸节点来自S公司和其他来自P(P).
图11。具有摆动间隙的树对齐的图形视图。核心运营商mty公司和~未显示。请注意,在为删除电子,插入时摆动允许间隙扩大(f)在这个核心术语中代表节点和 打开 _ 德尔 从非终结符派生N个,两个英寸节点来自S公司和其他来自P(P).
算法07 00062 g011

7.3. 经典树编辑距离

经典的树编辑模型类似于树对齐,更一般地在森林中定义。和以前一样,我们遵循传统,把它作为一个关于树的问题来讨论。
当树对齐模型为其输入计算最佳公共超树时,树编辑模型计算最佳公共子树。(在当前讨论中,子树是树节点的子集,保留了祖先关系和顺序,但不必是连续的。)此子树由尊重树结构的内射映射给出。本质上,映射的节点是 代表 -树对齐中的节点,而 德尔 英寸 未表示节点。通过删除所有插入和删除节点,可以将每个树对齐转换为树编辑映射,反之则不然:某些映射不能嵌入到公共超树中。中使用的示例图11就是一个很好的例子。在那里,我们可以将带有相同标签的所有节点映射到彼此上,但不能将此映射嵌入树对齐中。因此,对于给定的树对,树编辑模型的搜索空间比树对齐模型大,这是否可取取决于应用程序。
算法07 00062 i022
已经报道了计算树编辑距离的不同算法[40,41]. 他们实现了相同的模型,但使用了不同的问题分解。因此,实现它们的重复出现的次数似乎大不相同。通过ICORE指定树编辑距离问题,我们仍然独立于实现细节,这可以被视为这些算法的规范。相反,已知算法证明了该ICORE的可实现性,以及它所允许的实现自由度。
对于输入林,我们可以重复使用我们的卫星签名,对于映射,则为核心签名树AL虽然前者显而易见,但后者可能会令人惊讶。虽然映射不能总是嵌入到超级树中,但可以用TreeAl公司术语以及一组合适的重写规则。下面解决了这个矛盾。
在ICORE树编辑在第119页,我们重复使用代数树相似性; 一个常见的惯例是 δ = γ = 0 ,以便只有映射的节点有助于得分。
例18。重新考虑树木 ( 电子 ( b条 c(c) ) ) ( b条 (f) ( c(c) ) ) 属于图11。在合理选择分数的情况下,最佳树编辑映射标记的节点,b条,、以及c(c)以最佳分数 w个 ( , ) + w个 ( b条 , b条 ) + w个 ( c(c) , c(c) ) + w个 ( , ) .之间的编辑距离 ( 电子 ( b条 c(c) ) ) ( b条 (f) ( c(c) ) ) 通过核心术语实现 t吨 =
                         代表 ̲ ( , , 德尔 ( 电子 , 代表 ̲ ( b条 , b条 , mty公司 ) 英寸 ( (f) , 代表 ̲ ( c(c) , c(c) , mty公司 ) 代表 ̲ ( , , mty公司 ) ) ) )                                                    ( 德尔 ( 电子 , b条 英寸 ̲ ( (f) , c(c) ) ) ) ( 德尔 ̲ ( 电子 , b条 c(c) ) ) ( 德尔 ̲ ( 电子 , b条 (f) ( c(c) ) ) ) ( 电子 ( b条 c(c) ) ) ( b条 (f) ( c(c) ) )
在我们的图表中,重写位置下划线。第一行总结了替换规则在以下独立子项中的四个应用t吨。以下步骤利用相联的正在重写。在第2行中, c(c) 分组为 ( c(c) ) mty公司 匹配的规则 英寸 .在第3行中, b条 c(c) 分组为 ( b条 c(c) ) 匹配规则 德尔 .  □
使用关联重写对于适应ICORE框架中的树编辑模型至关重要。这解决了我们如何用相同的核心签名表示更大的搜索空间的矛盾。根据结合性的使用,单个核心术语可以有不同的重写。一个核心术语,不会被ICORE规则重写为输入树对齐仍然可以按照树编辑或者反过来说:在树编辑问题的搜索空间中,某些核心术语重写了不利用关联性的序列。它们对应于可以嵌入到公共输入超树中的映射,也表示树对齐。然而,还有一些额外的核心术语重写为输入模结合性,它们对应于无法嵌入的映射。上述示例中的核心术语,使用中的规则树对齐,重写为 ( 电子 ( b条 ) c(c) ) ,但不是为了 ( 电子 ( b条 c(c) ) ) .
与之前的ICORES相比,事情更加复杂,让我们提供一个证据树编辑实际上符合其目的。
事实2。 ICORE公司 树编辑 解决了树编辑距离问题。
证明。A类B类是两棵树。我们认为树编辑映射A类B类由一个公共子树给出,或者更正式地由一对两个同构树给出 A类 B类 这样的话 A类 嵌入在中A类(表示 A类 A类 ) , B类 嵌入在中B类( B类 B类 )和 A类 B类 与节点标签的重命名相同。
(1)每次重写一个核心项都表明了一个映射:让t成为这样的核心项 A类 + t吨 + B类 然后我们可以从t推导出a和B的一个公共子树,其代价与ICORE代数下的评估相同 A类 + t吨 + B类 .
我们定义功能 ϕ 1 : T型 ( T型 第页 电子 电子 A类 ) T型 ( T型 第页 电子 电子 A类 ) ϕ 2 : T型 ( T型 第页 电子 电子 A类 ) T型 ( T型 第页 电子 电子 A类 ) 递归地如下。
ϕ 1 ( X(X) Y(Y) ) = ϕ 1 ( X(X) ) ϕ 1 ( Y(Y) ) ϕ 1 ( ( X(X) ) ) = ( ϕ 1 ( X(X) ) ) ϕ 1 ( 德尔 ( , X(X) ) ) = ϕ 1 ( X(X) ) ϕ 1 ( 英寸 ( , X(X) ) ) = ϕ 1 ( X(X) ) ϕ 1 ( 代表 ( , b条 , X(X) ) ) = ( ϕ 1 ( X(X) ) ) ϕ 1 ( mty公司 ) = ε ϕ 2 ( X(X) Y(Y) ) = ϕ 2 ( X(X) ) ϕ 2 ( Y(Y) ) ϕ 2 ( ( X(X) ) ) = ( ϕ 2 ( X(X) ) ) ϕ 2 ( 德尔 ( , X(X) ) ) = ϕ 2 ( X(X) ) ϕ 2 ( 英寸 ( , X(X) ) ) = ϕ 2 ( X(X) ) ϕ 2 ( 代表 ( , b条 , X(X) ) ) = b条 ( ϕ 2 ( X(X) ) ) ϕ 2 ( mty公司 ) = ε
首先要注意 ϕ 1 ϕ 2 位于 ϕ 1 ( 代表 ) ϕ 2 ( 代表 ) 因此 ϕ 1 ( t吨 ) ϕ 2 ( t吨 ) 是同构树。
其次,对于任何两个术语,都可以直接验证u个v(v)这样的话 u个 1 v(v) (分别。 u个 2 v(v) ),然后 ϕ 1 ( u个 ) ϕ 1 ( v(v) ) (分别。 ϕ 2 ( u个 ) ϕ 2 ( v(v) ) )。由此可见 ϕ 1 ( t吨 ) ϕ 1 ( A类 ) ϕ 2 ( t吨 ) ϕ 2 ( B类 ) .通过施工, ϕ 1 ( A类 ) = A类 ϕ 2 ( B类 ) = B类 所以这对 ( ϕ 1 ( t吨 ) , ϕ 2 ( t吨 ) ) 是的公共子树A类B类.
(2)每个映射都有一个描述它的核心术语:如果有一个公共子树 ( T型 1 , T型 2 ) 对于A和B,则可以从 ( T型 1 , T型 2 ) 核心术语t A类 + t吨 + B类 重写派生的成本与树映射相同。
我们定义一个函数ψ以两棵树作为输入A类B类并返回核心术语t吨,因此 ϕ 1 ( t吨 ) = T型 1 ϕ 2 ( t吨 ) = T型 2 .假设 A类 = ( U型 ) B类 = b条 ( U型 ) 。有三种情况。
-
如果发生在 T型 1 b条在里面 T型 2 : ψ ( ( U型 ) , b条 ( U型 ) ) = 代表 ( , b条 , ψ ( U型 , U型 ) ) ψ ( , )
-
如果不在中 T型 1 : ψ ( ( U型 ) , b条 ( U型 ) ) = 德尔 ( , ψ ( U型 , b条 ( U型 ) ) )
-
如果b条不在中 T型 2 : ψ ( ( U型 ) , b条 ( U型 ) ) = 英寸 ( b条 , ψ ( ( U型 ) , U型 ) )
请注意,最后两种情况都是重叠的也不是b条在地图中。在这种情况下,构造是模糊的,可以在删除规则或vice-versa之前应用插入规则。
事实上 A类 + ψ ( A类 , B类 ) + B类 通过对A类B类例如,如果 ψ ( A类 , B类 ) 形式为 德尔 ( , w个 ) 具有 w个 = ψ ( U型 , b条 ( U型 ) ) ,我们有归纳假说 U型 + w个 + b条 ( U型 ) ,因此
( U型 ) 德尔 ̲ ( , U型 ) + 德尔 ( , w个 ) + 德尔 ̲ ( , b条 ( U型 ) ) b条 ( U型 )
其他情况类似。☐
值得注意的是,这个归纳证明中的重写步骤是自下而上的:重写首先消除术语叶子上的运算符符号,依此类推。自上而下进行的重写可能会出现“错误”的转向,而不会到达输入树。自下而上的策略可能有助于牢记ICORE的实施。
与序列比较的关系。由于树编辑决定了最佳公共子树,因此它们在序列上的对应项是最佳公共子序列。这也被称为序列“跟踪”,与序列比对不同,因为匹配残基之间相邻索引的顺序仍不明确–另请参阅语法附加跟踪对于ICORE仿射当将树专门化为序列时,我们可以再次应用非分支树或树叶森林视图。在第一个视图中,变量Y(Y)始终与匹配 mty公司 ,它被重写为ε。在“树叶之林”视图中,这适用于变量X(X).删除其中之一X(X)Y(Y)从除方程式(16)以外的所有规则中,给出了与序列比对(ICORE)相似的规则编辑距离,参见。第5节)在线性树或树叶的森林表示中。在这两种情况下,共享相同替换集的所有核心术语表示相同的公共子序列,而它们表示不同的序列比对。
仿射间隙权重。一旦我们考虑了索引对分数有贡献的编辑距离模型,我们不妨考虑上一节中的广义差距模型。自核心签名以来树编辑与的相同树LiGeneric,我们可以将其扩展到TreeAliAfine公司并对相同的间隙模式使用相同的语法:完整子树,完整子林,子树,亚森林。请注意 打开 _ 德尔 打开 _ 英寸 类似于 德尔 英寸 ,因为它们表示相同的情况,只是得分不同。
凸面间隙权重?我们可以为具有任意凸间隙权重的树编辑距离设计ICORE吗(其中仿射权重是一种特殊情况)?在[35],Touzet表明这个问题是NP-hard。这意味着要么我们不能在我们的框架中表示任意凸间隙权重,要么不是所有的ICORE都有多项式时间实现(除非P=NP)。这将粉碎我们对ICORE通用多项式时间实现技术的希望。然而,请注意ICORE中的间隙是如何建模的!它们对应于重写规则,通过重写核心术语,可以在一个维度上生成一段输入树,但在另一个维度中不会生成。单个重写规则只能产生恒定大小的间隙。这些规则的连续重写构成了任何大小的较大(复合)差距。然后,这些差距的分数将由核心项中的运算符计算,并在一些代数中进行解释。因此,通过构建,复合差距的得分是以“零碎”的方式计算的。这种间隙计分是仿射计分的一个小推广,但不提供任意的凸间隙计分函数。
魔鬼的拥护者可能会以以下方式质疑这种推理:“我可以表达任何凸评分差距评分本质上是两个函数,比如 打开 提取 ! 这个 提取 操作员仅收集间隙的表示,包括对其进行评分所需的所有必要信息,例如间隙大小、结构以及删除或插入的具体符号。这个 打开 操作员标记间隙的根部。它从 提取 操作符,并调用间隙上的凸记分函数作为一个整体。”幸运的是,理查德·贝尔曼(Richard Bellman)从外面抱怨道:“即使魔鬼自己也无法提供满足最优化原则的客观函数[1]关于 提取 功能。”因此,魔鬼代言人的ICORE将是非法的。(有趣的是,注意到这一论点与中关于“产量解析悖论”的讨论相似[13]Bellman原理解释了为什么我们不能解决经典ADP中的所有问题 O(运行) ( n个 ) 尽管乔姆斯基范式转换似乎只适用于经典ADP框架中的所有问题。)

7.4. 树编辑距离和树对齐的变化

在ICORE的抽象层次上,很容易使用前面两小节中介绍的经典比较模型的编辑方案和设计变体。特定应用通常需要特殊情况或小扩展。
为什么不组合树编辑距离和树对齐?我们可以用对齐规则进行非对称比较 德尔 和编辑规则 英寸 ;
( X(X) ) 德尔 ( , X(X) ) X(X) X(X) Y(Y) 英寸 ( , X(X) Y(Y) ) ( X(X) ) Y(Y)
我们可以引入依赖标签的比较,对某些标签使用对齐规则,对其他标签使用编辑规则,
( X(X) ) 德尔 ( , X(X) ) X(X) ¯ ( X(X) ) Y(Y) 德尔 ( ¯ , X(X) Y(Y) ) X(X) Y(Y) X(X) 英寸 ( , X(X) ) ( X(X) ) X(X) Y(Y) 英寸 ( ¯ , X(X) Y(Y) ) ¯ ( X(X) ) Y(Y)
或者我们可以使用另一种依赖标签的比较,在这种比较中,子林只能在某些标签之前切割b条
( X(X) ) b条 ( Y(Y) ) 德尔 ( , X(X) b条 ( Y(Y) ) ) X(X) b条 ( Y(Y) ) X(X) b条 ( Y(Y) ) 英寸 ( , X(X) b条 ( Y(Y) ) ) ( X(X) ) b条 ( Y(Y) )
等等。目前,这些变化是推测性的,因为我们不知道具体的应用。然而,在下一节中,我们将讨论一个需要更一般概念的应用程序。

7.5. 广义编辑模型下的树对齐

在我们的上一篇文章中,我们将树编辑模型推广到任意树编辑操作,这些操作可能源于特定于域的关于树所表示的内容的知识,以及在对齐中必须遵守的属性。如上所述,树对齐操作于有根、有序、节点标记的树。任何节点标签都可以位于树中的任何位置,与上下文无关,并且可以有任意数量的子树。它可以与任何其他标签对齐。编辑操作是原子操作,父节点及其同级节点是独立考虑的。作为双向编辑规则编写的经典模型看起来很简单:
( X(X) ) b条 ( X(X) ) - - 节点(标签)更换 ( X(X) ) X(X) - - 节点索引 X(X) Y(Y) X(X) Y(Y) - - 节点更改
最后一条规则“无更改”是为了形式上的完整性而添加的,因此在编辑时进入之内t吨,所有位置实际上都可以根据某些规则进行编辑。
我们现在着手将此模型细化为广义树对齐模型具体应用程序的含义通常更丰富:一些节点标签在其兄弟节点上暗示特定的其他节点。需要更通用的编辑规则,以表示一些较大的树模式应该作为一个整体编辑为特定的目标模式。分配定律就是一个例子,例如
(f) ( ( X(X) Y(Y) ) ) ( (f) ( X(X) ) (f) ( Y(Y) ) )
(f) ( X(X) ) (f) ( Y(Y) ) (f) ( X(X) Y(Y) )
我们想为这个编辑操作指定一个特殊(有利)分数,为此,经典模型可以通过组合原子编辑来模拟这种转换,这无助于实现。
泛化的第二个动机是某些节点标签永远不应该匹配的情况,因为这在我们的解释中是没有意义的,并且没有对结果进行合理的评分。想象一下树的叶子上有数字和字符,在这里,数字与数字、字符与字符、而不是字符与数字的匹配是有意义的,这在原子模型中是允许的。罚款 - 考虑到这样一个不需要的替换,但这并没有从搜索空间中删除这种非法的树对齐,只会使它们变得非最优。我们希望能够指定通用编辑操作,它显式声明允许哪些操作来代替标准的原子树编辑模型。这是以下定义的目标。
定义5。 广义树对齐
(1) 设F是签名,V是变量集。A类广义编辑操作是一对术语 T型 ( F类 , ) ,表示 第页 ,提供了一个实值w,称为重量编辑操作的。
(2) 广义树对齐问题对于树s和t,要找到最大累积权重的编辑脚本,该脚本使用给定的有限广义编辑操作集将s转换为t { 第页 } .
作为最大化权重的替代方案,我们可以要求最小化与编辑操作相关的距离分数。
在上述定义中,“编辑脚本”的概念是从第2节这个概念还不正式,可以用不同的方式具体化;从这里开始,您可以努力实现树编辑模型的通用化以及通用树对齐。在这两种情况下,树中的每个位置都将只参与一次编辑操作;这就是为什么我们在编辑操作中显式包含“无更改”规则。这里,我们的目标是树对齐的泛化。因此,在接下来的构造中,我们将生成的核心术语可以被视为表示编辑脚本的数据结构。我们不会使用关联重写(参见第7.3节)我们通过构造重写规则来确保原子树对齐模型是作为特例获得的。
在我们开始从广义编辑操作构建ICORE之前,必须说明编辑操作之间的区别 第页 和重写规则 第页 .重写规则带有限制 v(v) 第页 ( 第页 ) v(v) 第页 ( ) 这是因为术语重写是功能模型。重写术语在给定位置 第页 ,结果是唯一确定的。相反,编辑操作是一种关系模型。两个术语t吨可以通过编辑操作关联 第页 ,但仅给出 第页 ,我们无法构建t吨.只有当我们知道“源”和“目标”的两面时,插入和删除才是对称操作;如果没有已知的目标,我们就不知道要用插入插入什么。在上面定义的通用编辑模型中t吨因此,没有对中的变量施加任何条件 第页 .
我们现在展示如何为广义树对齐问题构建ICORE。
定义6。 广义树编辑问题的ICORE构造
设F为签名,并设 { ( 第页 , w个 ) ; 1 n个 } 是一组通用的编辑操作。我们对ICORE的定义如下。
  • 两个卫星签名都是F。
  • 核心签名包含单个排序、常量运算符符号 mty公司 卫星签名字母表(如有)作为nullary操作符,以及 2 n个 操作员: 操作 1 1 , 操作 1 2 , , 操作 n个 1 , 操作 n个 2 .的数量 操作 1 和,共 操作 2 是的基数 v(v) 第页 ( ) v(v) 第页 ( 第页 ) .
  • 对于每个编辑操作 第页 ,我们有两条重写规则
    操作 1 ( X(X) ¯ ) 第页 第页 操作 2 ( X(X) ¯ )
    哪里 X(X) ¯ = v(v) 第页 ( ) v(v) 第页 ( 第页 ) .
  • 得分代数是
    操作 1 ( X(X) ¯ ) = w个 + X(X) ¯ 操作 2 ( X(X) ¯ ) = w个 + X(X) ¯ mty公司 = 0 ϕ = 最大值
  • 语法接受所有核心术语。
注意,通过构造,重写规则定义良好,因为 X(X) ¯ 包含两者 v(v) 第页 ( ) v(v) 第页 ( 第页 ) 另请注意,在核心签名中,没有假设任何关联运算符,因为我们要泛化树对齐,而不是树编辑模型。
事实3。 上述ICORE解决了以下定义的树对齐问题 { 第页 } .
证明。建筑方面,两棵树t吨通过编辑操作关联 第页 当且仅当存在核心时,应用于其根位置c(c)术语来源于 操作 1 操作 2 这样的话c(c)可以根据规则重写 操作 1 ( X(X) ¯ ) 第页 第页 操作 2 ( X(X) ¯ ) 。此参数递归应用于t吨. ☐
广义树对齐问题最简单的例子是经典的,使用原子编辑模型。所以我们的第一个例子是一位老朋友:
例19。标志性建筑树对齐树的对齐是根据编辑操作的定义6生成的
( X(X) ) b条 ( X(X) ) ( X(X) ) X(X) X(X) Y(Y) X(X) Y(Y)
哪里 操作 1 1 = 操作 1 2 = 代表 (该 操作 1 2 case是多余的,因为它产生的规则与 操作 1 1 兑换不足b条), 操作 2 1 = 德尔 , 操作 2 2 = 英寸 、和 操作 1 = 操作 2 = (由于规则对称,第二种情况是多余的)。□
现在,让我们转向一个非平凡的应用——广义树对齐模型。第6.4节,我们已经探讨了使用结构注释序列进行RNA结构比对的问题。由于当我们假设带结构注释的序列作为我们的输入时,结构已经是已知的,所以我们也可以直接将结构表示为树(其中还包括其叶子上的序列信息)。在我们的示例中,我们使用了工具RNAforester下面的树表示[39]. 在那里,标记的节点P(P)表示碱基对之间的氢键: P(P) ( G公司 , A类 , U型 , C类 ) 表示底座 G公司 C类 形成氢键碱基对,而 A类 , U型 构成发夹环。图12显示了一个示例。因此P(P)-节点必须始终是基,而不是另一个P(P)-节点。所选表示由以下卫星签名捕获:
卫星签名 R(右) S公司 T型 具有
字母表 { A类 , C类 , G公司 , U型 }
操作员
P(P) : R(右) t吨 R(右) t吨 - - 必须有至少两个基地的亚林 : R(右) t吨 × R(右) t吨 R(右) t吨 - - 子林连接 ε : R(右) t吨 - - 空子林
图12。结构表示,其中P(P)-节点表示其最左侧和最右侧子节点之间的碱基对键,而其他子树表示由该碱基对包围的结构。在此表示中P(P)-节点不能是另一个P(P)-节点,而其他子节点可以。
图12。结构表示,其中P(P)-节点表示其最左侧和最右侧子节点之间的碱基对键,而其他子树表示由该碱基对包围的结构。在此表示中P(P)-节点不能是另一个P(P)-节点,而其他子节点可以。
算法07 00062 g012
的对齐方式RST公司原子编辑模型下的树将搜索空间与没有合理解释的候选对象混在一起。例如,它们允许对齐P(P)节点到基本节点,或插入P(P)没有构成键的两个碱基的节点。在这种情况下,这种对齐是没有意义的。更换P(P)必须避免,总的来说, P(P) ( , . . . , b条 ) 应将其视为一个单元,依此类推。使用通用编辑操作,我们可以在此场景中准确定义有意义的编辑操作:
b条 - - 基本匹配 ε - - 基础指数 P(P) ( X(X) b条 ) P(P) ( c(c) X(X) ) - - 基对匹配 P(P) ( X(X) b条 ) c(c) X(X) - - 键指数 P(P) ( X(X) b条 ) X(X) - - 碱基对indel P(P) ( X(X) b条 ) c(c) X(X) - - 成对基极损耗_向右 P(P) ( X(X) b条 ) X(X) - - 对底损耗_左 X(X) Y(Y) X(X) Y(Y) - - 没有变化
对于 , b条 , c(c) , R(右) 如适用。这些通用的编辑操作确保了编辑总是从一个合法的RNA结构表示指向另一个。为了根据此编辑模型下树对齐的定义6创建ICORE,我们几乎可以重用核心签名STRAL公司属于第6.4小节。随着我们从序列过渡到树,整体表示方式发生了一些变化。这也会影响其路线的结构。使用STRAL公司,基匹配还包含匹配基之后的子序列的子对齐。使用RST公司树,所有的基础都位于树的叶子上,而子对齐是通过森林连接来连接的。我们设计了新的核心签名斯特拉2下列的STRAL公司,保留模拟操作的名称,但调整类型。基本匹配和基本对匹配的编辑操作是对称的,并且在STRAL公司2,它们各自产生一个操作员: b条 _ 比赛 一对 “不更改”规则也是对称的,并产生一个名为~的运算符。由此产生的ICORERNATreeAli公司如第127页所示。
同时RNATreeAli公司仅重新制定StructAli公司基于树表示,我们可以使用更一般的树编辑操作概念,通过感兴趣的特定案例来丰富我们的编辑模型。我们再举一个例子。
算法07 00062 i023
例20。这个铁响应元件是铁蛋白途径中的一个调控结构基序。它由一个“C”突起组成,是一个由碱基对螺旋放射出来的单个胞嘧啶核苷酸。凸起可以位于螺旋转弯的上游或下游,如下所示:
ACGCAGUGGACACCGU ACGAGGACCGU
(((.(((....))))))            ((((((....))).)))
有意义的树对齐可能应该为两个“C”凸起选择索引,并与其余结构匹配,如
ACGCAGUGGACACU-CGU公司
(((.)((….))-)
(((-(((....))).)))
ACG-AGUGGACACUCCGU公司
两个索引的惩罚可以使该对齐淹没在次优候选空间中。通过附加的编辑操作(例如
P(P) ( C类 P(P) ( b条 X(X) ) 电子 ) P(P) ( P(P) ( b条 X(X) ) C类 电子 )
请注意,此编辑操作仅适用于凸出核苷酸是胞嘧啶的情况(C类)。我们需要这个规则,因为从生物学角度来看,凸起是发夹环的上游还是下游并不重要。通过编辑操作捕获了它,我们可以将这种情况视为完美匹配。事实上,我们甚至可以为这个编辑操作指定一个额外的分数,因为在存在序列变异的情况下,这种情况为保守的结构特征提供了进化证据。□
在本文所述的一般性中,树对齐问题在文献中尚未研究。对于特定的编辑操作集,例如与RNA结构一起使用,实现是已知的。然而,总的来说,这个模型是一个开放的实现挑战。广义树对齐是我们在本次ICORE框架阐述中考虑的最普遍的问题,因此,该问题的解决是整个ICORE架构实施的中心问题。这一挑战的一些方面将在第10.2条.

8.赋值代数及其乘积

到目前为止,我们主要关注各种优化问题的搜索空间建模。我们的重点是签名、重写规则和语法。我们给出的评估代数很简单,甚至忽略了。如图所示,它们是一种得分的例子,可以作为我们期望目标的基础。只要我们考虑到每个ICORE使用特定的代数。在实际应用中,人们更容易处理多个代数的组合,称为代数乘积。产品并没有正式扩展我们方法的功能,因为每个产品也可以手工编码为单个代数。在编程效率方面的收益来自这样一个事实,即我们可以从更简单的分析中创建更精细的分析,而无需更改tried-and-tested代码。
在代数动态规划中,全部的得分方面在代数中被捕获。它们独立于语法和重写规则。因此,贝尔曼原理只能通过代数来建立。这本身就是一个优势,因为随着建模思想的发展,我们可以单独实验代数、树语法或重写系统。
这种搜索空间和求值的完美分离的第二个好处是,可以在同一签名上定义两个代数上的高级“乘积”运算。 G公司 ( A类 * B类 , x个 ) 分析基于A类B类,取决于“*”的精确定义。从那以后 A类 * B类 只是另一个代数,我们可以建立 ( A类 * B类 ) * C类 , ( A类 * B类 ) * ( C类 * D类 ) 因此,我们可以用一次击键从简单的评分方案中构建出复杂的评分方案,如果我们的框架理解并实现了产品操作,我们就不需要修改代码。用经典ADP定义了三种此类产品[42],a笛卡尔,一个词典编纂的,和交错的产品。让我们回顾一下最通用的定义。
定义7。 设A,B是签名上的两个代数Σ.这个词典产品 A类 * B类 是上的求值代数Σ根据 ( A类 * B类 ) ( t吨 ) = ( A类 ( t吨 ) , B类 ( t吨 ) ) 并应用目标函数
ϕ A类 * B类 [ ( 1 , b条 1 ) , , ( , b条 ) ] = [ ( , 第页 ) 设置 ( ϕ A类 [ 1 , , ] ) , 第页 ϕ B类 [ 第页 ( , 第页 ) [ ( 1 , b条 1 ) , , ( , b条 ) ] , = ] ]
哪里 设置 将多个值集减少为一组。□
大写:搜索空间根据A类,由此产生的候选人将根据B类当两个代数都在某种排序下优化时,它们的乘积在两个排序的字典组合下进行优化;这激发了产品的名字。但是,在涉及的一些代数没有执行优化的情况下,词典产品也很有用。
为了演示此产品操作的多功能性A类B类是两个具有不同优化目标的得分代数,C类一个“计数”代数,为每个候选人分配1分,以及ϕ总结分数,D类从每个候选对象计算分类属性的代数,以及P(P)从候选者中计算打印表示的代数。对于D类P(P),ϕ是标识,即不执行优化。例如, G公司 ( P(P) , x个 ) 只需打印搜索空间中的所有候选人x个。我们在表2可以通过以下方式实现的一些分析 A类 , B类 , C类 , D类 、和P(P)在词典产品中。上述三种乘积运算均已在Bellman的GAP系统中实现,用于经典代数动态规划[16,42],在现实世界的应用中被证明是有用的;他们也应该与ICORE合作。
表2。定义7中给出的字典乘积在不同种类的代数中的各种用途。
表2。定义7中给出的字典乘积在不同种类的代数中的各种用途。
代数乘积计算备注
A类最佳得分低于A类
B类最佳得分低于B类
A类 * B类 词典编纂下的最优
订购于 ( A类 × B类 )
C类候选空间大小避免指数爆炸!
A类 * C类 共优得分和数量
以下候选人A类
A类 * B类 * C类 共优得分和数量
以下候选人( A类 × B类 )
P(P)所有候选人的代表完成枚举!
A类 * P(P) , A类 * B类 * P(P) 分数和表征亦称为
共优候选人共优回溯
D类分类属性所有候选人的属性
所有候选人中(本身没用)
D类 * A类 , D类 * A类 * B类 每个人的最佳得分“机密”DP
由指定的类别D类
D类 * A类 * P(P) , D类 * A类 * B类 * P(P) 选择。分数和候选人
对于每个类
D类 * C类 每个班级的人数
(候选人人数)

9.与其他形式模型的关系

本节涵盖了ICORE与早期方法的关系,也证明了我们在定义ICORE时的一些决定是合理的。我们首先回顾代数动态规划(ADP)[13]、Searls传感器[43]和Lefevbre的s属性语法[11]. 然后,我们讨论了为什么ICORE不是图灵完备的,以及为什么语法在ICORE定义中是强制性的,以保证模型的完全表达性。
算法07 00062 i024

9.1. 被视为ICORE的“经典”ADP算法

ICORE建立并扩展了ADP的框架。到目前为止,ADP仅针对输入为序列的问题制定[13,42]而ICORE也可以处理有序树。但从ADP到ICORE的转变不仅仅是输入数据类型的改变。在ADP中,树语法负责定义搜索空间将其候选项与输入序列相关联。一个名为产量分析作为ADP计划实施的基础机制。对于ICORE,树语法只负责定义搜索空间全部的问题实例,而与具体问题实例的关系是通过逆耦合重写关系建立的。这带来了更强大的表达能力,但以yield解析器的风格直接实现已不在手边。ADP和ICORE的共同点是通过得分代数评估搜索空间。
声称ICORE在数学上严格地包含ADP,我们应该说明ADP算法是如何重新编码为ICORE的。从形式上讲,ADP在字母表、树语法和签名上使用输入序列,但没有重写规则。设∑是字母表上的签名 A类 .树语法 G公司 over∑表示树的语言, ( G公司 ) T型 Σ 像往常一样。屈服线 ( t吨 ) 一棵树 t吨 T型 Σ 是其叶子符号的字符串 A类 ,按从左到右的顺序。 E类 是具有目标函数的∑-代数ϕ,并让 x个 A类 * 成为我们的输入序列。ADP问题实例由定义 G公司 , E类 、和x个。其解决方案是
G公司 ( E类 , x个 ) : = ϕ [ E类 ( t吨 ) | t吨 ( G公司 ) , ( t吨 ) = x个 ]
其中方括号表示多集。表达上述定义的另一种方式是(其中∘表示函数组成和 E类 ( . . . ) 计算为多集。)
G公司 ( E类 , x个 ) = ( ϕ E类 ) ( - 1 ( x个 ) ( G公司 ) )
计算过程 - 1 ( x个 ) ( G公司 ) 称为收益解析,自顶向下或自下而上的收益解析器是ADP实现背后的基本引擎。
ADP规范由 Σ , G公司 E类 转换为等效的ICORE,如下所示:
标志性建筑示意图_ADP引入卫星签名 S公司 E类 对于输入序列,使用∑作为核心签名,并保留树语法。在改写形式规则中, x个 x个 j个 是不同的变量,即使在 X(X) X(X) j个 是相同的非终结符,右侧生成的屈服字符串的一部分 t吨 ( x个 1 , . . . , x个 k个 ) .记住t吨不能是单个变量,因为术语重写了形式规则 x个 不允许。因此,连锁生产 X(X) Y(Y) 在里面 G公司 不能导致重写规则,这就是为什么我们需要保留 G公司 作为ICORE中的语法,而不是简单地将其替换为 T型 Σ 通过构建,本ICORE中的规则重写了一个核心术语 t吨 ( G公司 ) 至其屈服线 ( t吨 ) A类 * 。构造此特定关系的逆关系是产量分析。因此,等式(19)和ICORE中评估了同一组核心术语示意图_ADP根据定义4)。
上述结构是针对单输入n个ADP程序给出的。对于多个输入序列,ADP使用多轨迹树语法。在这种情况下,语法的每个轨迹都会在耦合的重写规则中产生一个组件。这证明了ADP和ICORE问题规范中搜索空间的等价性。
在评估代数方面,ICORE和ADP之间没有区别。尤其是产品运营 * , 代数上的、和×[42],如*in的草图所示第8节,结转至ICORE并提供ADP已经体验过的编程便利。

9.2. 字母传感器被视为ICORE

第1.3节,我们提到了Searls的工作,他基于一类传感器提出了编辑距离的一般形式化,称为编辑[43]. 我们在这里表明,编辑的一般机制,以及更普遍的任何传感器,都可以嵌入到ICORE的框架中。以下[43],让 R(右) 是加权有限换能器,由
  • 有限状态集
  • 一组初始状态,
  • 输入字母表 Σ 1
  • 输出字母表 Σ 2
  • 加权转移关系 δ × × ( Σ 1 { ε } ) × ( Σ 2 { ε } ) × R(右)
图13。用于编辑字符串距离的转换器:简单的编辑距离(左)和具有仿射间隙权重的编辑距离(右)。在塞尔的术语中,这些传感器被称为编辑.
图13。编辑字符串距离的传感器:简单编辑距离(左)和使用仿射间隙权重编辑距离(右)。在塞尔的术语中,这些传感器被称为编辑.
算法07 00062 g013
算法07 00062 i025
这样的转换器编辑序列u个按顺序排列v(v),重写中的每个字符u个就一次。每一步都会在δ,转换权重总和为导数的权重。最小权重的推导指定了u个进入之内v(v).图12显示了两个传感器示例。
我们可以通过以下方式构建维度2的相应ICORE。
我们有以下属性:字符串v(v)在里面 Σ 2 * 是的输出u个在里面 Σ 1 * 对于 R(右) 访问州列表 第页 1 , , 第页 n个 和重量α如果且仅当存在一个核心术语t吨,字符符号 u个 1 , , u个 n个 ( Σ 1 { ε } ) ,字符符号 v(v) 1 , , v(v) n个 ( Σ 2 { ε } ) 这样的话
  • u个 = u个 1 u个 n个 , v(v) = v(v) 1 v(v) n个
  • t吨 = 操作 第页 1 第页 2 ( u个 1 v(v) 1 , 操作 第页 2 第页 ( u个 2 , v(v) 2 , 操作 第页 n个 - 1 第页 n个 ( u个 n个 , v(v) n个 , mty公司 ) )
  • t吨属于语法的语言 G公司
  • u个 * t吨 * v(v)
  • t吨计算结果为α
例21。 (字符串编辑距离)Searls和Murphy表明,两个字符串的(加权)编辑距离可以通过(加权)单状态传感器计算,而仿射间隙权重的编辑距离需要三种状态(参见图12)。很容易验证,当我们应用上述结构时,我们达到了ICORE编辑距离仿射属于第4.2节第5.1节分别。□

9.3. 多带S属性语法

列斐伏尔观察到西尔斯的转换器可以用生成两个字符串的正则语法来描述[11]. 他建议使用无上下文语法和几个输入“磁带”进行比较结构分析,命名为多磁带S属性文法(MTSAG)。结构评估通过属性文法建模[12]. 其最简单的形式仅使用合成属性,允许通过动态编程中使用的纯自下而上策略进行属性评估。Lefebvre为MTSAG建议了一个特殊的解析器,它比CYK算法更适合语法的实际复杂性。他通过1带MTSAG对SCFG进行建模,通过2带MTSAG对Sankoff算法进行建模,以及通过在两个带上读取相同序列的MTSAG对一类受限的假节点进行建模。虽然充满了创新的想法,但这一工作并没有被其他人继续,可能是因为非常专业的解析技术。ICORE可以模拟MTSAG,其中(1)所有输入必须是字符串;(2) 在右侧树高为1或0的情况下使用“平面”树语法,并且(3)核心签名为每个语法规则保留一个函数,用于计算合成属性。第(3)点放弃了搜索空间构造和求值的独立性,我们将在同一签名上放松语法和代数的灵活组合。

9.4. 图灵机与ICORE之间的关系

我们在事实1中表明,ICORE不能应用于无法确定的问题。然而,众所周知,作为一种形式主义,重写系统是图灵完备的。在[44]Huet和Lankford通过术语重写系统来模拟图灵机,这样当且仅当相应的术语重写系统针对所有术语终止时,给定的机器会以相同的结果停止。我们在这里给出了在ICORE框架内对这种编码的初步修改,以强调可判定性和不可判定性之间的边界。我们将看到,我们将面临一个强制性的限制,即在ICORE中,术语的任何部分都不会被重写两次。
考虑一个带有磁带字母表的单磁带图灵机 A类 ,状态集,和转换函数δ。我们引入了一个二进制运算符符号 它将机器的当前状态和从磁带单元读取的符号作为参数。我们将图灵机的配置表示为一个术语
1 . . . . - 1 ( q个 , ) + 1 . . . n个
其中磁带上的有限信息是 1 . . . . - 1 + 1 . . . n个 ,机器处于状态q个,读写头位于单元格上.
算法07 00062 i026
由于ICORE定义为反向重写系统时,图灵机计算的结果是核心项,而ICORE规则向后运行图灵机转换。
算法07 00062 i027
请注意,在这些规则中,b条不是变量,而是每个字母符号一条规则的简写符号,编码图灵机的转换表。所以,所有规则都是合法的重写规则。例如, ( , b条 ) ( q个 , ) b条 表示处于状态q个、磁带内容头部下方改为 ,机器进入状态,并且当应用此规则的相反规则时,头部向右移动。
图灵不是合法的ICORE,因为运营商 发生在重写规则的两侧。这在定义1中已被明确禁止:核心签名和附属签名应不相交,以便核心术语中的位置只能重写一次。那么这个例子告诉了我们什么?这表明,允许任意重写序列将使我们进入图灵机器的领域。虽然有可能以可控的方式放松这一限制,但完全放弃它将使ICORE图灵变得完整,我们再也不希望通过动态编程实现自动化和高效的ICORE实现。

9.5. 语法和重写规则之间的权衡

ICORE提供了两种方法来定义给定输入的搜索空间,即有意义的候选解决方案的核心术语集:(1)给定核心签名C类,树语法G公司将搜索空间限制为 ( G公司 ) ,的子集 T型 ( C类 ) (许多ICORE仅仅使用全套 T型 ( C类 ) .)(2)重写规则如下: ( G公司 ) 无论输入是什么,都无法重写。它们不在重写关系的反面,根据定义4,它们不是候选对象。在某些情况下,这两种机制之间似乎存在权衡。我们用以下序列比对问题来说明它,这是对ICORE的改进编辑距离.
假设我们正在校准蛋白质编码的DNA序列。遗传密码中的单词由三个核苷酸组成。因此,我们强加一个条件,即所有间隙的长度都可以被3整除。我们为这个问题绘制了两个ICORE变体,以证明上述权衡。
第一种选择是修改重写规则,使之仅能减少合法对齐的核心术语。
规则
b条 c(c) X(X) 德尔 ( , 德尔 ( b条 , 德尔 ( c(c) , X(X) ) ) ) X(X)
X(X) 英寸 ( , 英寸 ( b条 , 英寸 ( c(c) , X(X) ) ) ) b条 c(c) X(X)
这组规则定义了部分重写关系。带有单元素删除的核心术语,例如。 代表 ( , b条 , 德尔 ( c(c) , 代表 ( 电子 , (f) , X(X) ) ) ) 根本无法重写。这是有意的,因为该术语对编辑方案中未授权的对齐进行编码。
另一种方法是为核心术语指定更严格的语法:
语法
S公司 * 德尔 ( , D类 1 ) | 英寸 ( , 1 ) | 代表 ( , b条 , S公司 ) | mty公司 D类 1 德尔 ( , D类 2 ) D类 2 德尔 ( , S公司 ) 1 英寸 ( , 2 ) 2 英寸 ( , S公司 )
这与上面的部分重写关系具有相同的效果:索引以三个一组的形式出现,违反这种关系的对齐不再出现在搜索空间中。在这里,我们可以使用原始的、更简单的重写规则,例如 德尔 ( , X(X) ) X(X) 和完全重写关系,因为语法禁止格式错误的间隙项。
考虑到这种权衡,人们可能会问,树语法对于ICORE的建模能力是否是严格必要的(除了方便之外)。
事实4。 树语法是ICORE中的一个必要概念。
证明。我们给出了一个具体的例子,其中语法施加的搜索空间限制不能通过重写关系来表示。仿射间隙模型下的召回序列比对仿射属于第5节.我们有一些 n个 > 1
n个 + 1 打开 _ 德尔 ( , { 德尔 ( , } n个 mty公司 { ) } n个 ε
这意味着(对于有限重写系统,我们可以要求达到k个嵌套的 德尔 操作只能与前导字符一起重写 打开 _ 德尔 ,但是k个必须是一个常数n个是任意的。)那个
n个 { 德尔 ( , } n个 百万年 { ) } n个 ε
因此,如果没有语法,这个畸形的术语就在搜索空间中,在通常的评分方式下,它的得分甚至比合法的还要高
打开 _ 德尔 ( , { 德尔 ( , } n个 - 1 mty公司 { ) } n个 - 1
因此,语法需要禁止搜索空间中的错误对齐。☐
我们推测,通过定义更复杂的重写关系,可以将语法从ICORE框架中删除。然而,我们发现最好将两种简单且众所周知的机制结合使用,而不是使用一种单一但更复杂的机制。

10.结论

ICORE在组合算法的开发中有两个目的。首先,它们允许以简洁和声明的方式指定算法问题,这样可以在相关问题之间重新使用想法,并且可以分析、细化或组合问题,而不会受到实现细节的阻碍。在本文中,我们已经检查了所有这些方面,我们希望前面的章节能够有力地证明这一美德。其次,ICORE可能成为无痛算法实现的起点。人们可以大胆地想到ICORE语言和编译器,这样的系统可以根据规范自动生成原型实现甚至竞争代码。我们在结束研究时回顾了在第一个问题上取得的成就,并概述了实现第二个目标必须掌握的研究挑战。

10.1. ICORE作为声明性规范框架

应用范围。我们带读者参观了分子序列和结构分析中出现的大约30个动态编程问题。这些包括各种模式的成对序列比较、序列中的模式匹配、单个序列的结构预测和成对序列的一致性结构预测。结构与各种树编辑模型进行了比较。序列和结构家族编码为HMM或SCFG。将经典生物信息学算法系统地打扮成ICORE,我们也获得了一些新的见解。
  • 在本文的介绍中,我们非正式地指出,用于一致性结构预测的Sankoff算法可以被视为同时运行两个RNA折叠和一个序列比对算法。在创建桑苛夫ICORE,我们实际上复制了两倍于RNA折叠并从中导入了两个规则编辑距离–这是完整的桑苛夫规范。
  • 我们认为,我们对协方差模型构建的描述分为三个步骤RNA折叠通过桑苛夫S公司2S精确CM(_r)比我们在文献中发现的更系统,特别是它指出了RNA折叠作为协方差模型设计中的模型架构。可以从不同的模型架构开始,然后以相同的方式继续。
  • 通用协方差模型S公司2S通用桑科夫变种SimFold公司广义树编辑模型的示例如下RNATreeAli公司是新的算法问题,值得进一步研究。
通过这个旅游地平线,我们希望能够说服读者,ICORE对于算法设计来说是一个有用的概念,并且它们的自动化实现值得进行大量的研究。
在这项工作中,我们一直没有解决ICORE的形式表达性问题:我们如何限制ICORE可以做什么?我们已经表明,ICORE并不是图灵完整的。这不足以让我们了解可以实现什么方便地使用ICORE。显然,如果问题没有序列或树结构输入,我们的机器就不适用。这适用于运筹学中研究的一大类动态规划问题(参见例如[45])或者在图论中。(考虑背包问题是有益的,其中n个给出了具有个体重量和效用的项目。应包装一个实用性最强的背包,其总重量不得超过W公司这是一个NP完全问题,它是由运行于 O(运行) ( n个 W公司 ) 。在一个维度中,递归遍历项列表,仅从项1到项中进行选择在每个步骤中。这个维度很容易在ICORE中捕获背包,按照一定的顺序阅读可用项目列表,并做出是/否的决定。另一个维度在权重上从0递归到W公司。这要求我们进行传统风格的动态编程在得分代数中通过保持多组部分实用程序按权重排序,或通过计算每个步骤按权重索引的单个最佳效用向量。另一种选择是在大小树语法中对权重递归进行编码W公司……在这两种情况下,我们都认为使用ICORE方法解决这个问题没有任何好处。)
请注意,ICORE并不局限于多项式时间问题。输入的逆重写图像通常具有指数大小。我们的目标函数可以计算不止一个结果,而且它们经常这样做。“分类”动态规划[16]使用产品 A类 * B类 对得分代数进行优化B类以类为单位,基于代数计算的分类属性A类.RNA序列的概率形状分析[46]是一个类的数量是(温和的)指数的实际情况。并且将3SAT编码为ICORE并不困难,从而产生指数时间算法。所以问题是:可以方便地做什么有效地使用ICORE?我们未来研究的希望和目标是表明,如果序列或树上的一类问题有一个已知的、有效的动态规划解决方案,那么我们可以对ICORE等问题进行建模。
建造ICORE的限制和好处。ICORE基于一小部分易于理解的形式概念:代数、语法和重写系统。尽管这些概念可能对任何计算机科学毕业生都很熟悉,并且具有很强的直觉吸引力,但我们知道设计ICORE需要一些规则。
假设Paul是一名程序员,具有以经典、非代数方式实现动态编程算法的经验。当Paul面临新问题时,他最不会想到的是设计一个数据类型来显式地表示搜索空间中的候选对象。事实上,动态编程的效率来自这样一个事实,即没有显式地构造候选对象。动态编程只从(一些)候选中导出分值,对于最优的一个或多个,回溯构建(仅)可视化。最终打印在输出中的内容不需要完整详细地反映使该特定候选人成为最佳人选的案例分析。因此,根据Paul的经验,不需要候选数据类型。事实上,当我们看当今的算法教科书时,例如[47,48],没有一种情况会引入这样的数据类型。对于ICORE,Paul必须明确声明一个核心签名,在该签名上,术语代表候选解决方案。整个问题现在分为三部分:语法定义了通用搜索空间,重写规则定义了问题实例的搜索空间(作为问题输入的逆重写图像),代数提供了评分和优化目标。如果Paul计划做的只是在一个简单的评分方案下解决一个单一的优化问题,那么所有这些机制都必须显得多余和冗长。然而,我们希望已经证明,这种从核心签名中产生的关注点分离,对我们如何在更复杂的应用场景中开发规范具有深远而有益的影响。
  • 搜索空间的定义与任何得分代数无关。我们可以用交互模型进行实验,我们可以改进规则和/或语法,例如,从搜索空间中删除格式错误的候选对象(而不是欺骗 ± ) 我们可以测试搜索空间的大小是如何受设计决策的影响的,而不受评分的影响。我们可以通过研究语法的属性来担心问题分解的(非)模糊性。
  • 在评估候选签名时,我们可以在给定签名上构造任意代数。对于每一种情况,我们都需要证明它满足贝尔曼原理。幸运的是,这与搜索空间及其构造方式无关。
  • 重写系统和代数可以以模块化的方式正确组合,从而承载组件重用和易于修改的软件工程原则。
  • 最后,如所示第8节在代数上定义乘积运算并从较简单的代数中产生精细分析的能力也是由于搜索空间和候选值的完美分离。

10.2. ICORE实施中的研究挑战

在本文中,我们尚未解决如何从ICORE规范自动生成实现的问题。ICORE实现必须首先引入动态编程机制,使我们能够在多项式时间内评估指数大小的搜索空间。除此之外,它应该实现最佳的渐近时间效率,最小化所需的动态编程表的数量,并为手头的特定ICORE实现合理的恒定运行时因子。Bellman的代数动态编程GAP系统也进行了类似的工作[16]. 这使我们对ICORE可以实现的目标感到乐观。我们回顾了一些问题、陷阱,并勾画了一些研究路线。
ICORE原型。ICORE可以很容易地用函数逻辑语言进行编码。在这样的语言中,我们可以定义一些函数(f),指定一个值并解决等式查询,例如 (f) ( x个 ) = ,生成的所有实例x个满足查询等式的。我们使用了函数逻辑语言咖喱[49]原型化ICORE编辑Ditance树对齐当然,这种语言的标准推理机不知道这种特定类型的查询可以通过动态编程在多项式时间内求解。它实际上在指数大小的搜索空间上实现了生成和测试策略。在合理的时间内,我们最多只能对齐五个节点的树。尽管如此,这还是一种快速的方法来测试给定的ICORE是否做了它应该做的事情哈斯克尔,或戴纳也可以被视为宿主语言[50,51].
实施ICORE。针对更具竞争力的实现,为了有效地实现给定问题实例的反向重写映像的构造和评估,必须解决相当多的技术问题。
  • 搜索空间构造:语法和重写规则必须联合使用,通过交叉枚举核心术语并将其重写到输入来构造搜索空间。这本质上是一个自上而下的过程。
  • 重写模关联性:在需要的地方,这本身就对上述实现提出了挑战。
  • 生成循环:通过代数进行候选评估很简单,但本质上是一个自下而上的过程,必须与搜索空间构造结合起来。这种合并采用必须生成的动态编程循环的形式。
  • 制表设计:为了避免因过度重新计算中间结果而导致指数爆炸,使用了制表。这涉及到关于制表内容的决策,以及如何有效地将子问题映射到表条目。
  • 重复分析:ICORE允许非线性重写规则,这是一个特殊的挑战。变量可以在规则的右侧重复。一个核心术语的两个副本自然会在卫星中重写为相同的子术语,实现时必须注意利用这一事实。
  • 表格数量、尺寸和大小:虽然将每个中间结果制成表格在数学上都是正确的,并且是渐近最优的,但空间效率要求仔细分析动态编程表格的数量、它们的尺寸和大小。
  • 产品优化:某些任务可以方便地表示为代数产品,但对于竞争代码,它们需要比产品代数的通用实现更高效的技术。有两种情况是完全回溯(用于近最优解)和随机抽样(基于随机得分代数)。对于树上的组合优化问题,还没有此类技术的报告,ICORE的实现必须在这方面覆盖新的领域。
先进的理论。为了确保ICORE通过动态编程技术正确实现,评估代数必须满足Bellman的最优性原理。对于最初由程序员编写的每个代数,贝尔曼原理的证明仍然是一项正式的义务。但由给定代数乘积构造的代数又如何呢?通过按键,可以从简单的分析中组合出新类型的精细分析。通常,Bellman原理是用乘积代数来保存的,但一般来说,这并不能保证!在这种情况下,似乎有两种途径可以帮助程序员。(1) 人们可以寻求一般定理——产品保持贝尔曼原理的条件;(2) 人们可能会从指定的产品中自动生成证明义务,并希望在自动定理证明器的帮助下验证或反驳它们。这两个问题尚待调查。
走向ICORE语言。为了实现ICORE,我们在这里使用的伪代码符号必须改进为具体的语言设计。在几个方面,必须平衡严谨与有益冗余。
  • 纯粹主义者可能会说签名声明实际上是多余的,因为它们可以从重写规则以及代数中推断出来。
  • 编程语言设计者会争辩说,一定程度的冗余是必要的,以防止用户错误,并允许编译器给出有用的错误消息。
  • 软件工程师会指出需要与不断发展的程序一起工作,例如,要有一个签名,其中并非所有操作符都用于特定的重写系统,但已经包括在计划的细化中。
总之,ICORE在编程方法和组合优化软件支持方面提出了一系列有趣的研究挑战。

致谢

感谢Michael Hanus和Benedikt Löwes在函数逻辑语言中实现两个ICORE方面的帮助咖喱也感谢B.Löwes对文本的仔细阅读。我们也很欣赏匿名审稿人的工作,他们承担了完成这份冗长手稿的重任。

利益冲突

作者声明没有利益冲突。

词汇表

变量约定
符号用于
F类 , G公司 签名
A类 , B类 , C类 求值代数
, b条 , c(c) , . . . 字母字符的变量
, t吨 核心术语的变量
x个 , , z 某些代数下核心项的值
w个子rms或其值的多集合
X(X) , Y(Y) , Z 规则中的子rm变量
定义
观念意思在第节中定义
变量集机械
T型 ( F类 , ) 签名上的项代数F类和变量集机械
相联运算符任何需要的签名
¦Β带有~的中性元素无论在何处
G公司 some上的树语法F类机械
( G公司 ) 的语言 G公司 ,的子集 T型 ( F类 ) 机械
A类 ( t吨 ) 期限价值t吨在代数下A类机械
A类 各种字母需要时
命名约定
例子惯例用于
汉明小型资本ICORE名称
RNA结构小型资本语法名称
分数小型资本求值代数名称
S公司 E类 , S公司 T型 R(右) 三/四个大写字母,斜体签名姓名
德尔 , 英寸 打字机字体签名运算符
“a”、“b”、“<”单引号中的符号,打字机字体混凝土字母符号

工具书类

  1. R.E.贝尔曼。动态编程; 普林斯顿大学出版社:普林斯顿,新泽西,英国,1957年。[谷歌学者]
  2. D.古斯菲尔德。字符串、树和序列的算法:计算机科学和计算生物学; 剑桥大学出版社:英国剑桥,1997年。[谷歌学者]
  3. Needleman,S.B.公司。;Wunsch,C.D.一种适用于搜索两种蛋白质氨基酸序列相似性的通用方法。分子生物学杂志。 1970,48, 443–453. [谷歌学者] [交叉参考]
  4. T.F.史密斯。;Waterman,M.S.常见分子子序列的识别。分子生物学杂志。 1981,147, 195–197. [谷歌学者] [交叉参考]
  5. Sankoff,D.同时解决RNA折叠、排列和原序列问题。SIAM J.应用。数学。 1985,45, 810–825. [谷歌学者] [交叉参考]
  6. Ferch,M。;张杰。;Höchsmann,M.学习状态-动作空间的图形表示的协作装配。2002年9月30日至10月4日,瑞士洛桑EPFL,IEEE/RSJ智能机器人和系统国际会议记录。
  7. Reis博士。;Golgher,P。;席尔瓦,A。;使用树编辑距离自动提取网络新闻。2004年5月17日至22日在美国纽约州纽约市ACM举行的第13届国际万维网会议记录;第502-511页。
  8. Searls,D.B.研究DNA和定冠词语法的语言学。北美逻辑编程会议记录; Lusk,E.,Overbeck,R.,编辑。;麻省理工学院出版社:剑桥,马萨诸塞州,美国,1989年;第189-208页。[谷歌学者]
  9. Searls,D.B.生物序列的计算语言学。人工智能与分子生物学; Hunter,L.编辑。;AAAI/MIT出版社:美国马萨诸塞州剑桥,1993年;第47-120页。[谷歌学者]
  10. Searls,D.B.生物序列的语言方法。CABIOS公司 1997,13,333–344。[谷歌学者] [交叉参考] [公共医学]
  11. 列斐伏尔。几种对齐和折叠算法的基于语法的统一。AAAI智能。系统。分子生物学。 1996,4, 143–154. [谷歌学者]
  12. Knuth,D.E.上下文无关语言的语义。理论计算。系统。 1968,2, 127–145. [谷歌学者] [交叉参考]
  13. Giegerich,R。;迈耶,C。;Steffen,P.序列数据动态编程的一门学科。科学。计算。程序。 2004,51, 215–263. [谷歌学者] [交叉参考]
  14. Giegerich,R。;Steffen,P.编译动态编程领域特定语言的挑战。2006年4月23日至27日在法国第戎举行的2006年ACM应用计算研讨会会议记录;Haddad,H.,编辑。;
  15. Höner-zu-Siederdissen,C.在concatMap周围潜行:动态编程的高效组合子。2012年9月10日至12日在丹麦哥本哈根举行的第17届ACM SIGPLAN功能编程国际会议记录;ACM:美国纽约州纽约市,2012年。12年ICFP。第215-226页。[谷歌学者]
  16. Sauthoff,G.公司。;Möhl,M。;詹森,S。;Giegerich,R.Bellman的GAP-A语言和编译器,用于序列分析中的动态编程。生物信息学 2013,29, 551–560. [谷歌学者] [交叉参考] [公共医学]
  17. 巴德,F。;T.尼普科。术语重写和所有这些; 剑桥大学出版社:英国剑桥,1998年。[谷歌学者]
  18. Ohlebusch,E。学期改写高级主题; 施普林格:美国纽约州纽约市,2002年。[谷歌学者]
  19. Gotoh,O。一种用于匹配生物序列的改进算法。分子生物学杂志。 1982,162, 705–708. [谷歌学者] [交叉参考]
  20. 杜宾,R。;Eddy,S.R。;克罗,A。;G.米奇逊。生物序列分析:蛋白质和核酸的概率模型; 剑桥大学出版社:英国剑桥,1998年。[谷歌学者]
  21. Giegerich,R.解释和控制动态编程中的歧义。组合模式匹配研究进展;施普林格:美国纽约州纽约市,2000年;第46-59页。[谷歌学者]
  22. Nussinov,R。;捷克共和国。;格里格斯,J。;Kleitman,D.循环匹配算法。SIAM J.应用。数学。 1978,35, 68–82. [谷歌学者] [交叉参考]
  23. 贝克,J.K.,《语音识别可训练语法》。J.声学。美国南部。 1979,65, 54–550. [谷歌学者] [交叉参考]
  24. Sakakibara,Y。;布朗,M。;Hughey,R。;我·棉恩。;Sjölander,K。;安德伍德,R。;Haussler,D.使用随机上下文无关语法进行RNA建模的最新方法。1994年6月5日至8日,美国加利福尼亚州阿西洛马,《组合模式匹配》;第289-306页。
  25. 道威尔,R。;Eddy,S.评估几种用于RNA二级结构预测的轻量级随机无上下文文法。BMC生物信息。 2004,5, 71. [谷歌学者] [交叉参考] [公共医学] [绿色版本]
  26. 姜涛(Jiang,T.)。;林·G。;马,B。;Zhang,K。RNA结构之间的一般编辑距离。J.计算。生物。 2002,9, 371–388. [谷歌学者] [交叉参考] [公共医学]
  27. 姜涛(Jiang,T.)。;Wang,L。;Zhang,K.树木对齐——一种替代树木编辑的方法。西奥。计算。科学。 1995,143, 137–148. [谷歌学者] [交叉参考]
  28. T.J.Macke。;艾克,D.J。;R.R.古特尔。;Gautheret,D。;案件,地方检察官。;Sampath,R.RNAMotif,一种RNA二级结构定义和搜索算法。核酸研究。 2001,29, 4724–4735. [谷歌学者] [交叉参考] [公共医学]
  29. Reeder,J。;Reeder,J。;Giegerich,R.Lomotiif:从图形基序描述到RNA基序搜索。生物信息学 2007,23,i392。[谷歌学者] [交叉参考] [公共医学]
  30. Eddy,S.R。;Durbin,R.使用协方差模型进行RNA序列分析。核酸研究。 1994,22, 2079–2088. [谷歌学者] [交叉参考] [公共医学]
  31. Giegerich,R。;Höner zu Siederdessen,C.随机RNA家族模型的语义和模糊性。IEEE/ACM传输。计算。生物信息学。 2011,8, 499–516. [谷歌学者] [交叉参考] [公共医学]
  32. 加德纳,P。;Daub,J。;Tate,J。;Nawrocki,E。;科尔贝,D。;林德格林,S。;威尔金森,A。;R·芬恩。;Griffiths-Jones,S。;Eddy,S。;等。皇家医学会:RNA家族数据库更新。核酸研究。 2009,37,D136。[谷歌学者] [交叉参考] [公共医学]
  33. 罗塞洛,F。;最大公共子树和最小公共子树之间关系的代数视图。西奥。计算。科学。 2006,362, 33–53. [谷歌学者] [交叉参考]
  34. Chawathe,S.比较外部存储器中的分层数据。第25届超大数据库国际会议论文集,美国加利福尼亚州旧金山;1999; 第90-101页。[谷歌学者]
  35. Touzet,H.用间隙编辑树距离。信息处理。莱特。 2003,85,123-129。[谷歌学者] [交叉参考]
  36. 王卓志,K.Z.两种RNA结构的比对。计算机科学数学基础; 2001年8月25日至29日;布达佩斯;第690–702页。[谷歌学者]
  37. 巴科芬,R。;陈,S。;Hermelin,D。;兰道,G.M。;Roytberg,文学硕士。;O.魏曼。;Zhang,K.RNA比较中的位置和差距。J.计算。生物。 2007,14, 1074–1087. [谷歌学者] [交叉参考] [公共医学]
  38. Jansson,J。;新墨西哥州Hieu。;Sung,W.K.局部间隙亚林排列及其在发现RNA结构基序中的应用。J.计算。生物。 2006,13, 702–718. [谷歌学者] [交叉参考] [公共医学]
  39. Schirmer,S。;Giegerich,R.《带仿射间隙和锚的森林定线》。组合模式匹配; 施普林格:美国纽约州纽约市,2011年;第104–117页。[谷歌学者]
  40. 杜卢克,S。;树编辑距离问题的Touzet,H.分解算法。J.离散算法 2005,, 448–471. [谷歌学者] [交叉参考]
  41. Erik Demaine,Shay Mozes,B.R。;Weimann,O。树编辑距离的最优分解算法。ACM事务处理。算法 2009,6. [谷歌学者] [交叉参考]
  42. 索托夫,G。;詹森,S。;Giegerich,R.Bellman的GAP:动态编程的声明性语言。2011年7月20日至22日,在丹麦欧登塞举行的第13届ACM SIGPLAN声明式编程原理与实践国际研讨会论文集;ACM:美国纽约州纽约市,2011年。PPDP’11。第29-40页。[谷歌学者]
  43. Searls,D.B。;Murphy,K.P.自动机——突变和对齐的理论模型。在ISMB会议记录中,1995年;罗林斯,C.J.,克拉克,D.A.,奥特曼,R.B.,亨特,L.,朗格尔,T.,沃达克,S.J.,编辑。;第341-349页。
  44. Huet,G。;Lankford,D.关于术语重写系统的一致暂停问题。技术报告,Rapport Laboria 283,IRIA,1978年。[谷歌学者]
  45. W.B.鲍威尔。近似动态规划:解决维数问题; 威利国际科学:纽约,纽约,美国,2007年。[谷歌学者]
  46. 伏安,B。;Giegerich,R。;Rehmsmeier,M.完成RNA形状的概率分析。BMC生物。 2006,4,5。[谷歌学者] [交叉参考] [公共医学]
  47. Sedgewick,R。算法; 艾迪森·韦斯利:雷丁,马萨诸塞州,美国,2002年。[谷歌学者]
  48. 科尔曼,T。;Leiserson,C。;R铆钉。算法简介; 麻省理工学院出版社:美国马萨诸塞州剑桥,1990年。[谷歌学者]
  49. 布拉埃尔(Braßel,B.)。;哈纳斯,M。;Peemöller,B。;Reck,F.KiCS2:从curry到haskell的新编译器。第20届函数和(约束)逻辑编程国际研讨会论文集;施普林格:美国纽约州纽约市,2011年;第1-18页。[谷歌学者]
  50. 汤普森,S。哈斯克尔:函数式编程的技巧; 艾迪森·卫斯理:波士顿,马萨诸塞州,美国,2011年。[谷歌学者]
  51. 艾斯纳,J。;西北部菲拉多。Dyna:为现代AI扩展数据日志。数据日志2.0; Furche,T.、Gottlob,G.、Grasso,G.,de Moor,O.、Sellers,A.、Eds。;施普林格:美国纽约州纽约市,2011年。[谷歌学者]

分享和引用

MDPI和ACS样式

Giegerich,R。;H·图泽特。用逆耦合重写系统对序列和树上的动态规划问题进行建模。算法 2014,7,62-144。https://doi.org/10.3390/a7010062

AMA风格

Giegerich R、Touzet H。用逆耦合重写系统对序列和树上的动态规划问题进行建模。算法. 2014; 7(1):62-144.https://doi.org/10.3390/a7010062

芝加哥/图拉宾风格

Giegerich、Robert和H´el'ene Touzet。2014.“用反向耦合重写系统对序列和树上的动态规划问题建模”算法7,编号1:62-144。https://doi.org/10.3390/a7010062

文章指标

返回页首顶部