草庐IT

颠覆蛋白结构预测的AlphaFold 2,改变了科学史

新智元 2023-03-28 原文
牛津大学教授Matthew Higgins正在与一个经典的令人头痛的问题作斗争:蛋白质到底是什么样子的?

自2005年以来,他的实验室就一直在关注于疟疾的相关问题。

传统技术只能生成蛋白质结构的模糊轮廓,这让Higgins感到困惑。

不过,通过使用一种名为AlphaFold 2的新人工智能技术,他破译了导致疟疾的寄生虫所使用的一种关键蛋白质的结构。

这项突破帮助他开发了一种实验性疟疾疫苗,目前正在进行人体测试。

疟疾每年导致600多万人死亡,而这些疫苗可能是对抗该疾病的关键。他说,如果没有AlphaFold,我们可能仍在碰壁。

从Higgins的成就中不难看出,AlphaFold 2正在迅速颠覆科学和医学。

在短短几年内,Alphabet旗下的人工智能初创公司DeepMind已经从赢下围棋比赛,成长到可以解决生物学的巨大挑战,而现在它已经被超过100万的研究人员使用,有大学的研究人员,也有大药厂的研究人员。

DeepMind首席执行官Demis Hassabis去年在一个播客节目中说:「AlphaFold令人惊讶,但这只是一个开始」。

从赢下围棋,到改变科学史

如今,蛋白质是几乎所有药物的主要靶点,因此了解蛋白质结构,是解决如何通过特定方式干预疾病表型的关键。

在AlphaFold之前,寻找蛋白质的结构是一项艰巨的任务。

传统的方法是研究人员对蛋白质进行结晶,将其变成一种蛋白质很抵制的盐分形式。如果这一步奏效,他们就用X射线轰击每个晶体,观察电子如何从它身上反弹以产生图像。

通过反复进行这一过程,科学家们可以了解到一个蛋白质的3D结构。

Higgins说,一个博士生可能需要花一两年的时间才能发现一种新的结构,但是结果往往是模糊、不确定的。

DeepMind首席执行官Demis Hassabis是一名国际象棋神童,也是人工智能的布道者。他于 2010 年创立了 DeepMind,目标是构建能够像人类一样执行某些任务的人工智能系统,甚至能够比人类做得更好。

2016年,DeepMind的人工智能系统AlphaGo在围棋比赛中击败了世界级棋手。

在围棋胜利之后,Hassabis和DeepMind的顶级科学家David Silver决定,是时候从围棋比赛,转向解决现实世界的问题了。

于是他们开始转攻蛋白质的问题,而生物学家John Moult数十年的工作为DeepMind进入生物学铺平了道路。

1994年,他创办了CASP 蛋白质结构预测大赛(Critical Assessment of Protein Structure Prediction)。

参赛者会被分到大约100个未知的蛋白的氨基酸序列,这些蛋白质的三结构已经是确定的但并未公布过。

参赛团队将有几个月的时间去研发和使用数学模型以解决这些未知的结构。Moult会对他们的预测进行准确性评分。满分100,超过90就表明结构预测接近完美。

DeepMind在2018年的CASP会议上进行了首次公开尝试。AlphaFold的第一个版本赢得了比赛并击败了世界标准。在比赛中,获胜者的预测准确率通常为40%左右,而AlphaFold的成绩是60%。

虽然这个成绩让人眼前一亮,但AlphaFold的预测有很多错误,还不够完美。Hassabis 想做得更好。

在CASP结果公布前几个月,AlphaFold背后的顶级科学家之一John Jumper正在与他的团队一起规划,想要对该技术进行渐进式的改进。

Hassabis 却出人意料地叫停他们,大概意思是「用现在的模型解决这个问题是不是太难了?是不是做个别的模型?」

那次谈话之后,Jumper就抛弃了AlphaFold的第一个版本,直接从头开始。Jumper说,「AlphaFold 2是在对蛋白质有更多生物和物理知识的基础上构建的。」

在2020年年底的CASP上,AlphaFold 2交出了答卷,预测蛋白质结构的准确率达到了近90%,远远高于其他参赛选手。专家们认为它有效地解决了这个问题。

「那一刻,我知道我们改变了科学史,」Jumper说。

生命科学领域的爆炸性增长

在CASP之后的几个月里,DeepMind行动迅速。

该团队在2020年圣诞节前后预测了人体中的所有2万种蛋白质。这些结果于2021年7月与软件的代码一起发表在Nature的一篇开创性论文中,该论文已被引用超过8800次,也就是说每天约被引用15次。

Hassabis 说,决定免费发布AlphaFold 2是为了最大限度地造福人类。

据CNBC报道,DeepMind作为Alphabet的子公司,通过向Alphabet的其他公司,如YouTube和谷歌,出售软件和服务来赚钱。

而后,Hassabis在2021年成立了生物技术初创公司Isomorphic Labs,潜心研究药物。与此同时,AlphaFold 2也一直在运转,在去年夏天发布了2亿份蛋白质结构预测结果。

研究的步伐正在迅速加快。

根据生物医学研究目录PubMed的数据,2020年只有4篇论文参考了AlphaFold。这一数字在2021年增长到92篇,2022年增长到546篇。2023年将会有超过1000篇论文。

药物研究的加速器

一些生物技术公司现在正在使用AlphaFold 2来开发药物。

「AlphaFold向人们展示了可能性,从而引发了一波创新浪潮。」波士顿初创公司AI Proteins的首席科学家Chris Bahl说,该公司也使用AlphaFold帮助开发药物。

在2019年,Raphael Townshend作为DeepMind实习生,在AlphaFold工作,当时他正在完成斯坦福大学的计算机科学博士学位。

现在,他在旧金山经营着一家名为Atomic AI的创业公司,希望开发他所谓的「RNA的AlphaFold」。

RNA读取我们的遗传(DNA)中的指令,在体内创造蛋白质。

他的公司想要预测RNA分子的结构,并且希望利用这些研究来开发药物。其他生物技术公司也在将AlphaFold与其他AI技术结合使用,来快速、廉价地发现潜在的新药。

例如,初创公司Insilico Medicine将自己的人工智能系统与AlphaFold一起使用,来设计可以阻断与肝癌相关的蛋白质的分子。它创造了其中一个分子,并使用实验室测试来确认它可以发挥作用。该公司在1月份发表了这项研究。

该公司的首席执行官Alex Zhavoronkov声称,他的团队从找到药物靶点到设计药物并在实验室进行测试,只花了大约50天,不到100万美元,他认为这是药物开发一个记录。

Zhavoronkov的办公室里放着Hassabis的照片,「AlphaFold是一个绝妙的发现,但它是一个巨大的乐高拼图中的一部分,你需要拥有这个拼图才能成功地将药物投放市场。」

不过,虽然这项人工智能的技术让药物研发变得更加快速容易,但是由于临床试验的费用,该公司并不打算将其药物推进人体研究,因为在动物和人类身上进行测试的过程仍然需要许多年和数亿美元。

下一步是什么

人工智能在生物技术方面的潜力是有限的。

AlphaFold的预测并不总是完美的,这个预测模型在解决一小群未知蛋白质方面非常准确,但这并不能保证所有预测的结构都是正确的。

牛津大学的Higgins说,他自己会用实验室的实验来再次核查人工智能的预测,因此他对完全依赖于AlphaFold预测的研究论文持谨慎态度,因为其中缺少实验验证这一环。

尽管存在这些限制,但AlphaFold 2已是一项重大突破,甚至激起了诺贝尔奖的讨论,尤其是在它赢得了2022年300万美元的突破奖之后。

华盛顿大学计算机科学教授Pedro Domingos表示,AlphaFold团队的研究是更深层次的,像是蛋白质如何与其他蛋白质或小分子相互作用,这样问题是十分有意义的。

未来他们的研究会越来越难,也不清楚AI是否能够胜任接下来的研究。但是Domingos认为,DeepMind的团队非常优秀,所以他对其未来发展很是看好。

DeepMind已经在遗传学和预测更复杂的蛋白质相互作用方面做出了一些研究,但是他们下一个瞄准的什么重大生物学问题还依旧保持神秘,并未透露,所以未来的其他机构、公司对它技术的应用也将「越来越难把握」。

DeepMind的Jumper表示,他的AlphaFold团队专注于清除生物学研究中的下一个重大障碍。但这仍然是一个秘密。

「我有我的理论,关于这可能走向何方,这是什么样的技术,以及未来可能的情况,我不会透露。」

有关颠覆蛋白结构预测的AlphaFold 2,改变了科学史的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

  3. ruby-on-rails - 一般建议和推荐的文件夹结构 - Sinatra - 2

    您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应

  4. ruby - 改变替换的大小写 - 2

    我有以下内容:text.gsub(/(lower)(upper)/,'\1\2')我可以将\2替换为大写吗?类似于:sed-e's/\(abc\)/\U\1/'这在Ruby中可行吗? 最佳答案 查看gsub文档:str.gsub(模式){|匹配|block}→new_str在block形式中,当前匹配字符串作为参数传入,$1、$2、$`、$&、$'等变量将被适当设置。block返回的值将替换为每次调用的匹配项。"alowerupperb".gsub(/(lower)(upper)/){|s|$1+""+$2.upcase}

  5. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

  6. ruby-on-rails - 在 Rails 中存储(结构化)配置数据的位置 - 2

    对于我正在编写的Rails3应用程序,我正在考虑从本地文件系统上的XML、YAML或JSON文件中读取一些配置数据。重点是:我应该把这些文件放在哪里?Rails应用程序中是否有用于存储此类内容的默认位置?附带说明一下,我的应用程序部署在Heroku上。 最佳答案 我经常做的是:如果文件是通用配置文件:我在目录/config中创建一个YAML文件,每个环境有一个上层key如果我为每个环境(大项目)创建一个文件:我为每个环境创建一个YAML并将它们存储在/config/environments/然后我在加载YAML的地方创建了一个初始化

  7. ruby-on-rails -/usr/local/lib/libz.1.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64) - 2

    在我的mac上安装几个东西时遇到这个问题,我认为这个问题来自将我的豹子升级到雪豹。我认为这个问题也与macports有关。/usr/local/lib/libz.1.dylib,filewasbuiltfori386whichisnotthearchitecturebeinglinked(x86_64)有什么想法吗?更新更具体地说,这发生在安装nokogirigem时日志看起来像:xslt_stylesheet.c:127:warning:passingargument1of‘Nokogiri_wrap_xml_document’withdifferentwidthduetoproto

  8. ruby - 强制 Ruby 不以标准形式/科学记数法/指数记数法输出 float - 2

    我遇到了同样的问题here对于python,但对于ruby​​。我需要输出这样一个小数字:0.00001,而不是1e-5。有关我的特定问题的更多信息,我正在使用f.write("Mynumber:"+small_number.to_s+"\n")输出到一个文件对于我的问题,准确性不是什么大问题,所以只做一个if语句来检查是否small_number那么更通用的方法是什么? 最佳答案 f.printf"Mynumber:%.5f\n",small_number您可以将.5(小数点右侧5位数字)替换为您喜欢的任何特定格式大小,例如,%8

  9. ruby - 高级语言是否使用数据结构? - 2

    我目前还在上学,正在上一门关于用C++实现数据结构的类(class)。在业余时间,我喜欢使用“高级”语言(主要是Ruby和一些c#)进行编程。既然这些高级语言为你管理内存,你会用数据结构做什么?我可以理解对队列和堆栈的需求,但是您需要在Ruby中使用二叉树吗?还是2-3-4树?为什么?谢谢。 最佳答案 Sosincethesehigherlevellanguagesmanagethememoryforyou,whatwouldyouusedatastructuresfor?使用数据结构的主要原因与垃圾收集无关。但它是以某种方式有效的

  10. ruby - Ruby 中匿名结构的用途是什么? - 2

    它们可以这样定义Struct.new(:x,:y)但是用它们能做什么?具体来说,如何创建这种结构的实例?这行不通Struct.new(:x=>1,:y=>1)(您收到TypeError:can'tconvertHashintoString)。我正在使用Ruby1.9.2。更新:目前为止很好的指点,谢谢。我想我问这个的原因是我有好几次发现自己想要这样做Struct.new(:x=>1,:y=>1)这样我就可以在可以编写obj.x的地方传递一个对象,而不是说,实例化一个散列并必须编写obj[:x].在这种情况下,我希望该结构真正是匿名的-我不想通过命名从Struct.new调用返回的内容来

随机推荐