不搞生物信息学的小伙伴可能不太知道RoseTTAFold,但它可是个神器,能够准确预测蛋白质的结构,是2021年Science杂质的年度科学突破奖第一名!直接竞争对手还包括Merck的新冠药以及火星观测等,可见影响力之巨大,突破之神奇。但是,为什么要说“又”呢?因为还有个重磅科技网站GeeKWire(科学极客网)马上就要揭晓生命领域创新奖了,RoseTTAFold位列最后五绝,不出意外的话大概率还是它夺冠。于是就想反正我也囫囵吞枣地了解过一些,顺带写下来,也方便自己日后回忆参考。

估计每个人都多多少少知道AlphaGO(阿尔法狗)吧,它是谷歌旗下的DeepMind公司开发出来的围棋对弈AI,核心技术的就是“深度学习”,人类起手下一盘,它下一百盘,还不吃不喝不休息,这么搞个一段时间(名为“训练”),谁能干的过它。一年后AlphaGO的二代兄弟AlphaGo Zero就已经横扫棋坛,0封人脑,实现不败。未来指望哪个不世出天才击败它也是不可能的,除非跟它改打麻将。有点扯远了,DeepMind这家公司野心肯定不是仅在围棋上,人家CEO说了,围棋只是试探功力,最终是发展AI技术帮助人类。首当其冲就是医疗领域,哪个方向呢?蛋白质结构预测。

蛋白质是构成生命的基础物质,根据基本法则“结构决定性能”,想要研究蛋白质的性能,肯定是绕不过去蛋白质结构。然而说起来容易做起来难,这货的结构就参看上图,一根或者多根长长卷卷的肽链盘绕起来,像一大团揉碎的纸,但还不是一张纸完事儿,还可能好几个蛋白相互交错相互作用共同构成分子机器发挥功能,然后上面再连着各种非肽链构成的枝丫横生化合物,剪不断理还乱。但要说蛋白质结构没有规律那也不对,真要是没有规律也就没有生命了,特定的蛋白质有特定的功能,因此它一定是有特定的结构规律的。传统的结构生物学怎么做呢?最直接的——上仪器!什么X射线、核磁共振、分子光谱、非变性质谱统统上上,大家都测一个蛋白质,然后找各种能够说的通的理论来描述跟推测它是个啥结构。尤其是万众瞩目的冷冻电镜技术,我直接给你照相!马上看!但是,问题也来了——太贵看不起~

看到上面几个货没?动辄上千万,国内而言也就清华北大西湖大学中科院等为数不多的几家单位有,但是蛋白质有多少个?知乎大神告诉我们,有确切实证的仅仅十几万个;确切知道存在的五十多万个;根据证据推测的,有1亿3千多万个!这天文数字可以说上冷冻电镜,肯定没戏。但人是活的啊,大力出奇迹的方法走不通,那就试试四两拨千斤。开头不是说了么,上AI!二十一世纪可不仅仅是生物技术的时代,也是网络科技时代。显卡内存都上到多少G了,移动硬盘都弄出多少T了,咱费点电,让AlphaGO干!
就这么着,DeepMind玩起了这个,开发出的专门预测蛋白质结构的AI,叫AlphaFold,Fold就是折叠的意思,还挺贴切。
还是从“训练”开始,跟围棋相似,AlphaFold先输入此前人类得到的准确的蛋白质结构数据,结合组成蛋白质的氨基酸序列,开始找规律,一遍遍地找,优化自己的预测思路,然后给出它认为最合理最符合所有已知纪律的结构,哎?就成了!当然也不是绝对准确,但可以讲八九不离十(严谨起见,仅仅是说目前就它预测出的结果来说)。这事儿闹的,有些辛辛苦苦折腾X射线结晶跟冷冻电镜技术的小伙伴还有些郁闷——这也行??不仅学界,一些仪器厂家也惊出一身冷汗,此是后话。

说了半天也没说到主题,今天讲的是RoseTTAFold(罗塞塔折叠AI),怎么还不到?马上就来了。DeepMind的AlphaFold也有缺点,除了必须依靠大量实测数据进行训练提升功力境界之外,还有一点值得注意——这是一家公司,不是来搞奉献的,不赚钱怎么可能?而且人家用那电脑都快赶上银河计算机了,就算给你软件你都跑不起,那这事儿就对世界上绝大多数人不友好了。于是,自有理想主义的救世主登场,也就是今天的主角,RoseTTAFold。

RoseTTAFold是美国华盛顿大学的David Baker团队开发的,同样是基于深度学习,但是采用了不同的算法策略,当然我不是这个专业的细节就完全看不懂了。直接提最最关键的是,RoseTTAFold完全免费的,全世界随便下载。而且,不知道是不是我理解错误,RoseTTAFold是众包形式的,啥情况呢? 就是你连上网,跑Rosetta,OK;你不跑的时候,电脑可不闲着,用算力替别人跑。大家都在圈里,大家共享算力,大家共同受益!我的小破电脑不行,没关系,众人拾材火焰高啊! 这招儿太高明了,读到这儿的时候我心里喊啥大伙儿都知道。不过后续还有说法是BakerLab是拿出自己的服务器让大伙儿在上面跑,这也行啊,左右用RoseTTAFold代价极小……RoseTTAFold等于是给生物学界乃至医学制药界开了一扇天窗,基本上可以说颠覆了以往所有认知。当然RoseTTAFold预测的准确度也是可以的,跟AlphaFold不相上下,不然也不会有这么多吹捧。这事儿还有后续,自打RoseTTAFold免费开放之后,DeepMind也坐不住了,好嘛你个老头子坏滴很,搞偷袭~ 于是紧跟着也开放了AlphaFold的源代码,等于说现在两大AI都免费了,无论如何是一件幸事。

现在呢,David Baker正在把AlphaFold 2代跟RoseTTAFold相结合,并成功预测了更多蛋白质-蛋白质复合物的结构,反正也都免费了嘛。于是又喜提Science文章一篇。业内也对David Baker拿到诺贝尔普遍持有相当积极的态度。当然此人也不是横空出世,此前玩了几十年的蛋白质结构预测AI了,当时的名字就是Rosetta,跟那个彗星探测器一个名儿。老外命名自己的小作品总爱搞点宗教哲学神秘主义。

最后呢,也得把话说回来,AI再牛,有俩个大山越不过去:一是创造性。它只能从以往的确切的结果里面找规律去预测,如果没见过,那就废。不管是AlphaFold也好RoseTTAFold也罢,都有这个问题,见过的预测的就准,没见过的预测结果极差。二是算法。算法也不是从地里长出来的,是人类的大脑辛辛苦苦地想出来推出来的。就好像有一些物理学理论啊公式啊,虽然暂时看上去怎么测试都对,但还是不可能包罗万象穷极一切,不然,杨振宁怎么得的诺贝尔奖。
总之呢,这是科学界一巨大突破,提前恭喜RoseTTAFold又获奖了!
本文所有素材取自互联网,如果侵权请留言。喜欢请点赞支持哦,作者能有动力写出更多更有意思的小文儿~
我看到有两种写作风格:deffind_nest(animal)returnunlessanimal.bird?GPS.find_nest(animal.do_crazy_stuff)end对比deffind_nest(animal)ifanimal.bird?GPS.find_nest(animal.do_crazy_stuff)endend哪个更正确/更可取/遵循最佳实践?还是无所谓? 最佳答案 根据Rubystyleguide,Preferaguardclausewhenyoucanassertinvaliddata.Aguar
如果我想做这样的事情:collection.eachdo|i|returnnilifi==3..manylinesofcodehere..end我怎样才能得到那种效果?我知道我可以用一个大的if语句将block内的所有内容包装起来,但我想尽可能避免嵌套。Break在这里不起作用,因为我不想想要停止剩余元素的迭代。 最佳答案 block内的next从block返回。block内的break从屈服于该block的函数返回。对于each这意味着break退出循环并且next跳转到循环的下一次迭代(因此名称)。您可以使用nextvalue和
我已经实现了TwitterTypeAhead在我的页面上,它看起来很棒。但出于某种原因,当我向下箭头建议列表时,这些项目没有突出显示,但它们填充了文本框。但是,当我将鼠标悬停在建议的下拉菜单上时,这些项目会突出显示。箭头穿过时项目不会突出显示的原因是什么?如果可以,我该如何实现?myTypeahead=$('#txtBox').typeahead({name:'typeahead',valueKey:"Value",remote:'serviceHander.ashx',template:['{{Value}}'],engine:Hogan,}); 最佳答案
我注意到其他地方还有关于此的另一个问题,但它有点过时了。Hereistheissue我在下载NodeJSv4.2.4时遇到了问题它经历了安装过程,然后提示“回滚操作”。之后,它指出:“Node.JS安装向导由于错误而提前结束。”我从.msi创建了一个日志文件,但它没有提供任何有趣的东西。真的很想听取对此的反馈。我尝试取消选中在线文档,如下所述:StackAnswer但无济于事。我在Windows1064位上。 最佳答案 将“性能计数器”设置为“仅在需要时运行” 关于javascript-
Angular2带有称为提前(AoT)的新功能。但是看了一番,还是不能真正理解。它是如何工作的?它将如何带来更好的性能?它与JIT有何不同?谢谢。 最佳答案 Angular在模块、指令和管道的View和装饰器中使用声明式绑定(bind),这些需要由浏览器中的JS解释以执行它们的预期目的。离线模板编译器用生成的静态代码替换声明式绑定(bind)和装饰器。这使得Angular2组件实例化和初始化更快,因为JS要做的工作更少。在将应用程序提供给客户端之前,组件的“编译”已经完成。如果您不使用其他在运行时需要它的功能,则可以省略platfo
给定以下组件,当我按下年龄选择器并将值更改为15时,我呈现了一个没有驾驶执照字段的表单,我收到错误:UncaughtError:Renderedfewerhooksthanexpected.Thismaybecausedbyanaccidentalearlyreturnstatement.atinvariant(react-dom.development.js:55)atfinishHooks(react-dom.development.js:11581)atupdateFunctionComponent(react-dom.development.js:14262)atbeginWo
我在放入AWSLambda中时遇到了一些node.js代码的问题。我有几个需要进行的异步调用,虽然第一个调用的行为与我预期的一样,但lambda函数在第二个调用完成之前终止。返回为null,这让我认为lambda正在触发其隐式回调,但我认为它不应该这样做,因为还有一个尚未解决的promise。代码:exports.handle=asyncfunction(event,context){varAWS=require("aws-sdk");AWS.config.update({region:"eu-west-1",endpoint:"dynamodb.eu-west-1.amazonaws
我不一定想出错,但我有:getFromDb().then(tradeData)->ifnottradeData#DONOTCONTINUETHECHAINelsegetLatestPricetradeData.then(latestPrice)->....then->....then->....catch(err)->nexterr如果没有tradeData,我有什么方法可以中止链条? 最佳答案 虽然是一个公认的答案,但我想告诉所有的谷歌人,“break()”函数已更改为“cancel()”像这样使用:p=getFromDb().t
我正在使用去抖动在使用settimeout超时后执行事件。我遇到的问题是,其他javascript事件期望这些事件同步发生。由于它们现在在超时后执行,我希望能够通过其他javascript事件过早地触发它们(这样那些需要它们的事件就不会失败)。任何人,如果我做类似的事情:timeout=setTimeout(function(){alert('hi');},10000);,我希望在10秒之前发生,我该怎么做?如果需要,解决方案可以涉及jquery。谢谢!编辑:仅访问超时对象就可以做到这一点吗? 最佳答案 所以,如果你做任何事情,你都
为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技星力量”星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量,目前已成功举办两届,收到了来自各界的积极参与。第二届星环科技科技实践案例评选活动新增了“年度信创先锋之星”,经过产业界、学术界专家联合评审,最终评选出了“年度信创先锋之星”、“年度科技向善之星”、年度价值贡献之星”、“年度科技前沿之星”、“年度技术革新之星”五大奖项,并特此进行案例巡展。本期巡展案例为获得第二届“新科技星力量”星环科技科技实践案例评选活动“年度信创先锋之星”的浙