基于改进蚁群算法的DNA双序列比对
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于改进蚁群算法的DNA双序列比对
李方洁;刘希玉;陈洁
【摘要】序列比对是生物信息学中基本的信息处理方法之一.DNA序列比对分为多序列比对和双序列比对两种.本文首先分析了经典蚁群算法在双序列比对中的应用,然后针对经典蚁群算法收敛速度慢和陷入局部最优值等缺点进行改进,最后通过实验证明改进的智能蚁群算法在收敛速度和最优值方面都有较大的改进.
【期刊名称】《南京师大学报(自然科学版)》
【年(卷),期】2010(033)004
【总页数】5页(P148-152)
【关键词】蚁群算法;双序列比对;信息素
【作者】李方洁;刘希玉;陈洁
【作者单位】山东师范大学管理与经济学院,山东,济南,250014;山东师范大学管理与经济学院,山东,济南,250014;山东师范大学管理与经济学院,山东,济南,250014【正文语种】中文
【中图分类】TP301.6
序列比对(Sequence Alignment)是生物信息学中最基本的信息处理方法之一.生物信息学是利用计算机、网络等工具,采用数学和信息科学的理论和方法,主要研究生物大分子,比如蛋白质、核酸与DNA等,包括它们的序列结构和功能两个方面.序列比对是指通过对生物序列进行比较,来发现序列之间的相似性,并辨别它们之间的产异性,从而来发现生物序列中的功能、结构和进化等信息.
DNA序列比对分为双序列比对和多序列比对两种.Needleman和Wunsch于1970年提出了NW算法,基于1个二维矩阵F(n,m),利用最短距离的求解方法,找出最佳匹配路径[1].Smith和Water man于1981年提出了Smith-Water man算法,是一种用来查找并比较具有相似性的动态规划算法,在识别局部相似性时,具有较高的灵敏度[2].Pearson和Lipman于1985年提出了Fasta算法,该算法将查询序列中的所有字符都变成Hash表,然后再在数据库搜索时查询这个Hash表,以检索出可能的匹配.Altschul于1990年提出了Blast算法,基于片段匹配算法和统计模型来找出目的序列和数据库之间的最佳局部对比结果.以上提到的4种算法都是用于解决DNA双序列问题,4种算法在算法复杂度、鲁棒性和速度方面上都具有明显的优缺点.
定义对于给定的一组DNA序列S=(S1,S2,…,Sk),|Si|表示为某一条DNA序列
Si(i=1,2,…,k)的长度.序列Si中每个序列元素由给定的字母表Σ中的一个字符表示,DNA序列的字母表Σ={A,G,C,T},由4种核苷酸A、G、C、T组成.
在进行DNA序列比对时,需要进行替代、删除与插入等操作.空格“-”代表删除或插入操作时所产生的空位.在进行空位“-”插入或删除时,要求不存在全为空位的一列,即∀j,∃i,mij≠‘-’.其中DNA序列比对是一个k×l的矩阵M=(mij)k×l.x,y表示序列比对时第一条序列和第二条序列中的元素,对于x,y∈Σ∪{-},定义σ(x,y)为计分函数,表示为x,y比较时的得分,最简单的计分函数为:
在公式1中,两个序列元素x与y进行比对,若2个元素相同并且同时属于字母表,则得分为2;若2个元素不相等并且同时属于字母表,则得分为-1;若2个元素中有任意一个为空位,则得分为-2.
序列S和T形成的一个比对A,序列S′,T′是插入空位“-”后的序列S和T,则必须满足|S′|=|T′|,并且序列S′、T′去掉空位之后就是序列S和T.序列S′、T′形成的比对A的得分表示为score(A)=比对的得分越高,表示两组序列的相似性越高.而在进行
DNA双序列比对时,得分最高的比对是最好的比对算法.
蚁群算法(Ant ColonyAlgorithm),又称蚂蚁算法,是根据真实的蚁群集体活动而仿真设计出来的,是一种群体智能进化算法,是由意大利学者Macro Dorigo等人提出的一种随机搜索算法[4].它是继遗传算法、模拟退火算法、神经网络等算法之后的又一种启发式搜索算法.
蚁群算法最早是应用在TSP问题上,取得了很好的效果,后来与多种优化算法结合,得到了广泛应用,应用领域有:二次分配问题、图像处理、车辆疏导、电网分配、网络路由、图形着色等问题.蚁群算法的主要优点为鲁棒性强、分布式并行计算、易于实现并且易于与其他算法的结合.但是它也有一些缺点限制了其应用范围,例如:搜索时间较长、收敛速度将慢、容易陷入局部最优值等.近年来,许多学者对蚁群算法进行了改进,主要体现在减少搜索时间、加快收敛速度或是如何跳出局部最优值,并扩大其应用领域.
对于2条DNA序列S和T,若依据蚁群双序列比对模型(Ant Colony Pair wise AlignmentModel)生成的比对结果矩阵如下图1:
其中序列S=CGGATC,序列T=CGAATTC
则由上图可知,加入空格之后,得出的比对结果为:
主要步骤如下:
1)根据输入的2个DNA序列和公式1产生匹配矩阵,其中正数为原值,负数取倒数的绝对值,即相等的为2,不相等且无空格的为1,有空格的为0.5.例如,若2个序列元素不相等并且不为空格,根据公式1,得分为-1,则匹配矩阵中取倒数的绝对值,故取1;
2)分配每个蚂蚁由起点开始进行搜索,直到终点为止.如果搜索循环次数达到最大循环数或是连续N次最优值没有改变,则算法结束;
3)蚂蚁在搜索过程中,有右下方、下方和右方3个方向进行选择路径.首先产生1个随机数,如果这个随机数小于某个固定值P0,则选择右下方移动;如果这个随机数大
于该固定值,则需要计算3个方向的转移概率Pk,并根据轮盘赌法[5]在3个方向中决定1个方向进行移动.在这一步中,需要记录每只蚂蚁的转移路径和比对分数; 4)当蚂蚁走到最右方时,规定蚂蚁只能向下方移动;当蚂蚁走到最下方时,规定蚂蚁只能向右方移动.在移动过程中,如果蚂蚁向下方移动,则在T序列的相应位置加入一个空位“-”;如果蚂蚁向右方移动,则在S序列的相应位置加入一个空位“-”;
5)当所有蚂蚁到达终点时,则规定一轮搜索完毕.根据路径和得分来更新信息素矩阵,并记录最高分和平均分;
6)循环进入第(2)步.
3.1.1 转移概率的计算
在经典蚁群算法中,转移概率的计算是由信息素矩阵、字符匹配矩阵和方向权值3个因素来决定的.在改进的智能蚁群算法中对于信息素矩阵与字符匹配矩阵进行了改进.
改进算法中,信息素矩阵定义为A(i,j,k),其中i表示序列T的位置,j表示序列S的位置,k表示蚂蚁选择的3个位置,有右方、下方和右下方.A(i,j,k)表示蚂蚁走过的边上的信息素.
经典蚁群算法中,在第一步进行字符匹配矩阵的构建.而在改进蚁群算法中,在蚂蚁选择路径的同时构建字符矩阵.若蚂蚁向下走,在匹配矩阵的值D1=0.5;若蚂蚁向右走,在匹配矩阵的值为D2=0.5;若蚂蚁向右下方走,并且2个字符相等,则在匹配矩阵的值为D3=2,否则D3=1.这种匹配矩阵的构建方法可以提高蚁群算法的精确性.
dk为方向权值,用来控制蚂蚁偏离对角线的参数,防止插入过多的空格.如果蚂蚁当前的位置为(i,j),d1表示向下的方向权值,d2表示向右的方向权值,d3表示对角线的方向权值.如果i与j之间差的绝对值小于H,则不需要调整3个方向权值的大小.如果i比j大,i与j之间的差大于H,则证明蚂蚁向下走的太多,则增加对角线和向右走的方向权值.如果j比i大且j与i之间的差大于H,则证明蚂蚁向右走的太多,则增加
对角线和向下走的方向权值.
改进算法中转移概率的公式2为:
3.1.2 动态更新P0
在经典蚁群算法中,蚂蚁搜索过程中,先产生一个随机数,如果这个随机数小于某个固定值P0,则选择右下方移动;否则根据转移概率和轮盘赌选择方向.改进的智能蚁群算法中,将P0改成智能变化的值,公式3为:
在循环次数小于等于常数T1时,将P0定义为比较大的值,让蚂蚁倾向选择比对分数比较大的右下方向,减少运算时间;随着计算时间增加,当循环次数小于等于常数T2时,将P0定义为原经典蚁群算法中的0.3;当循环次数大于常数T2时,将P0定义为比较小的值,让蚂蚁倾向于随机选择路线,可以防止进入局部最优.
3.1.3 信息素智能更新
针对经典蚁群算法,改进的智能蚁群算法增加了对最大值路径的信息素更新策略.信息素更新策略的公式为:
其中,xinXisu表示需找路径过程中蚂蚁产生的信息素,Q1,Q2表示信息素更新时的倍数.例如,当第n只蚂蚁的分数等于当前所有循环的最大值,则它所走过的路径上的信息素更新为0.2倍的信息素.这样可以使蚂蚁尽快地找到最大值,并且不容易进入局部最优值.
对两组数据进行了实验,第一组数据是DNA序列S=a c g c t c g c a g g a c a c t t t t t c a g a t c t at t g a c t t c a g g a c g g c t g c t a a t a c,DNA序列T=a c c t c g c a g g a g a c t t t t t a c a g a a t c t a t g a c t t c a g a c g g c a g c t a t t a c,其中序列S的长度为53,序列T的长度为52.第二组数据是从NCB I序列库中取得的两组DNA序列,序列号分别为:AB023276和AB023278,序列长度均为457.
相关参数如下:初始信息素=5,方向权值d1=2,d2=2,d3=3,防止蚂蚁偏离对角线的
参数H=5,最大循环次数NCmax=100,蚂蚁数m=100,信息挥发程度
p=0.05,q0=0.3,p1=0.6,p2=0.35,p3=0.2,a=5,b=3,c=2,T1=50,T2=79,T3=99,Q 1=0.1,Q2=0.2.
第一组的计算结果如图2.
从图1可以看出,基于经典蚁群算法和改进蚁群算法得到的最优值都是81,但是改进蚁群算法在第19次达到了最优值81,并保持81分不变;经典蚁群算法在第23次达到最优值81,可以看出改进蚁群算法可以提高算法的收敛速度,减少计算时间.
第二组的计算结果如图3.
从图3可以看出,基于经典蚁群算法在第59次得到的最优值881,并保持不变;基于改进蚁群算法,在第20次得到的最优值902,并保持不变.保持最优值不变的10次迭代中,基于经典蚁群算法的10次平均数为828.89,基于改进蚁群算法的10次平均数为862.从以上比较可以看出,改进蚁群算法在对于比较长的双序列进行分析时,可以避免进行局部最优值,并能在较短的时间内得到最优值,具有很大的提高,并且在平均值上面也有很大的改进.
针对第二组数据,分别利用经典蚁群算法和改进蚁群算法进行了20次试验,得到的结果如表1.可以看出,基于经典蚁群算法并不是每次都能取得最优值881,而基于改进蚁群算法总是可以取得最优值902.则表明基于改进蚁群算法的稳定性较高,并且运算的平均数要明显优于经典蚁群算法.
经典蚁群算法在对短序列进行比对时,具有优势,但是对于较长的序列容易陷入局部最优值且收敛速度较慢.本文提出的改进的智能蚁群算法,通过实验证明,改进蚁群算法在加快收敛速度和避免进入局部最优值等方面都具有显著的改进,并在解决长序列比对具有显著的优势.
【相关文献】
[1] Needleman SB,Wunsch C D.A generalmethod applicable to the search for similarities in the amino acid sequences of two proteins[J].Journal ofMolecularBiology,1970(48):443-453.
[2] Smith T F,Waterman M S.Identification of common molecular sequences[J].Journal ofMolecular Biology,1981(147):195-197.
[3] Ye Yuzhen,Adam Godzik.Multiple flexible structure alignment using patial order graphs[J].Bioinformatics,2005,21(10):2 362-2 369.
[4] DorigoM.Optinization learning and natural algorithm[D].Italy:Politecnico diMilano,1992.
[5] 王小平,曹立明.遗传算法-理论应用和软件实现[M].西安:西安交通大学出版社,2002.
[6] 段海滨.蚁群算法原理及其应用[M].北京:科学出版社,2005:144-148.
[7] Chen Yixin,Pan Yi,Chen Juan,et al.Multiple sequence alignment by ant colony optimization and divide-and-conquer[C]//Brelin:Proc of ICCS,2006:646-653.
[8] Jangam S R,ChakrabortiN.A novelmethod for alignment of two nucleic acid sequences using ant colony opt imization and genetic algorithms[J].Applied Soft
Computing,2007,7(3):1 121-1 130.
[9] 梁栋,霍红卫.自适应蚁群算法在序列比对中的应用[J].计算机仿真,2005,22(l):100-102.
[10] Stefan Schroedl.An improved search algorithm foropt imalmultiple sequence alignment[J].JournalofArtificial Intelligence Research,2005,23(5):587-623.。