蛋白结构建模与优化_最终幻想: 无中生有的蛋白质从头设计

c92fb66a43cb0169cf0b52fd64033da1.png
作者简介: 刘源 北京大学化学与分子工程学院/力文所

零.导读

近几年,蛋白质结构预测领域连续取得重大突破。首先是【AlphaFold】,在可以充分利用共进化信息结合深度神经网络生成空间约束条件并降低相空间的搜索,极大地帮助了蛋白质的结构建模,颠覆了往年需要结合复杂结构采样的算法,现在直接使用能量最小化即可得到预测的结构。随后,在2019年底,David Baker团队发表了【trRosetta】,其集合深度学习的诸多进展,并与Rosetta建模软件结合,使得预测蛋白结构的门槛大大降低(在笔记本折叠蛋白) 。在【trRosetta】的文章中, 作者还发现了一个有趣的现象,对于很多之前设计的de novo design 的人工蛋白,在没有同源序列(MSA)的情况下,只凭单序列输入就可以预测到比较可靠的结构。

这个结果似乎暗示,trRosetta模型不但学到了用共进化信息来推断空间约束,也学会了某些序列和结构之间的本质关联。于是作者提出了两个问题,

  1. 这些信息能否用来生成与训练集序列不相关的新蛋白?
  2. 对于给定的空间约束(结构),模型能否通过反向传播优化序列,也就是实现“design”的操作?

大佬David Baker 和 Sergey Ovchinnikov (Rising Star)最近在bioRxiv一起上线了两篇文章,肯定了这两个回答。在这两篇文章中,同时也发现了一些令人意外的现象,让我们一起来看看吧。

一、引理

蛋白质的结构和序列之间的关系,可以用条件概率和贝叶斯公式表示

P(seq|struct) = P(seq,struct)/P(struct) = P(struct|seq)*P(seq)/P(struct)

其中P(struct|seq),给定序列求结构,是trRosetta解决的结构预测问题。P(seq)是序列与结构无关的概率,也就是天然蛋白中氨基酸的频率。P(struct)是与蛋白序列无关的结构信息,即背景。在文章中,作者对背景噪音单独训练了一个神经网络,神经网络的结构和trRosetta相似,但输入的MSA为只与蛋白长度相关的随机噪音。

二、不给结构随便幻想

有了这个简单的概率模型,作者的第一个问题就是如何让神经网络去幻想(hallucination)新的蛋白结构,我们能否随机在P(seq,struct)中找一个位置然后找到它附近的极值?这就要说到深度学习中的一个有趣的问题DeepDream(深梦)。

DeepDream

这个方法反映的是一个神经网络是怎么“认识”世界的,当你训练好一个图像分类器后,输入一张图片,deepdream就在图中拼命寻找符合它所认识物体的pattern并加以放大,最后得到一张非常魔幻的照片。

db4eaf9cc8273a99c8e02137842c8afb.png

这也正是幻想蛋白希望得到的效果,如果给定一个条序列(比如一条随机序列)时, trRosetta预测出来的空间约束往往是缺乏特征的。如果能够像deepdream一样在里面寻找像是理想蛋白的特征并加以强化,最后我们就能得到一个具有良好蛋白性质的空间约束及其序列。

ee486946a0c3f1155387ca8259f83a63.png

MCMC序列优化

具体的做法也相当简单,首先给定一条初始序列(可以完全随机也可以是有意义的序列),接着将一个大小为Lx64的随机噪音输入背景网络,得到背景的空间约束。然后从初始序列出发,通过trRosetta网络预测其空间约束,最初的约束可能分布相当弥散(因为序列不具有明显结构特征),计算这个分布与背景分布的差异,如果两者的KL散度越大,则说明得到的空间约束越像一个蛋白。作者在序列中随机引入点突变,用Metroplis判据来不断优化(增大)KL散度。

323a05461f523465de5661838a75c15e.png

通过一个模拟退火的过程,随着温度不断降低,作者得到了与噪音相比,KL散度非常大的序列。从D图中可以看到,天然蛋白,从头设计的蛋白,以及模拟退火后的幻象蛋白序列与背景空间约束分布的散度依次提高。40000步后幻想序列具有非常高的KL散度。

863d65df5967d4876a32a80b5495d0fa.png

再比较一下序列,会发现幻想出来的序列距离天然蛋白非常远,但结构上却在PDB中具有很好的匹配程度。也就是说,幻想出来的蛋白是序列独特但结构老套的蛋白。当然这并不奇怪,PDB库早已经被报道覆盖了蛋白质大部分可能折叠的空间,更何况trRosetta就是基于PDB结构进行的训练。最终作者展示了多种全新幻想出来的序列,形成覆盖全α全β或两者混合的各类拓扑结构。

三、给定结构幻想序列

蛋白质设计的目的则在于优化P(seq|struct)。而在第二章节的MCMC采样过程中,每次随机突变一个氨基酸的方法效率较低,并没有用到深度学习的关键技术“反向传播”。这个方法可以使我们根据目标分布与预测分布的差异,有目的地批量更新氨基酸,为了用连续变量编码氨基酸,文中采用PSSM来描述一条序列。这套方法被称为trDesign。

a60b3c5a4521be1182db151c889c90d8.png

当我们有了一个目标结构的时候,就可以计算目标的空间约束(Target-P),用一条随机序列通过trRosetta可以得到预测空间约束Q,P和Q的散度,就是我们希望最小化(使得Q接近P)的损失函数(注意在幻想时是希望最大化和背景的差异)。

085e09c507ad8b47fc44d63781a126be.png

这个流程可以快速的对输入序列进行优化,只需几十步的迭代就可以得到收敛的结果。通过对Foldit玩家设计的几千个蛋白进行分析,传统的势能面打分Pnear可以得到与实验较好的关联性,但开销十分巨大。而trDesign的损失函数与Pnear有很好的关联性,且对实验验证成功的例子有更好的区分度。说明trDesign所优化的是整个能量面,即降低目标构象的能量同时提高其它构象的能量。但缺点在于对native结构的优化不如Rosetta深入,这主要是受限于模型的精度。

a01ccdaafcf3ffe2494471a7cd11bd42.png

那么究竟trRosetta学到了什么呢?作者列出了三点:

  1. 一些距离的双峰分布说明模型学到了全局或二级结构的不同堆叠状态;
  2. 相对天然蛋白或De novo设计的蛋白而言,trRosetta设计的蛋白具有更理想的局域序列-结构关系(图E);
  3. trDesign设计的蛋白具有更少的表面输水侧链(图F),尽管它们对全局最小影响可能不大,但如果表面过多的疏水侧链,这可能使得蛋白质会偏向折叠成使这些氨基酸包埋的亚稳态结构。

总结

作者开发的这套方法不但可以进行快速的蛋白质设计,而且其效果是可以优化整个能量面的形状,如果与适合在局部深挖的Rosetta FastDesign相结合,可以达到远超原来蛋白设计流程的效果。

随心所欲

刘源:有人可能会说,你能想象出新蛋白又有什么用?能反向传播又如何,不就比design快点么?于是重点来了,由于这两个方法都是基于trRosetta模型来的,所以如果合理的设计损失函数,人们就可以做到固定一部分想要的结构,然后幻想生成剩下的部分!这也就是深度学习里常见的inpaint问题,挡住一部分图片,自动补全新图。而且最终得到的设计是非常接近ideal的稳定蛋白,具有很多好的性质,从这个角度trDesign可以看成是一种滤镜,给输入的蛋白“磨皮”,让它更加完美(稳定易折叠,优化能量面)。最近的一个例子是Baker组设计的一个IL-2的mimic从头设计蛋白【neo-2】,在文章中作者使用了大量复杂的算法生成主链构象再进行设计,而理论上这个操作可以在新的框架中一步到位。相信这套方案在成熟之后会在设计抗体、疫苗等重大问题上带来突破性进展。

皮卡车:这两篇文章的idea是如何出来的,和Sergey的一些经历和想法分不开。Sergey 主要做的是共进化相关的工作,GREMLIN为主,也可以叫markov random field, potts model,self-supervised learning等。通过对MSA的分析来得到蛋白质的接触图谱。然后遇到的一个问题是,目前的结果是通过分析单层神经网络的参数获得的。如果层数增加,物理意义不明晰,就在模型中丢失了接触图谱的解释性,于是他搞了一套基于梯度的分析方法,Seqsal,把输入当变量,就可以从多层神经网络中,得到蛋白质的接触图谱,于是各种模型,autoencoder,VAE等都可以通过这个方法来重新解析。在后来,trRosetta有了,是一种从序列到结构的分析方法。那么倒过来把序列当变量,通过调整序列来降低模型的损失函数,同时又把序列推离序列噪音,deep network hallucination就出来了。在损失函数中增加一项给定的结构约束,trDesign就出来了。在有了这些想法之后,能够在几个月时间内快速推进算法和实验。除了baker实验室,其他地方也难找了。

尝鲜

现在已经提供了源代码和例子,感兴趣的同志可以去尝试 https://github.com/gjoni/trDesign。 安装和使用都比较简单,但目前的例子也比较简单,更复杂的功能有待诸君开发。

5d12bf64c315345d1e52aa9495cc661f.png

引文

  1. Deep network hallucination:I Anishchenko, TM Chidyausiku, S Ovchinnikov, SJ Pellock, D Baker. De novo protein design by deep network hallucination. (2020) bioRxiv, doi:10.1101/2020.07.22.211482
  2. trDesign:C Norn, B Wicky, D Juergens, S Liu, D Kim, B Koepnick, I Anishchenko, Foldit Players, D Baker, S Ovchinnikov. Protein sequence design by explicit energy landscape optimization. (2020) bioRxiv, doi:10.1101/2020.07.23.218917
  3. AlphaFold:A.W., Evans, R., Jumper, J. et al. Improved protein structure prediction using potentials from deep learning. Nature 577, 706–710 (2020).
  4. trRosetta: Jianyi Yang, Ivan Anishchenko, Hahnbeom Park, Zhenling Peng, Sergey Ovchinnikov, and David Baker PNAS January 21, 2020 117 (3) 1496-1503
  5. neo-2:Silva, D., Yu, S., Ulge, U.Y. et al. De novo design of potent and selective mimics of IL-2 and IL-15. Nature 565, 186–191 (2019). https://doi.org/10.1038/s41586-018-0830-7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gcn在图像上的应用_每日摘要|基于CNN 特征的图像卷积网络识别杂草和作物

文章信息标题:CNN feature based graph convolutional network for weed and crop recognition in smart farming期刊:《 Computers and Electronics in Agriculture》第一单位:山东农业大学在线日期:2020-05-13Highlights1.提出了…

安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号

省略号省略号,是标点符号家族中的比较特殊的一个符号,它是由六个小圆点组成。省略号的用法不止省略文字的作用。它还有以下几种用法。1用法一(一)表示重复词语或列举的省略。例:1、果园里有桃树、梨树、杏树、枇杷树……真的是种类齐全。2、那…

kafka 脚本发送_Kafka笔记归纳(第五部分:一致性保证,消息重复消费场景及解决方式)...

写在开头:本章是Kafka学习归纳第五部分,着重于强调Kafka的事一致性保证,消息重复消费场景及解决方式,记录偏移量的主题,延时队列的知识点。文章内容输出来源:拉勾教育大数据高薪训练营。一致性保证水位标记…

eclipse debug 工程源码时出现source not found问题解决

问题描述:使用eclipse debug启动应用,并且打断点在工程的源码上面,提示source not found。 问题解决: 1、选中工程,右键Debug As》Debug Configurations 2、在Java Application下面选中需要debug的程序,然…

代码中有个get是啥意思_是时候秀一波了,甩掉get和set,Lombok让代码更简洁

前言前几天有个新来的同事(实习生)惊讶的对我说:我们的代码里好多错误,我的程序本地都启动不了。我一脸懵逼的质问他:目前线上的代码,怎么会有问题吗?他不服气的说:你来看嘛,就是有问题&#xf…

JavaWeb工程师知识图谱

一个工作快三年的的Java菜鸟,总结梳理了一下JavaWeb工程师必须掌握的一些知识点(持续更新中。。。)。 预览效果 xmind原始文件 百度云盘 链接:https://pan.baidu.com/s/1hp3MWGOX2I8APw75Suu52Q 提取码:j6w6

松下a6伺服x4接线图_2021中山东凤松下温控器回收价高同行

2021中山东凤松下温控器回收价高同行西门子TDC,西门子存储卡,西门子变频器等全线西门子自动化产品。小汪 满意的价格,快的付款速度,热诚欢迎全国各地朋友洽谈合作。具体回收业务:SIEMENS可编程控制器 1、SIMATIC,S7系列…

eclipse启动发生Failed to load JNI shared library

今天启动eclipse发生下面的情况 从网上知道是eclipse和jdk位数不一致导致的。 输入java -version ,查看JDK是多少位,显示64位的就是64位JDK,未显示的为32位的JDK。 eclipse的安装目录下有一个叫eclipse.ini的配置文件,打开后能看到 x86_64说…

5条件筛选功能_一分钟,彻底学会Excel高级筛选,坐等升职加薪!

Excel中高级筛选是普通筛选的加强,能够实现更加复杂的筛选功能。请您看下面的示例图:数据示例图如果要求筛选出班级为2班且语文成绩大于100分的数据,那么使用普通筛选连续筛选两次就可以得到结果。请您看下面的操作演示:普通筛选操…

工程图标注粗糙度_Inventor教程之工程图标注实例

1工程图标注实例对以下实体零件进行全部的标注演示。操作步骤如下:(1)打开文件。运行Inventor,单击“快速入门”选项卡“启动”面板上的“打开”按钮,在“打开”对话框中选择“实体零件”,单击“打开”按钮进入实体零件。(2)新建工…

定时线程_SpringBoot定时任务,@Async多线程异步执行

一、使用SpringBoot实现定时任务这个不是重点,就简单的实现一下,至于cron表达式怎么写也不是重点,自行百度即可。1-1、基于 Scheduled 注解的方式import org.springframework.scheduling.annotation.EnableScheduling;import org.springframe…

mysql怎么把datetime类型转换_mysql怎样实现time转datetime

mysql实现time转datetime的方法:使用在sql语句中【FROM_UNIXTIME(时间值)】,代码为【insert into test(time) values(FROM_UNIXTIME(%d))",time(NULL)】。mysql实现time转datetime的方法:FROM_UNIXTIME(time(NULL))将liunx系统的time_t类…

SpringBoot入门二

参考Spring Boot Starters - 御坂研究所 创建自己的starter starter是依赖的一种synthesize&#xff08;合成&#xff09;。 starter会把需要用到的依赖全部包含进来&#xff0c;避免开发者自己手动引入依赖。 starter的逻辑 pom.xml<parent><groupId>org.spri…

Tomcat入门

一&#xff0c;tomcat启动 双击startup.bat,如果出现一闪而过的情况&#xff0c;在文件的末尾添加pause&#xff0c;就可以看到环境变量设置的路径是否正确 如果无法在电脑的高级系统设置中设置环境变量&#xff0c;可以在setclasspath.bat中设置环境变量 set JAVA_HOMEC:\P…

线程组的概念

一&#xff0c;线程组和线程的结构&#xff1a;树形结构 每个Thread必然存在于一个ThreadGroup中&#xff0c;Thread不能独立于ThreadGroup存在。 执行main()方法线程的名字是main 如果在new Thread时没有显式指定&#xff0c;那么默认将父线程&#xff08;当前执行new Threa…

delphi7 mysql控件_Delphi7连接MySql数据库-DBGrid控件显示数据

一个简单的Delphi7小程序&#xff0c;使用MySql数据库做简单查询&#xff0c;用DBGrid控件显示结果&#xff0c;实现过程如下&#xff1a;(1)在MySql中新建demouser表&#xff0c;插入记录用于测试。(2)在Delphi7中新建项目。(3)在From中添加组件。组件Panel&#xff1a;pnl1组…

filtic函数 matlab_matlab filtic 函数应用 filter 解差分方程 dft 函数

matlab filtic 函数应用 filter 解差分方程 dft 函数一、 解差分方程说明都在代码注释里面了%这里要利用filtic函数 为滤波器的直接II型实现选择初始条件%求解查分方程 y(n) - 0.4y(n-1) - 0.45y(n-2) 0.45x(n) 0.4x(n-1) - x(n-2)%y(-1) 0 y(-2) 1 x(-1) 1 x(-2) 2%x(n)…

rabbitmq进阶一

上一篇文章有讲到rabbitmq的安装、web管理端和springboot简单集成rabbitmq 本文重点介绍rabbitmq相关api的使用 按照官网常用的五种模式的顺序&#xff1a;HelloWorld、Work queues、Publish/Subscribe、Routing、Topics 模式简单介绍 HelloWorld 一个生产者&#xff0c;一…

mysql一直copying to tmp table_mysql提示Copying to tmp table on disk

网站运行的慢了&#xff0c;查找原因是Copying to tmp table on disk那怎么解决这个问题呢解决一例最近常常碰到网站慢的情况&#xff0c;登陆到后台&#xff0c;查询一下 /opt/mysql/bin/mysqladmin processlist;发现一个查询状态为&#xff1a; Copying to tmp table 而且此查…

idea cloud bootstrap是啥_application.yml与bootstrap.yml的区别

Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件&#xff0c;yml 和 properties 文件都属于配置文件&#xff0c;功能一样。Spring Cloud 构建于 Spring Boot 之上&#xff0c;在 Spring Boot 中有两种上下文&#xff0c;一种是 bootst…