AlphaFold 蛋白质结构预测实战¶
彭文强 | 2026届 | 生信分析工程师求职
1. 一句话说明¶
AlphaFold 是 Google DeepMind 开发的 AI 蛋白质结构预测系统,能从氨基酸序列直接预测蛋白质 3D 结构,准确度媲美实验方法(X射线晶体学/冷冻电镜),本教程教你用 ColabFold/ESMFold 零成本实操蛋白质结构预测。
2. 为什么要学¶
蛋白质结构预测的意义¶
蛋白质是生命的"工人"——催化化学反应、传递信号、构成细胞骨架。但蛋白质的功能取决于它的 3D 形状(就像钥匙的齿纹决定它能开哪把锁)。
过去要知道一个蛋白质长什么样,只能做实验: - X射线晶体学:把蛋白质结晶,用X射线照射看衍射花纹 → 耗时数月到数年 - 冷冻电镜(Cryo-EM):冷冻蛋白质后用电子束成像 → 设备昂贵 - 核磁共振(NMR):只适用于小蛋白质
截至2026年,实验解出的蛋白质结构约 20 万个(PDB数据库),但自然界已知蛋白质超过 2.3 亿个。靠实验全部解完?不可能。
AlphaFold 的革命性突破¶
2020年12月,AlphaFold 2 在 CASP14 竞赛中以碾压性优势获胜——预测精度几乎等同于实验方法。这被《Science》评为年度十大突破之首。
白话理解:
以前要花几个月、花几十万做实验才能看到蛋白质长什么样。现在 AI 几分钟就能预测出来,而且预测得跟实验结果几乎一样准。这就像从"手工测量每座山的高度"变成"用卫星一次性扫描全球地形"。
对你的面试价值¶
- 热门话题:AlphaFold 是生信面试必问的"AI+生物"代表案例
- 项目关联:你做肠道菌群研究,菌群产生的关键蛋白(如毒力因子、代谢酶)可以用 AlphaFold 预测结构
- 能力展示:会用 ColabFold 说明你具备 AI 工具实操能力,不只停留在理论
3. 核心概念白话版¶
3.1 蛋白质结构层级¶
蛋白质结构分四个层级,从简单到复杂:
| 层级 | 英文 | 白话解释 | 类比 |
|---|---|---|---|
| 一级结构 | Primary | 氨基酸的排列顺序(像一串珠子的颜色顺序) | 项链上珠子的排列 MKTLLIFLAG... |
| 二级结构 | Secondary | 局部折叠模式:α螺旋(像弹簧卷起来)和β折叠(像手风琴的褶皱) | 绳子局部卷成弹簧或叠成波浪 |
| 三级结构 | Tertiary | 整条链的完整3D折叠形状 | 整根绳子揉成一个团,有特定形状 |
| 四级结构 | Quaternary | 多条蛋白质链组装在一起 | 多个团组装成一个更大的机器 |
AlphaFold 做的事:从一级结构(氨基酸序列)直接预测三级/四级结构(3D形状)。这个从序列到结构的问题就是蛋白质折叠问题(protein folding problem),困扰了生物学家50多年。
3.2 同源建模 vs AI预测¶
| 对比 | 同源建模(传统方法) | AI预测(AlphaFold) |
|---|---|---|
| 原理 | 找一个已知结构的"亲戚"蛋白作模板,按模板搭建 | 从海量序列和结构数据中学习规律,直接预测 |
| 白话 | 照着哥哥的毕业照P自己的毕业照 | AI看了100万张毕业照,学会了直接生成你的照片 |
| 依赖模板? | 必须有同源蛋白模板(序列相似度>30%才靠谱) | 不强依赖模板,没有近缘同源蛋白也能预测 |
| 代表工具 | SWISS-MODEL, MODELLER | AlphaFold, ESMFold, RoseTTAFold |
3.3 MSA(多序列比对)¶
MSA = Multiple Sequence Alignment(多序列比对)
白话解释:
把你要预测的蛋白质序列和它在不同物种中的"远亲近亲"排列整齐对比。哪些位置在所有物种中都不变(保守位置),说明这些位置对蛋白质功能/结构至关重要。AlphaFold 通过分析 MSA 中的共进化信号(co-evolution)——如果 A 位置变了,B 位置也跟着变——来推断这两个位置在3D空间中靠近。
打比方:
就像考古学家比较不同版本的古籍,找出哪些字从来没变过(核心内容),哪些字总是一起变(可能有关联),从而推断原文的结构。
3.4 pLDDT 置信度分数¶
pLDDT = predicted Local Distance Difference Test(预测局部距离差异测试)
白话解释:
这是 AlphaFold 对自己预测的每个氨基酸位置"有多确定"的打分,范围 0-100。
| 分数范围 | 含义 | 白话 | 颜色(默认配色) |
|---|---|---|---|
| 90-100 | 非常高置信度 | AI说"这个位置我很确定" | 深蓝色 |
| 70-90 | 高置信度 | AI说"差不多就这样" | 浅蓝色 |
| 50-70 | 低置信度 | AI说"有点拿不准" | 黄色 |
| <50 | 非常低置信度 | AI说"这里我瞎猜的" | 橙色 |
关键认知:pLDDT < 50 的区域通常是内在无序区(IDR, Intrinsically Disordered Region)——这些区域本身就没有固定结构,不是 AlphaFold 预测错了,而是这些区域"天生就没有固定形状"。
3.5 PAE 图(Predicted Aligned Error)¶
PAE = 预测对齐误差
白话解释:
PAE 图是一张热力图,告诉你"蛋白质中任意两个位置的相对位置关系是否可靠"。如果 (i, j) 处颜色深(误差小),说明第 i 个和第 j 个氨基酸的相对位置预测很准。
什么时候看 PAE? - 单体蛋白:看哪些域(domain)之间的相对位置确定 - 复合物预测:看两条链之间是否真的有可靠的互作界面(如果链间 PAE 很高,说明这两条链可能不真正结合)
4. AlphaFold 发展史¶
4.1 AlphaFold 1(2018,CASP13)¶
- 突破:首次用深度学习做蛋白质结构预测,在 CASP13 排名第一
- 方法:预测氨基酸之间的距离矩阵,再用梯度下降优化3D坐标
- 局限:精度还不够媲美实验方法
4.2 AlphaFold 2(2020,CASP14)¶
- 突破:精度媲美实验方法,GDT-TS 中位数达到 92.4(满分100)
- 核心架构:
- Evoformer 模块:处理 MSA 和配对表示(pair representation),捕捉序列中的共进化信号
- Structure Module:从 Evoformer 输出的特征生成3D坐标
- 循环迭代:结构预测结果反馈回去,再次精化(recycling)
- 影响:开源代码 + 发布 AlphaFold 数据库(AFDB),预测了超过 2 亿个蛋白质结构
- 论文:Jumper et al. Nature 596, 583-589 (2021)
4.3 AlphaFold 3(2024,Nature)¶
- 突破:从"只预测蛋白质"扩展到统一预测所有生物分子的复合物结构
- 能预测什么:
- 蛋白质 + 蛋白质
- 蛋白质 + DNA/RNA
- 蛋白质 + 小分子药物
- 蛋白质 + 离子
- 蛋白质 + 修饰残基(如磷酸化)
- 核心变化:
- 引入扩散模型(Diffusion Module)替代原来的 Structure Module
- 白话:从"直接算坐标"变成"从一团噪声慢慢去噪生成结构"(类似 Stable Diffusion 生成图片的原理)
- 性能:蛋白质-配体对接准确度超过传统的 AutoDock Vina
- 开放性:
- AlphaFold Server(alphafoldserver.com)提供免费在线预测(有使用限制)
- 2024年11月代码开源(限非商业用途)
- AlphaFold 数据库 2026年3月更新,新增数百万蛋白质复合物结构预测
- 论文:Abramson et al. Nature 630, 493-500 (2024)
发展时间线¶
2018 ──── AlphaFold 1 ──── CASP13第一名,AI进入蛋白质结构预测
│
2020 ──── AlphaFold 2 ──── CASP14碾压级表现,蛋白质折叠问题"解决"
│
2021 ──── AFDB v1 ──────── 发布36万个蛋白质结构预测
│
2022 ──── AFDB v2 ──────── 扩展到2亿+蛋白质,覆盖UniProt
│
2024.05 ── AlphaFold 3 ──── 统一预测蛋白质/核酸/小分子复合物
│
2024.10 ── 诺贝尔化学奖 ── 颁发给 Demis Hassabis 和 John Jumper
│
2024.11 ── AF3 开源 ──── 代码开放(非商业用途)
│
2026.03 ── AFDB 更新 ──── 新增数百万复合物结构预测
5. 实操教程¶
5.1 ColabFold —— 最简单的免费方案¶
ColabFold 是社区开发的 AlphaFold 封装工具(当前版本 v1.6.1),通过 Google Colab 提供免费 GPU,用 MMseqs2 替代 jackhmmer 做 MSA 搜索(速度快40倍)。
第一步:打开 Colab Notebook¶
浏览器访问:
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb
第二步:输入序列¶
在 query_sequence 框中粘贴你的蛋白质氨基酸序列(单字母格式):
# 示例:人胰岛素B链(30个氨基酸)
# 格式:纯字母,不要有空格和换行
FVNQHLCGSHLVEALYLVCGERGFFYTPKT
第三步:设置参数¶
# ===== 关键参数说明 =====
# jobname:给你的任务起个名字,结果文件会以此命名
jobname = "T2D_insulin_B" # 白话:文件名前缀
# num_relax:是否用 AMBER 力场做能量最小化(relaxation)
# 0 = 不做(速度快,pLDDT分数不变)
# 1 = 只对最佳模型做(推荐)
# 5 = 所有模型都做(最慢)
num_relax = 1 # 白话:给预测的结构"按摩"一下,消除物理上不合理的原子碰撞
# template_mode:是否使用已知结构作模板
# "none" = 纯AI预测,不用模板
# "pdb70" = 从PDB数据库找模板辅助预测
template_mode = "none" # 白话:不抄作业,让AI自己从头预测
# num_models:用几个模型预测(AlphaFold有5个训练好的模型参数)
# 选5个效果最好但最慢;选1个最快
num_models = 5 # 白话:让5个"专家"各自独立预测,取最好的
# num_recycles:循环迭代次数
# 3次是默认值,复杂蛋白可以加到6-12次
num_recycles = 3 # 白话:反复检查、修改预测结果的次数
第四步:运行¶
- 点击菜单
Runtime→Run all(运行所有单元格) - 等待 MSA 搜索(约1-5分钟)
- 等待结构预测(约5-30分钟,取决于序列长度和GPU类型)
- 结果自动下载为
.zip文件
第五步:理解输出文件¶
T2D_insulin_B/
├── T2D_insulin_B_unrelaxed_rank_001_*.pdb # 排名第1的预测结构(PDB格式)
├── T2D_insulin_B_unrelaxed_rank_002_*.pdb # 排名第2的预测结构
├── ...
├── T2D_insulin_B_relaxed_rank_001_*.pdb # 经过能量最小化的最佳结构
├── T2D_insulin_B_coverage.png # MSA覆盖度图(每个位置有多少同源序列覆盖)
├── T2D_insulin_B_plddt.png # pLDDT置信度图(每个残基的预测置信度)
├── T2D_insulin_B_pae.png # PAE图(残基间相对位置误差)
├── T2D_insulin_B_predicted_aligned_error_v1.json # PAE原始数据
├── config.json # 运行参数记录
└── log.txt # 运行日志
预测复合物(多条链)¶
如果要预测两个蛋白质的复合物结构,用 : 分隔序列:
# 两条链用冒号分隔
# 链A:链B
query_sequence = "MKTLLIFALG:FVNQHLCGSHLVEALYLVCGERGFFYTPKT"
# 白话:告诉AI"这两条链会结合在一起,请预测它们的组装方式"
5.2 ESMFold —— 单序列极速预测¶
ESMFold 是 Meta(Facebook AI)开发的蛋白质结构预测工具,不需要 MSA,直接从单条序列预测结构,速度比 AlphaFold 快约 60 倍。
在线使用(ESM Metagenomic Atlas)¶
https://esmatlas.com/resources?action=fold
粘贴序列 → 点击 Predict → 几秒钟出结果。
ColabFold 中使用 ESMFold¶
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/ESMFold.ipynb
核心原理¶
# ESMFold 的核心是 ESM-2 蛋白质语言模型
# 白话:Meta用30亿条蛋白质序列训练了一个"蛋白质版ChatGPT"
# 这个模型读一条氨基酸序列,就像ChatGPT读一段文字
# 它理解了氨基酸之间的"语义关系"——哪些氨基酸喜欢靠在一起
# 然后从这个"理解"直接生成3D结构
# 优势:
# 1. 不需要搜索MSA(省掉最耗时的步骤)
# 2. 预测速度极快(几秒到几十秒)
# 3. 适合大规模批量预测(比如预测肠道菌群的所有蛋白)
# 劣势:
# 1. 精度比 AlphaFold 略低(尤其是复杂蛋白)
# 2. 对于MSA信息丰富的蛋白,放弃MSA是一种浪费
# 3. 不支持复合物预测
Python 代码调用 ESMFold API¶
# ===== ESMFold API调用示例 =====
# 适合在本地Python环境中快速获取结构预测
import requests # 用于发送HTTP请求的库
# 你要预测的蛋白质序列
sequence = "MKTLLIFALGLLAAQPAMA" # 示例:一段信号肽序列
# 调用ESM Atlas的免费API
response = requests.post(
"https://api.esmatlas.com/foldSequence/v1/pdb/", # API地址
data=sequence, # 直接传序列
headers={"Content-Type": "text/plain"} # 告诉服务器传的是纯文本
)
# 检查请求是否成功
if response.status_code == 200: # 200表示成功
# 把返回的PDB内容保存到文件
with open("predicted_structure.pdb", "w") as f:
f.write(response.text) # response.text就是PDB格式的结构文件
print("结构预测成功!已保存为 predicted_structure.pdb")
else:
print(f"预测失败,状态码: {response.status_code}")
print(response.text) # 打印错误信息
5.3 AlphaFold DB 数据库查询 —— 直接下载已有预测结果¶
如果你要查的蛋白质已经在 AlphaFold 数据库中,根本不需要自己跑预测,直接下载即可。
网页查询¶
https://alphafold.ebi.ac.uk/
搜索方式:
1. UniProt ID:如 P01308(人胰岛素)
2. 蛋白质名称:如 Insulin
3. 物种名:如 Escherichia coli
4. 基因名:如 INS
API 批量下载¶
# ===== 通过API批量下载AlphaFold预测结构 =====
import requests # HTTP请求库
import os # 文件操作库
# 要下载的UniProt ID列表
# 这些可以是你在肠道菌群研究中感兴趣的蛋白质
uniprot_ids = [
"P01308", # 人胰岛素(Human Insulin)
"P0DTC2", # SARS-CoV-2刺突蛋白
"Q9I1F6", # 示例蛋白
]
# 创建保存目录
os.makedirs("alphafold_structures", exist_ok=True) # exist_ok=True:目录已存在也不报错
for uid in uniprot_ids:
# AlphaFold DB的API地址格式
# v4是当前版本号
url = f"https://alphafold.ebi.ac.uk/files/AF-{uid}-F1-model_v4.pdb"
response = requests.get(url) # 发送GET请求下载文件
if response.status_code == 200:
# 保存PDB文件
filepath = f"alphafold_structures/AF-{uid}-F1-model_v4.pdb"
with open(filepath, "w") as f:
f.write(response.text)
print(f"下载成功: {uid} -> {filepath}")
else:
print(f"下载失败: {uid} (状态码: {response.status_code})")
# 可能原因:UniProt ID不在数据库中,或版本号不对
# ===== 用命令行直接下载(更简单) =====
# 下载单个蛋白质的PDB文件
# wget 是Linux下载工具,-O 指定保存文件名
wget https://alphafold.ebi.ac.uk/files/AF-P01308-F1-model_v4.pdb \
-O insulin_alphafold.pdb
# 下载CIF格式(mmCIF,比PDB格式信息更丰富)
wget https://alphafold.ebi.ac.uk/files/AF-P01308-F1-model_v4.cif \
-O insulin_alphafold.cif
# 下载PAE数据(JSON格式)
wget https://alphafold.ebi.ac.uk/files/AF-P01308-F1-predicted_aligned_error_v4.json \
-O insulin_pae.json
5.4 结果解读¶
PDB 文件结构¶
# PDB文件是纯文本,每行一条记录
# 最关键的是 ATOM 记录:
ATOM 1 N MET A 1 -5.432 10.123 8.456 1.00 85.20 N
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ X坐标 Y坐标 Z坐标 占有率 B因子 元素
│ │ │ │ │ └─ 残基序号(第1个氨基酸)
│ │ │ │ └──── 链标识符(A链)
│ │ │ └─────── 残基名(MET = 甲硫氨酸)
│ │ └────────── 原子名(N = 氮原子/骨架氮)
│ └───────────── 原子序号
└──────────────────────── 记录类型(ATOM = 标准氨基酸的原子)
# 在AlphaFold输出中,B因子列(通常存温度因子)被替换为 pLDDT 分数
# 85.20 表示这个原子位置的预测置信度为 85.20(高置信度)
PyMOL 可视化¶
# ===== PyMOL 可视化AlphaFold预测结构 =====
# 在PyMOL命令行中输入以下命令
# 1. 加载结构文件
load predicted_structure.pdb, my_protein
# 白话:把文件加载进来,起名叫 my_protein
# 2. 按pLDDT着色(AlphaFold官方配色方案)
# 先定义4种颜色
set_color af_blue, [0.051, 0.341, 0.827] # 深蓝:pLDDT > 90,非常可靠
set_color af_cyan, [0.416, 0.796, 0.945] # 浅蓝:pLDDT 70-90,可靠
set_color af_yellow, [0.996, 0.851, 0.212] # 黄色:pLDDT 50-70,不太确定
set_color af_orange, [0.992, 0.490, 0.302] # 橙色:pLDDT < 50,不可靠
# 按pLDDT分段上色(B因子列存的就是pLDDT)
# 注意:按从低到高的顺序涂色,后涂的覆盖前涂的
color af_orange # 先全部涂橙色(pLDDT < 50 的底色)
color af_yellow, b > 50 # pLDDT > 50 覆盖为黄色
color af_cyan, b > 70 # pLDDT > 70 覆盖为浅蓝
color af_blue, b > 90 # pLDDT > 90 覆盖为深蓝
# 3. 或者用连续色谱着色(更简单,一行搞定)
spectrum b, red_yellow_green_cyan_blue, minimum=50, maximum=90
# 白话:按B因子(pLDDT)从低到高用红→黄→绿→蓝着色
# 4. 显示为卡通模式(看二级结构最清晰)
show cartoon
hide lines
# 白话:用"卡通"模式显示螺旋和折叠
# 5. 设置背景为白色(出图更清晰)
bg_color white
# 6. 保存高分辨率图片
ray 2400, 2400 # 设置渲染分辨率
png my_structure.png # 保存为PNG图片
# 7. 查看残基级别pLDDT
# 选择低置信度区域
select low_conf, b < 50
# 白话:选出所有pLDDT低于50的残基,这些通常是无序区或柔性loop
ChimeraX 可视化(替代方案)¶
# 用UCSF ChimeraX打开(另一个免费的分子可视化软件)
# 安装:https://www.cgl.ucsf.edu/chimerax/
# 命令行打开文件
chimerax predicted_structure.pdb
# ChimeraX内置了AlphaFold pLDDT着色命令
# 在ChimeraX命令行输入:
color bfactor palette alphafold
# 白话:一键按AlphaFold标准配色着色
6. AlphaFold vs ESMFold vs RoseTTAFold 对比¶
| 特性 | AlphaFold 2/3 | ESMFold | RoseTTAFold |
|---|---|---|---|
| 开发方 | Google DeepMind | Meta AI | David Baker实验室(华盛顿大学) |
| 需要MSA? | 需要(核心输入) | 不需要(单序列) | 需要 |
| 预测速度 | 慢(MSA搜索+推理,几分钟到1小时) | 快(几秒到几十秒) | 中等 |
| 单体蛋白精度 | 最高 | 略低(短蛋白差距小,长蛋白差距大) | 接近AF2 |
| 复合物预测 | AF2-Multimer/AF3 支持 | 不支持 | RoseTTAFold2 支持 |
| 非蛋白分子 | AF3 支持(DNA/RNA/小分子/离子) | 不支持 | 不支持 |
| 开源 | AF2完全开源;AF3非商业开源 | 完全开源 | 完全开源 |
| 免费在线使用 | ColabFold/AlphaFold Server | ESM Atlas | ColabFold |
| 适用场景 | 精确预测单个重要蛋白 | 快速批量筛选大量蛋白 | 科研替代方案 |
| 本地部署难度 | 高(需要大量数据库+GPU) | 低(单GPU即可) | 中等 |
| 核心架构 | Evoformer + Structure/Diffusion Module | ESM-2语言模型 + Folding Trunk | Three-track Network |
怎么选?¶
决策树:
你有已知的UniProt ID吗?
├── 是 → 先去AlphaFold DB查,可能已经有预测结果了(免费、即时)
│
└── 没有 / DB中没有 →
│
├── 需要最高精度? → ColabFold跑AlphaFold2(免费GPU)
│
├── 需要预测复合物(蛋白+DNA/药物)? → AlphaFold Server(AF3)
│
├── 需要批量预测几百上千个蛋白? → ESMFold(速度快60倍)
│
└── 想对比多种方法? → ColabFold同时跑AF2和ESMFold
7. 和你项目的关联¶
你的毕业论文做的是"2型糖尿病肠道菌群分析",以下是 AlphaFold 可以跟你项目衔接的几个点:
7.1 关键菌群蛋白结构预测¶
# 场景:你用随机森林筛出了几个跟T2D高度相关的菌属
# 下一步可以预测这些菌产生的关键蛋白的结构
# 例1:Faecalibacterium prausnitzii 的丁酸辅酶A转移酶
# 丁酸(butyrate)是"有益"短链脂肪酸,T2D患者中这个菌通常减少
# 预测这个酶的结构,可以帮助理解其催化机制
# 例2:致病菌的毒力因子(virulence factor)
# 比如某些菌产生的内毒素蛋白、粘附蛋白
# 预测结构可以帮助理解其致病机制
# 例3:与人体受体互作的菌群蛋白
# 用AlphaFold 3预测菌群蛋白和人体受体的复合物结构
# 了解菌群如何"对话"宿主
7.2 面试怎么说¶
"在我的T2D肠道菌群项目中,随机森林筛选出了几个关键菌属。如果要深入研究这些菌影响代谢的具体机制,下一步可以用AlphaFold预测它们产生的关键代谢酶和毒力因子的3D结构。比如丁酸生成相关的酶,预测其结构可以帮助理解为什么T2D患者中这些酶的活性可能改变。我已经尝试用ColabFold跑过简单的蛋白质结构预测。"
8. 常见问题与解决¶
Q1:ColabFold 一直报 GPU 不可用怎么办?¶
原因:Google Colab 的免费 GPU 配额用完了(Colab 限制免费用户每天约12小时GPU)。
解决:
1. 换一个 Google 账号试试
2. 等几个小时再跑(GPU配额会恢复)
3. 选择 Runtime → Change runtime type → 确认选了 T4 GPU
4. 考虑使用 Colab Pro(约10美元/月,GPU更稳定)
5. 用 LocalColabFold 在自己电脑/服务器上跑
Q2:序列太长,内存不够(OOM, Out of Memory)怎么办?¶
解决:
1. 免费 Colab GPU 约16GB显存,最长约 2000 个氨基酸
2. 如果超过这个长度,可以切成域(domain)分别预测
3. 使用 ESMFold(内存占用更少)
4. 减少 num_models 从5降到1
5. 减少 num_recycles 从3降到1
Q3:pLDDT 分数很低(大面积橙色/黄色),是预测失败了吗?¶
不一定! 需要区分两种情况: 1. 内在无序区(IDR):这些区域本身就没有稳定结构,pLDDT低是正确的 2. 预测确实不准:如果MSA覆盖度(coverage图中看到)很低,说明缺乏同源序列信息,预测可能不可靠
怎么判断:看MSA coverage图,如果某段序列MSA深度很浅(几乎没有同源序列覆盖),那这段的低pLDDT更可能是信息不足。如果MSA深度够但pLDDT仍低,大概率是无序区。
Q4:AlphaFold 预测的结构能直接发论文吗?¶
可以,但有注意事项: 1. 必须注明是"predicted structure by AlphaFold",不能说成实验结构 2. 要报告 pLDDT 分数和 PAE 3. 低置信度区域的分析结论要谨慎(不要基于 pLDDT < 70 的区域做功能推断) 4. 如果是关键发现,最好有实验验证(湿实验) 5. 引用 AlphaFold 论文和数据库论文
Q5:AlphaFold Server(AF3在线版)和 ColabFold 有什么区别?¶
| 对比 | AlphaFold Server | ColabFold |
|---|---|---|
| 底层模型 | AlphaFold 3 | AlphaFold 2 |
| 能预测复合物? | 蛋白质+DNA/RNA/小分子/离子 | 蛋白质+蛋白质(Multimer) |
| 每天限额 | 有限制(约10次/天) | 无限制(但受GPU配额限制) |
| 结果可商用? | 仅限非商业研究 | AF2模型权重:Apache 2.0可商用 |
| 网址 | alphafoldserver.com | colab.research.google.com |
Q6:我想在自己的Linux服务器上装AlphaFold,需要什么配置?¶
# AlphaFold 2 本地部署最低要求:
# - GPU:NVIDIA GPU,至少 16GB 显存(推荐 A100 40GB/80GB)
# - RAM:至少 64GB 内存(推荐 128GB+)
# - 硬盘:约 2.5 TB(数据库:UniRef90, MGnify, BFD, PDB70等)
# - CUDA:11.1+
# - Python:3.8+
# 更推荐用 LocalColabFold(轻量版,不需要下载全部数据库):
# https://github.com/YoshitakaMo/localcolabfold
# 用 MMseqs2 在线服务器做 MSA,本地只需要 GPU 做推理
# 安装 LocalColabFold(一键安装脚本)
wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabbatch_linux.sh
bash install_colabbatch_linux.sh
# 或用conda安装(推荐)
conda create -n colabfold -c conda-forge -c bioconda \
python=3.10 kalign2 hhsuite mmseqs2
conda activate colabfold
pip install "colabfold[alphafold]"
# GPU 支持需额外安装 jax GPU 版本,参考 LocalColabFold 文档
# 运行预测
colabfold_batch input.fasta output_dir/
# input.fasta:包含蛋白质序列的FASTA文件
# output_dir/:结果输出目录
Q7:怎么用 AlphaFold 数据库的 API 做批量查询?¶
# ===== AlphaFold DB REST API 使用示例 =====
import requests # HTTP请求库
import json # JSON解析库
# 方式1:通过UniProt ID获取结构信息
uniprot_id = "P01308" # 人胰岛素
api_url = f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}"
response = requests.get(api_url) # 发送GET请求
if response.status_code == 200:
data = response.json() # 把返回的JSON解析成Python字典
# data 是一个列表,每个元素是一个预测条目
for entry in data:
print(f"UniProt ID: {entry['uniprotAccession']}")
print(f"物种: {entry['organismScientificName']}")
print(f"PDB文件: {entry['pdbUrl']}") # PDB格式下载链接
print(f"CIF文件: {entry['cifUrl']}") # mmCIF格式下载链接
print(f"PAE图: {entry['paeImageUrl']}") # PAE热力图链接
print(f"模型置信度: {entry['globalMetricType']} = {entry['globalMetricValue']}")
else:
print(f"查询失败: {response.status_code}")
9. 速查表¶
工具速查¶
| 需求 | 工具 | 操作 |
|---|---|---|
| 查已有预测结构 | AlphaFold DB | alphafold.ebi.ac.uk → 搜索 UniProt ID |
| 免费在线预测(AF2) | ColabFold | Colab Notebook → 粘贴序列 → Run all |
| 免费在线预测(AF3) | AlphaFold Server | alphafoldserver.com → 输入序列 |
| 极速单序列预测 | ESMFold | esmatlas.com → Fold Sequence |
| 本地批量预测 | LocalColabFold | colabfold_batch input.fasta output/ |
| 可视化PDB | PyMOL / ChimeraX | load xxx.pdb → spectrum b |
| 批量下载 | API/wget | wget alphafold.ebi.ac.uk/files/AF-{ID}-F1-model_v4.pdb |
pLDDT 速查¶
| 分数 | 置信度 | 颜色 | 含义 |
|---|---|---|---|
| >90 | 非常高 | 深蓝 | 结构可靠,可用于功能分析 |
| 70-90 | 高 | 浅蓝 | 骨架可靠,侧链方向可能有误差 |
| 50-70 | 低 | 黄色 | 结构可能有较大误差 |
| <50 | 很低 | 橙色 | 可能是无序区,结构不可靠 |
关键术语速查¶
| 术语 | 全称 | 白话 |
|---|---|---|
| pLDDT | predicted Local Distance Difference Test | 每个残基的置信度打分(0-100) |
| PAE | Predicted Aligned Error | 两个残基相对位置的预测误差 |
| MSA | Multiple Sequence Alignment | 把一堆亲戚序列排排坐对齐比较 |
| CASP | Critical Assessment of protein Structure Prediction | 蛋白质结构预测的"奥运会"比赛 |
| Evoformer | Evolutionary Transformer | AF2核心模块,处理进化信息 |
| Diffusion Module | 扩散模块 | AF3核心创新,从噪声去噪生成结构 |
| PDB | Protein Data Bank | 蛋白质结构文件格式 / 全球结构数据库 |
| UniProt | Universal Protein Resource | 全球蛋白质序列和注释数据库 |
| IDR | Intrinsically Disordered Region | 天生没有固定结构的蛋白质区域 |
| AMBER relax | 分子动力学能量最小化 | 给预测结构"按摩"消除原子碰撞 |
| GDT-TS | Global Distance Test - Total Score | 衡量预测结构和实验结构差多远 |
面试速记卡¶
Q: 什么是AlphaFold?
A: Google DeepMind开发的AI蛋白质结构预测系统。
AF2(2020)解决蛋白质折叠问题,精度媲美实验。
AF3(2024)扩展到蛋白质/DNA/RNA/小分子复合物预测。
数据库已包含2亿+蛋白质结构预测。
2024年诺贝尔化学奖授予AlphaFold创始人。
Q: AlphaFold的核心原理?
A: 输入→氨基酸序列+MSA(多序列比对)
核心→Evoformer捕捉共进化信号
输出→3D坐标+pLDDT置信度分数
AF3创新→用扩散模型生成结构
Q: pLDDT是什么?
A: 每个残基的预测置信度(0-100)。
>90很可靠(深蓝),70-90可靠(浅蓝),
50-70不太确定(黄),<50可能无序区(橙)。
Q: 和你项目的关系?
A: 用RF筛出关键菌属后,可以用AlphaFold预测
这些菌产生的关键酶(如丁酸合成酶)的3D结构,
进一步理解菌群影响T2D代谢的分子机制。
10. 延伸学习资源¶
经典论文¶
- AlphaFold 2:Jumper et al. "Highly accurate protein structure prediction with AlphaFold." Nature 596, 583-589 (2021).
- AlphaFold 3:Abramson et al. "Accurate structure prediction of biomolecular interactions with AlphaFold 3." Nature 630, 493-500 (2024).
- ColabFold:Mirdita et al. "ColabFold: Making protein folding accessible to all." Nature Methods 19, 679-682 (2022).
- ESMFold:Lin et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science 379, 1123-1130 (2023).
- RoseTTAFold:Baek et al. "Accurate prediction of protein structures and interactions using a three-track neural network." Science 373, 871-876 (2021).
在线教程¶
- EMBL-EBI AlphaFold 官方教程:https://www.ebi.ac.uk/training/online/courses/alphafold/
- ColabFold GitHub Wiki:https://github.com/sokrypton/ColabFold/wiki
- AlphaFold DB API 文档:https://alphafold.ebi.ac.uk/api-docs
视频教程¶
- DeepMind 官方 AlphaFold 解释视频(YouTube)
- ColabFold 使用教程(B站搜索"ColabFold 教程")
数据库¶
- AlphaFold DB:https://alphafold.ebi.ac.uk/ (2亿+预测结构)
- PDB:https://www.rcsb.org/ (实验解析的蛋白质结构)
- UniProt:https://www.uniprot.org/ (蛋白质序列和注释)
- ESM Atlas:https://esmatlas.com/ (Meta的大规模结构预测)
你之前的知识库关联¶
- 本教程是
knowledge_base/20_AI与生信交叉应用.md中"蛋白质结构预测"部分的实操扩展 - AlphaFold 的 Transformer 架构与
knowledge_base_2/03_HuggingFace_Transformers入门.md中的概念相通 - 本地部署涉及的 Docker/Conda 知识参考
knowledge_base/17_Docker与Conda环境管理.md