3. 多模态数据来源与获取

药物靶点预测的多模态建模,第一步不是搭模型,而是把“靶点”和“药物”这两类对象在多个模态上描述清楚。一个靶点蛋白,既可以用基因组位置和序列表示,也可以用表达谱、三维结构、互作网络和文献证据表示;一个小分子药物,既可以用 SMILES 表示,也可以用靶点活性数据、通路注释和文献共现表示。本节按模态梳理数据源、获取接口与工程化策略,重点说明“从哪里取、怎么取、取回来怎么对齐”。

一、六类模态的数据源与接口

基因组与变异数据。靶点的基因身份、染色体位置、外显子结构和人群变异,主要来自 Ensembl、NCBI Gene、UCSC 和 gnomAD。Ensembl REST 提供稳定的基因查询接口,例如按基因符号取 Ensembl ID 与坐标:

GET https://rest.ensembl.org/lookup/symbol/homo_sapiens/EGFR?expand=1
Accept: application/json
# 返回 id=ENSG00000146648, seq_region_name=7, start/end, biotype=protein_coding

变异数据可用 Ensembl VEP 或 gnomAD GraphQL 获取,用于判断靶点是否位于高频功能变异区。工程上建议以 Ensembl ID 作为跨库主键,基因符号只作检索别名,因为符号会随注释版本变化。

转录组与表达数据。组织特异性表达是靶点可成药性和安全性的重要证据。GTEx 提供正常组织表达,TCGA、CCLE 提供肿瘤与细胞系表达,ArrayExpress/GEO 提供原始实验数据。GTEx 门户支持按基因下载中位 TPM:

GET https://gtexportal.org/api/v2/expression/medianGeneExpression
    ?gencodeId=ENSG00000146648.15&datasetId=gtex_v8
# 返回各组织 median TPM,可用于计算组织特异性指数 tau

若需批量获取,优先下载 GTEx 的 gene_median_tpm.gct.gz 全量文件,本地建 SQLite 或 Parquet 索引,比逐基因请求 API 更稳定。

蛋白质结构与序列。序列来自 UniProt,结构来自 PDB 与 AlphaFold DB。UniProt 提供 ID 映射与注释,PDB 提供实验结构,AlphaFold DB 提供覆盖度更高的预测结构。获取 AlphaFold 模型只需按 UniProt 登录号拼接:

https://alphafold.ebi.ac.uk/files/AF-P00533-F1-model_v4.pdb
# P00533 为 EGFR 的 UniProt 登录号

结构模态的关键不是“有没有结构”,而是“结构覆盖了哪些残基”。建模前应记录 PDB 覆盖区间、缺失环区和配体结合口袋残基,避免把无结构区域当作有效特征。

化学结构与活性数据。小分子的规范表示是 SMILES 或 InChI,来源包括 ChEMBL、PubChem、DrugBank。ChEMBL 提供靶点—化合物活性数据,可按靶点 ChEMBL ID 拉取 IC50、Ki、Kd:

GET https://www.ebi.ac.uk/chembl/api/data/activity.json
    ?target_chembl_id=CHEMBL203&standard_type=IC50&limit=1000
# 返回 molecule_chembl_id, canonical_smiles, standard_value, standard_units

活性数据必须做单位统一和阈值判定。常用做法是:IC50/Ki/Kd ≤ 1 μM 记为正样本,≥ 10 μM 记为负样本,中间区间丢弃或作为不确定样本,避免标签噪声。

生物医学文献。PubMed 是文献主库,E-utilities 提供检索与摘要获取。检索“靶点—疾病—药物”共现证据时,可用 esearch 加 efetch:

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
    ?db=pubmed&term=EGFR+AND+lung+adenocarcinoma+AND+inhibitor
    &retmax=200&retmode=json
# 再用 efetch 取摘要,做实体识别与关系抽取

文献模态的价值在于补充结构化数据库缺失的间接证据,但需注意:共现不等于因果关系,抽取结果应保留证据句和 PMID,便于回溯。

知识图谱。Open Targets、STRING、Reactome、DisGeNET 提供靶点—疾病—通路—药物的关联。Open Targets Platform GraphQL 可按靶点取关联证据:

query {
  target(ensemblId: "ENSG00000146648") {
    approvedSymbol
    associatedDiseases(page: {index: 0, size: 25}) {
      rows { disease { name } score }
    }
  }
}

知识图谱适合作为关系模态输入,但不同来源的关联分数尺度不同,需归一化后再拼接。

二、API 与爬取策略

优先使用官方 API 或批量下载,只有在无接口且许可允许时才考虑爬取。工程上建议遵循四条原则:一是限速与重试,NCBI E-utilities 无 key 时限制 3 请求/秒,有 key 可到 10 请求/秒,应加指数退避;二是缓存原始响应,按“数据源/接口/参数哈希”落盘,避免重复请求;三是版本快照,记录下载日期与数据库版本,保证结果可复现;四是主键映射,统一到 Ensembl ID、UniProt AC、ChEMBL ID 三套主键,并保存映射表。

批量任务建议先小样本验证字段完整性,再全量拉取。例如先取 20 个靶点,检查 SMILES 缺失率、活性单位分布和结构覆盖区间,确认无误后再扩展到全库。

三、多模态对齐与缺失处理

六类模态的覆盖度差异很大:基因组和序列几乎全覆盖,结构和活性数据覆盖有限,文献和知识图谱则稀疏且噪声高。对齐时以“靶点—药物”对为基本单元,每个模态生成一个特征块,缺失模态用掩码标记而非填零,让模型学习缺失模式。对于同一靶点存在多个结构的情况,可按分辨率或覆盖度选主结构,其余作为增强样本。

多模态数据源 → 获取方式 → 对齐单元 基因组 / 变异 Ensembl · gnomAD 转录组 / 表达 GTEx · TCGA · GEO 蛋白质序列 / 结构 UniProt · PDB · AlphaFold 化学结构 / 活性 ChEMBL · PubChem 生物医学文献 PubMed E-utilities 知识图谱 Open Targets · STRING REST /lookup/symbol VEP · GraphQL GTEx API / 全量 GCT 本地 Parquet 索引 UniProt 映射 + PDB 下载 AlphaFold 按 AC 拼接 ChEMBL activity.json 单位统一 + 阈值判定 esearch + efetch 实体识别 / 关系抽取 GraphQL 关联查询 分数归一化 对齐单元:靶点—药物对 主键:Ensembl ID · UniProt AC · ChEMBL ID 特征块:序列 / 结构 / 表达 / 活性 / 文献 / 图谱 缺失模态:掩码标记,不填零 版本快照:下载日期 + 数据库版本 证据回溯:PMID / 结构覆盖区间 限速重试 · 原始响应缓存 · 主键映射表 · 小样本验证后再全量拉取

实际工程中,建议把上述流程固化为一个可复现的采集脚本:每个数据源一个适配器,输出统一的“靶点—药物—模态—特征—来源—版本”长表,再按建模需要透视成宽表。这样既保留了证据来源,也方便后续做消融实验,判断哪类模态真正提升了靶点预测效果。