基于p2p计算平台的蛋白质折叠运算的思考

来源:互联网 发布:淘宝fake 编辑:程序博客网 时间:2024/04/28 18:28
通过前期的项目调研,我们已在《蛋白质折叠综述》一文中对蛋白质折叠的整体思路进行了阐述。为了将蛋白质折叠应用部署至我们已经搭建的P2P平台上,我们必须对整个计算流程的每一步骤都进行深入的了解,以下我便以这一思路(这也是我目前的工作思路)对目前的工作进行说明并详细分析我们目前所面对的困难:

 

1.          分配任务至worker进行计算(传输必要的参数文件,数据文件以及计算程序到worker上)。按照原来制订计划,我们应当使用分子运动模拟软件TINKER作为我们worker端的代码基础,但是由于该软件是由Fortran编写,而且物理系方面并没有就合作一事跟我们进行联系,所有我们决定放弃这一方案。经进一步研究,我们选择了NAMD(NAMD是并行分子动力学软件,曾经获得2002年度金铃奖,NAMD即可以运行在包含几百个CPU的并行计算平台也可以运行在包含几十个CPU的集群,甚至可以只运行在只包括一个CPU的单机上,我们主要也是运行在单机上)。为了避免将问题复杂化,我们的思路是尽量不了解内部的算法(一是因为代码量巨大,仅代码就有2兆多,二是专业性的知识还是很欠缺,我们担心进行大规模的修改,将不能保证程序的正确性),尽量对程序的输入和输出文件进行熟悉,希望通过对这些文件参数的掌握能够快速准确地将代码修改后整合到我们的流程框架。

 

在NAMD的网站上有一名为MINDY的分子运动模拟软件。通过对NAMD进行简化, MINDY被设计为顺序执行的分子运动模拟软件。这一点正是我们需要得。我们可以快速地掌握其运行流程,而且其顺序性符合worker的体系框架。但是经过对代码进行研究和运行该软件,我们发现其功能太少,比如:没有将运算结果数据记录下来(这是很要命得),不能对运算进行设置(意味只能模拟特定环境下的蛋白质折叠,有一定的局限性)等。由于MINDY只是适用于初学者,并不是完备的软件产品,因此文档也很少。我们发邮件给该软件的作者,希望他能够给我们提出合理的建议,但他并没有对我们提出的问题给出答复。因此,目前我们只能放弃MINDY,继续研究NAMD,难度很大。对应用软件和分子动力知识的不熟悉,使我们走了一个弯路。

 

理论和计算生物学小组不仅仅研发可NAMD,同时还研发了多种配套软件完成不同的任务。在这些配套软件中,最重要的一个软件便是VMD,其与NAMD联系最紧密(NAMD所需要的.pdb和.psf文件需要通过该软件生成,图1显示了两个软的关系)。VMD是一分子可视化软件,用于显示分析、操作生物分子。《NAMD Tutorial》一文中,第一部分全部都是介绍的如何使用VMD生成所需要的文件用于计算,可见VMD的重要性。VMD中使用了tcl脚本语言,用于文件的生成和文件的相关处理,如要很好的掌握个参数的含义,需要对改语言有一定的了解。

我们的思路是将NAMD进行修改(目前的原代码是用于linux上,因此需要移植到window上面来),使其成为worker将要运行的软件。后期我们将用java将对该软件进行封装,使其能够从datapool中获取数据,进行计算,完成规定的运算后,将中间结果返回到主程序中。目前的问题是,NAMD所产生的文件并不是我们恰恰需要的结果,而是产生了一系列的文件(这些文件的说明文档较少)。如何从这一系列文件中提取出我们需要的内容是我们必须解决的!!!而且仅仅通过这些文件能否继续进行运算也是个问题!!!

2.        主程序需要对从worker端返回的中间结果进行处理,主要是对中间的结果进行能量的分析,从这些中间结果中获取能量最小的结果并重新分派。理论和计算生物学小组所开发的配套软件中,有一名为MDEnergy软件,它可以从DCD or PDB-files计算能量。现在的问题是,NAMD所产生的输出的文件,并不和该软件的输入文件相匹配。

 

如果能直接从NAMD的输出文件中直接获得能量数据将大大减轻我们的工作量,这需要我们继续研究该软件