第07期 ⭐⭐ 进阶

蛋白质3D结构预测

使用AlphaFold DB、PDB、UniProt获取和可视化蛋白质3D结构

📚 学习时间: 约15分钟

⚠️
免责声明: 本内容仅供科研学习参考,不作为临床诊断依据。 预测结构应结合实验结构验证,关键结论建议通过实验确认。
🎯

技能简介

蛋白质结构是理解其功能的关键。传统获取蛋白结构需要做实验(X射线晶体学、冷冻电镜), 一个结构可能要等几年。 2021年DeepMind发布的AlphaFold2彻底改变了这一局面,AI预测的蛋白质结构精度可以媲美实验结构。

本教程教你使用三大结构数据库—— AlphaFold DB(2亿+预测结构)、PDB(实验结构库)、UniProt(蛋白质序列和功能), 通过Scientific Skills MCP自动化完成从序列到3D结构可视化的全流程。 几秒钟就能获取目标蛋白的3D结构

几年
传统实验解析
几秒钟
AI预测结构
2亿+
可用结构数

🧭 结构预测前先确认这 4 个判断

你需要单体还是复合物

AlphaFold 单体模型适合做初步结构理解;如果问题涉及复合物、配体或膜环境,就要提前换工具或补实验结构。

序列与亚型是否正确

同一个基因可能有多个 isoform,信号肽、跨膜区或截短体差一点,后面所有位点解读都会跟着偏掉。

关键区域在哪里

在开始前就标出活性位点、突变位点、结构域边界或无序区,否则拿到结构后很容易只是在“看模型”。

有没有实验结构可优先用

若 PDB 已有高分辨率结构或关键复合物结构,通常应优先使用实验数据,再把 AI 模型当补充参考。

📦 结构输出与 pLDDT / PAE 至少要讲清这 4 件事

结构文件本身

至少保留 PDB/mmCIF 文件、来源链接和使用的序列版本,后续对接、作图和共享才不会脱节。

pLDDT:看局部可信度

pLDDT 高说明局部原子坐标更可靠;低分区常见于 loop、无序区和柔性末端,别直接拿来讲精细机制。

PAE:看结构域相对位置

PAE 不是“越低越好”的单一总分,而是用来判断两个残基或结构域之间的相对摆位是否可靠。

关键位点可视化

最好输出 1 张关键残基/突变位点定位图,并注明这只是结构假说支撑,不是功能结论本身。

💡 使用场景

🔬

药物靶点结构获取

获取药物靶点的3D结构,用于分子对接和虚拟筛选

🧬

突变位点分析

可视化疾病相关突变位点在3D结构中的位置

💊

耐药机制研究

分析耐药突变如何影响药物结合

🎨

论文结构图制作

生成发表级蛋白质3D结构图用于论文发表

🛠️ 核心技能调用

通过Scientific Skills MCP,可以一键调用三大蛋白质结构数据库:

📊 UniProt Database - 蛋白质序列和功能信息

UniProt是蛋白质序列和功能的权威数据库,提供序列、功能域、PTM位点、变异等丰富信息。

# 调用 UniProt Database 技能
# scientific-skills:uniprot-database

# 查询蛋白质信息
uniprot_query(
  query = "EGFR_HUMAN", # UniProt ID 或基因名
  fields = [
    "sequence",   # 氨基酸序列
    "length",    # 序列长度
    "domains",    # 功能域
    "ptm",      # 翻译后修饰
    "variants",   # 已知变异
    "function",   # 功能注释
    "subcellular_location" # 亚细胞定位
  ]
)

# 返回结果示例:
# Entry:  P00533 (EGFR_HUMAN)
# Length:  1210 aa
# Domains: Protein kinase (672-976), Receptor L domain (1-165)...
# PTMs:   Phosphorylation (Y992, Y1068, Y1173...), Glycosylation...
# Variants: T790M (pathogenic), C797S (resistance), L858R (activating)
# Function: Receptor tyrosine kinase binding to EGF family ligands...

# 获取序列(FASTA格式)
sequence = uniprot_get_sequence("EGFR_HUMAN", format="fasta")
🧬 AlphaFold Database - AI预测结构

AlphaFold DB包含2亿+蛋白质的AI预测结构,提供置信度评分(pLDDT)和PAE矩阵。

# 调用 AlphaFold Database 技能
# scientific-skills:alphafold-database

# 获取AlphaFold预测结构
alphafold_get(
  protein_id = "EGFR_HUMAN", # UniProt ID
  output_format = "pdb",   # 输出格式: pdb, mmcif
  include_metadata = True  # 包含置信度等信息
)

# 返回结果包含:
# - 3D坐标文件(PDB格式)
# - pLDDT置信度评分(0-100)
#  * 90-100: 高置信度(非常可靠)
#  * 70-90: 良好置信度(通常可靠)
#  * 50-70: 低置信度(需谨慎)
#  * <50: 极低置信度(不可靠)
# - PAE矩阵(预测对齐误差)
# - 结构版本和模型信息

# 可视化结构(按pLDDT着色)
visualize_structure(
  structure = af_structure,
  color_by = "plddt", # 按置信度着色
  show_domains = True,
  show_ptm = True
)

💡 pLDDT置信度解读:

  • 蓝色区域 (90-100):预测非常准确,可用于精细分析
  • 浅蓝/绿色 (70-90):整体结构正确,局部细节可能有偏差
  • 黄色/橙色 (50-70):结构可能正确,但侧链位置不可靠
  • 红色 (<50):无序区域或预测失败,不应作为分析依据
🔬 PDB Database - 实验解析结构

PDB数据库包含X射线、NMR、冷冻电镜等方法解析的实验结构,是验证预测结构的金标准。

# 调用 PDB Database 技能
# scientific-skills:pdb-database

# 搜索PDB中的实验结构
pdb_search(
  protein_name = "EGFR",
  organism = "Homo sapiens",
  method = "X-RAY", # 或 "NMR", "ELECTRON MICROSCOPY"
  min_resolution = 2.5, # 分辨率阈值(Å)
  max_results = 10
)

# 返回结果示例:
# PDB ID  Method   Resolution Chains Title
# 6M2J   X-RAY   1.90Å    A    EGFR...
# 6S9B   X-RAY   2.05Å    A    EGFR...
# 5WB7   X-RAY   2.20Å    A    EGFR...

# 获取PDB结构
pdb_structure = pdb_get(
  pdb_id = "6M2J",
  include_ligands = True, # 包含配体
  include_water = False # 不包含水分子
)

# 结构叠合(AlphaFold vs PDB)
align_structures(
  structure1 = af_structure,
  structure2 = pdb_structure,
  method = "TM-align"
)

# 返回RMSD和TM-score
# RMSD: 0.85Å (非常接近)
# TM-score: 0.96 (结构高度一致)

📖 实战示例:EGFR结构与耐药突变分析

以下是完整的EGFR蛋白3D结构获取和分析流程,从序列查询到耐药突变可视化:

1 UniProt查询蛋白信息

从UniProt获取EGFR的基本信息和序列:

# Step 1: UniProt查询
egfr_info = uniprot_query(
  query = "EGFR_HUMAN",
  fields = ["sequence", "domains", "ptm", "variants"]
)

# 获取关键信息
print(f"序列长度: {egfr_info['length']} aa")
print(f"分子量: {egfr_info['mass']} Da")

# 功能域信息
for domain in egfr_info['domains']:
  print(f"{domain['name']}: {domain['start']}-{domain['end']}")

# 示例输出:
# 序列长度: 1210 aa
# 分子量: 134336 Da
#
# 功能域:
# Receptor L domain: 1-165
# Receptor L domain: 186-338
# Receptor L domain: 361-480
# Transmembrane: 645-667
# Protein kinase: 672-976

# 耐药突变位点
resistance_mutations = egfr_info['variants'][
  egfr_info['variants']['disease'] == '"Lung cancer"
]
print("耐药突变:")
for mut in resistance_mutations:
  print(f" {mut['position']}: {mut['wild_type']}→{mut['mutation']} ({mut['description']})")
2 获取AlphaFold预测结构

从AlphaFold DB获取EGFR的预测结构:

# Step 2: 获取AlphaFold结构
af_structure = alphafold_get(
  protein_id = "EGFR_HUMAN",
  output_format = "pdb"
)

# 检查置信度分布
plddt_stats = calculate_plddt_stats(af_structure)
print(plddt_stats)

# 示例输出:
# 平均pLDDT: 92.3
# 高置信度区域(>90): 89.2%
# 良好置信度区域(70-90): 8.5%
# 低置信度区域(<70): 2.3%
#
# 低置信度区域主要是:
# - 胞外区部分柔性环
# - C端无序区域

# 生成pLDDT着色结构图
visualize_structure(
  af_structure,
  color_by = "plddt",
  representation = "cartoon",
  orientation = "biological_assembly"
)
3 对比PDB实验结构

与PDB中的实验结构进行对比验证:

# Step 3: 对比PDB结构
# 搜索EGFR的PDB结构
pdb_results = pdb_search(
  protein_name = "EGFR",
  organism = "Homo sapiens",
  method = "X-RAY",
  min_resolution = 2.5
)

# 选择最佳分辨率的结构
best_pdb = pdb_results[0] # 6M2J, 1.90Å
pdb_structure = pdb_get(best_pdb['id'])

# 结构叠合
alignment = align_structures(
  af_structure,
  pdb_structure,
  chain1 = "A",
  chain2 = "A"
)

print(f"RMSD: {alignment['rmsd']:.2f}Å")
print(f"TM-score: {alignment['tm_score']:.3f}")

# 示例输出:
# RMSD: 0.85Å
# TM-score: 0.96
#
# 结论:AlphaFold预测与实验结构高度一致

# 生成叠合对比图
plot_alignment(
  af_structure,
  pdb_structure,
  color1 = "blue", # AlphaFold
  color2 = "red",  # PDB
  show_rmsd = True
)
4 耐药突变位点可视化

在3D结构上标注关键耐药突变位点:

# Step 4: 突变位点可视化
# 定义关键突变位点
resistance_sites = {
  'T790M': {'type': 'gatekeeper', 'description': '一代TKI耐药'},
  'C797S': {'type': 'covalent', 'description': '三代TKI耐药'},
  'L858R': {'type': 'activating', 'description': '敏感突变'},
  'L718Q': {'type': 'steric', 'description': '二代TKI耐药'}
}

# 在结构上标注突变位点
visualize_mutations(
  structure = af_structure,
  mutations = resistance_sites,
  highlight_color = 'red',
  show_domain_boundaries = True,
  show_atp_binding_site = True
)

# 分析突变对ATP结合袋的影响
atp_pocket_analysis = analyze_pocket(
  structure = af_structure,
  pocket_center = 'ATP-binding',
  mutations = ['T790M', 'C797S']
)

# 示例输出:
# T790M突变:
# - 位置:ATP结合袋入口
# - 影响:增加空间位阻,阻止一代TKI结合
# - pLDDT:96.2(高置信度)
#
# C797S突变:
# - 位置:共价结合位点
# - 影响:失去半胱氨酸,三代TKI无法共价结合
# - pLDDT:94.8(高置信度)
5 生成发表级结构图

生成高质量的结构图用于论文发表:

# Step 5: 生成发表级图片
generate_publication_figure(
  structure = af_structure,
  panels = {
    'A': {
      'type': 'overview',
      'description': 'EGFR全长结构',
      'color_by': 'domains',
      'orientation': 'side_view'
    },
    'B': {
      'type': 'kinase_domain',
      'description': '激酶域详细结构',
      'color_by': 'secondary_structure',
      'show_atp': True
    },
    'C': {
      'type': 'mutations',
      'description': '耐药突变位点',
      'highlight': ['T790M', 'C797S', 'L858R'],
      'labels': True
    },
    'D': {
      'type': 'surface',
      'description': 'ATP结合袋表面图',
      'color_by': 'electrostatic',
      'show_mutations': True
    }
  },
  output_format = 'pdf',
  dpi = 300,
  width = 8, # 英寸
  height = 6
)

# 同时导出交互式HTML(用于补充材料)
export_interactive_html(
  structure = af_structure,
  mutations = resistance_sites,
  filename = 'EGFR_mutations.html'
)

🧯 最容易高估结构图含义的 4 种场景

图好看就当机制已证实

漂亮的 ribbon 图只能说明“模型可视化得不错”,不能直接替代功能实验、结合实验或突变验证。

低分区硬讲细节

对 pLDDT 很低的 loop、尾部或 linker 区做精细位点解释,通常是结构解读里最常见的过度推断。

拿单体解释复合物

单体模型无法自动告诉你蛋白-蛋白、蛋白-配体或膜环境下的真实构象,尤其不能替代复合物证据。

忽略生物学上下文

翻译后修饰、剪接亚型、细胞定位和构象转换都会影响解释;离开这些背景,结构结论很容易被高估。

⚠️ 注意事项

置信度评估

AlphaFold预测的准确性用pLDDT评分衡量。对于关键区域(如结合位点),建议pLDDT > 90。低置信度区域(pLDDT < 70)的结论需谨慎。

复合物结构局限

AlphaFold主要预测单体蛋白结构。对于蛋白质-蛋白质、蛋白质-配体复合物,建议使用专门的复合物预测工具或实验结构。

动态结构信息

AlphaFold预测的是静态结构。对于了解蛋白质的构象变化和动态行为,建议结合分子动力学模拟或多个实验构象进行综合分析。

结构可视化工具

推荐使用PyMOL(专业)、ChimeraX(免费友好)或UCSF Chimera进行结构可视化和图片制作。AlphaFold网站也提供内置的3D查看器。

🔗 相关技能链接

📦

下载完整代码包

包含:原视频脚本、官网完整素材包、AlphaFold / UniProt / PDB 技能文档、API参考、Python客户端 · 24个文件 · 94KB

立即下载

💡 代码包内含 README.md 文档,包含环境配置和运行说明。解压后即可使用。