通过前期的项目调研,我们已在《蛋白质折叠综述》一文中对蛋白质折叠的整体思路进行了阐述。为了将蛋白质折叠应用部署至我们已经搭建的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的输出文件中直接获得能量数据将大大减轻我们的工作量,这需要我们继续研究该软件