「Foldit」是一套探討蛋白質折疊相關的軟體,或者,該稱呼它為「遊戲」,至於好不好玩,那就是見仁見智了。下面這段標語是是 Foldit 的官方聲明,用簡單而且清楚的語句,完全表達了設計原意:就是要「玩」科學。
Foldit is a revolutionary new computer game enabling you to contribute to important scientific research.
工具人最早接觸分散式運算的科學研究,應該是在 97′ 年左右,那時一方面是剛好對駭客技術有些熱衷,又恰巧在當時學校開發 BBS 站台,因而有機會管理數個電腦機房和教室,所以也就順便接觸分散式運算的技術研究。話說如此,只是自己對寫程式的功力一直沒有啥長進,後來也就沒有再繼續深入研究。
至於玩到真正有用的分散式運算,是在 99′ 年末接觸的「SETI@Home」,那時曾經讓碰得到的電腦都偷偷裝上一套(學校機房、實驗室、幫人修的電腦、幫人新裝的電腦,甚至是逛街碰到的公用電腦?),所以當時運算積分累積的非常迅速,只可惜後來中斷一段時間,前年想再玩時,卻忘了當初的帳號密碼(哭)。至於忘記的原因好像有部份是因為 SETI@Home 的系統被轉移到 BOINC 平台的關係,加上我原本註冊信箱是當時學校信箱,所以畢業後就被取消,理所當然沒辦法取得新密碼。
目前,所有具主流性的科學性分散式運算,大都透過 BOINC 的平台進行,所謂 BOINC 指的是柏克萊開放式網路計算平台(Berkeley Open Infrastructure for Network Computing,簡稱BOINC),原本最早也就是設計給 SETI@home 使用,但是由於其優異的演算性能,逐漸在包括數學、醫學、天文學、氣象學等領域嶄露頭角。據統計,直至2010年4月30日,BOINC在全世界有約577,000台活躍的主機,平均提供約5,173TeraFLOPS(TFLOPS)的運算能力。
今天要在這邊跟大家介紹的,卻是另外一套有別於上述分散式運算機制的應用:Foldit,也就是「折疊它」(笑)。但是,在實際講到 Foldit 之前,我們必須先簡單了解一下,何謂蛋白質折疊。
所謂蛋白質,指的是一種複雜的有機化合物,由「胺基酸」分子呈線性排列所形成,相鄰胺基酸殘基的羧基和氨基通過肽鍵連接在一起。蛋白質的胺基酸序列是由對應基因所編碼。除了遺傳密碼所編碼的20種「標準」胺基酸,在蛋白質中,某些胺基酸殘基還可以被翻譯後修飾而發生化學結構的變化,從而對蛋白質進行激活或調控。多個蛋白質可以一起,往往是通過結合在一起形成穩定的蛋白質複合物,發揮某一特定功能,參與了細胞生命活動的每一個過程。例如:酶。(維基百科)
蛋白質的一級結構指的就是其胺基酸序列,蛋白質會由所含胺基酸殘基的親水性、疏水性、帶正電、帶負電……等等特性通過殘基間的相互作用而摺疊成一立體的三級結構。
請參考下圖所示,根據克里斯琴·B·安芬森(1972年的諾貝爾化學獎得主)的研究,蛋白質可由加熱或置於某些化學環境而變性,三級結構解體;而當環境回復到原本的狀態時,蛋白質可於不到一秒的時間折疊至原先的立體結構,不論試驗幾次,蛋白質都僅此一種立體結構,於是 Anfinsen 提出一個結論:「蛋白質分子的一級結構決定其立體結構」。
![](https://www.vedfolnir.com/images/2010/12/Green_Protein_Folding_Graphic-300x133.png)
安芬森的研究結果非常重要,因為蛋白質的功能取決於其立體結構,而目前根據已知某基因序列可翻譯獲得對應蛋白質的胺基酸序列,既蛋白質的一級結構;如果從蛋白質的一級結構就能知道立體結構,那麼即可直接從基因推測其編碼蛋白質所對應的生物學功能。雖然蛋白質可在短時間中從一級結構摺疊至立體結構,研究者卻無法在短時間中從胺基酸序列計算出蛋白質結構,甚至無法得到準確的三維結構。因此,研究蛋白質摺疊的過程,可以說是破譯第二遺傳密碼:「摺疊密碼」(folding code)的過程。
目前蛋白質的再摺疊依然遵從先使用胍或脲變性,然後逐漸降低降低胍或者脲的濃度,也就是逐漸降低對蛋白質天然「回縮」能力的干擾。使其自然回到天然的最低能量狀態。只是這個過程無法很好的控制肽鏈與肽鏈之間和肽鏈內部形成錯誤摺疊的干擾,也因此雖然大致的演算法則已經為人所知,但蛋白質結構預測還是需要大量的運算。
蛋白質折疊遊戲(Protein Folding Game)
回過頭來,那 Foldit 又是一套怎樣的軟體呢?
其實若要嚴格定義的話,Foldit 並不能稱得上是一套完全分散式運算的軟體。雖然他的設計者「華盛頓大學貝克實驗室」同樣也是基於 BONIC 平台下,蛋白質結構預測研究「 Rosetta@home」的設計者。 Foldit 提供有一系列的基礎訓練課程,讓使用者試著操縱簡單的類蛋白質構造,並定期更新以真實蛋白質結構為基礎的謎題。該程式讓使用者在工具輔助解謎,就能夠得出實際的蛋白質模型。每當結構被變動,一個「分數」會根據摺疊的完善程度進行加分或扣分。
Foldit嘗試利用人腦天生的三維 Pattern Matching 能力。目前該程式出的謎題都是基於已被人們清楚瞭解的蛋白質;透過分析人類在解這些謎題時的直覺思考途徑,研究者希望能改進現有蛋白質折疊軟體所用的演算法。
Foldit 操作方法
先到官方網站下載程式(For PC and Mac),按照一般正常程式的安裝方式完成後,即可開始執行程式。
一開始,程式會提供幾個關卡的練習階段,隨著關卡的推進,提供的工具也會越來越多,並逐漸在螢幕左下方出現如下圖所示之工具欄位,包括三大工具箱:
- Actions,其中包含 Shake Side-chains, Wiggle All, Freeze Protein, Remove Bands, Disable Bands 及 Reset Puzzle;
- Undo,其中包含 Undo, Redo, Clear, Restore Very Best, Restore Crdt Best, Restore Rcnt Best, Set Rcnt Best 及 Graph Properties;
- Menu,其中包含 Puzzle Menu, General Options, Save Solution, Open/Share Solutions, Save Screenshot 及 Save and Exit。
其中,有關 Actions 裡頭包含的 Shake Side-chains,係用於自動調整胺基酸殘基的位置,藉以降低能量;Wiggle All 係用以自動調整蛋白質的骨架,藉以降低能量。當然,上圖所顯示的,只是在練習階段中取得各項工具,當進入實際遊戲時,會完整的提供各項工具以供使用者使用。另外,在工作視窗右下方則是會出現聊天視窗,可以提供世界各地的玩家一起聊天。
由工具中我們可以發現,其實 Foldit 還是有提供多種自動化工具,原本其目的就是希望透過電腦自動化以及人腦的推理及想像力,進而強化蛋白質折疊的演算法則,因此新手也不用擔心不曉得該如何下手。
但是高手實在很多,下圖是第一次玩實際遊戲的結果,右上角是圖中間蛋白質結構的遊戲排行,雖然一進去就使用自動推導的功能,在經過一段時間後得到9309的高分,但是也只進入第336名,反觀第一名的分數竟然有11488分(lol),而這還是新手等級的蛋白質結構。但是在大膽胡亂瞎扯後,分數反倒進步到9385的更高分(還在跑中),排名第285名,或許這也是創作者的原意,就是希望藉由人類莫名其妙的思考過程,導出更具有效率的演算法則。
軟體下載: Foldit Download。
發佈留言