mcpField
A
alterlab-opentargets

alterlab-opentargets

github.com/alterlab-ieu数据与数据库7866 次安装5 周前更新
代码仓库

关于 alterlab-opentargets

alterlab-opentargets 是查询 Open Targets Platform GraphQL API 的技能;该平台整合公开的遗传学、组学、文献和化学数据。它面向评估靶点与疾病关联、靶点可成药性和安全性,以及药物研发证据的生物医学研究者。

主要功能

  1. 01搜索靶点、疾病和药物
  2. 02获取靶点注释与可成药性信息
  3. 03按数据类型查看靶点-疾病证据
  4. 04查找疾病相关药物及临床阶段
  5. 05按证据评分排列靶点关联

适用场景

  1. 01为某种疾病寻找候选靶点
  2. 02评估基因的可成药性与安全性
  3. 03审查靶点-疾病关联的支持证据
  4. 04探索可用于药物再定位的现有药物

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-opentargets

安装后在 Claude Code 中输入/alterlab-opentargets确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
api_reference.md
evidence_types.md
target_annotations.md
scripts/
query_opentargets.py

详细介绍

Open Targets 数据库

概述

Open Targets Platform 是一项综合资源,用于系统性识别和优先排序潜在的治疗药物靶点。它整合了公开可用的数据集,包括人类遗传学、组学、文献和化学数据,用于构建并评估靶点与疾病之间的关联。

主要功能:

  • 查询靶点(基因)注释,包括可成药性、安全性和表达情况
  • 搜索具有证据评分的疾病-靶点关联
  • 从多种数据类型(遗传学、通路、文献等)中检索证据
  • 查找疾病的已知药物及其作用机制
  • 获取药物信息,包括临床试验阶段和不良事件
  • 评估靶点的成药性和治疗潜力

**数据访问:**该平台提供 GraphQL API、Web 界面、数据下载和 Google BigQuery 访问。本技能侧重于通过 GraphQL API 以编程方式访问数据。

何时使用此技能

在以下情况下应使用此技能:

  • **发现靶点:**为某种疾病寻找潜在的治疗靶点
  • **评估靶点:**评估基因的可成药性、安全性和成药潜力
  • **收集证据:**检索支持靶点-疾病关联的证据
  • **药物再利用:**识别可用于新适应症的现有药物
  • **竞争情报:**了解临床先例和药物开发格局
  • **靶点优先级排序:**根据遗传学证据和其他数据类型对靶点进行排序
  • **作用机制研究:**研究生物通路和基因功能
  • **生物标志物发现:**寻找在疾病中差异表达的基因
  • **安全性评估:**识别药物靶点可能存在的毒性问题
不适用的情况
场景请改用
原始的人工整理 SNP-性状关联或 GWAS 研究元数据alterlab-gwas
化合物生物活性(IC50/Ki)和测定数据alterlab-chembl
药物药理学、相互作用、剂量和标签详情alterlab-drugbank
搜索试验注册信息(状态、资格条件、终点)alterlab-clinicaltrials
CRISPR/RNAi 癌症细胞系依赖性评分alterlab-depmap

核心工作流

1. 搜索实体

首先查找目标、疾病或药物对应的标识符。

对于靶点(基因):

from scripts.query_opentargets import search_entities

# Search by gene symbol or name
results = search_entities("BRCA1", entity_types=["target"])
# Returns: [{"id": "ENSG00000012048", "name": "BRCA1", ...}]

对于疾病:

# Search by disease name
results = search_entities("alzheimer", entity_types=["disease"])
# Returns: [{"id": "MONDO_0004975", "name": "Alzheimer disease", ...}]

请始终通过搜索解析 ID,而不要将其硬编码 — Open Targets 已将许多疾病的 ID 从 EFO 迁移到 MONDO(例如,阿尔茨海默病现在的 ID 是 MONDO_0004975,而不是较早的 EFO_0000249)。

对于药物:

# Search by drug name
results = search_entities("aspirin", entity_types=["drug"])
# Returns: [{"id": "CHEMBL25", "name": "ASPIRIN", ...}]

使用的标识符:

  • 靶点:Ensembl 基因 ID(例如,ENSG00000157764 = BRAF,ENSG00000012048 = BRCA1)
  • 疾病:本体 ID — EFO、MONDO(现已普遍使用)、HP、Orphanet(例如,MONDO_0004975 = 阿尔茨海默病)。disease(efoId:) 参数接受上述任意一种 ID。
  • 药物:ChEMBL ID(例如,CHEMBL25 = 阿司匹林)
2. 查询靶点信息

检索全面的靶点注释,以评估其成药性和生物学特征。

from scripts.query_opentargets import get_target_info

target_info = get_target_info("ENSG00000157764", include_diseases=True)

# Access key fields:
# - approvedSymbol: HGNC gene symbol
# - approvedName: Full gene name
# - tractability: Druggability assessments across modalities
# - safetyLiabilities: Known safety concerns
# - geneticConstraint: Constraint scores from gnomAD
# - associatedDiseases: Top disease associations with scores

需查看的主要注释:

  • **可成药性:**小分子、抗体、PROTAC 的成药性预测
  • **安全性:**多个数据库中记录的已知毒性问题
  • **遗传约束:**反映必需性的 pLI 和 LOEUF 评分
  • **疾病关联:**与该靶点相关且具有证据评分的疾病

有关所有靶点特征的详细信息,请参阅 references/target_annotations.md。

3. 查询疾病信息

获取疾病详情以及相关靶点和药物。

from scripts.query_opentargets import get_disease_info

disease_info = get_disease_info("MONDO_0004975", include_targets=True)

# Access fields:
# - name: Disease name
# - description: Disease description
# - therapeuticAreas: High-level disease categories
# - associatedTargets: Top targets with association scores
4. 获取靶点-疾病证据

获取支持靶点-疾病关联的详细证据。

from scripts.query_opentargets import get_target_disease_evidence

# Get all evidence
evidence = get_target_disease_evidence(
    ensembl_id="ENSG00000157764",
    efo_id="MONDO_0004975"
)

# The API filters by data SOURCE, not broad data type. To narrow to genetic
# evidence, pass its sources (or fetch all rows and filter on datatypeId).
genetic_evidence = get_target_disease_evidence(
    ensembl_id="ENSG00000157764",
    efo_id="MONDO_0004975",
    datasource_ids=["gwas_catalog", "clinvar", "gene_burden"]
)

# Each evidence record contains:
# - datasourceId: Specific data source (e.g., "gwas_catalog", "chembl")
# - datatypeId: Evidence category (e.g., "genetic_association", "known_drug")
# - score: Evidence strength (0-1)
# - studyId: Original study identifier
# - literature: Associated publications

主要证据类型:

  1. genetic_association: GWAS、罕见变异、ClinVar、基因负担
  2. somatic_mutation: Cancer Gene Census、IntOGen、癌症生物标志物
  3. known_drug: 已获批药物或临床药物提供的临床先例
  4. affected_pathway: CRISPR 筛选、通路分析、基因特征
  5. rna_expression: Expression Atlas 中的差异表达
  6. animal_model: IMPC 中的小鼠表型
  7. literature: Europe PMC 中的文本挖掘

有关所有证据类型及其解读指南的详细说明,请参阅 references/evidence_types.md。

5. 查找已知药物

识别用于治疗某种疾病的药物及其靶点。

from scripts.query_opentargets import get_known_drugs_for_disease

drugs = get_known_drugs_for_disease("MONDO_0004975")

# Helper queries the `drugAndClinicalCandidates` field (the former `knownDrugs`
# field was removed). It returns:
# - count: Total number of drug-indication records
# - rows: List of records, each with:
#   - maxClinicalStage: Max stage reached for this disease (enum string)
#   - drug: {id, name, drugType, maximumClinicalStage, mechanismsOfAction{rows{actionType, mechanismOfAction, targets}}}
#   - clinicalReports: [{trialPhase, clinicalStage, trialOverallStatus}]

临床阶段是枚举字符串(不是整数):

  • APPROVAL:已获批药物(原 Phase 4)
  • PHASE_3、PHASE_2_3:临床试验后期阶段
  • PHASE_2、PHASE_1_2:临床试验中期阶段
  • PHASE_1、EARLY_PHASE_1:早期安全性试验
  • IND、PRECLINICAL:临床前阶段 / 研究性新药
  • UNKNOWN:未记录阶段
6. 获取药物信息

获取包括作用机制和适应症在内的详细药物信息。

from scripts.query_opentargets import get_drug_info

drug_info = get_drug_info("CHEMBL25")

# Access:
# - name; synonyms: list of {label, source} objects (since release 26.06)
# - drugType: Small molecule, antibody, etc.
# - maximumClinicalStage: Development stage (enum string, e.g. "APPROVAL")
# - mechanismsOfAction.rows: Target(s) and action type
# - indications.rows: Diseases with maxClinicalStage per indication
# - drugWarnings: Toxicity/withdrawal warnings (toxicityClass, description, country, year)
7. 获取某个靶点的所有关联

查找与某个靶点相关的所有疾病,还可按分数筛选。

from scripts.query_opentargets import get_target_associations

# Get associations with score >= 0.5
associations = get_target_associations(
    ensembl_id="ENSG00000157764",
    min_score=0.5
)

# Each association contains:
# - disease: {id, name}
# - score: Overall association score (0-1)
# - datatypeScores: Breakdown by evidence type

关联分数:

  • 范围:0-1(越高 = 证据越强)
  • 使用调和和汇总所有数据类型的证据
  • 不是置信度分数,而是相对排序指标
  • 研究较少的疾病即使有良好证据,分数也可能较低

GraphQL API 详细信息

对于提供的辅助函数无法满足的自定义查询,请直接使用 GraphQL API,或修改 scripts/query_opentargets.py。

关键信息:

  • 端点: https://api.platform.opentargets.org/api/v4/graphql
  • 交互式浏览器: https://api.platform.opentargets.org/api/v4/graphql/browser
  • 无需身份验证
  • 仅请求所需字段,以尽量缩小响应体积
  • 对较大的结果集使用分页: page: {index: M, size: N} — index 和 size 都是必需项(不可为 null)

有关以下内容,请参阅 references/api_reference.md:

  • 完整的端点文档
  • 所有实体类型的查询示例
  • 错误处理模式
  • API 使用最佳实践

最佳实践

靶点优先级排序策略

确定药物靶点的优先级时:

  1. 从遗传证据入手: 人类遗传学(GWAS、罕见变异)能提供最强的疾病相关性
  2. 检查成药性: 优先考虑已有临床或发现先例的靶点
  3. 评估安全性: 查看安全性风险、表达模式和遗传约束
  4. 评估临床先例: 已知药物表明靶点具有成药性和治疗窗口
  5. 考虑多种证据类型: 来自不同来源的趋同证据可提高可信度
  6. 进行机制验证: 检查通路证据和生物学合理性
  7. 人工审阅文献: 对于关键决策,请查阅原始研究论文
证据解读

强证据指标:

  • 多个相互独立的证据来源
  • 高遗传关联分数(尤其是 L2G > 0.5 的 GWAS)
  • 已获批药物提供的临床先例
  • 与疾病相符的 ClinVar 致病变异
  • 表型相关的小鼠模型

需谨慎的情况:

  • 只有单一证据来源
  • 仅有文本挖掘证据(需人工验证)
  • 不同来源的证据相互矛盾
  • 高必需性 + 普遍表达(治疗窗口不佳)
  • 存在多项安全性风险

分数解读:

  • 分数用于衡量相对强度,而非绝对置信度
  • 研究较少的疾病即使可能存在有效靶点,分数也较低
  • 对专家整理的来源赋予高于计算预测的权重
  • 检查证据明细,而不只是总体分数
常见工作流

工作流 1:疾病靶点发现

  1. 搜索疾病 → 获取 EFO ID
  2. 查询疾病信息,设置 include_targets=True
  3. 按关联评分排序,查看排名靠前的靶点
  4. 对有潜力的靶点,获取详细信息
  5. 查看支持各项关联的证据类型
  6. 评估优先靶点的可成药性和安全性

工作流 2:靶点验证

  1. 搜索靶点 → 获取 Ensembl ID
  2. 获取全面的靶点信息
  3. 检查可成药性(尤其是临床先例)
  4. 查看安全性风险和遗传约束
  5. 查看疾病关联以了解其生物学特征
  6. 查找化学探针或工具化合物
  7. 查看靶向该基因的已知药物,了解其作用机制

工作流 3:药物再利用

  1. 搜索疾病 → 获取 EFO ID
  2. 获取该疾病的已知药物
  3. 对每种药物,获取详细信息
  4. 查看作用机制和靶点
  5. 查找相关疾病适应症
  6. 评估临床试验阶段和状态
  7. 根据作用机制识别再利用机会

工作流 4:竞争情报

  1. 搜索关注的靶点
  2. 获取有关联且有证据支持的疾病
  3. 对每种疾病,获取已知药物
  4. 查看临床阶段和开发状态
  5. 识别竞争对手及其作用机制
  6. 评估临床先例和市场格局

资源

脚本

scripts/query_opentargets.py 用于常见 API 操作的辅助函数:

  • search_entities() - 搜索靶点、疾病或药物
  • get_target_info() - 检索靶点注释
  • get_disease_info() - 检索疾病信息
  • get_target_disease_evidence() - 获取支持性证据
  • get_known_drugs_for_disease() - 查找治疗某种疾病的药物
  • get_drug_info() - 检索药物详情
  • get_target_associations() - 获取某个靶点的所有关联
  • execute_query() - 执行自定义 GraphQL 查询
参考资料

references/api_reference.md 完整的 GraphQL API 文档,包括:

  • 端点详情和身份验证
  • 可用的查询类型(靶点、疾病、药物、搜索)
  • 所有常见操作的查询示例
  • 错误处理和最佳实践
  • 数据许可和引用要求

references/evidence_types.md 证据类型和数据来源综合指南:

  • 全部 7 种主要证据类型的详细说明
  • 各数据来源的评分方法
  • 证据解读指南
  • 各种证据类型的优势和局限性
  • 质量评估建议

references/target_annotations.md 完整的靶点注释参考资料:

  • 对 12 个主要注释类别的说明
  • 可成药性评估详情
  • 安全性风险来源
  • 表达、必需性和约束数据
  • 靶点优先级排序的解读指南
  • 靶点评估中的警示信号和积极信号

数据更新和版本控制

Open Targets Platform 会定期更新,并发布新的数据版本。不同版本之间的 GraphQL 架构会发生变化——字段名和参数名可能变动(本技能的查询已针对数据版本 26.03 验证)。如果某个字段 报错,请通过 GraphQL 浏览器检查实时架构。使用 meta { apiVersion { x y z } dataVersion { year month } } 查询确认当前运行的 版本。

**版本发布信息:**查看 https://platform-docs.opentargets.org/release-notes,获取最新更新。

**引用:**使用 Open Targets 数据时,请引用: Ochoa, D. et al. (2025) Open Targets Platform: facilitating therapeutic hypotheses building in drug discovery. Nucleic Acids Research, 53(D1):D1467-D1477。

限制与注意事项

  1. API 用于探索性查询: 对多个靶点或疾病进行系统分析时,请使用数据下载或 BigQuery
  2. 评分是相对值,而非绝对值: 关联评分用于衡量证据强度,但无法预测临床成功率
  3. 研究不足的疾病评分较低: 新发现或罕见疾病可能有强有力的证据,但综合评分较低
  4. 证据质量不一: 相较于计算预测,应优先考虑专家整理的来源
  5. 需要进行生物学解读: 必须结合生物学和临床背景解读评分与证据
  6. 无需身份验证: 所有数据均可免费访问,但请正确引用

评论

支持 Markdown