当前位置: 首页 > news >正文

蛋白质结构预测软件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.lqws.cn/news/112861.html

相关文章:

  • 永磁同步电机控制算法--基于PR电流环的矢量控制
  • HCIP(BGP基础)
  • 模型上下文协议(MCP)简介
  • 【HarmonyOS 5】鸿蒙mPaas详解
  • 【网络安全】SRC漏洞挖掘思路/手法分享
  • Python训练营打卡Day42
  • sqlite3 命令行工具详细介绍
  • 蓝桥杯_DS18B20温度传感器---新手入门级别超级详细解析
  • 【自动思考记忆系统】demo (Java版)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Dad Jokes(冷笑话卡片)
  • LangChain学习系列之LangChain4j介绍
  • vue入门环境搭建及demo运行
  • oauth2.0
  • 【Linux】进程虚拟地址空间详解
  • 嵌入式复习小练
  • 【散刷】二叉树基础OJ题(二)
  • 0518蚂蚁暑期实习上机考试题3:小红的字符串构造
  • 基于netmiko模块实现支持SSH or Telnet的多线程多厂商网络设备自动化巡检脚本
  • 采摘机器人项目
  • 北京大学肖臻老师《区块链技术与应用》公开课:07-BTC-挖矿难度
  • 【学习笔记】深度学习-过拟合解决方案
  • 光伏功率预测新突破:TCN-ECANet-GRU混合模型详解与复现
  • 前端(vue)学习笔记(CLASS 7):vuex
  • C++学者给您讲数学之——数列
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(1)——Chat Client API
  • Leetcode-7 寻找用户推荐人
  • C++中锁与原子操作的区别及取舍策略
  • 深入理解 JSX:React 的核心语法
  • JSON to Excel 3.0.0 版本发布 - 从Excel插件到Web应用的转变
  • 手撕HashMap!(JDK7版本)