第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亿+
可用结构数

💡 使用场景

🔬

药物靶点结构获取

获取药物靶点的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'
)

⚠️ 注意事项

置信度评估

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

复合物结构局限

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

动态结构信息

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

结构可视化工具

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

🔗 相关技能链接

📦

下载完整代码包

包含:技能文档、API参考、Python客户端、视频脚本 · 23个文件 · 48KB

立即下载

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