蛋白质结构预测软件openfold介绍

openfold 是一个用 Python 和 PyTorch 实现的 AlphaFold2 的开源复现版,旨在提升蛋白质结构预测的可复现性、可扩展性以及研究友好性。它允许研究者在不开源 DeepMind 原始代码的情况下,自由地进行蛋白结构预测的训练和推理,并支持自定义模型改进。

OpenFold 既可以作为 Python 包被其他 Python 项目引用和使用,也可以通过独立的脚本完成各种实际任务,具有很强的灵活性和实用性。

1. 软件安装

git clone https://github.com/aqlaboratory/openfold.git
cd openfoldconda env create -f environment.yml

2. 下载对齐数据库

bash scripts/download_alphafold_dbs.sh data/

3. 下载模型参数

bash scripts/download_openfold_params.sh openfold/resources

4. 结构预测

单体结构推理

python3 run_pretrained_openfold.py \fasta_dir \data/pdb_mmcif/mmcif_files/ \--uniref90_database_path data/uniref90/uniref90.fasta \--mgnify_database_path data/mgnify/mgy_clusters_2018_12.fa \--pdb70_database_path data/pdb70/pdb70 \--uniclust30_database_path data/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \--bfd_database_path data/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \--jackhmmer_binary_path lib/conda/envs/openfold_venv/bin/jackhmmer \--hhblits_binary_path lib/conda/envs/openfold_venv/bin/hhblits \--hhsearch_binary_path lib/conda/envs/openfold_venv/bin/hhsearch \--kalign_binary_path lib/conda/envs/openfold_venv/bin/kalign \--config_preset "model_1_ptm" \--model_device "cuda:0" \--output_dir ./ \--openfold_checkpoint_path openfold/resources/openfold_params/finetuning_ptm_2.pt

多聚体结构推理

python3 run_pretrained_openfold.py \fasta_dir \data/pdb_mmcif/mmcif_files/ \--uniref90_database_path data/uniref90/uniref90.fasta \--mgnify_database_path data/mgnify/mgy_clusters_2022_05.fa \--pdb_seqres_database_path data/pdb_seqres/pdb_seqres.txt \--uniref30_database_path data/uniref30/UniRef30_2021_03 \--uniprot_database_path data/uniprot/uniprot.fasta \--bfd_database_path data/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \--jackhmmer_binary_path lib/conda/envs/openfold_venv/bin/jackhmmer \--hhblits_binary_path lib/conda/envs/openfold_venv/bin/hhblits \--hmmsearch_binary_path lib/conda/envs/openfold_venv/bin/hmmsearch \--hmmbuild_binary_path lib/conda/envs/openfold_venv/bin/hmmbuild \--kalign_binary_path lib/conda/envs/openfold_venv/bin/kalign \--config_preset "model_1_multimer_v3" \--model_device "cuda:0" \--output_dir ./ 

python 示例代码

import torch
from openfold.config import model_config
from openfold.data.data_modules import UnirefDataModule
from openfold.model.model import AlphaFold
from openfold.np.protein import to_pdb
from openfold.utils.import_weights import import_jax_weights_
from openfold.utils.feats import process_fasta
from pathlib import Path# === 1. 准备输入序列 ===
fasta_path = "example.fasta"  # 输入文件,格式:
# >test_seq
# MSEQNNTEMTFQIQRIYTKDISFEAPNAPHVFQGKKTKF...# === 2. 模型配置 ===
model_name = "model_1_ptm"
ckpt_path = "path/to/model_1_ptm.pt"  # 下载的模型参数
config = model_config(model_name)
model = AlphaFold(config)
params = torch.load(ckpt_path)
model.load_state_dict(params["model_state_dict"])
model.eval()# === 3. 预处理序列 ===
feature_dict = process_fasta(fasta_path, is_multimer=False)
batch = {k: torch.as_tensor(v).unsqueeze(0) for k, v in feature_dict.items()}
for k in batch:batch[k] = batch[k].to("cuda:0")model = model.to("cuda:0")# === 4. 执行推理 ===
with torch.no_grad():output = model(batch)# === 5. 保存预测结构 ===
protein = to_pdb(output, chain_index=batch["asym_id"][0])
with open("predicted_structure.pdb", "w") as f:f.write(protein)

参考:

GitHub - aqlaboratory/openfold: Trainable, memory-efficient, and GPU-friendly PyTorch reproduction of AlphaFold 2

openfold/docs/source/original_readme.md at main · aqlaboratory/openfold · GitHub

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

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

相关文章

AD转嘉立创EDA

可以通过嘉立创文件迁移助手进行格式的转换 按照它的提示我们整理好文件 导出后是这样的,第一个文件夹中有原理图和PCB,可以把它们压缩成一个压缩包 这个时候我们打开立创EDA,选择导入AD 这样就完成了

MySQL(50)如何使用UNSIGNED属性?

在 MySQL 中,UNSIGNED 属性用于数值数据类型(如 TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT),表示该列只能存储非负整数。使用 UNSIGNED 属性可以有效地扩展列的正整数范围,因为它不需要为负数保留空间。 1. 定义与…

什么是链游,链游系统开发价格以及方案

2025 Web3钱包开发指南:从多版本源码到安全架构实战 在数字资产爆发式增长的今天,Web3钱包已成为用户进入链上世界的核心入口。作为开发者,如何高效构建安全、跨链、可扩展的钱包系统?本文结合前沿技术方案与开源实践&#xff0c…

文件IO流

IO使用函数 标准IO文件IO(低级IO)打开fopen, freopen, fdopenopen关闭fcloseclose读getc, fgetc, getchar, fgets, gets, fread printf fprintfread写putc, fputc, putchar, fputs, puts, fwrite scanf fscanfwrite操作文件指针fseeklseek其它fflush rewind ftell 文件描述符 …

云原生DMZ架构实战:基于AWS CloudFormation的安全隔离区设计

在云时代,传统的DMZ(隔离区)概念已经演变为更加灵活和动态的架构。本文通过解析一个实际的AWS CloudFormation模板,展示如何在云原生环境中构建现代化的DMZ安全架构。 1. 云原生DMZ的核心理念 传统DMZ是网络中的"缓冲区",位于企业内网和外部网络之间。而在云环境…

一、虚拟货币概述

1. 定义 - 虚拟货币是一种基于网络技术、加密技术和共识机制的数字货币,它不依赖传统金融机构发行,而是通过计算机算法生成,例如比特币、以太坊等。 2. 特点 - 去中心化:没有一个单一的机构或个人控制整个虚拟货币系统&#xff0c…

Make All Equal

给定一个循环数组 a1,a2,…,ana1​,a2​,…,an​。 你可以对 aa 至多执行 n−1n−1 次以下操作: 设 mm 为 aa 的当前大小,你可以选择任何两个相邻的元素,其中前一个不大于后一个(特别地,amam​ 和 a1a1​ 是相邻的&a…

任务中心示例及浏览器强制高效下载实践

1. 效果展示 这里的进度展示,可以通过我们之前讲到的Vue3实现类ChatGPT聊天式流式输出(vue-sse实现) SSE技术实现,比如用户点击全量下载时,后台需要将PDF文件打包为ZIP文件,由于量较大,需要展示进度,用户点…

SpringBoot整合Flowable【08】- 前后端如何交互

引子 在第02篇中,我通过 Flowable-UI 绘制了一个简单的绩效流程,并在后续章节中基于这个流程演示了 Flowable 的各种API调用。然而,在实际业务场景中,如果要求前端将用户绘制的流程文件发送给后端再进行解析处理,这种…

2025 Java面试大全技术文章大纲

2025 Java面试大全技术文章大纲 基础篇 Java核心语法 数据类型与包装类自动装箱与拆箱原理String、StringBuffer、StringBuilder区别final关键字作用场景 面向对象特性 多态的实现机制抽象类与接口的异同设计模式:单例的七种写法泛型擦除与桥接方法 进阶篇 J…

Python aiohttp 全面指南:异步HTTP客户端/服务器框架

边写代码零食不停口 盼盼麦香鸡味块 、卡乐比(Calbee)薯条三兄弟 独立小包、好时kisses多口味巧克力糖、老金磨方【黑金系列】黑芝麻丸 边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵 别光顾写…

归并排序:高效稳定的分治算法

归并排序 归并排序采用分治策略实现稳定排序&#xff0c;其核心思想是将序列递归分解后进行有序合并。 def merge_sort(arr):if len(arr) < 1:return arrmid len(arr) // 2left merge_sort(arr[:mid])right merge_sort(arr[mid:])result []i j 0while i < len(le…

go语言基础|slice入门

slice slice介绍 slice中文叫切片&#xff0c;是go官方提供的一个可变数组&#xff0c;是一个轻量级的数据结构&#xff0c;功能上和c的vector&#xff0c;Java的ArrayList差不多。 slice和数组是有一些区别的&#xff0c;是为了弥补数组的一些不足而诞生的数据结构。最大的…

网络攻防技术九:网络监听技术

文章目录 一、网络监听概述二、网络流量劫持三、数据采集与解析四、网络监听检测与防范1、检测实施监听主机2、防范网络通信被监听 一、网络监听概述 主要解决问题&#xff1a;网络流量劫持、在监听点上采集并分析网络数据。主要涉及网卡数据采集、协议分析技术。 二、网络流量…

Cat.1与Cat.4区别及应用场景

Cat.1 和 Cat.4 都是 LTE&#xff08;4G&#xff09;网络中的终端设备类别&#xff0c;主要区别在于 数据传输速率、复杂度和功耗&#xff0c;这直接影响了它们的应用场景和成本。 以下是它们的主要区别&#xff1a; 数据传输速率 (核心区别)&#xff1a; Cat.1 (Category 1)&…

【后端高阶面经:架构篇】51、搜索引擎架构与排序算法:面试关键知识点全解析

一、搜索引擎核心基石&#xff1a;倒排索引技术深度解析 &#xff08;一&#xff09;倒排索引的本质与构建流程 倒排索引&#xff08;Inverted Index&#xff09;是搜索引擎实现快速检索的核心数据结构&#xff0c;与传统数据库的正向索引&#xff08;文档→关键词&#xff0…

深度学习入门:从零搭建你的第一个神经网络

深度学习入门&#xff1a;从零搭建你的第一个神经网络 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 深度学习入门&#xff1a;从零搭建你的第一个神经网络摘要引言第一章&#xff1a;神经网络基础原理1.1 神经元…

Hadoop 3.x 伪分布式 8088端口无法访问问题处理

【Hadoop】YARN ResourceManager 启动后 8088 端口无法访问问题排查与解决(伪分布式启动Hadoop) 在配置和启动 Hadoop YARN 模块时&#xff0c;发现虽然 ResourceManager 正常启动&#xff0c;JPS 进程中也显示无误&#xff0c;但通过浏览器访问 http://主机IP:8088 时却无法打…

docker B站学习

镜像是一个只读的模板&#xff0c;用来创建容器 容器是docker的运行实例&#xff0c;提供了独立可移植的环境 https://www.bilibili.com/video/BV11L411g7U1?spm_id_from333.788.videopod.episodes&vd_sourcee60c804914459274157197c4388a4d2f&p3 目录挂载 尚硅谷doc…

鸿蒙OSUniApp微服务架构实践:从设计到鸿蒙部署#三方框架 #Uniapp

UniApp微服务架构实践&#xff1a;从设计到鸿蒙部署 引言 在最近的一个大型跨平台项目中&#xff0c;我们面临着一个有趣的挑战&#xff1a;如何在UniApp框架下构建一个可扩展的微服务架构&#xff0c;并确保其在包括鸿蒙在内的多个操作系统上流畅运行。本文将分享我们的实践…