利用深度蛋白质序列嵌入方法通过 Siamese neural network 对 virus-host PPIs 进行精准预测【Patterns,2022】

在这里插入图片描述

研究背景:

  1. 病毒感染可以导致多种组织特异性损伤,所以 virus-host PPIs 的预测有助于新的治疗方法的研究;
  2. 目前已有的一些 virus-host PPIs 鉴定或预测方法效果有限(传统实验方法费时费力、计算方法要么基于蛋白结构或基因,要么基于手动特征工程的机器学习);
  3. DL在PPIs预测中的应用愈加广泛,包括特征嵌入、autoencoder、LSTM等,而最近几年基于NLP领域的一些基于迁移学习的方法、基于 transformer 的预训练模型的应用等在 PPIs 预测中展现了更好的表现;
  4. 本文中,作者提出了一个基于 ProtBERT 模型的深度学习方法,名为 STEP(据作者所知,这是第一个用预训练 transformer 模型获取序列嵌入特征用于 PPIs 预测的方法);

数据集构成:

在这里插入图片描述

数据集构成
Tsukiyama22,383 positive PPIs (5,882 human proteins & 996 virus proteins)
Guo5943 positive PPIs
Sun36,545 positive PPIs, 36,323 negative PPIs
  1. Tsukiyama 的数据集是 human-virus PPIs,正负样本数目比为1:10,负样本构造方法是:dissimilarity-based negative sampling method。此外,将整个数据集中的20%取出作为独立的验证集 (independent test data);
  2. Guo 的数据集是 Yeast PPIs,其中负样本PPIs的数目和正样本PPIs一样,构建方法有三种:1). 正样本蛋白随机组对;2). 不同亚细胞定位的蛋白进行组对;3). 利用人为构造(将已有蛋白的序列进行打乱)的蛋白序列进行组对;
  3. Sun 的数据集是 Human PPIs,从 HPRD 数据库中整理得到的,负样本构建方法是 “不同亚细胞定位随机组对” 和 “Negatome database 中的非互作蛋白”;

研究思路和方法:

在这里插入图片描述
代码:https://github.com/SCAI-BIO/STEP
从示意图中可以看出,STEP方法的整体结构是很简单的,所以根据上述示意图对主要代码进行简述(代码主要来自src/modeling/ProtBertPPIModel.py):

1. __single_step()方法从宏观上规定了STEP运行过程:

在这里插入图片描述

上面截图为ProtBertPPIModel.py的314行-327行,这段代码规定了STEP的运行顺序,其中我觉得比较重要的点我用红线标了出来:

  1. 该段代码定义了一个__single_step(self, batch)的方法,其输入是batch,根据315行可以确定batch是由inputs_A, input_B, targets三部分构成的。
  2. 之后的316和317行表示将 inputs_Ainputs_B输入到self.forward()方法中得到model_out_Amodel_out_B,从这一步可以推测出inputs_A是由input_ids, token_type_ids, attention_mask构成。
  3. self.forward()的输出作为下一步self.classifier()方法的输入,之后得到classifier_output(即预测输出),之后再利用self.loss_bce_with_integrated_sigmoid()方法计算损失,最终__signle_step()方法返回(loss, trues, preds)(即损失值、真实标签和预测值)。

self.forward()方法定义了ProtBERT模型如何对输入的蛋白序列进行编码的:

在这里插入图片描述

首先蛋白A和蛋白B的序列由氨基酸构成的字符串,不能直接输入到神经网络中进行训练,需要将需要将字符串映射为数值型数据。这一步就是干这个事的,也就是用预训练的ProtBERT模型将蛋白质序列进行向量化表示。

  1. input_ids, token_type_ids, attention_mask 输入self.ProtBertBFD()方法之后得到word_embeddings,之后通过self.pool_strategy()方法对word_embedding进行池化操作,而这个self.pool_strategy()(如下图所示),这里的features指的就是{"token_embeddings": word_embeddings, "cls_token_embeddings": word_embeddings[:, 0], "attention_mask": attention_mask},而self.pool_strategy()的输出output_vectors则计算了三种情况下的池化结果。

在这里插入图片描述

  1. 这里存在的疑问是input_ids, token_type_ids, attention_mask究竟指的是什么?
    根据 src/data/VirHostNetDataset.py 中(下图所示)可以看出,input_ids, token_type_ids, attention_mask是由self.tokenizer()方法得到的,而self.tokenizer()方法指的是预训练模型Roslab/prot_bert_bfd中的tokenizer,这三个数据可以从tokenizer中得到(可见 https://huggingface.co/Rostlab/prot_bert_bfd)。

在这里插入图片描述

self.ProtBertBFD()加载预训练PortBERT模型:

在这里插入图片描述

正如上面所述,预训练模型ProtBERT可以直接从 hugging face 上下载得到,通过BertModel.from_pretrained()方法进行加载即可(红框所注部分)。

self.classifier()对蛋白A和蛋白B特征进行哈达玛积,并进行预测分类:

在这里插入图片描述

将通过self.forward()方法得到的蛋白A和蛋白B的特征进行哈达玛积,并将结果输入到self.classification_head()方法中即可得到预测结果(其中self.classification_head()方法在上面的__build_model()方法中)。

大概情况就是这样(有错之处,还请指出,及时更改),其他细节详见代码。


实验结果及讨论:

1. Comparative evaluation of STEP with state-of-the-art work:

方法特征+模型
Tsukiyama (2021)word2vec sequence embedding + LSTM-PHV Siamese model (5-fold-cv)
Yang (2019)doc2vec + RF classifier
Guo (2008)auto covariance + SVM (5-fold-cv)
Sun (2017)AC + CT + autoencoder (10-fold-cv)
Chen (2019)Siamese residual RCNN (5-fold-cv)
STEP (2022)ProtBERT + Siamese Neural Network

1.1 PPIs 预测任务上各方法的预测表现:

在这里插入图片描述

1.2 在 PPIs 互作类型和结合亲和力任务上,各方法的预测表现:

  1. PPIs 互作类型预测:
       数据集:SHS27k dataset(由Chen对STRING数据库整理得到),包括 26,944 PPIs,涉及7种互作类型: activation (16.70%), binding (16.70%), catalysis (16.70%), expression (5.84%), inhibition (16.70%), post-translational modification (ptmod; 10.66%), and reaction (16.70%)。
  2. PPIs 结合亲和力预测:
       数据来自 SKEMPI 数据库,包括 2,792 突变蛋白复合物的结合亲和力(参考Chen的方法对数据集进行了处理)。
  3. 模型修改:
       1). 对于PPIs预测任务(多分类任务),将 bottleneck classification head 替换为三个一样的线性层(dropout和ReLU不变),将损失函数换成 cross-entropy,sigmoid 激活函数换成 Softmax。
       2). 对于PPIs 结合亲和力预测(回归问题),将损失函数替换成 mean squared error loss,并将预测值缩放到0-1之间。
  4. 做10-fold-cross validation。

在这里插入图片描述

1.3 结论1:

  1. Table1 demonstrated at least state-of-the-art performance of STEP.
  2. STEP compared on exactly the same data published by Tsukiyama performs similar to their LSTM-PHV method and better than the approach by Yang.
  3. TableS4, we also evaluated our STEP architecture on two additional tasks, namely, PPI type prediction and a PPI binding affinity estimation using the data and the CV setup provided by Chen. For both tasks, we reached at least state-of-the-art per- formances with our approach.

2. Prediction of JCV major capsid protein VP1 interactions:

  1. We split the brain tissue-specific interactome dataset including all positive and pseudo-negative interactions into training (60%), validation (20%), and test (20%) datasets.
  2. After tuning on the validation set, we used our best model to make predictions on the hold-out test set.
  3. 之所以用 brain tissue-specific interactome 的数据,是因为 JCV 可以透过血脑屏障入脑。

2.1 超参数优化(模型微调):

在这里插入图片描述

2.2 STEP-Brain对于脑组织特异性互作蛋白的预测表现:

在这里插入图片描述

2.3 STEP-Brain对于JCV major capsid protein VP1 互作蛋白的预测结果(top10):

We used this STEP-brain model to predict interactions of the JCV major capsid protein VP1 with all human receptors.

在这里插入图片描述

2.4 JCV major capsid protein VP1 被预测的互作蛋白富集分析结果:

在这里插入图片描述

Altogether, we observed a strong enrichment of VP1 interactions predicted with olfactory, serotonin, amine, taste, and acetylcholine receptors.

3. Prediction of SARS-CoV-2 spike glycoprotein interactions:

3.1 训练思路:

We performed a nested CV procedure on the given SARS-CoV-2 interactions dataset. We used five outer and five inner loops to validate the generalization performance and while performing the hyperparameter optimization in the inner loop. In each outer run, we created a stratified split of the interactome into train (4/5) and test (1/5) datasets. In the nested run, we further split the outer train dataset into train (1/5) and validation (1/5) datasets, which were used to optimize the hyperparameters of the model using the respective training data.

关于 Nested Cross Validation 的示意图(图片来自网络):
在这里插入图片描述

3.2 超参数优化:

在这里插入图片描述

3.3 STEP-virus-host model 的 Nested CV 测试结果:

在这里插入图片描述
在这里插入图片描述

3.4 STEP-virus-host model 预测SARS-CoV-2 spike 蛋白的人类受体结果:

STEP-virus-host model obtained from the best outer fold to predict interactions of the SARS-CoV-2 spike pro- tein (alpha, delta, and omicron variants) with all human receptors that were not already contained in VirHostNet.
在这里插入图片描述

  1. For all virus variants the sigma intracellular receptor 2 (GeneCards:TMEM97; UniProt:Q5BJF2) was the only one predicted with an outstanding high probability (of >70% in all cases).
  2. The sigma 1 and 2 receptors are thought to play a role in regulating cell survival, morphology, and differentiation.
  3. In addition, the sigma receptors have been proposed to be involved in the neuronal transmission of SARS- CoV-2. They have been suggested as targets for therapeutic intervention.
  4. Our results suggest that the antiviral effect observed in cell lines treated with sigma receptor binding ligands might be due to a modulated binding of the spike protein, thus inhibiting virus entry into cells.

4. 讨论:

  1. 利用预训练ProtBERT和Siamese neural network架构仅根据蛋白质以及序列来预测 PPIs,结果表明该方法(STEP)比之前的基于LSTM等原理的方法效果更优;
  2. 通过将STEP进行超参数优化得到的模型可以很好地预测脑组织特异性PPIs以及virus-host PPIs的预测;
  3. 微调的模型 STEP-Brain 和 STEP-virus-host 可分别用于预测 JCV major capsid protein VP1 互作蛋白以及 SARS-CoV-2 spike glycoprotein 互作受体;
  4. 作者首次提出将预训练大模型用于PPIs预测,意义还是很重大的。但是整体上来看,尽管模型比较简单,但是对计算资源的要求很高,(每一次微调需要 2xA100GPU with VMEM of 32GB,尽管可以并行,但是微调116次,作者用了10days的时间)
    【本文章给我的启发就是,没有足够的计算资源,大模型还是不要搞得好😮‍💨】

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

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

相关文章

以太网交换机高稳定性时钟系统应用方案

随着网络技术的不断发展,我们的生活也发生着巨大的变化,这离不开以太网起到的重大作用,全球大部分地区的以太网交换机市场都出现了增长。 那么,平常我们所说的以太网交换机到底是什么?今天小扬给大家科普科普以太网交…

ubuntu学习(六)----文件编程实现cp指令

1 思路 Linux要想复制一份文件通常指令为: cp src.c des.c 其中src.c为源文件,des.c为目标文件。 要想通过文件编程实现cp效果,思路如下 1 首先打开源文件 src.c 2 读src到buf 3 创建des.c 4 将buf写入到des.c 5 close两个文件 2 实现 vi …

第一次实验:Protocol Layers

第一次实验:Protocol Layers 捕获跟踪*Pick a URL and fetch it with* wget *or* curl*.* 检查跟踪数据包结构协议开销复用密钥*Which Ethernet header field is the demultiplexing key that tells it the next higher layer is IP?**Which IP header field is th…

get请求报错400 非法参数

get请求报错400 非法参数 背景&#xff1a;get请求数据&#xff0c;SpringBoot提供接口&#xff0c;返回400&#xff0c;报错非法参数此种情况排除接口本身错误之外&#xff0c;检查参数中有没有特殊字符 " < > [ \ ] ^ { | } 我这边就是因为其中一个参数中有中括…

(Deep Learning)准确率和召回率的基础概念

算法模型极大的提升了对各类结果的预测效率。 【算法模型的本质】 算法模型的本质&#xff0c;是基于输入的各类变量因子&#xff0c;通过计算规则&#xff08;模型or公式&#xff09;&#xff0c;得出预测结果。 典型的预测结果比如&#xff1a; 1.&#xff08;通过历史行为…

基于XML实现SpringIoC配置

目录 SpringIoc创建与使用的大致步骤 一.基于xml配置SpringIoc 二.基于xml配置DI 三.创建IoC容器并获取组件 SpringIoc创建与使用的大致步骤 SpringIoC的创建与使用过程分为3步 1.编写配置信息&#xff08;编写XML&#xff0c;注解、Java类&#xff09; 2.创建IoC容器&…

pytorch中torch.gather()简单理解

1.作用 从输入张量中按照指定维度进行索引采集操作&#xff0c;返回值是一个新的张量&#xff0c;形状与 index 张量相同&#xff0c;根据指定的索引从输入张量中采集对应的元素。 2.问题 该函数的主要问题主要在dim维度上&#xff0c;dim0 表示沿着第一个维度&#xff08;行…

AD中如何给过孔添加盖油

AD中如何给过孔添加盖油 画PCB时通常我们会放一些过孔&#xff0c;起到上下层信号转接或者地过孔的作用&#xff0c;当这些过孔较大较密时如果不做盖油处理&#xff0c;就会影响电气性能而且很不美观。如下图&#xff1a; 如果要盖油&#xff0c;点击对应的过孔&#xff0c;将…

解决华为云ping不通的问题

进入华为云控制台。依次选择&#xff1a;云服务器->点击服务器id->安全组->更改安全组->添加入方向规则&#xff0c;添加一个安全组规则&#xff08;ICMP&#xff09;&#xff0c;详见下图 再次ping公网ip就可以ping通了 产生这一问题的原因是ping的协议基于ICMP协…

网站和API支持HTTPS,最好在Nginx上配置

随着我们网站用户的增多&#xff0c;我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下&#xff0c;要从HTTP升级到HTTPS&#xff0c;让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手&#xff0c;从HTTP升级到HTTPS&#xff0c;同时支持静态网站和…

新媒必看!如何利用文件传输软件拿到一手资料!

在新媒体时代&#xff0c;新闻的爆发和传播已经变得非常迅速和紧迫&#xff0c;这要求新媒体从业者具备敏锐的嗅觉和快速获取第一手资料的能力。然而&#xff0c;在大数据文件传输过程中常常遇到信息滞后、泄露或丢失等问题&#xff0c;这会直接影响新闻报道的质量。为了解决这…

华为OD机试 - 求字符串中所有整数的最小和 - 逻辑分析(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

Java Predicate用法

Java Predicate用法 无需写sql.只要拼接条件就行 Java Predicate用法

深度学习-4-二维目标检测-YOLOv3理论模型

单阶段目标检测模型YOLOv3 R-CNN系列算法需要先产生候选区域&#xff0c;再对候选区域做分类和位置坐标的预测&#xff0c;这类算法被称为两阶段目标检测算法。近几年&#xff0c;很多研究人员相继提出一系列单阶段的检测算法&#xff0c;只需要一个网络即可同时产生候选区域并…

阿里云通用算力型u1云服务器CPU性能详细说明

​阿里云服务器u1是通用算力型云服务器&#xff0c;CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器&#xff0c;通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xff…

springcloud3 GateWay章节-Nacos+gateway(跨域,filter过滤等5

一 常用工具类 1.1 结构 1.2 跨域 Configuration public class CorsConfig {Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config new CorsConfiguration();config.addAllowedMethod("*");config.addAllowedOrigin("*");config.addAllowe…

接口经典题目

​ White graces&#xff1a;个人主页 &#x1f649;专栏推荐:《Java入门知识》&#x1f649; &#x1f649; 内容推荐:继承与组合&#xff1a;代码复用的两种策略&#x1f649; &#x1f439;今日诗词:人似秋鸿来有信&#xff0c;事如春梦了无痕。&#x1f439; 目录 &…

go gin 参数绑定常用验证器

https://pkg.go.dev/github.com/go-playground/validator/v10#readme-baked-in-validations min 最小max 最大len 长度限制gt 大于eq 等于ne 不等于eqfield 与某个字段值一样nefield 与某个字段值不一样 package mainimport ("net/http""github.com/gin-gonic…

UnionTech OS(统信桌面操作系统)安装 g++ 和 cmake

文章目录 前言一、debian 10简介二、安装 g三、安装cmake参考资料 前言 统信桌面操作系统支持x86、龙芯、申威、鲲鹏、飞腾、兆芯等国产CPU平台&#xff0c;基于debian 10.x 的稳定版本&#xff0c;长期维护的统一内核版本(4.19)。 一、debian 10简介 Debian 10 是一款广泛使…

Java版Spring cloud 企业电子招投标系统源码

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…