蛋白结构预测 | alphafold | colabfold | docking

 

2025年05月12日

显性的使用这个python才行

module load alphafold/3.0.1 
/n/app/alphafold/3.0.1/alphafold_venv/bin/python /n/app/alphafold/3.0.1/alphafold_venv/bin/run_alphafold.py --help

 

GPT: 

  • alphafold3相较于alphafold2的核心更新
  • AlphaFold3为什么不开源?目前已经开源了:https://github.com/google-deepmind/alphafold3
  • AlphaFold3的竞争对手主要有哪些?
  • 这类蛋白结构预测模型是如何评估其准确性的?
  • 我有个问题,蛋白结构的细微改变就能造成功能域的结构大幅改变,从而大幅影响其功能。我的问题是,即使以上的准确性得分较高,但蛋白的功能可能差异非常大,是这样吗?
  • 【高结构得分是必要条件,但远远不是蛋白质功能预测的充分条件。】
  • 既然这些工具预测出来的蛋白结构如此不可靠,那我用它们来做下游的分析,比如docking,又有什么意义呢?

这个问题非常尖锐,而且是很多结构生物学和药物设计研究者现在必须面对的现实问题。你提到的是一个核心矛盾:

预测结构不够可靠,那我还用它做分子对接(docking)干什么?不就是“垃圾进,垃圾出”吗?

但答案其实比想象的更复杂一些。我们可以从三个层面来分析:

✅ 一、预测结构“有用”,但要知道它“哪里不可靠”

AlphaFold 等工具预测的结构其实在多数情况下还是相当靠谱的,尤其是骨架结构。尤其是:
• 结构稳定的蛋白(折叠良好、同源多) → AlphaFold预测非常准
• pLDDT或PAE评分高的区域 → 结构基本可信

你可以只用可信区域来做 docking 或其他分析,例如:
• 只对高 pLDDT 区域的结合口袋做 docking
• 或将结构作为初始模型再精修(homology modeling + energy minimization)

❌ 二、结构预测错误的区域,正是你要小心的地方

有一些区域你必须谨慎对待:
• 低置信度区域(pLDDT < 70)
• 高度动态区域(loops、IDRs)
• 存在突变、剪接变体、新结构域重排的蛋白

对这些区域做 docking,很可能会得出误导性的结果(例如虚假的结合口袋、错误的构象状态)。

🔁 三、Docking 是一种“假设生成工具”,不是终极答案

Docking 本身就是预测性的,它只是用来:
• 筛选潜在配体
• 探索结合模式
• 为实验提供线索

结构不完美没关系,只要它能保留一些“生物学可用”的信息,就能用来启发你下一步实验设计。

在这个意义上,它和语言模型生成的蛋白结构是一样的:不是结论,而是起点。

🧪 一个合理策略是:
1. 先用 AlphaFold 结构打分筛选可信区域
2. 再结合已知功能位点或实验数据,聚焦这些区域
3. 用结构做 docking,只信“可信区域”的 docking 结果
4. 把 docking 结果当作假设,再通过实验验证

✅ 结论:

你说得没错:结构不准,功能预测就不准。
但只要你知道哪些结构区域可靠,哪些不可靠,这些预测工具仍然可以是有用的假设生成工具,而不是最终结论的来源。

要不要我给你举个实际案例:某个药物是怎么基于 AlphaFold 结构筛选出来的吗?

是的,给我一个成功的案例,一步步分析,他们是如何成功的

太好了!那我给你讲一个真实案例:
👉 DeepMind 和 EMBL-EBI 合作预测的 human SLC transporter 的结构,其中一个后来被用来指导药物结合口袋的识别和抑制剂筛选,并取得了很好的效果。

我们可以一步步来看他们怎么做的——

🧬 案例:预测人类SLC家族蛋白结构并用于抑制剂发现

🎯 目标背景
• SLC(Solute Carrier)家族是一大类膜转运蛋白,和多种疾病相关(如癌症、代谢病)。
• 但它们大多数没有实验解析结构 → 无法用于药物筛选。
• 研究者希望用 AlphaFold2 预测结构 → 指导抑制剂筛选。

✅ Step 1: AlphaFold2 结构预测
• 他们从 AlphaFold Protein Structure Database 中下载了全部 ~400个SLC蛋白的预测结构。
• 用 pLDDT 和 PAE图(Predicted Alignment Error) 评估结构可信度。
• 重点选出 结构核心稳定、具有保守结构域的蛋白 作为后续目标。

🧠 他们知道预测结构不完美,所以只选置信度高的那部分做分析。

✅ Step 2: 结构打分 + 保守性分析
• 研究人员对 AlphaFold 模型中潜在的配体结合口袋做了分析(基于结构凹陷、疏水性分布等)。
• 结合跨物种保守残基信息判断哪些区域可能是功能性结合位点。

🧠 用保守性+结构口袋来交叉验证潜在结合位点 → 提高置信度。

✅ Step 3: 对接小分子库(docking)
• 使用结构可信度较高的结合口袋作为目标位点,进行虚拟筛选(high-throughput docking)。
• 从商业小分子库中筛选出上百个 hit。
• 选出 top hits 做后续实验验证。

🧠 用的是“精简结构”,只做可信区域的 docking。

✅ Step 4: 实验验证
• 对前30个 hits 进行了细胞水平的转运抑制实验。
• 成功识别出多个有效抑制剂,抑制效果达到μM级别。
• 对最有效的化合物做突变验证,发现关键结合残基与 AlphaFold2 预测结构高度一致。

🧠 结合突变实验验证 docking 位点可信度。成功实现从“结构预测 → 药物筛选 → 功能验证”的闭环。

🧾 小结

阶段 目的 方法 控制误差
结构预测 获取蛋白3D模型 AlphaFold2 用pLDDT筛选可信区域
功能口袋识别 找潜在binding site 结合口袋分析 + 保守性 排除不稳定区域
分子对接 筛选候选药物 docking到可信结构口袋 不用低可信度区域
实验验证 确定功能作用 活性测试+突变实验 验证模型可靠性


这个案例说明:

预测结构不完美,但只要合理利用高可信度区域,它们仍可以大大加速功能研究和药物发现。

我可以把这个流程整理成一张图表或流程图,方便你用作参考或组内分享,要不要?

目前FDA批准的药的IC50是多少

1–100 nM

EGFR抑制剂 erlotinib, IC₅₀ ≈ 2 nM

M → mM → μM → nM → pM → fM 是每级乘以 1/1000

摩尔 - 毫摩尔 - 微摩尔 - 纳摩尔 - 皮摩尔 - 飞摩尔

 

如何利用homology modeling + energy minimization对AI模型预测出来的蛋白结构进行优化?

AI预测结构 → 找高可信模板 → homology modeling 替换/优化结构 → 分子力场能量最小化 → 验证

这个问题非常实用!你可以把 AI 预测结构(如 AlphaFold、HelixFold-Single)作为初始模型,然后用 homology modeling + 能量最小化(energy minimization) 来优化局部结构或解决低可信区域的问题。

🧬 整体流程概览:

AI预测结构 → 找高可信模板 → homology modeling 替换/优化结构 → 分子力场能量最小化 → 验证


🔧 一步步操作方法

✅ Step 1: 获取 AI 模型结构
• 使用 AlphaFold 或 HelixFold 得到初步结构(PDB格式)
• 根据 pLDDT 分数 确定低可信度区域(<70)

✅ Step 2: 找模板(Homology Modeling)
• 用 BLAST 或 HHpred 找到 已解析的同源蛋白结构(PDB)
• 要求:
• 和目标蛋白有高序列相似性(>30%,越高越好)
• 模板结构是实验解析的(X-ray/NMR)

✅ Step 3: 替换或建模低可信区域

你可以有两种策略:

方法A:用 homology 建模软件重新建整个结构

比如用:
• Modeller
• Swiss-Model
• I-TASSER(适合较低相似度)

它会参考模板自动建出一个合理结构,有时比原AI模型更平滑。

方法B:只替换低可信度片段
• 在 PyMOL 或 ChimeraX 手动对比两个结构
• 替换掉 loop 或无序区域,保留 AI 模型主干
• 然后连接断点,准备进行能量最小化

✅ Step 4: 能量最小化优化结构(Energy Minimization)

使用分子力场做几轮能量优化,常见软件包括:

软件 力场 优点
GROMACS CHARMM / AMBER 高速准确,支持大规模系统
Rosetta Relax Rosetta 更注重蛋白打分和氢键优化
ChimeraX Minimization AMBER 简单好用,适合小结构快速预处理

设置好:
• 力场参数(如AMBER99SB)
• 加水盒(可选)
• 最小化步数(如5000步)

✅ Step 5: 验证优化结果
• 比较结构前后的:
• RMSD变化
• 结构能量(potential energy)
• PDB质量打分(MolProbity、PROCHECK)
• 可视化比较结构(是否出现扭曲?是否修复了冲突?)

✅ 示例工具组合推荐(免费/常用):

步骤 工具
找模板 BLAST / HHpred
建模 Modeller / Swiss-Model
优化 GROMACS / Rosetta Relax / ChimeraX
验证 MolProbity / PyMOL / Ramachandran plot


如果你告诉我你现在手头的结构和目标蛋白是哪一个,我可以直接给你个实际流程和命令行示例,帮你做第一步设置,要吗?

 


 

算法原理

工具结构

GPT:alphafold根据蛋白序列预测结构的基本原理,以及程序的具体模块 

GPT:详细讲讲AlphaFold每个模块的输入文件和输出文件的结构

GPT:深入讲讲特征构建模块(feature.pkl)

GPT:深入讲讲神经网络模块(model.py) 

 

2025年04月25日

这次的命令行设置了具体参数,速度非常快,几分钟就跑完了50多个多肽序列的预测。

module load localcolabfold/1.5.2 gcc/9.2.0
cd ~/projects/SOX9_BAF/

  

# GPT: 解析colabfold_batch的核心参数,哪些会影响准确度?
colabfold_batch SOX9_SLiM.filtered.fasta SOX9_SLiM_fast --num-recycle 12 --num-models 1 --msa-mode single_sequence --use-gpu-relax

  

--num-recycle:控制模型对预测结果重复优化的次数。【多肽、小蛋白:设为 12 比较合适,普通蛋白质:默认 3 已足够】

--use-gpu-relax:用 GPU 做结构能量最小化(OpenMM)【会让结构更自然,尤其关键位点可能更准确(但耗时更长)】

--msa-mode:mmseqs2(默认)、single_sequence(只用原始序列)【没有 MSA 的多肽(短序列)】

--amber:优化结构几何,但耗时长

 

 

 


 

2025年04月18日

我的任务:

  • 预测SOX9的蛋白结构
  • 预测SOX9与BAF的SMARCB1如何互作

这个任务的难点:

  • SOX9除了HMG domain,其他区域都是IDR,没有固定结构

解决方案:

  • alphafold multimer【照样失败】
  • peptide结构预测+docking 【http://elm.eu.org/index.html】【无偏,但工作量非常大,假阳性高】

 


 

单个蛋白的结构预测,直接用Server:https://alphafoldserver.com/【每天30个任务限制】

如果想在自己电脑上玩,其实门槛还挺高,GPU少不了,不训练,仅预测也需要GPU加速。

 

只有两个选项:

  • 自己从头搭建GPU服务器,那老板肯定是该领域的玩家,没有IT支持,自己倒腾非常耗费时间,各种软件工具的安装能让你崩溃,尤其是时间流逝带来的版本更迭问题;【一个coladfold我装了半天都没成功,版本兼容问题】
  • 使用现成的IT core的服务器,这最好啦,有强大的IT支持,你尽管用。

 

DFCI的服务器,只有CPU,资源大,无限用,但没有GPU,玩不了AI。

HMS的O2有GPU,但资源有限,用户极多,排队看运气,凑合用吧。

 

O2上已经装好了alphafold原版,我居然都跑不成功。

原因:

  • O2上有非常多不同版本的显卡,用着不同的显卡驱动
  • cpu、gpu和内存的显示,没有申请合适的节点

IT都给你写好了额tutorial,跑之前,好好看一看:https://harvardmed.atlassian.net/wiki/spaces/O2/pages/1995177985/Using+AlphaFold+2+on+O2

alphafold/2.0.0          (E)      
alphafold/2.0.1          (E)     
alphafold/2.1.1          (E)      
alphafold/2.2.0          (E)      
alphafold/2.3.1          (E)     
alphafold/2.3.2-f251de6  (E,D)

------------

$ module load alphafold/2.3.1
This is an experimental module, to run AlphaFold use the command alphafold.py followed by the desired flags, for example (replace instances of /path/to/ accordingly):
alphafold.py --fasta_paths=/path/to/fastafile --model_preset=monomer --use_gpu --no_run_relax --max_template_date=2020-05-14 --db_preset=full_dbs --output_dir=/path/to/output --data_dir=/n/shared_db/alphafold-2.3/

!! NOTE !! You must provide full paths for any files passed to alphafold.

You MUST pass the --data_dir flag as in the above example

!! NOTE !! The path specified by the --data_dir flag is different from older versions of this module - make sure you are using /n/shared_db/alphafold-2.3 and NOT /n/shared_db/alphafold.

To view this statement again (and more help info), please run `module help alphafold/2.3.1`.

  

学会使用O2上的GPU【显卡驱动really matters,要指定显卡才行】

# enter GPU node
# https://harvardmed.atlassian.net/wiki/spaces/O2/pages/1629290761/Using+O2+GPU+resources
sinfo --Format=nodehost,available,memory,statelong,gres:40 -p gpu,gpu_quad,gpu_requeue

srun -n 1 --pty -t 2:00:00 -p gpu --gres=gpu:1 bash

  

原生的alphafold非常难用,也很大很慢,所以有了colabfold

直到现在我都没有成功安装colabfold!!!不同包的版本不兼容问题,python和R永恒的痛点。

尝试了太多了,都失败了。

常规conda create env安装

# create a new/clean env
# 创建新环境
conda create -n colabfold-gpu python=3.10 -y
conda activate colabfold-gpu

# 安装ColabFold
pip install "colabfold[alphafold] @ git+https://github.com/sokrypton/ColabFold"

# cannot find colabfold_download
python -m colabfold.download



# 安装指定版本的JAX和TensorFlow
# An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.
nvidia-smi
# CUDA Version: 12.4
# 我是CUDA Version: 12.4,该安装什么版本

# https://github.com/google/flax/issues/3180
jaxlib: 0.4.26+cuda12.cudnn89 (installed from https://storage.googleapis.com/jax-releases/jax_cuda_releases.html )
jax: 0.4.26
flax: 0.8.4



pip install --upgrade "jax[cuda12]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html



python -c "import jax; print(f'JAX: {jax.__version__}')"
python -c "import flax; print(f'Flax: {flax.__version__}')"
python -c "import tensorflow as tf; print(f'TF: {tf.__version__}')"

  

# install error "ModuleNotFoundError: No module named 'Bio'"
# I have alphafold.py in my env, but it said "alphafold is not installed. Please run `pip install colabfold[alphafold]`"
# 运行colabfold需要下载庞大的数据库吗
# colabfold_download

  

docker都用上了,结果没有管理员权限,需要继续看O2的tutorial

  • https://harvardmed.atlassian.net/wiki/spaces/O2/pages/1616511103/Running+Singularity+Containers+in+O2
  • https://harvardmed.atlassian.net/wiki/spaces/O2/pages/2968354817/Self-Install+Singularity+Containers
singularity pull docker://ghcr.io/sokrypton/colabfold:1.5.5-cuda12.2.2

# https://github.com/sokrypton/ColabFold/wiki/Running-ColabFold-in-Docker


# Singularity
singularity run -B /home/zhl595/.cache/colabfold:/cache \
  colabfold_1.5.5-cuda12.2.2.sif \
  python -m colabfold.download


singularity run --nv \
  -B $(pwd):/work \
  -B /home/zhl595/.cache/colabfold:/cache \
  colabfold_1.5.5-cuda12.2.2.sif \
  colabfold_batch /work/SOX9_FL.fasta /work/SOX9_FL --num-recycle 3 --num-models 5 --max-msa 64 --num-seeds 10


singularity exec -C /home/zhl595/projects/SOX9_BAF/colabfold_1.5.5-cuda12.2.2.sif true && echo "Success" || echo "Failed"

  

conda一站式安装,失败

conda install bioconda::colabfold

 


 

OK,最终发现O2也有装好的colabfold,没想到用起来也不简单啊。

tutorial:https://harvardmed.atlassian.net/wiki/spaces/O2/pages/2180546561/Using+Local+ColabFold+on+O2

colabfold_batch --help
colabfold_batch SOX9_FL.fasta SOX9_FL/ --dropout --num-models 50 --num-recycle 3

# in colabfold_batch, how to  increase diversity by reducing the MSA depth in advanced settings, I want to generate 50 models?
colabfold_batch SOX9_FL.fasta SOX9_FL --num-recycle 3 --num-models 5 --max-msa 64 --num-seeds 10

colabfold_batch SOX9_FL.fasta SOX9_FL --num-recycle 3 --num-models 5 --max-msa 512:1024 --num-seeds 10

  

不能用普通命令申请资源,必须指定显卡版本,最好用V100和A100

srun -n 1 --pty -t 2:00:00 -p gpu --gres=gpu:1 bash

srun -n 1 --pty --cpus-per-task=8 --mem=32G -t 12:00:00 -p gpu --gres=gpu:1 bash

srun -n 1 --gres=gpu:1 --mem=32G -t 12:00:00 -p gpu --pty bash

  

最终解决方案,在GUI的网页里提交资源申请,指定V100显卡,开一个Terminal运行任务

缺点:连接有时候会中断,没有直接的Terminal稳定。

module load localcolabfold/1.5.2 gcc/9.2.0

nvidia-smi

nvcc --version

colabfold_batch SOX9_FL.fasta SOX9_FL --num-recycle 3 --num-models 5 --max-msa 128:256 --num-seeds 2 # OK, succeed

colabfold_batch SOX9_B1.fasta SOX9_B1_multimer/ --num-recycle 3 --num-models 5 --max-msa 128:256 --model-type alphafold2_multimer_v3

colabfold_batch SOX9_B1.dimer.fasta SOX9_B1_dimer/ --num-recycle 3 --num-models 5 --max-msa 128:256 --model-type alphafold2_multimer_v3

colabfold_batch test.fasta test --num-recycle 3 --num-models 1 # OK, succeed

# KGLSGAPS_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb
colabfold_batch SOX9_SLiM.filtered.fasta SOX9_SLiM --num-recycle 3 --num-models 1

-----------------

srun --pty -p interactive -t 0-02:00 --mem 8G -c 1 bash

module load alphafold/2.3.1
module unload alphafold/2.3.1

colabfold_search \
--db-load-mode 2 \
--mmseqs mmseqs \
--use-env 1 \
--use-templates 0 \
--threads 4 \
test.fasta /n/shared_db/misc/mmseqs2/14-7e284 test

colabfold_batch SOX9_SLiM.filtered.fasta slim_outputs/ \
  --model-type alphafold2 \
  --num-recycle 3 \
  --num-models 1 \
  --use-gpu-relax

  

好在一切都跑起来了,能够出活了!

 

posted @ 2025-04-19 04:56  Life·Intelligence  阅读(492)  评论(0)    收藏  举报
TOP