关于 alterlab-opentargets
alterlab-opentargets 是查询 Open Targets Platform GraphQL API 的技能;该平台整合公开的遗传学、组学、文献和化学数据。它面向评估靶点与疾病关联、靶点可成药性和安全性,以及药物研发证据的生物医学研究者。
主要功能
- 01搜索靶点、疾病和药物
- 02获取靶点注释与可成药性信息
- 03按数据类型查看靶点-疾病证据
- 04查找疾病相关药物及临床阶段
- 05按证据评分排列靶点关联
适用场景
- 01为某种疾病寻找候选靶点
- 02评估基因的可成药性与安全性
- 03审查靶点-疾病关联的支持证据
- 04探索可用于药物再定位的现有药物
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-opentargets安装后在 Claude Code 中输入/alterlab-opentargets确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonreferences/api_reference.mdevidence_types.mdtarget_annotations.mdscripts/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
主要证据类型:
- genetic_association: GWAS、罕见变异、ClinVar、基因负担
- somatic_mutation: Cancer Gene Census、IntOGen、癌症生物标志物
- known_drug: 已获批药物或临床药物提供的临床先例
- affected_pathway: CRISPR 筛选、通路分析、基因特征
- rna_expression: Expression Atlas 中的差异表达
- animal_model: IMPC 中的小鼠表型
- 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 使用最佳实践
最佳实践
靶点优先级排序策略
确定药物靶点的优先级时:
- 从遗传证据入手: 人类遗传学(GWAS、罕见变异)能提供最强的疾病相关性
- 检查成药性: 优先考虑已有临床或发现先例的靶点
- 评估安全性: 查看安全性风险、表达模式和遗传约束
- 评估临床先例: 已知药物表明靶点具有成药性和治疗窗口
- 考虑多种证据类型: 来自不同来源的趋同证据可提高可信度
- 进行机制验证: 检查通路证据和生物学合理性
- 人工审阅文献: 对于关键决策,请查阅原始研究论文
证据解读
强证据指标:
- 多个相互独立的证据来源
- 高遗传关联分数(尤其是 L2G > 0.5 的 GWAS)
- 已获批药物提供的临床先例
- 与疾病相符的 ClinVar 致病变异
- 表型相关的小鼠模型
需谨慎的情况:
- 只有单一证据来源
- 仅有文本挖掘证据(需人工验证)
- 不同来源的证据相互矛盾
- 高必需性 + 普遍表达(治疗窗口不佳)
- 存在多项安全性风险
分数解读:
- 分数用于衡量相对强度,而非绝对置信度
- 研究较少的疾病即使可能存在有效靶点,分数也较低
- 对专家整理的来源赋予高于计算预测的权重
- 检查证据明细,而不只是总体分数
常见工作流
工作流 1:疾病靶点发现
- 搜索疾病 → 获取 EFO ID
- 查询疾病信息,设置
include_targets=True - 按关联评分排序,查看排名靠前的靶点
- 对有潜力的靶点,获取详细信息
- 查看支持各项关联的证据类型
- 评估优先靶点的可成药性和安全性
工作流 2:靶点验证
- 搜索靶点 → 获取 Ensembl ID
- 获取全面的靶点信息
- 检查可成药性(尤其是临床先例)
- 查看安全性风险和遗传约束
- 查看疾病关联以了解其生物学特征
- 查找化学探针或工具化合物
- 查看靶向该基因的已知药物,了解其作用机制
工作流 3:药物再利用
- 搜索疾病 → 获取 EFO ID
- 获取该疾病的已知药物
- 对每种药物,获取详细信息
- 查看作用机制和靶点
- 查找相关疾病适应症
- 评估临床试验阶段和状态
- 根据作用机制识别再利用机会
工作流 4:竞争情报
- 搜索关注的靶点
- 获取有关联且有证据支持的疾病
- 对每种疾病,获取已知药物
- 查看临床阶段和开发状态
- 识别竞争对手及其作用机制
- 评估临床先例和市场格局
资源
脚本
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。
限制与注意事项
- API 用于探索性查询: 对多个靶点或疾病进行系统分析时,请使用数据下载或 BigQuery
- 评分是相对值,而非绝对值: 关联评分用于衡量证据强度,但无法预测临床成功率
- 研究不足的疾病评分较低: 新发现或罕见疾病可能有强有力的证据,但综合评分较低
- 证据质量不一: 相较于计算预测,应优先考虑专家整理的来源
- 需要进行生物学解读: 必须结合生物学和临床背景解读评分与证据
- 无需身份验证: 所有数据均可免费访问,但请正确引用