通過前期的項(xiàng)目調(diào)研,我們已在《蛋白質(zhì)折疊綜述》一文中對(duì)蛋白質(zhì)折疊的整體思路進(jìn)行了闡述,。為了將蛋白質(zhì)折疊應(yīng)用部署至我們已經(jīng)搭建的P2P平臺(tái)上,,我們必須對(duì)整個(gè)計(jì)算流程的每一步驟都進(jìn)行深入的了解,以下我便以這一思路(這也是我目前的工作思路)對(duì)目前的工作進(jìn)行說明并詳細(xì)分析我們目前所面對(duì)的困難:
1.分配任務(wù)至worker進(jìn)行計(jì)算(傳輸必要的參數(shù)文件,,數(shù)據(jù)文件以及計(jì)算程序到worker上),。按照原來制訂計(jì)劃,我們應(yīng)當(dāng)使用分子運(yùn)動(dòng)模擬軟件TINKER作為我們worker端的代碼基礎(chǔ),,但是由于該軟件是由Fortran編寫,,而且物理系方面并沒有就合作一事跟我們進(jìn)行聯(lián)系,,所有我們決定放棄這一方案,。經(jīng)進(jìn)一步研究,我們選擇了NAMD(NAMD是并行分子動(dòng)力學(xué)軟件,,曾經(jīng)獲得2002年度金鈴獎(jiǎng),,NAMD即可以運(yùn)行在包含幾百個(gè)CPU的并行計(jì)算平臺(tái)也可以運(yùn)行在包含幾十個(gè)CPU的集群,甚至可以只運(yùn)行在只包括一個(gè)CPU的單機(jī)上,,我們主要也是運(yùn)行在單機(jī)上)。為了避免將問題復(fù)雜化,,我們的思路是盡量不了解內(nèi)部的算法(一是因?yàn)榇a量巨大,,僅代碼就有2兆多,二是專業(yè)性的知識(shí)還是很欠缺,,我們擔(dān)心進(jìn)行大規(guī)模的修改,,將不能保證程序的正確性),盡量對(duì)程序的輸入和輸出文件進(jìn)行熟悉,,希望通過對(duì)這些文件參數(shù)的掌握能夠快速,、準(zhǔn)確地將代碼修改后整合到我們的流程框架。
在NAMD的網(wǎng)站上有一名為MINDY的分子運(yùn)動(dòng)模擬軟件,。通過對(duì)NAMD進(jìn)行簡(jiǎn)化,, MINDY被設(shè)計(jì)為順序執(zhí)行的分子運(yùn)動(dòng)模擬軟件。這一點(diǎn)正是我們需要得,。我們可以快速地掌握其運(yùn)行流程,,而且其順序性符合worker的體系框架。但是經(jīng)過對(duì)代碼進(jìn)行研究和運(yùn)行該軟件,,我們發(fā)現(xiàn)其功能太少,,比如:沒有將運(yùn)算結(jié)果數(shù)據(jù)記錄下來(這是很要命得),不能對(duì)運(yùn)算進(jìn)行設(shè)置(意味只能模擬特定環(huán)境下的蛋白質(zhì)折疊,,有一定的局限性)等,。由于MINDY只是適用于初學(xué)者,并不是完備的軟件產(chǎn)品,,因此文檔也很少,。我們發(fā)郵件給該軟件的作者,希望他能夠給我們提出合理的建議,,但他并沒有對(duì)我們提出的問題給出答復(fù),。因此,目前我們只能放棄MINDY,,繼續(xù)研究NAMD,,難度很大。對(duì)應(yīng)用軟件和分子動(dòng)力知識(shí)的不熟悉,,使我們走了一個(gè)彎路,。
理論和計(jì)算生物學(xué)小組不僅僅研發(fā)可NAMD,同時(shí)還研發(fā)了多種配套軟件完成不同的任務(wù),。在這些配套軟件中,,最重要的一個(gè)軟件便是VMD,其與NAMD聯(lián)系最緊密(NAMD所需要的.pdb和.psf文件需要通過該軟件生成,,圖1顯示了兩個(gè)軟的關(guān)系),。VMD是一分子可視化軟件,,用于顯示、分析,、操作生物分子,。《NAMD Tutorial》一文中,,第一部分全部都是介紹的如何使用VMD生成所需要的文件用于計(jì)算,,可見VMD的重要性。VMD中使用了tcl腳本語言,,用于文件的生成和文件的相關(guān)處理,,如要很好的掌握個(gè)參數(shù)的含義,需要對(duì)改語言有一定的了解,。
我們的思路是將NAMD進(jìn)行修改(目前的原代碼是用于linux上,,因此需要移植到window上面來),使其成為worker將要運(yùn)行的軟件,。后期我們將用java將對(duì)該軟件進(jìn)行封裝,,使其能夠從datapool中獲取數(shù)據(jù),進(jìn)行計(jì)算,,完成規(guī)定的運(yùn)算后,,將中間結(jié)果返回到主程序中。目前的問題是,,NAMD所產(chǎn)生的文件并不是我們恰恰需要的結(jié)果,,而是產(chǎn)生了一系列的文件(這些文件的說明文檔較少)。如何從這一系列文件中提取出我們需要的內(nèi)容是我們必須解決的?。,。《覂H僅通過這些文件能否繼續(xù)進(jìn)行運(yùn)算也是個(gè)問題,!
2.主程序需要對(duì)從worker端返回的中間結(jié)果進(jìn)行處理,,主要是對(duì)中間的結(jié)果進(jìn)行能量的分析,從這些中間結(jié)果中獲取能量最小的結(jié)果并重新分派,。理論和計(jì)算生物學(xué)小組所開發(fā)的配套軟件中,,有一名為MDEnergy軟件,它可以從DCD or PDB-files計(jì)算能量?,F(xiàn)在的問題是,,NAMD所產(chǎn)生的輸出的文件,并不和該軟件的輸入文件相匹配,。
如果能直接從NAMD的輸出文件中直接獲得能量數(shù)據(jù)將大大減輕我們的工作量,,這需要我們繼續(xù)研究該軟件。