ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

一条序列进一个PDB出:AlphaFold Python API 蛋白质结构预测完整流程

一条序列进一个PDB出:AlphaFold Python API 蛋白质结构预测完整流程 一条序列进一个PDB出AlphaFold Python API 蛋白质结构预测完整流程【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold手里有一条蛋白序列想要拿到带残基级置信度的三维结构AlphaFold 的 Python API 是最直接的路径DataPipeline 构建 MSA 与模型特征RunModel 输出原子坐标pLDDT 置信度直接写进 PDB。跑完这段流程你能直接得到一个经过结构松弛、可渲染的 PDB 文件和逐残基置信度。1️⃣ 最小闭环FASTA 输入PDB 输出这节解决先让整条链路跑通的问题。下面是一段可独立运行的脚本target.fasta里放一条名称\n序列其余交给 API。import os, shutil from alphafold.common import protein, residue_constants from alphafold.data import pipeline, templates from alphafold.data.tools import hhsearch from alphafold.model import config, data, model from alphafold.relax import relax DB /data/alphafold-db # 数据库与模型参数所在目录 dp pipeline.DataPipeline( jackhmmer_binary_pathshutil.which(jackhmmer), hhblits_binary_pathshutil.which(hhblits), uniref90_database_pathf{DB}/uniref90/uniref90.fasta, mgnify_database_pathf{DB}/mgnify/mgy_clusters_2022_05.fasta, bfd_database_pathf{DB}/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt, uniref30_database_pathf{DB}/uniref30/UniRef30_2021_03, template_searcherhhsearch.HHSearch(binary_pathshutil.which(hhsearch), databases[f{DB}/pdb70/pdb70]), template_featurizertemplates.HhsearchHitFeaturizer( mmcif_dirf{DB}/pdb_mmcif/mmcif_files, max_template_date2022-01-01, max_hits20, kalign_binary_pathshutil.which(kalign))) mr model.RunModel(config.model_config(model_1), data.get_model_haiku_params(model_1, DB)) os.makedirs(out/msas, exist_okTrue) feats dp.process(input_fasta_pathtarget.fasta, msa_output_dirout/msas) proc mr.process_features(feats, random_seed0) p mr.predict(proc, random_seed0) # 执行一次模型前向推理 prot protein.from_prediction(featuresproc, resultp, b_factorsp[plddt][:, None].repeat(residue_constants.atom_type_num, axis1), remove_leading_feature_dimensionFalse) open(out/relaxed.pdb, w).write( relax.AmberRelaxation(use_gpuFalse).process(prot)[0]) # 写出松弛后的 PDB关键输出说明out/msas/MSA 多序列比对文件可留作下次复用use_precomputed_msasTrue时直接读取。out/relaxed.pdb最终结构。B-factor 列即 pLDDT数值越高残基越可信0-100。p[plddt]是逐残基置信度向量p[predicted_aligned_error]是 PAE 矩阵描述残基对之间距离预测的可靠程度。官方流水线会按ranking_confidence对多个模型排序只松弛最优的那个上面脚本跑单模型直接松弛唯一结果。 2. 关键模块拆解特征、推理与松弛这节把闭环里的三个核心类拆开看方便你按需替换参数。DataPipeline序列 → 模型输入特征。内部依次用 jackhmmer、hhblits 检索各同源性数据库组装 MSA再检索模板结构产出一个特征字典。feats dp.process(input_fasta_pathtarget.fasta, msa_output_dirout/msas) # feats[msa] 为多序列比对seqres 为参考序列template_* 为模板命中实现见 alphafold/data/pipeline.py。RunModel模型推理引擎。加载 Haiku 参数后负责特征预处理与一次完整前向。mr model.RunModel(config.model_config(model_1), data.get_model_haiku_params(model_1, DB)) proc mr.process_features(feats, random_seed0) # 截断/补齐、加噪等预处理 p mr.predict(proc, random_seed0)process_features和predict分开调用是刻意的预处理结果可缓存多个模型共享同一份。实现见 alphafold/model/model.py。AmberRelaxation修复立体化学违规。对原始预测做短程能量最小化消除原子碰撞、键角异常。relaxer relax.AmberRelaxation(max_iterations0, tolerance2.39, stiffness10.0, max_outer_iterations3, use_gpuFalse) pdb, energy, violations relaxer.process(protprot)参数取值与 run_alphafold.py 保持一致实现见 alphafold/relax/relax.py。3. 资源与参数磁盘、依赖与显存要备多少这节解决跑之前需要准备什么的问题。先备环境和文件git clone https://gitcode.com/GitHub_Trending/al/alphafold alphafold cd alphafold pip install -r requirements.txt pip install . conda install -c conda-forge hmmer hhpred kalign2 # jackhmmer/hhblits/hhsearch/kalign 等 bash scripts/download_alphafold_params.sh # 下载 params_*.npz 模型参数参数作用建议值db_presetMSA 数据库规模正式预测用full_dbs约 2.2TB开发测试用reduced_dbsuse_small_bfdDataPipeline 是否用小 BFD与reduced_dbs配套时置True并配scripts/download_small_bfd.shmax_template_date模板结构截止日期常规用近期日期预测历史数据集时务必回退防数据泄漏random_seedMSA 采样随机种子需要可复现时固定为常数use_gpu松弛阶段是否用 GPU有卡就TrueCPU 松弛明显更慢num_multimer_predictions_per_model多聚体采样次数官方默认 5显存方面单条 ≤2048 残基的序列在 10GB 级别显存即可推理序列更长时 JAX 会直接 OOM建议截短或分块。数据库下载可用 scripts/download_all_data.sh 一键完成。 4. 进阶用法预测蛋白质复合物多聚体这节解决手里不是单链而是复合物的问题。与单体流程的差异只有三处重复步骤用注释省略。from alphafold.data import pipeline_multimer dp_m pipeline_multimer.DataPipeline( monomer_data_pipelinedp, # 同上复用第 1 节的单体管道 jackhmmer_binary_pathshutil.which(jackhmmer), uniprot_database_pathf{DB}/uniprot/uniref20_percent_identity.fasta) mr_m model.RunModel(config.model_config(model_1_multimer), data.get_model_haiku_params(model_1_multimer, DB)) feats dp_m.process(input_fasta_pathcomplex.fasta, msa_output_dirout_m/msas) p mr_m.predict(mr_m.process_features(feats, random_seed0), random_seed0) # 同上构造 prot、松弛、写 PDB仅下面一行取值不同 prot protein.from_prediction(featuresproc, resultp, b_factorsb, remove_leading_feature_dimensionTrue) # 多聚体保留维度两个注意点多聚体的 FASTA 必须包含多条序列每条对应一个链模板检索改用hmmsearch.Hmmsearch pdb_seqres 数据库而非单体的hhsearch pdb70构造dp_m的单体管道时相应替换template_searcher即可。⚠️ 5. 排错速查高频问题对照表这节汇总跑 API 时最常踩的五个坑。症状原因解法报params_model_1.npz找不到模型参数未下载运行scripts/download_alphafold_params.shCould not find path to the jackhmmer binaryMSA 工具链缺失conda install -c conda-forge hmmer hhpredpredict时 GPU OOM序列过长或显存不足截短到 2048 残基内或换大显存卡MSA 为空、pLDDT 全线偏低数据库路径指错逐个检查*_database_path文件存在且非空2.2TB 磁盘放不下全量数据库full_dbs体积大改reduced_dbs并下载 small BFD收尾到这里序列→特征→坐标→松弛的链路已经打通产出的 PDB 自带 pLDDT。往下延伸有三个方向对松弛结构跑分子动力学看稳定性做单点突变后对比 pLDDT/PAE 评估影响直接拿预测结构做结合位点分析或蛋白质设计。更多细节见 docs/technical_note_v2.3.0.md 与 run_alphafold.py。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表