PSP - 蛋白质与蛋白质的扩散对接 DiffDock-PP 算法

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/135115528

DiffDock-PP

DiffDock-PP is a new approach to rigid-body protein-protein docking that is based on a diffusion generative model that learns to translate and rotate unbound protein structures into their bound conformations, and a confidence model that learns to rank different poses generated by the score model and select the best one.

DiffDock-PP 是一种新的刚体蛋白质-蛋白质对接方法,基于扩散生成模型,该模型学习将未结合的蛋白质结构翻译和旋转为其结合构象,基于置信模型,该模型学习对评分模型生成的不同姿势,进行排序并选择最佳姿势。

  • Paper:DiffDock-PP: Rigid Protein-Protein Docking with Diffusion Models
  • Github:https://github.com/ketatam/DiffDock-PP

算法整体思路与 DiffDock 接近,Paper:DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking

Conda 环境配置:

conda create -n diffdock_pp python=3.10.8
conda activate diffdock_ppconda install pytorch=1.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia

验证 PyTorch 是否安装成功:

import torch
print(torch.__version__)  # 1.13.0
print(torch.cuda.is_available())  # True

安装其他包:

pip install --no-cache-dir  torch-scatter==2.0.9 torch-sparse==0.6.15 torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.13.0+cu116.htmlpip install numpy dill tqdm pyyaml pandas biopandas scikit-learn biopython e3nn wandb tensorboard tensorboardX matplotlib

下载数据,具体数据路径 datasets/DIPS/pairs_pruned,即:

bypy downfile /psp_data/diffdock_pp/DIPS.zip DIPS.zip

具体使用位于 src/inference.sh,参考 dips_esm_inference.yaml

 data:dataset: dipsdata_file: datasets/DIPS/data_file_100_test.csvdata_path: datasets/DIPS/pairs_pruned
...

其中,数据文件 data_file_100_test.csv,即:

path,split
eb/1ebo.pdb2_1.dill,test
dm/3dmp.pdb3_2.dill,test
kq/1kq1.pdb1_1.dill,test
b2/2b24.pdb1_8.dill,test
cf/3cf0.pdb1_6.dill,test
...

还需要下载 ESM 的 650M 模型,位于 torchhub/checkpoints,否则下载很慢,即:

esm2_t33_650M_UR50D-contact-regression.pt
esm2_t33_650M_UR50D.pt

其中数据类型是 dill 类型,PDB 转换成 dill 类型,参考 https://github.com/octavian-ganea/equidock_public#dips-data

运行推理脚本:

sh src/inference.sh

其中,在运行时,在 src/geom_utils/so3.py 中,需要预处理 npy ,耗时较长,即:

.so3_cdf_vals2.npy
.so3_exp_score_norms2.npy
.so3_omegas_array2.npy
.so3_score_norms2.npy

运行日志:

SCORE_MODEL_PATH: checkpoints/large_model_dips/fold_0/
CONFIDENCE_MODEL_PATH: checkpoints/large_model_dips/fold_0/
SAVE_PATH: ckpts/test_large_model_dips
09:50:16 Starting Inference
data loading: 100%|| 100/100 [00:00<00:00, 561486
09:50:18 Computing ESM embeddings
Using cache found in torchhub/facebookresearch_esm_main
ESM: 100%|██████████| 4/4 [00:10<00:00,  2.70s/it]
ESM: 100%|██████████| 4/4 [00:06<00:00,  1.61s/it]
09:50:50 finished tokenizing residues with ESM
09:50:50 finished tokenizing all inputs
09:50:50 100 entries loaded
09:50:50 finished loading raw data
09:50:50 running inference
09:50:50 finished creating data splits
miniconda3/envs/diffdock_pp/lib/python3.10/site-packages/torch/jit/_check.py:181: UserWarning: The TorchScript type system doesn't support instance-level annotations on empty non-base types in `__init__`. Instead, either 1) use a type annotation in the class body, or 2) wrap the type in `torch.jit.Attribute`.warnings.warn("The TorchScript type system doesn't support "
09:50:52 loaded model with kwargs: 
checkpoint checkpoints/large_model_dips/fold_0/model_best_338669_140_31.084_30.347.pth
09:50:52 loaded checkpoint from checkpoints/large_model_dips/fold_0/model_best_338669_140_31.084_30.347.pth
09:50:53 loaded model with kwargs: 
checkpoint checkpoints/confidence_model_dips/fold_0/model_best_0_6_0.241_0.887.pth
09:50:53 loaded checkpoint from checkpoints/confidence_model_dips/fold_0/model_best_0_6_0.241_0.887.pth
09:50:53 finished loading model
args.temp_sampling: 2.4390%|                                                                                                       | 0/100 [00:00<?, ?it/s]09:53:42 Completed 0 out of 40 steps
09:53:44 Completed 1 out of 40 steps
09:53:46 Completed 2 out of 40 steps
09:53:48 Completed 3 out of 40 steps
...

预测结果,1B26 Receptor 和 Ligand,即:
Img

NVCC Bug,参考 GitHub - Failed building wheel for torch-cluster:

      In file included from csrc/cuda/graclus_cuda.cu:3:0:diffdock_pp/lib/python3.10/site-packages/torch/include/ATen/cuda/CUDAContext.h:10:10: fatal error: cusolverDn.h: No such file or directory#include <cusolverDn.h>^~~~~~~~~~~~~~compilation terminated.error: command 'diffdock_pp/bin/nvcc' failed with exit code 1[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for torch-clusterRunning setup.py clean for torch-cluster
Failed to build torch-cluster
ERROR: Could not build wheels for torch-cluster, which is required to install pyproject.toml-based projects

解决方案,参考 [BUG] fatal error: cusolverDn.h: No such file or directory:

export PATH=/usr/local/cuda/bin:$PATH

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

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

相关文章

软件工程快速复习(期末急救)

每个同学要假想自己是一个项目经理&#xff0c;去完成一个软件项目&#xff0c;比如医院管理系统&#xff0c;自动设备控制系统等&#xff0c;以面向结构的软件工程方法&#xff0c;说出完成项目的步骤&#xff0c;涉及到的具体技术。初步了解面向对象的方法的与面向结构的方法…

【java】java学习笔记

1. 快速入门 // Hello类 public class Hello {// main方法public static void main(String[] args) {System.out.println("hello world!");} } 在控制台输入以下命令&#xff0c;对.java文件&#xff08;源文件&#xff09;进行编译操作&#xff0c;生成Hello.clas…

每日一题,二维平面

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, …

初学gitrepo的种种

经过各种折腾之后&#xff0c;发现git其实还是很简单的&#xff1b; 首先你需要两台机器&#xff0c;一台作为服务器&#xff0c;一台作为开发机器&#xff0c;开发机器从服务器上拉取代码。 目 目录 git建仓 开发机器拉取代码 初始化仓代码 repo管理 repo工具的下载 …

汽车制造厂设备故障预测与健康管理PHM

在现代汽车制造工业中&#xff0c;设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量&#xff0c;汽车制造厂逐渐采用设备故障预测与健康管理&#xff08;PHM&#xff09;系统&#xff0c;以实现对设备状态的实时监测和预…

算法基础之快速幂求逆元

快速幂求逆元 核心思想&#xff1a; 逆元&#xff1a; 逆元 ap-2 mod p #include<iostream>#include<algorithm>using namespace std;typedef long long LL;LL pmi(int a,int b,int c){LL res 1;while(b){if(b & 1) res res * a %c;b >> 1;a (LL)…

Jenkins的文档翻译

官网Jenkins.io Jenkins用户文档 欢迎来到Jenkins用户文档-为那些想要使用Jenkins的现有功能和插件特性的人。如果你想通过开发自己的Jenkins插件来扩展Jenkins的功能&#xff0c;请参考extend Jenkins(开发者文档)。 詹金斯是什么? Jenkins是一个独立的、开源的自动化服务…

第七节TypeScript 循环

1、简述 有的时候&#xff0c;我们可能需要多次执行同一块代码。一般情况下&#xff0c;语句是按顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 循环语句允许我们多次执行一个语句或语句组。 循环语句流程图&#xff…

python学习笔记--异常捕获

异常场景 numinput("input you number:") n9000 try:resultn/int(num)print({} 除以num 结果为{}.format(n,result)) except ZeroDivisionError as err:print("0不可以作为除数&#xff0c;出现报错{}".format(err)) except ValueError as err:print(&quo…

【lesson21】MySQL复合查询(2)子查询

文章目录 子查询测试要用到的表测试要用到的数据单行子查询案例 多行子查询案例 多列子查询案例 在from子句中使用子查询案例 合并查询union案例union all案例 子查询 子查询是指嵌入在其他sql语句中的select语句&#xff0c;也叫嵌套查询 测试要用到的表 测试要用到的数据 单…

坚持提升这个能力,让你越来越强大

哈喽&#xff0c;你好啊&#xff01;我是雷工。 今天在读《张一鸣管理日志》时&#xff0c;看到这么一句话&#xff1a; “产品创新要从根本上解决问题&#xff0c;而不是想办法绕过问题&#xff0c;解决的问题很可能就是将来的核心竞争力。” 这让我想起了亚马逊公司&#x…

LeetCode 热题100——单调栈

​ 个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 写在前面&#xff1a; 递增单调栈&#xff1a;栈中元素从栈底到栈顶依次增大 递减单调栈…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题&#xff0c;因为生成法线贴图有点问题&#xff0c;放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

HarmonyOS引导页登陆页以及tabbar的代码说明1

效果 以下代码是东拼西凑出来的。只是为了个人熟悉一下相关模块的使用&#xff1a; 用的知识点&#xff1a; Resouces 此部分分内容可以在项目中找到&#xff1a; resources/base/element/color.json 为项目着色配置&#xff0c;当然也可以正接在代码里写 float.json 为相关…

IPv6路由基础-理论与配置

在企业网络中&#xff0c;IPv6技术的应用越来越普及。IETF组织针对IPv6网络制定了路由协议OSPFv3。 OSPFv3 ff02::5是为OSPFv3路由协议预留的IPv6组播地址。OSPFv3中的路由条目下一跳地址是链路本地地址。OSPFv3是运行在IPv6网络的OSPF协议。运行OSPFv3的路由器使用物理接口的…

浅析 fuse kernel mmap write 过程及性能问题

前言 最近在项目里面用到了fuse文件系统&#xff0c;在使用过程中遇到了一个内核在做mmap write的一个bug&#xff0c;目前并没有从根本上解决这个bug&#xff0c;而是通过修改fuse kernel module的一些参数&#xff0c;绕开了这个bug。这里记录一下这个问题&#xff0c;并顺便…

手把手教你在windows上安装Portainer

前言 大家好&#xff0c;我是潇潇雨声。在之前的文章中&#xff0c;我们探讨了在 Windows 上安装 Docker 的方法。今天&#xff0c;我将简要介绍一个开源的轻量级容器管理工具——Portainer&#xff0c;它类似于 navicat。Portainer 是一个与 navicat 类似的工具&#xff0c;但…

Amazon Toolkit — CodeWhisperer 使用

tFragment--> 官网&#xff1a;https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具&#xff0c;感慨颇多。下面是安装 和使用的分享。 CodeWhisperer&#xff0c;亚马逊推出的实时 AI 编程助手&#xff0c;是一项基于机器学习…

详解数据科学自动化与机器学习自动化

过去十年里&#xff0c;人工智能&#xff08;AI&#xff09;构建自动化发展迅速并取得了多项成就。在关于AI未来的讨论中&#xff0c;您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语。事实上&#xff0c;这些术语有着不同的定义&#xff1a;如今的自动…

【QT Visual Studio环境配置】error MSB8020: 无法找到 v141/v142 的生成工具(完整版)

首先要了解V**平台工具集根据你安装的Visual Studio版本不同而有所区别&#xff0c;知道这个就容易解决问题了&#xff0c;确定你安装的那个版本&#xff0c;需要使用哪个工具集。 v143–>VS2022v142–>VS2019v141–>VS2017v140–>VS2015v120–>VS2013 一、解决…