2022全球AI生物智药大赛赛道二参赛攻略@paipai

大家好,我是来自paipai队的徐一帆,Github ID IvanaXu [01],相关研究工作都会开源在上面,欢迎大家关注!

以下是关于本次“云上进化”2022全球AI生物智药大赛 [02]:赛道二“抗原抗体结合Epitope和Paratope精准确定”的参赛分享。

一、团队介绍

enter image description here

paipai队,取自 PAIN + AI,我们团队先后打过很多不同领域的算法比赛,之前参加过“创新大师杯”冷冻电镜蛋白质结构建模大赛 [03],为继续深入生物计算相关技术,进而参加了本次比赛。我们同时打了本次“云上进化”2022全球AI生物智药大赛:赛道一“基于AI算法的SARS-CoV-2广谱中和抗体药物设计” [04]、赛道二“抗原抗体结合Epitope和Paratope精准确定” [05]。

其中,赛道一初赛Rank14、复赛Rank10;赛道二我们是较早出成绩的,初赛阶段0.29159/2022-10-09,0.3264/2022-10-25,之后由于时间关系就没更新了,所幸Rank15边缘晋级;复赛阶段我们进行了方案的主要优化,取得0.4410/2022-12-20,拿下Rank01;决赛阶段由于春节假期的时间投入,最终优化至0.4607/2023-02-06。

经2023-02-23 决赛答辩后 [06],
 

enter image description here


承蒙各位评委老师的错爱,我们有幸取得本次比赛 赛道二“抗原抗体结合Epitope和Paratope精准确定” 冠军


 

接下来,介绍主要算法方案。

二、主要方案

2.1 问题拆解

enter image description here

表位(Epitope)是存在于抗原表面的,决定抗原特异性的特殊性结构的化学基团称为抗原决定簇,又称表位。抗原通过表位与相应淋巴细胞表面抗原受体结合,从而激活淋巴细胞,引起免疫应答;抗原也借此与相应抗体或致敏淋巴细胞发生特异性结合。单个抗原分子可具有一种或多种不同的表位,其大小相当于相应抗体的抗原结合部位,每种表位只有一种抗原特异性。因此,表位是被免疫细胞识别的靶结构,也是免疫反应具有特异性的基础,其性质、数目和空间构型决定着抗原的特异性。与之对应的抗体结合部位(Paratope)是与抗原表位相结合的抗体上的位点。

表位和相应的抗体结合部位的确定的重要性,可想而知,它揭示了免疫系统对抗病毒的具体的机理。举个例子,几天前,一个新发现的新冠病毒抗体SP1-77及其谱系成员表现出非常广泛的活性。是什么使SP1-77抗体拥有如此广泛的中和作用?结构研究表明,SP1-77与当前抗体的工作原理大相径庭。研究人员解释说,现有许多抗体通过结合特定位置的刺突蛋白受体结合域(RBD)来防止新冠病毒与人体细胞的血管紧张素转化酶2(ACE2)受体结合。SP1-77抗体也与RBD结合,但方式完全不同,不会阻止病毒与ACE2受体结合,但SP1-77可防止病毒外膜与标靶细胞膜融合,这阻碍了病毒感染最后一个必要步骤。这就是结构基础上的表位和抗体结合部位的确定,能为人们解码抗体与病毒作用的细节方式。但是由于新冠病毒的表位不多,很容易被误打误撞地猜到,所以我们这个赛题不聚焦在新冠病毒。而是针对各种各样的抗原和抗体复合物。

根据比赛赛题以及数据解析 [07],
选手们可以基于,近两年雨后春笋般涌现出来的,蛋白质结构预测开源算法,在此基础上优化、定制出一个更有难度的,精准确定抗原抗体复合物上表位和相对应的抗体结合部位的算法。目的为给定的抗原抗体对,确定表位(Epitope在抗原序列上的位点序号,和在空间中的三维坐标)和对应的抗体结合部位(Paratope在抗体序列上的位点序号,和在空间中的三维坐标)。抗原抗体复合物的结构预测,可以说是精准确定Epitope和Paratope不可跳过的步骤,所以复合物的结构也需要提交。
使用MM-align + TM-score 对生成的抗原抗体复合物结构打分,并用RMSD、RMSE来对Epitope和Paratope的准确度打分(RMSD确定空间坐标位置的准确度,RMSE确定位点序号的准确度)。最终的分数是这三项的加权和,权重分别为0.3、0.3、0.4。[08][09]

简单来说,我们需要提交一个Docker镜像 [10],预测/tcdata下给定的抗原抗体对,并完成如图所示:

  • 任务A-结构预测,即根据001.fasta,预测其001.pdb文件;
  • 任务B-位点预测,即根据001.pdb结果文件,预测其抗原抗体结合位点;

2.2 结构预测

enter image description here

如图流程所示,我们先完成1、序列转文本匹配,预先构建Source对比库,并进行向量化特征匹配,若此时输出结果满足设定阈值,则直接输出,反之我们调用2、HelixFold-Single [11],百度类AlphaFold [12] 提出蛋白质结构预测方法 [13],但我们选用了其Single版本。并对其进行了一定程度上的优化:(1)模型参数优化、(2)调用方法优化等。

  • 也有幸在决赛答辩环节认识HelixFold其开发者 @IDEAL-lab团队,在此留一个大写的赞!
2.2.1 序列转文本匹配

enter image description here

(1)构建Source对比库
 

如上,由于AlphaFold2 [14]等结构库均1~2.2TB,出于简化,做了一定PDB筛选:
 

enter image description here


除了由最初官方数据的汇总分析外,我们先后进行了如右 I、II、III版本更新,陆续补充了一些关键词如:”?转录?”,并根据如:水解酶进而补充异构酶等之类的延伸关系。最后得到fasta+pdb文件经数据压缩后约18G,大幅度缩小了搜索范围。
对应的Source对比库也有 I [15]、II [16]、III [TODO] 版本,我们开放了部分。

enter image description here

(2)向量化特征匹配
我们在冷冻电镜蛋白质结构预测建模大赛尝试过将蛋白质序列视为文本并转化为NLP问题的思路V1、V2、V3,如图:

  • V1、直接走BM25文本模型;
  • V2、对文本进行CUT预处理后,走BM25文本模型;
  • V3、引用Bert MASK思想 + CUT预处理后,切入TF-IDF特征,导入LR模型;

我们参考了这一思路,但舍弃了Bert [17]、BM25文本模型 [18]。根据KISS原则 [19]”Keep It Simple, Stupid“,进一步简化为:根据Source对比库fasta,对fasta序列进行文本处理与转换,经Word2Vec模型 [20]得到多维向量化特征$X_n$,实际我们使用了512维,据此在Source库中计算欧氏距离 [21],匹配最近样本,输出其对应pdb文件。


 

2.2.2 HelixFold-Single

enter image description here

基于 AI 的蛋白质结构预测方法,例如 AlphaFold2,已经达到更高的精度。 主要依靠多序列比对 (MSA) [22]和模板作为输入,从同源序列中学习协同进化信息。 尽管如此,从蛋白质数据库中搜索 MSA 和模板非常耗时。 HelixFold-Single试图通过仅使用蛋白质的一级序列来探索快速蛋白质结构预测的局限性。 实现将大规模蛋白质语言模型与 类AlphaFold2 的学习能力相结合。 其中,HelixFold-Single 使用自监督学习范式预训练具有数亿个初级序列的大规模蛋白质语言模型 (PLM) [23],该模型将用作 MSA 和学习模板的替代方案 协同进化信息。 然后,通过结合预训练的 PLM 和 AlphaFold2 的基本组件,输出预测pdb结果。

我们注意到HelixFold-Single仅应用了蛋白质的一级序列,且也应用NLP技术,采用了大规模蛋白质语言模型/PLM作为AlphaFold2的文本化版本。其基本思想与我们类似,也是类似ESMFold [24]的大规模模型,但预训练给了更强的推理速度。

  • 简单高效,因此我们选用它作为结构预测模型的辅助方案。
2.2.3 优化版HelixFold-Single

enter image description here

(1)我们对该模型进行了参数解析,
并针对文本边际权重/last_n_weight [25],进行如图测试:综合多种不同类型蛋白质,示例中病毒蛋白 [26]、DNA构建蛋白 [27]、抗体抗原蛋白 [28]、免疫系统蛋白 [29]、细胞侵入 [30]等, last_n_weight=4时预测结果最佳。
进一步地,如细胞侵入last_n_weight=2更佳,这样我们可根据fasta先预测该蛋白质类型,再选择其对应的最佳阈值。

(2)调用方法优化
我们根据fasta将蛋白质拆解成不同分支,或者说蛋白质链,并对以下方法进行测试:

  • Test 1 直接调用;
  • Test 2 调用最小分支;
  • Test 3 调用各分支后合并;
  • Test 4 调用各分支后剪枝;
  • Test 5 T1 + T2按条件剪枝;

Test5 弥补了HelixFold-Single在蛋白质短链预测上的细微不足,并通过剪枝去除冗余结构,可提升2%!

特别说明,这里剪枝的思想来自于冷冻电镜蛋白 @nils 团队 [31]

2.3 位点预测

enter image description here

关于位点预测,我们主要有方法:
1、取默认值;
2、基于官方给的Baseline [32]进行优化;
3、通过ePISA [33]采集数据进行PDB匹配;
4、引入图模型 [34] GL model *;

其中,Baseline主要:

  • 读取结构预测后的 pdb 文件
  • 区分 pdb 文件中,分别属于抗原和抗体的部分
  • 根据Hydrogen bonds/氢键 [35],Salt bridges/盐桥 [36]的定义,识别相互作用区域的位点
  • 将pdb和epitope文件夹内结果保存为result.zip

实际使用,我们对方法2、方法3进行double check,以下介绍:

2.3.1 Baseline优化

enter image description here

(1)identify_bonds/输出原子类型优化
原baseline限制ATOM仅“X-H-O” [37]类型,在对官方数据探索后,我们尝试放开了这一限制;

(2)抗原抗体解析/separate_antigen_antibody优化;
改进了其对齐方式,由chain_id的直接对齐,改进为在fasta文件中进行auth关键词匹配,若不能匹配部分再直接对齐。在官方数据中,这引发了约20%的差异。

  • 这个bug其实很多团队都发现了,优化后可使得抗原抗体以及其链是对应的。

(3)原子间距离dist [38]限制优化
原baseline限制了结果原子间距离为(2.00, 3.50),我们基于官方数据,在对比baseline、ePISA预测结果之后,进行了原子间距离分析,后发现时大部分情况下头尾部原子间距离,baseline误差会放大。
故而,将dist限制在原子间距离25%-75% [39]内,即(2.83, 3.49);

(4)调整Hydrogen bonds/Salt bridges输出格式

2.3.2 PDBePISA

enter image description here

由于官方数据没有给出其位点信息,我们通过在线平台PDBePISA,并展开以下工作:

(1)数据爬取
通过https://www.ebi.ac.uk/pdbe/pisa/cgi-bin/interfaces.pisa?{task} 收集位点数据XML [40];

(2)数据清洗
自XML结果清洗得到Hydrogen bonds、Salt bridges、CSS [41],注意该平台返回多项预测结果,且CSS分数不一,也收集备用,以下简称ePISA数据;

(3)模版匹配
基于ePISA数据,类Source对比库构建ePISA库,返回相似结构的氢键、盐桥关系供参考;

位点预测单独使用此方法,线上成绩视复杂性约可取得0.3010~0.3939,可见该方法并不完善,但有一定准确度和扩展性。

这里我们对位点预测部分较为严谨,希望尽可能预测准确,故而:

  • 现应用策略是与2.3.1 Baseline优化进行背靠背预测,再相互校验。

如果改进此应用策略,或许整体模型效果会更好。

查看本文全部内容,欢迎访问天池技术圈官方地址:2022全球AI生物智药大赛赛道二参赛攻略@paipai

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

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

相关文章

8.2024

我们知道第一个质数是2&#xff0c;第二个质数是3&#xff0c;第三个质数是5.... 请你计算第2023个质数? 代码&#xff1a; import java.util.ArrayList;public class 第八题 {public static void main(String[] args) {ArrayList<Object> list new ArrayList<>…

鸿蒙OS实战:【module的使用】

在开发HarmonyOS应用时&#xff0c;默认创建的工程会有一个entry module&#xff0c;实际应用场景为了代码或者功能解耦&#xff0c;我们需要用到module来进行隔离。根据鸿蒙3.0/3.1/4.0官方指导&#xff0c;我们可以了解到关于module的类型&#xff0c;以及依赖关系&#xff0…

代码随想录学习Day 18

530.二叉搜索树的最小绝对差 题目链接 讲解链接 思路&#xff1a;利用二叉搜索树的性质&#xff0c;其中序遍历序列是一个有序数组。所以先对二叉搜索树进行中序遍历&#xff0c;得到一个递增的数组后&#xff0c;再遍历整个数组&#xff0c;依次求相邻值的差&#xff0c;最…

漏洞扫描-让安全弱点无所遁形

随着信息技术的迅猛发展和互联网的广泛普及&#xff0c;网络安全问题日益凸显。在这个数字化的世界里&#xff0c;无论是企业还是个人&#xff0c;都面临着前所未有的安全威胁。安全漏洞&#xff0c;作为这些威胁的源头&#xff0c;常常被忽视或无法及时发现。 而漏洞扫描&…

静态住宅IP优缺点,究竟要怎么选?

在进行海外 IP 代理时&#xff0c;了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和&#xff0c;并提供选择建议&#xff0c;帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

经验篇04-为什么学了很多知识/读了很多书却没用

前言 以下内容是参加古典老师的写作训练营&#xff0c;古典老师分享的视频课程&#xff0c;对于喜欢阅读或者学习的人来说&#xff0c;可以揭开【学了很多东西却没用】这个问题的神秘面纱&#xff0c;我个人收获非常大&#xff0c;结合了一些自己的理解&#xff0c;形成此文&am…

java常用IO流功能——字符流和缓冲流概述

前言&#xff1a; 整理下学习笔记&#xff0c;打好基础&#xff0c;daydayup! 之前说了下了IO流的概念&#xff0c;并整理了字节流&#xff0c;有需要的可以看这篇 java常用应用程序编程接口&#xff08;API&#xff09;——IO流概述及字节流的使用 字符流 FileReader(文件字…

代码随想录算法训练营Day35|LC860 柠檬水找零LC406 根据身高重建队列LC452 用最少数量的箭引爆气球

一句话总结&#xff1a;身高队列看起来不简单&#xff0c;实际上也很难。 原题链接&#xff1a;860 柠檬水找零 简单贪心思想即可。5元时加入cnt5&#xff0c;10元时cnt10&#xff0c;cnt5--&#xff0c; 20元时则优先找零10元再找零5元&#xff0c;这样最后判断是否在一次找零…

超全整理,软件测试-性能测试流程汇总,看这一篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试&#xf…

2024年蓝牙耳机怎么选?五大爆火真无线蓝牙耳机推荐大公开!

​随着科技的进步&#xff0c;越来越多的用户倾向选择无线蓝牙耳机&#xff0c;摆脱有线耳机的束缚&#xff0c;享受更加自由的音乐体验。为了帮助大家选购到适合自己的蓝牙耳机&#xff0c;我整理了一些目前市面上我个人认为性能优异的款式&#xff0c;与大家分享。 一、蓝牙耳…

通科技新品亮相:4K60编解一体,USB透传无忧

在信息化快速发展的今天&#xff0c;音视频技术的需求与应用场景日益丰富&#xff0c;特别是在对视频画质和实时性要求极高的领域中&#xff0c;如军警、公安、金融等&#xff0c;对音视频处理设备的性能要求更为严格。为满足这些高端应用场景的需求&#xff0c;视通科技紧跟时…

【Node.js从基础到高级运用】十八、Node.js的安全性加固

引言 在Web开发中&#xff0c;安全性是一个不可忽视的话题。Node.js作为一个流行的后端平台&#xff0c;同样需要关注各种潜在的安全威胁&#xff0c;并采取措施加以防御。本文将介绍如何在Node.js应用中防御常见的Web攻击&#xff0c;以及如何使用安全相关的中间件来加固安全性…

MySQL-1.数据库的基本操作

1. 数据库的基本操作 show databases; information_schema&#xff1a;信息图式&#xff0c;存储服务器管理数据库的信息 mysql&#xff1a;存放系统信息&#xff0c;用户名密码等 performance_schema&#xff1a;性能图式 sys&#xff1a;系统文件 1.1 创建数据库-studen…

套娃式大小AI群体导致AI觉醒吗?

一、“套娃式”AI训练 目前&#xff0c;我们所讨论的人工智能&#xff08;AI&#xff09;主要是基于机器学习和深度学习技术的算法系统。它们通过不断学习、优化和改进以完成特定任务&#xff0c;但并不具备自我意识或者独立的创造性思考能力&#xff0c;即“觉醒”。 “套娃式…

RHCE作业:搭建web网站

综合练习&#xff1a; 请给openlab搭建web网站 网站需求&#xff1a; 1.域名访问网站 基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.创建界面 给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料 和缴费网站&#xff0c;基于www.openlab.com…

Splashtop 荣获2024年 Globee® 卓越网络安全两大奖项

2024年3月25日 加利福尼亚州库比蒂诺 Splashtop 在简化随处办公领域处于领先地位&#xff0c;我们自豪地宣布荣获全球卓越企业权威机构 Globee 奖。Splashtop 凭借其安全工作空间解决方案&#xff08;即插即用安全访问平台&#xff0c;使 IT 部门能够简化零信任的实施&#xf…

算法笔记~—位运算

目录 常见位运算&#xff1a; 1、基础位运算 2、对于一个数n。确定、修改这个数n二进制x位。 3、提取&#xff08;确定&#xff09;一个数n最右侧的1&#xff08;bit&#xff09;与干掉最右侧的1&#xff08;bit&#xff09; 4、异或运算律 5、位运算的优先级&#xff1a…

vscode 配置c++环境——3个文件搞定!!!

前提&#xff1a; 在vscode中安装了c扩展 创建文件settings.json {"files.associations": {"string": "cpp","vector": "cpp","array": "cpp","atomic": "cpp","*.tcc"…

[C++]函数重载(什么是函数重载,函数重载的原理(底层怎么实现))

一、什么是函数重载 函数重载是指在同一作用域内&#xff0c;可以有多个功能类似具有相同函数名&#xff0c;不同参数列表&#xff08;包括参数类型、参数个数、参数顺序&#xff09;的函数。编译器会根据函数调用时提供的参数来决定调用哪一个具体的函数。 注意&#xff1a;只…

QT gridlayout 循环设置组件,表格也通用 已解决

在需求中。经常遇到&#xff0c;表格 展示需求。 几乎都是json格式的。 // 列表配置文件QJsonArray listJsonArray getCfgJsonData("details_tab_table_config.json");if (listJsonArray.isEmpty()){return;}ui->gridWidget->setMaximumSize(QSize(310, 180)…