基于P2HP平台的蛋白质折叠分布式计算
- 格式:pdf
- 大小:197.70 KB
- 文档页数:3
第34卷
VoL34 第9期
No.9 计算机工程
Computer Engineering 2008年5月
May 2008
・软件技术与数据库・ 文章编号:100 _3428(2008)0 --010 --03 文献标识码:A 中图分类号:TP311
基于P2HP平台的蛋白质折叠分布式计算
刘宇 ,吕志鹏2,罗飞
(1.武汉科技大学计算机学院,武汉430081;2.华中科技大学计算机学院,武汉430074)
摘要:通过对基于格点模型的PERM算法进行定性分析,提出并行化计算PERM算法的策略。该策略保存了PERM算法中最关键的平 均权重向量,并分发至多个计算单元进行模拟运算,从而达到减少计算时间、提高运算结果精确度的目的 以P2HP为计算平台,对多条
蛋自质序列进行模拟运算。实验结果表明,基于PERM的蛋白质折叠并行计算方法能够在P2HP平台上获得较优的性能。
关键诃:蛋白质折叠;分布式计算;对等网络
Distributed Computing of Protein Folding Based on P2HP
LIU Yu ,LV Zhi.peng2,LUO Fei
(1.Department ofComputer Science,WuhanUniversity ofScience andTechnology,Wuhan430081;
2.Department of Computer Science.Huazhong University of Science and Technology,Wuhan 430074)
IAbstract]By analyzing the algorithm of PERM based on the lattice model,a strategy of how tO parallelize PERM is introduced:The strategy stores the average weight vector,the most important part in PERM.as the middle inform撕on and distributes this information tO several computing
cells for some Simulation computing.So it Can improve the speed of computing and achieve the more accurate results.P2P—based High Performance
Computing Platform(P2HP)is employed as the experimental environment.Some diferent protein sequences are computed.The results of experiment show the parallel computing method based on PERM Can achieve the be ̄er performance on P2HE
IKey words]protein folding;distributed computing;P2P network
1概述
格点模型是一种分析和计算均较简单的模型。该模型考
虑了在蛋白质结构的形成过程中,亲水性(Polar,用P表示)
和疏水性(Hydrophobic,用H表示)起的至关重要的作用,将
蛋白质序列表示为由H,P组成的字符串。将此类序列无重叠
地放置到三维单位正方体网格格点空间上,且定义在序列中 不相邻但在空间上相邻的2个H元素之间的能量为一1,其他
情况为0。按照此思路,对蛋白质折叠问题的求解就可转换
为搜寻蛋白质序列的最低能量空间结构。
能量公式如式(1)所示。尽管格点模型已在很大程度上减 少了折叠问题所需要考虑的因素,但对相应问题的求解依然
是NP难度的。
… i一1若i, 为日且空间距离为1 E
,知勺 其中 j0否则 (1)
z< _J 人们已经提出了多种基于格点模型的算法,比如: PERM[ ,基因算法 】,群蚁算法t3 等。其中,PERM算法是
目前研究得最多、获得效果最好的算法之一,但是同样存在
计算时间较长、所需计算资源较多的问题。针对该问题,本
文在PERM算法的基础上提出了并行化该算法的解决方案, 并在P2HP(4]高性能计算平台上进行了实现。
2 PERM算法及其并行化
2.1定义 定义1格局:对于长度为N的蛋白质序列,已放入格点
空间的前,z(2≤,z≤.Ⅳ)个球所形成的结构称为格局。 定义2自由度:在已放入n一1个球的格局中,第n个球的
放入称为一个动作,并称合法动作的数目为第n个球的自由 度,记为 。
定义3格局的权重:对于已放入n个球的格局而言,所形
成空间结构的优劣程度称为该格局的权重,记作 ,具体定
义如下:
f : :1 j (2) 【 = le 舶e 其中,△ 为第n个球放入后新增的能量值;T为温度常数,
取值范围为T∈【0.25,0,35]。
2.2 PERM算法 PERM是一种增长型算法,其主要思想如下:将蛋白质 序列按照编号顺序,由小到大依次将各个元素放入空间结构,
直至序列上的所有元素被放入为止。在放入元素的过程中,
除了要保证序列在空间上的无重叠性,还要遵循一定的策略。
虽然人们已提出了多种策略,但是基本的思想并没有改变,
具体步骤如下: (1)计算放置第n个球的各合法动作a的优劣程度。
(2)计算格局权重预测值Ⅵ 及门限值Ⅵ ,Ⅵ 。
(3)NW 与 , 进行比较,选择动作:
1)若Ⅵ ∈『Ⅵ ,Ⅵ ],则依概率随机地选一合法动作
来做,然后计算权重 .,进入新格局。
2)若 <Ⅵ ,则以l/2 ̄J概率停止生长,另以1/2概率存
作者筒介:刘宇(1980--),男,助教、硕士,主研方向:分布式计 算;吕志鹏,博士;罗飞,博士研究生 收稿日期:2007—09—12 E-mall:mind_revolution@126.c
om 维普资讯 http://www.cqvip.com 活并依概率随机地选一动作a来做,权重加倍,进入新格局。
3)若 > ,则选择由k个不同的动作构成的动作集
A={ …, 1做各动作,分别计算权重并进入新格局。
在部分链上递归地执行这些步骤,直到完成一轮对蛋自
质分子结构的搜索。在PERM算法中,计算上、下门限值需
要用到z 和 向量。其中,z 为此前出现过的所有长度
为n的部分链构象的权重的算术平均值,c 为此前出现过的
所有长度为n的部分链构形的个数。在PERM算法运行之初,
设定w 和wc分别为枷和0,生成一合法空间结构,得到
z 和c 的初始值。随后,利用z 和 的初始值执行上述
递归步骤,同时实时更新z 和 向量,直到所有的结构要
么被遗弃,要么生长成完整的蛋自质分子并在格点空间中形
成结构。此时,能量最低的结构便是算法所要搜索的蛋自质
分子空间结构。
2.3 PERM算法的并行计算策略 根据以上介绍可知,z 和Cn对于PERM算法而言是非 常重要的。PERM算法利用Zn和Cn向量制定剪枝和繁殖的
标准,并综合考虑当前的局部结构决定如何进行下一步的处
理。随着PERM算法的运行,Zn和Cn向量将被不断地更新,
逐步缩小搜索空间的范围,同时在此范围内对更多的可能性
进行判断,从而更加易于找到能量最低的结构。然而,仅仅
运行一轮PERM算法所获得的结果并不是最优,因此,可以 采取将每一轮空间搜索完成后的z 和Cn向量的最终值作为
中间参数保存下来的方法,用于新一轮的PERM算法计算。
比如,表1中的3条HP序列在第一轮搜索完成后,获得的
能量分别为一63,一42,一62,均大于目前所搜索到的最低能量值。
表1 3条HP序列以及目酋搜索到的最低能量
本文提出的分布式计算蛋自质折叠的关键也集中在z
和Cn向量上,其基本思想具体如下:
(1)生成一合法空间结构,从而完成对z 和Cn向量的初
始化。
(2)将HP序列和Zn,Cn向量发布到多个计算单元上,并
启动运算。 (3)收集各个计算单元所计算出的蛋自质空间结构和中
间参数Zn和Cn向量。 (4)在事先设定好的时间到达后,算法将对已经计算出来
的结果进行分析,挑选出能量最低的结构。如果已经达到了
结束要求(如所获得结构的能量比目前已知的最低能量还要
低)则停止运算;否则保存上述能量最低结构所对应的z 和
向量,将其分发至多个计算单元上(返回至(2)),并继续进
行计算。
为了实现上述基本思想,用于分布式计算蛋自质折叠的
系统至少包含2个角色:控制单元和计算单元。控制单元负
责以下几项任务:初始化Zn和Cn向量;发布Zn和Cn向
量;收集运算结果;分析运算结果;终止计算。控制单元的 执行伪代码如下所示: void monitoLrunning(seq) { vector Zn,Cm,,定义全局的Zn和Cn向量 ,,根据序列生成初始化结构和ZI1,cn向量
best_smtcture=initial_smtcture(seq,Zn,Cn); dO { 一 delay=O: find idle computers();,,查询系统中空闲的计算单元 distribute(seq,Zn,cn);,,爿辱序列,zn和cn发布到上述空闲单元 wait(T);,,等待一段时问T
collectresults0;,,从各个计算单元收集计算结果 temp_smmture=analyzeresults0; //找到能量最低结构并赋值 if(energy(temp_smtcmre)<energy(best_smtctme):)) { bestsmtctttre=temp_strttcture; //以能量最低结果的Zn和Cn向量更新全局的zn和Cn向量 updatepara(Zn,Cn); ) ) while(!satisfyCoest_sturcture、)、)//如果结果满足了要求则退出 ) 相对而言,计算单元所需处理的工作较简单,主要为:
获取计算任务;处理计算任务;返回计算结果。
假设系统中共有4个计算单元和1个控制单元,则分布
式计算将按照图1所展示的流程进行运行。首先,控制单元
根据蛋自质序列生成初始结构,并将相应的Zn和Cn向量发
布到各个计算单元上。计算单元接收到序列、Zn和Cn向量
后,将立即启动运算。经过一段时间后,控制单元将收集各
个计算单元所计算的结果。假设共有3个计算单元获得了结
果,控制单元将比较初始结构与上述3个结果结构的能量大 小,并将能量最低结构所对应的Zn和Cn向量重新发布到已
空闲的3个计算单元上,且将能量最低结构所对应的z 和
Cn向量进行记录,用于后续比较。当下一轮更新时,假设同
样有3个计算单元计算出了结果。控制单元在收集和分析结 果后,会将能量最低结构所对应的Zn和Cn向量再次发布到
空闲节点上。如此往复,直到计算结果满足结束条件为止。
上述的计算模式需要大量的计算资源进行反复运算,以取得 最优的结果,因此适合在分布式的网络计算环境进行运作。