「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 提出一个结论:「蛋白质分子的一级结构决定其立体结构」。

安芬森的研究结果非常重要,因为蛋白质的功能取决于其立体结构,而目前根据已知某基因序列可翻译获得对应蛋白质的胺基酸序列,既蛋白质的一级结构;如果从蛋白质的一级结构就能知道立体结构,那么即可直接从基因推测其编码蛋白质所对应的生物学功能。虽然蛋白质可在短时间中从一级结构折叠至立体结构,研究者却无法在短时间中从胺基酸序列计算出蛋白质结构,甚至无法得到准确的三维结构。因此,研究蛋白质折叠的过程,可以说是破译第二遗传密码:「折叠密码」(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。

✦ 独立报道 · 读者支持 ✦

以实际行动支持独立观点,与我们一同走得更远

每一篇条理清晰的分析、每一次不随波逐流的观察,背后都是对真实与品质的坚持。我们拒绝内容农场与算法流量绑架,坚持自由独立的客观发声。

维持高品质的原创写作与独立运营,需要持续的实质力量。您可以选择一次性赞助或每月定期支持,通过 Google 安全结账,与我们一同守护这份深刻与清醒。

由 Google 安全处理付款 · 可随时在 Google 账户管理或取消