生物分子体系结构预测开源模型RoseTTAFold All-Atom的conda环境部署及使用

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入


前言

本文提供了生物分子体系结构预测开源模型RoseTTAFold All-Atom的Conda安装及使用体验。

一、RoseTTAFold All-Atom(RFAA)是什么?

github代码:https://github.com/baker-laboratory/RoseTTAFold-All-Atom
science介绍文章:https://www.science.org/doi/10.1126/science.adl2528
science文章的预印本:https://www.biorxiv.org/content/10.1101/2023.10.09.561603v1.full.pdf

2024年3月7日,Science期刊报道了来自David Baker团队的蛋白质设计工具更新:RoseTTAFold All-Atom(RFAA),标题为Generalized biomolecular modeling and design with RoseTTAFold All-Atom。RFAA可以将氨基酸和 DNA 碱基的基于残基的表示与所有其他基团的原子表示相结合,从而对包含蛋白质、核酸、小分子、金属和给定序列和化学结构的共价修饰的组件进行建模。

似乎看到了AlphaFold-latest的影子。。。。

RFAA通过对扩散去噪任务进行微调,它通过直接在小分子和其他非蛋白质分子周围构建蛋白质结构,来生成结合口袋。将结构预测推广到所有生物分子。Baker 表示:「原则上,经过更多样化数据集训练的网络应该能够更好地进行泛化。」他补充说,研究人员计划让该网络取代任务特定版本的 RoseTTAFold。

具体来说,研究人员根据 RoseTTAFold2(RF2)蛋白质结构预测网络对网络架构进行建模,该网络可以接受 1D 序列信息、来自同源模板的 2D 成对距离信息和 3D 坐标信息,并通过许多隐藏层迭代改进预测结构。与蛋白质和核酸序列不同,分子图是排列不变的,因此,无论小分子元素标记顺序如何,网络都应该做出相同的预测。AF2 和 RF2 中,氨基酸和碱基的序列顺序是通过相对位置编码来表示的;对于原子,该团队省略了这样的编码并利用网络注意力机制的排列不变性。

研究人员还修改了坐标更新:在 AF2 和 RF2 中,蛋白质残基由 C 坐标和 N-C -C 刚性框架 α 的方向 α 表示,并且沿着 3D 轨迹,网络生成每个框架方向的旋转更新,以及每个坐标的平移更新。为了在 RFAA 中概括这一点,重原子坐标被添加到 3D 轨迹中,并仅根据对其位置的预测平移更新独立移动。因此,在输入后,整个系统立即被表示为氨基酸残基、核酸碱基以及自由移动原子的气体,它通过网络的许多块连续转化为物理上合理的组装结构。对于指导参数优化的损失函数,研究人员开发了 AF2 中引入的帧对齐点误差(FAPE)损失的全原子版本,通过根据其键合邻居的身份定义任意分子中每个原子的坐标系,与基于残基的 FAPE 一样,连续对齐每个坐标系并计算周围原子的坐标误差。除了原子坐标之外,网络还可以预测原子和残基置信度 (pLDDT) 和成对置信度 (PAE) 指标,从而能够识别高质量的预测。

简言之,RFAA可以预测所有主要的生物分子体系,包括与大分子相互作用的其他分子,可以用来做药物分子设计与生成。

在这里插入图片描述
在这里插入图片描述看看RFAA的效果如何:
在这里插入图片描述
在这里插入图片描述

二、安装步骤

安装环境:Ubuntu 22.04, CUDA runtime版本11.8,GCC 11.4。

1. 安装mamba(非必须的,conda也可以)

wget "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh

2. 下载RoseTTAFold-All-Atom

重新打开一个Terminal:

git clone https://github.com/baker-laboratory/RoseTTAFold-All-Atom
cd RoseTTAFold-All-Atom

3. 创建conda环境并安装

mamba env create -f environment.yaml

问题:可能会卡在 Installing pip dependencies
解决:退出。进入环境,然后pip install -r list.txt安装相应内容即可。

conda activate RFAA

4. 安装SE3T

cd rf2aa/SE3Transformer
pip install --no-cache-dir -r requirements.txt
python3 setup.py install

5. 准备cs-blast

bash install_dependencies.sh

6. 安装signalp6

申请license

下载并安装,在conda RFAA_env环境中运行:

signalp6-register signalp-6.0h.fast.tar.gz

修改模型参数文件的名称,执行如下:

mv $CONDA_PREFIX/lib/python3.10/site-packages/signalp/model_weights/distilled_model_signalp6.pt $CONDA_PREFIX/lib/python3.10/site-packages/signalp/model_weights/ensemble_model_signalp6.pt

输入signalp6,查看安装,输出:
在这里插入图片描述

7. 下载序列和模板数据库

下载数据库,放置在RoseTTAFold-All-Atom文件夹;如果置于其他文件夹,需要与base.yaml 和make_msa.sh的参数路径匹配。

遇到的问题1: 数据库下载慢
解决方法: conda安装的情况下,数据库可以使用软连接到其他来源,可以连接到AF2或者RF2的数据库。

uniref30 [46GB]

wget http://wwwuser.gwdg.de/~compbiol/uniclust/2020_06/UniRef30_2020_06_hhsuite.tar.gz
mkdir -p UniRef30_2020_06
tar xfz UniRef30_2020_06_hhsuite.tar.gz -C ./UniRef30_2020_06

BFD [272GB]

wget https://bfd.mmseqs.com/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt.tar.gz
mkdir -p bfd
tar xfz bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt.tar.gz -C ./bfd

structure templates [87GB]
包含pdb100_2021Mar03_a3m.ffdata, pdb100_2021Mar03_a3m.ffindex, pdb100_2021Mar03_cs219.ffdata, pdb100_2021Mar03_cs219.ffindex, pdb100_2021Mar03_hhm.ffdata, pdb100_2021Mar03_hhm.ffindex, pdb100_2021Mar03_pdb.ffdata, pdb100_2021Mar03_pdb.ffindex 一共8个文件,解压后~300 GB。

wget https://files.ipd.uw.edu/pub/RoseTTAFold/pdb100_2021Mar03.tar.gz
tar xfz pdb100_2021Mar03.tar.gz

8. 运行RFAA

运行方法:

python -m rf2aa.run_inference --config-name {your inference config}

其中,your inference config的示例文件位于 rf2aa/config/inference目录,当前有5种config模板文件供参考:

protein:单体monomer
protein_complex_sm: 蛋白-小分子复合物
nucleic_acid:核酸
protein_na_sm:蛋白-核酸-小分子复合物
covalent:蛋白-共价小分子复合物

相应的fasta文件位于examples文件。

使用时修改或者建立相应的config文件,然后将fasta文件置于examples文件夹相应的位置。

8.0 运行可能遇到的问题及解决方法

遇到的问题1: 报错 sequence ss_pred contains no residues
在这里插入图片描述解决方法: 类似于 RosettaFold的解决方法

wget https://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/blast-2.2.26-x64-linux.tar.gz
tar -zxvf blast-2.2.26-x64-linux.tar.gz

修改make_ss.sh文件:在开始位置添加export BLASTMAT=绝对路径

#!/bin/bash
# From: https://github.com/RosettaCommons/RoseTTAFold
export BLASTMAT=$FULLPATHTO/blast-2.2.26/data/

遇到的问题2: 12GB,提示显存不足,退出

解决方法: 将pytorch的 max_split_size_mb设置小一些,加进环境变量

export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb: 1024

5种运行实例如下:

8.1 运行单体蛋白(monomer)结构预测

python -m rf2aa.run_inference --config-name protein

protein-8u2e.yaml文件内容如下,其中8u2e.fasta文件置于examples/protein/目录下。

defaults:- basejob_name: "7u7w_protein"
protein_inputs: A:fasta_file: examples/protein/7u7w_A.fasta

435AA,运行结果如下;RMSD=1.432,
在这里插入图片描述

8.2 运行蛋白-小分子复合物结构预测

python -m rf2aa.run_inference --config-name protein_complex_sm

结果展示如下,很好的找到了小分子的结合位置。
在这里插入图片描述

8.3 运行蛋白-核酸复合物结构预测

python -m rf2aa.run_inference --config-name nucleic_acid

运行结果如下,RMSD=1.688
在这里插入图片描述

8.4 运行蛋白-核酸-小分子多聚体结构预测

python -m rf2aa.run_inference --config-name protein_na_sm

结果展示:
在这里插入图片描述

8.5 运行蛋白-共价结合小分子结构预测

python -m rf2aa.run_inference --config-name covalent

运行30min,结果:
在这里插入图片描述


总结

本文提供了生物体系结构预测开源模型RoseTTAFold All-Atom的Conda安装及使用体验。

参考资料

  1. https://github.com/baker-laboratory/RoseTTAFold-All-Atom
  2. https://www.science.org/doi/10.1126/science.adl2528
  3. https://zhuanlan.zhihu.com/p/685998369

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入

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

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

相关文章

协议-http协议-基础概念04-长短连接-重定向-cookie-缓存-代理

参考来源: 极客时间-透视HTTP协议(作者:罗剑锋); 01-长短连接 HTTP 协议最初(0.9/1.0)是个非常简单的协议,通信过程也采用了简单的“请求 - 应答”方式。 它底层的数据传输基于 TCP/IP,每次发…

程序人生 - 爬虫者,教育也!

作为一个站长,你是不是对爬虫不胜其烦?爬虫天天来爬,速度又快,频率又高,服务器的大量资源被白白浪费。 看这篇文章的你有福了,我们今天一起来报复一下爬虫,直接把爬虫的服务器给干死机。 本文有…

ubuntu安装开源汇编调试器NASM

安装 安装很简单,直接在终端输入以下命令即可 sudo apt-get install nasm 安装完成后,如果可以查看到nasm的版本号即可视为安装成功 nasm -version 测试 创建汇编文件 创建一个asm文件 vim hello.asm 文件内容如下 section .datahello: db …

如何高效进行 API 性能测试:详细教程

在构建和维护 API 时,性能和稳定性是至关重要的考量因素,API 的性能直接影响着用户体验和系统的可用性,因此对其进行全面的性能测试是不可或缺的一环。 针对 API 的性能测试,一般通过模拟实际用户行为、压力测试和负载测试等方式…

记一次无vmcore内存死机问题分析过程

问题现象 客户发现在物理机上跑读写业务时,出现了一次死机现象,kdump服务未抓到vmcore文件。/var/log/messages里没有发现内核panic报错信息,只有call trace的警告信息。抓取到的call trace信息总共有三种类型:内存分配失败、rmm…

Keil C51 汉字显示 BUG 解决方案

Keil C51在编译的时候会将0xFD的字符(有些汉字含有该字符的内码)过滤,而导致编码与实际不符,如“三”实际编码:0XC8FD,而Keil C51则输出为0xC800。 keil官方 由于涉及该BUG的汉字并不是很多,所…

7.无重复字符的最长字串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为…

【2024年第三届中国高校大数据挑战赛】赛题 D:行业职业技术培训能力评价 思路+代码+参考论文

【2024年第三届中国高校大数据挑战赛】赛题 D:行业职业技术培训能力评价 思路代码参考论文 加群可以享受定制等更多服务,或者搜索B站:数模洛凌寺 联络组织企鹅:904117571 以下是D题老师的解题思路(企鹅内还会随时更新…

Unity性能优化篇(十一) 动画优化

1.恰当地设置Animator组件的Culling Mode。Always Animate表示如果该动画不可见,也会播放它。Cull Update Transformations表示如果该动画不可见,则不会渲染该动画,但是依然会根据该动画的播放来改变游戏对象的位置、旋转、缩放,这…

html5cssjs代码 004 2035年倒计时

html5&css&js代码 004 2035年倒计时 一、代码二、解释DOCTYPE声明&#xff1a;head部分&#xff1a;body部分&#xff1a;script标签&#xff1a; 这段HTML代码实现了一个倒计时页面&#xff0c;倒计时的目标日期是2035年1月1日。页面中使用一个<div>元素显示倒计…

2024计算机软考基本介绍、考试时间、考试科目等2024年软考新变化政策 证书的作用

专栏系列文章推荐&#xff1a; 2024高级系统架构设计师备考资料&#xff08;高频考点&真题&经验&#xff09;https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】&#xff08;2024年软考高级…

【考研数学】张宇学习包

张宇的授课侧重于启发学生的综合思维能力。对于基础较好的学生而言&#xff0c;在听完他的课后&#xff0c;解题通常不会构成太大问题&#xff0c;而且可以学到许多解题技巧&#xff0c;其中包括张宇老师创造的易记的“点火公式”。 然而&#xff0c;对于基础较薄弱的学生来说…

无人机手持地面站软件功能详解,无人机手持地面站软件开发人员组成及成本分析

无人机手持地面站软件是专为无人机操控和任务管理设计的移动应用&#xff0c;它通常集成在智能手机、平板电脑或其他便携式设备上&#xff0c;使得用户可以在远离无人机的地方对飞行器进行实时监控与远程控制。 主要功能详解&#xff1a; 1. 飞行控制与姿态显示&#xff1a; …

基于springboot+vue实现乌鲁木齐南山冰雪旅游服务网管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现南山冰雪旅游服务网演示 摘要 随着2022年北京冬奥会的成功举办&#xff0c;在冬天进行冰雪运动已经逐渐流行起来&#xff0c;人们慢慢享受到了冰雪活动给大家带来的欢乐&#xff0c;除此之外人们的身体素质也可以得到提升。虽然已经有一部分人可以接受并…

关于yolov8文档的记录,补充一些整理的知识点

2023年由Ultralytics 提供了YOLOv8开源项目。YOLOv8 支持全方位的视觉 AI 任务&#xff0c;包括检测、分割、姿态估计、跟踪和分类。这种多功能性使用户能够在各种应用和领域中利用YOLOv8 的功能。安装yolov8开源项目 pip install githttps://github.com/ultralytics/ultralyti…

Kafka整理-Consumer Group(消费者群组)

在Apache Kafka中,消费者群组(Consumer Group)是一种强大的机制,用于实现消息的分发和负载均衡。以下是消费者群组的关键概念和工作原理: 消费者群组的基本概念 1、组成: 消费者群组由一系列的消费者(Consumers)组成,这些消费者共同订阅一个或多个主题(Topics)。2、…

C语言输出时间——解释01

库文件 time.h #include <stdio.h> #include <time.h> int main() { // 设置本地化环境为中文&#xff0c;以便输出中文格式的时间 // 获取当前时间 time_t rawtime; //时间变量 struct tm *timeinfo; // struct tm 时间的结构体时间库自带的 /*结构 stru…

微信小程序开发系列(二十四)·wxml语法·列表渲染·wx:for-item 和 wx:for-index

目录 1. 如果需要对默认的变量名和下标进行修改&#xff0c;可以使用wx:for-item 和 wx:for-index 2. 将 wx:for 用在 标签上&#xff0c;以渲染一个包含多个节点的结构块 方法一 方法二 3. 总结 3.1 wx:for-item 和 wx:for-index总结 3.2 总结 1. 如果需要对默…

新品发布:广州大彩科技COF系列2.1寸480*480 IPS 串口屏发布!

一、产品介绍 该产品是一款2.1寸分辨率为 480480的医用级工业组态串口屏&#xff0c;拥有2.1寸IPS液晶屏&#xff0c;分辨率有480480&#xff08;实际显示为R240内切圆区域&#xff09;&#xff0c;支持电容触摸。采用COF超薄结构工艺设计&#xff0c;用户安装便捷灵活&#x…

力扣hot100:240.搜索二维矩阵II(脑子)

吉大21级算法分析与设计的一道大题&#xff0c;由于每一行都是排好序的直接逐行二分 可以达到&#xff1a;O(mlogn)。但是这里追求更广的思路可以使用其他方法。 矩阵四分&#xff1a; 在矩阵中用中心点比较&#xff0c;如果target大于中心点的值&#xff0c;则由于升序排列&am…