BERT一个蛋白质-季军-英特尔创新大师杯冷冻电镜蛋白质结构建模大赛-paipai

devtools/2024/9/19 6:03:11/ 标签: bert, 人工智能, 算法

关联比赛:  “创新大师杯”冷冻电镜蛋白质结构建模大赛

解决方案

团队介绍

paipai队、取自 PAIN + AI,核心成员如我本人IvanaXu(IvanaXu · GitHub),从事于金融科技业,面向银行信用贷款的风控、运营场景。但我们团队先后打过很多比赛,其中跨领域居多,如天文、海洋,也非常有幸参加本次蛋白质结构建模大赛。我们将延续“他山之石,可以攻玉”的基本思想,这也将在后续方案中体现。

主要方案

01 赛题解析

截屏2022-03-25 09.55.17.png


金融场景下其实就是在追求精准定位问题,并以最小成本换取更大收益。同样的,从现有解析蛋白质结构的主流方法来看,能覆盖较多场景(如生物大分子、静动两态、蛋白质折叠等)且精度较高,但为此需要付出大量人力成本,甚至是在专业软件辅助下才能完成的人工操作。另外,由DeepMind研发的AlphaFold2却能高效几乎0人工输出蛋白质结构,当然这个代价是覆盖场景有限(如生物大分子易错)、局部精度高(需要强依赖于已知蛋白质结构/PDB)。据此我们提出的解决方案是,拥抱类似于AlphaFold2的AI预测技术但充分结合传统方法,或许是最大收益方案。
即复杂生物应用场景下,求一种高效、准确的蛋白质结构解析方法。
所以我们将解决方案聚焦到以下两点:
(1)仅从氨基酸序列出发的AI预测技术为主,通过已知蛋白质结构去做一些自衍生处理,尝试去摆脱对已知蛋白质结构高度依赖;
(2)当遇到已知蛋白质结构甚至是自衍生蛋白质结构都不能很好识别时,再来考虑结合冷冻电镜数据,作为预测结果的辅助性修正,毕竟获取冷冻电镜数据就已经投入了一定的成本;

02 算法设计

截屏2022-03-25 10.02.30.png


如示例2145这个氨基酸序列,我们看到前4位的MSSK、就是一个甲硫氨酸+两个丝氨酸+一个赖氨酸的序列,但我们将它转为以下文本处理:
第一步,将氨基酸序列-蛋白质结构作为一组X-Y对,即使用氨基酸序列预测蛋白质结构,并计划进行自衍生处理1:将衍生后的氨基酸序列-蛋白质结构对进行随机混淆打乱,这一步复赛阶段未实现,但后续我们做了一些尝试;
第二步,将氨基酸序列转化为文本序列,在这里会做自衍生处理2:将它切分为不同长度的文本序列,如左侧V2算法的第一步,将MSSKS每隔4个氨基酸就切分为MSSK、SSKS等等,同样的还会按照5、6不等的长度进行切分,最终使用4、5、6、8、10、12、15、18,分别代表了4、5、6长度段的1倍、2倍、3倍。从生物意义上就代表了一些短氨基酸序列。这种切分方法的优点是可以是因为把其充分序列化,那么蛋白质中的对称重复架构会在序列中特别突出,有点像121213这组数字,我们听一遍后,在脑海中对12、121、21这样的组合印象就很深刻;
第三步,文本处理:尝试提取序列之间的潜在关系,事实上可考虑引入谷歌提出的基于Transformers的双向编码语言模型BERT来解决,但BERT很重,考虑上述成本效益,在此简化应用TF-IDF来处理;
第四步,将处理后序列信息输入至预测模型,输出最接近蛋白质结构;

为进一步比较自衍生处理1、自衍生处理2、以及不同文本处理算法之间的差异,我们先后设计了V1、V2、V3三个算法版本:

  • V1,无自衍生处理1、无自衍生处理2,即MSSK序列会当作M、S、S、K四个单词组成的一句话,直接使用BM25文本模型进行预测;
  • V2,在V1基础上增加自衍生处理2,即MSSK序列会切分为如图MSSK、SSKS、等等单词组成的一句更长的话;

可以通过比较V1、V2来体现自衍生处理2带来的预测增益。

截屏2022-03-25 11.11.03.png

  • V3,会更充分考虑实际蛋白质结构预测中会遇到的问题,并根据本次比赛提供的E-HPC阿里云弹性高性能计算平台改进算法底层一些计算设计,如图:

(1)在高性能计算平台上应用CPU多核并发,能同时计算多个蛋白质,并将氨基酸序列计算转入稀疏矩阵存储 + TF-IDF限制某些高频率出现的简单序列,减少大量空值存储和无效计算,充分压缩氨基酸序列结果,避免内存错误;
(2)在V2的基础上调整BM25文本模型至TF-IDF+LR;
这就是复赛阶段的解决方案。
(3)另外,复赛后我们还在此基础上设计如左虚框部分的自衍生处理1,对算法拓展性做了一部分探索。
引入BERT中MLM/Masked Language Model即遮蔽语言模型的概念,其灵感来自于我们学英语很熟悉的完形填空,如我们通过线上会议XX了答辩,就会填写“参加”这个词。
这种概念其实类似于自衍生处理2,本质上是为了充分提取氨基酸序列的潜在关系,如前面提出的不同长度切分就为了获取一定的上下文信息,即氨基酸序列中S丝氨酸前后的氨基酸信息,但这种方式也仍然是单向或一个正向+一个反向这种假双向。反之MLM能更充分的解决这个问题,因为这个时候模型学到不是一个向量,而是**“一种学习能力”**。
TODO

  • 所以在AAAI2020的工作中,已经有论文提出K-BERT即知识图谱+BERT的概念,使用类似MLM的方式尝试进行知识发现。

同样的,可以使用这个概念来“知识发现”一些未知的蛋白质结构,进而打破上述对已知蛋白质结构的高度依赖。

以下我们来对照AlphaFold2,对比一下上述算法
 

截屏2022-03-25 11.57.51.png


以2148为例,我们也尝试使用了AlphaFold2:

  • 通过前两栏的RMSD、TM-score来看:

无疑是AlphaFold2最强,但对比V2、V1可以看到,在做了自衍生处理2即序列切分后,TM-score自0.19提升到了0.77,V2算法也就是初赛核心方案。另外,改进后的V3算法从个例来看相对接近于AlphaFold2。

  • 另外,由于我们在调研阶段从PDB中发现了远比训练数据更大的蛋白质,所以这里的long评估项即长氨基酸序列的兼容,AlphaFold2/V1/V2都不同程度地出现在长氨基酸序列计算时内存错误的情况。前面介绍过,V3在做了一些相关设计所以相对可控。且能在不需要GPU的情况下进一步兼容HPC高性能计算,尽管AlphaFold2也提出支持HPC,对此我们未深入体验。

接下来我们看一下可视化结果对比:
 

截屏2022-03-25 11.58.09.png


AlphaFold2已经接近严丝合缝,V1差异还比较大,但V2、V3已经有了相似的蛋白质结构雏形,未来可能可以进一步优化。

03 总结

截屏2022-03-25 12.15.11.png


1、直接转换为文本问题进行解决
事实上我们也发现其实这与Alphafold2的序列处理有类似的地方,但不同AI场景下2D 和3D transformers的发展,可能还可以进一步借鉴。但氨基酸序列的潜在关系我们还是交由更为简单的文本处理算法(TF-IDF)进行提取,这里考虑降低模型复杂性、提高应用效率。
如我们还没有提到的冷冻电镜图片处理,CVPR2022的工作中已经提出了Point-BERT基于掩码建模的3D点云自注意力模型,实现将类似于冷冻电镜数据这种3D结构表达为一个“词汇”集合。跟我们上述将氨基酸序列转化为文本处理的逻辑类似,我们的解决方案也提出了类似的思想,先用氨基酸序列进行文本预测,再对预测不佳的部分根据冷冻电镜数据也进行文本预测,作为辅助性修正,但这部分还没有来得及完成。
2、避免高度依赖已知蛋白质结构
为此前面我们设计了自衍生处理1、自衍生处理2,并通过V1/V2比较证明了自衍生处理2的有效性。也正是引入自衍生处理1,通过V2/V3比较看到了突破这种蛋白质结构依赖带来的额外效益。

相关参考

概念

  • 清华大学结构生物学高精尖创新中心

    https://ww.icsb.tsinghua.edu.cn

  • Alphafold2

    alphafold.ebi.ac.uk

截屏2022-02-11 08.00.50.png

  • 一键构建云上高可用蛋白质结构预测平台(一)

    基于Alphafold2一键构建云上高可用蛋白质结构预测平台 | 亚马逊AWS官方博客

  • PDB,全称Protein Data Bank,是目前最主要的收集蛋白质三维结构的数据库

文章

  • 当AI“进击”蛋白质结构预测
  • 颜宁等点评:AI精准预测蛋白质结构,结构生物学何去何从?
  • 颜宁点评AlphaFold2 + 外行买家秀:蛋白结构预测神器初体验

论文

  • CN104951669A - 一种用于蛋白质结构预测的距离谱构建方法 - Google Patents

image.png

image.png

  • Highly accurate protein structure prediction with AlphaFold

image.png


详见https://github.com/IvanaXu/TianChiProj/tree/master/ProteinStructureModeling
BERT一个蛋白质-季军-英特尔“创新大师杯”冷冻电镜蛋白质结构建模大赛-IvanaXu

查看更多内容,欢迎访问天池技术圈官方地址:BERT一个蛋白质-季军-英特尔创新大师杯冷冻电镜蛋白质结构建模大赛-paipai_天池技术圈-阿里云天池

http://www.ppmy.cn/devtools/22451.html

相关文章

Internal server error: [less] Unrecognised input

我之前查了资料,网上有的人说是 less 的配置不正确(这种问题引起的可以查找其他博客看),但是后面经过我慢慢的查找,还有一种可能,就是 less 的写法不对,下面我来解释一下我的错误和处理过程 在…

企业计算机服务器中了rmallox勒索病毒怎么办,rmallox勒索病毒解密流程

对于众多的企业来说,通过网络开展各项工作业务已经成为常态,网络为企业的生产运营提供了极大便利,也大大加快了企业发展的步伐,但众多企业越来越重视企业发展中的核心数据安全问题。近期,云天数据恢复中心接到众多企业…

自動重啟Debian

要自動重啟Debian系統,你可以使用以下幾個方法: 使用crontab:編輯crontab文件,並添加以下行以設定定期重啟系統: reboot /sbin/reboot保存並退出文件。這將在系統重新啟動後運行/sbin/reboot命令,從而自動…

React的useEffect

概念:useEffect是一个React Hook函数,组件渲染之后执行的函数 参数1是一个函数,可以把它叫做副作用函数,在函数内部可以放置要执行的操作参数2是一个数组(可选参),在数组里放置依赖项&#x…

最大连续1的个数 ||| ---- 滑动窗口

题目链接 题目: 分析: 题目中说可以将最多k个0翻转成1, 如果我们真的这样算就会十分麻烦, 所以我们可以换一种思路: 找到一个最长的子数组, 最多有k个0解法一: 暴力解法: 找到所有的最多有k个0的子字符串, 返回最长的解法二: 找到最长的子数组, 我们可以想到"滑动窗口算…

LLM优化:开源星火13B显卡及内存占用优化

1. 背景 本qiang~这两天接了一个任务,部署几个开源的模型,并且将本地经过全量微调的模型与开源模型做一个效果对比。 部署的开源模型包括:星火13B,Baichuan2-13B, ChatGLM6B等 其他两个模型基于transformers架构封装&#xff0…

将mysql转为oracle

mysql->oracle 前言 今天的任务是把用mysql数据库编写的程序转成oracle,这也是我第一次用oracle可谓是错误百出啊。下载oracle?NO在公司我们不需要本地下载oracle,(如果你是想自己学习当我没说,不魔法下载很慢,有时间我会写一…

Redis分布式锁学习

一、单体应用,使用JUC包中提供的锁 问题:单一应用无法应对高并发场景。如果对服务进行横向扩展,即增加应用节点,然后nginx配置负载均衡的方式,那么单个进程里的锁无法对其他进程中的线程生效。 解决方案:基于redis的s…

Linux服务器基本操作

Linux下服务器基本操作指令 Vim 文件名 进入 i编辑 esc退出编辑 :wq 保存退出 Cp -r文件夹 path 完整或…/ Cp 文件 path pwd 查看当前目录 rm -rf 2005 删除文件夹 Mkdir 创建文件夹 squeue查看提交队列 tail -f rsl.out.0000 在运行当前目录下查看进度 Scancel j…

SpringMVC进阶(过滤器解决中文乱码,处理json以及文件上传下载)

文章目录 1.中文乱码处理1.引出问题1.恢复原来取消掉的属性绑定2.启动服务器,引出问题 2.自定义中文乱码过滤器1.MyCharacterFilter.java2.web.xml配置过滤器(这个解决乱码的过滤器放到最前面)3.结果展示 3.使用Spring过滤器处理(…

KUKA机器人KR3 R540维护保养——涂润滑脂

KUKA机器人在保养时少不了润滑脂,不同型号的机器人需要的润滑脂类型也不一样,保养时注意选用合适的润滑脂。本篇文章以KUKA机器人KR3 R540为例,在轴盖板 A2、A3、A5 的内侧涂上润滑脂。 一、涂润滑脂的作用 拆开机器人一个轴的盖板&am…

特别的时钟特别的倒计时

念念不忘的歌曲&#xff1a;Thats Why You Go Away <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

大白菜启动U盘想格式化但格式化不了

部分区域被修改分区表保护起来了。直接格式化的话&#xff0c;里面的文件夹都还在。根本格式化不了。特别是可用容量并未还原出来。 进入计算机管理》磁盘管理&#xff0c;看到U盘盘符。别搞错了。删除掉里面的已经分的区域和未分区区域&#xff0c;让它还原成一个整体。退出。…

【并行计算】【《云计算与分布式系统·从并行处理到物联网》笔记】第一章:分布式系统模型和关键技术

文章目录 [toc]1.1|互联网之上的可扩展计算互联网计算的时代高性能计算高吞吐量计算三种新的计算范式 可扩展性计算趋势和新的范式并行度 物联网和CPS物联网信息物理融合系统CPS 个人主页&#xff1a;丷从心 系列专栏&#xff1a;计算机网络 1.1|互联网之上的可扩展计算 互联…

【无标题】进入语音识别与自然语言处理的世界:探索C++库的功能与应用场景

构建智能语音应用&#xff1a;深入了解C语音识别与自然语言处理库 前言 语音识别和自然语言处理是人工智能领域的重要研究方向&#xff0c;它们在自动语音识别、机器翻译、智能对话等方面有着广泛的应用。在这个领域&#xff0c;有许多优秀的开源和商业的工具和库可供选择&am…

Spark-机器学习(7)分类学习之决策树

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。…

【已解决】Python Selenium chromedriver Pycharm闪退的问题

概要 根据不同的业务场景需求&#xff0c;有时我们难免会使用程序来打开浏览器进行访问。本文在pycharm中使用selenium打开chromedriver出现闪退问题&#xff0c;根据不断尝试&#xff0c;最终找到的问题根本是版本问题。 代码如下 # (1) 导入selenium from selenium import …

【网络原理】TCP协议的连接管理机制(三次握手和四次挥手)

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序&#xff08;万字博文&#xff09; 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制&#xff08;CRC算法、MD5算法&#xff09; 【网络…

Spring Cloud Gateway 原理

基本参数 Spring Cloud Gateway 是 Spring Cloud 生态系统中的一个组件&#xff0c;它提供了一种基于路由和过滤器的方式来处理请求。 路由(Route)&#xff1a; Spring Cloud Gateway 基于路由来将请求转发到不同的目标地址。路由定义了请求的匹配规则以及目标地址。每个路由都…

使用minikube搭建本地k8s练习环境

官网文档; https://minikube.sigs.k8s.io/docs/start/ 硬件要求&#xff1a; 2 个或更多 CPU2GB 可用内存20GB 可用磁盘空间容器或虚拟机管理器&#xff0c;例如&#xff1a;Docker、QEMU、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox或VMware Fusion/Workstatio…