人类大部分基因组序列都是被垃圾DNA序列分隔成一段段,给定一个已知的目标蛋白质和基因组序列,在该基因组序列中找出一组子字符串(候选外显子),使得其拼接(剪接)与目标蛋白质最匹配(即去掉垃圾DNA序列)。一个强力方法是寻找基因组序列与目标蛋白质序列间的所有局部相似性。若第一个取自基因组序列的子字符串展示了充分相似性于目标蛋白质,那么这个子字符串可被认为是一个推定的外显子。
将推定外显子结构化为基因组序列中的赋权区间,它可用三个参数(l、r、w)来描述,l、r分别是推定的外显子的左边、右边的位置,w为其权重。权重w可反该区间是一个外显子的可能性。
链是不重叠赋权区间的任一集合,一个链的总权重是该链中所有区间的权重之和。
给定一个推定的外显子集,寻找非重叠的推定的外显子的一个最大集。
输入:赋权区间(推定的外显子)集。
输出:该集合中区间的最大链。
下列算法中,Si代表图G中终止于顶点Vi的最长路线的长度,S2n是外显子链接的解
EXONCHAINING(G,n)
for i<-1 to2n
Si<-0
for i<-1 to2n
if G中顶点Vi是某个区间I的右端点
j<-代表区间I左端点的顶点的序号
W<-区间I的权重
Si,-max{Sj+w,Si-1}
else
Si<-Si-1
return S2n