本文へ移動
cccskills
無料GitHub で公開

open-targets

Query the Open Targets Platform GraphQL API for target-disease associations, genetic and clinical evidence, tractability and safety liabilities, target prioritisation metrics, known drugs and mechanisms of action, and disease ontology. Use this skill for target identification and validation, target-disease evidence review, druggability assessment, drug repurposing, and resolving gene, disease, and drug names to Ensembl, MONDO, and ChEMBL identifiers. Also trigger when a query mentions Open Targets, platform.opentargets.org, association scores, tractability buckets, or api.platform.opentargets.org.

インストール方法を見る

含まれるファイル(7)

  • SKILL.md10.2 KB
  • references/datasources.md8.4 KB
  • references/graphql-schema.md8.7 KB
  • references/query-cookbook.md8.8 KB
  • scripts/_common.py7.2 KB
  • scripts/ot_associations.py15.9 KB
  • scripts/ot_query.py20.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Open Targets Platform

Open Targets aggregates genetic, somatic, clinical, pathway, expression, animal-model, and literature evidence into scored target–disease associations, and attaches druggability and safety annotation to every target. It answers the question that comes before any modelling work: is this target worth working on for this disease, and what is already known about it?

Endpoint: https://api.platform.opentargets.org/api/v4/graphql — POST, JSON, no key. Docs: platform-docs.opentargets.org · playground Checked against: the live API, August 2026 — meta reports API 26.6.3, data release 26.06.

Read references/graphql-schema.md before writing a query by hand, references/datasources.md before interpreting or filtering a score, and references/query-cookbook.md for tested documents to adapt.

Start here: three identifier rules

Everything else fails downstream of getting these wrong.

  1. Targets are Ensembl gene ids (ENSG00000146648) — never symbols, UniProt accessions, or transcript ids.
  2. Diseases are MONDO ids (MONDO_0005233) in almost all cases, even though the argument is still named efoId. Most EFO_* ids from older tutorials now return null silently. A few nodes legitimately keep EFO_, HP_, or OTAR_ ids, so you cannot rewrite the prefix — resolve the name and use what comes back.
  3. Drugs are ChEMBL molecule ids (CHEMBL939).

Always resolve first:

python skills/open-targets/scripts/ot_query.py resolve EGFR "non-small cell lung carcinoma" gefitinib
term                             id                name                           entity  score
EGFR                             ENSG00000146648   EGFR                           target  1
non-small cell lung carcinoma    MONDO_0005233     non-small cell lung carcinoma  disease 1
gefitinib                        CHEMBL2087361     ICOTINIB                       drug    1
gefitinib                        CHEMBL553         ERLOTINIB                      drug    1
gefitinib                        CHEMBL939         GEFITINIB                      drug    1

resolve uses mapIds (exact-ish); use search when the input is partial or misspelled. Hits come back unsorted by score, so read the names rather than taking the first row. Note the drug rows above: one term returned three molecules, all scored 1, with the one actually asked for last. Taking [0] here silently hands the rest of the analysis a different drug.

Workflow

  1. Resolve every name to a canonical id and report what matched.
  2. Pull the target dossier — tractability, safety, prioritisation, essentiality — before looking at associations. A target that is untractable or pan-essential ends the conversation early.
  3. Pull associations, and immediately ask which datatype carries the score. An association driven only by literature is a very different claim from one driven by genetic_association.
  4. Drop to individual evidence records for anything you intend to act on.
  5. State the release (26.06) and whether enableIndirect was on with any number you report.

Target dossier

python skills/open-targets/scripts/ot_query.py target ENSG00000146648            # everything
python skills/open-targets/scripts/ot_query.py target ENSG00000146648 --section tractability

Sections: core, tractability, safety, prioritisation, essentiality, probes, pathways, all. Add --format json for the raw records.

## TRACTABILITY
modality  label                  value
SM        Approved Drug          true
SM        Structure with Ligand  true
SM        High-Quality Pocket    true
AB        UniProt loc high conf  true

Reading these:

  • Tractability is a ladder, not a score. High-Quality Pocket without Structure with Ligand means a pocket was predicted. AB buckets mostly assert the target is cell-surface or secreted — reachable, not that a useful antibody exists.
  • Prioritisation values run −1 to +1, where +1 favours the target. hasSafetyEvent and geneEssentiality are already signed so that bad news is negative; do not re-negate them.
  • DepMap gene effect is Chronos: ≤ −1 is a strong dependency, ≈ 0 is nothing. Essential everywhere is a toxicity flag. The depmap skill has the full cell-line matrix.
  • Safety liabilities carry a direction. An event reported for inhibition does not apply to an agonist programme.

Associations

# diseases for a target, with the per-datatype breakdown
python skills/open-targets/scripts/ot_associations.py target-diseases ENSG00000146648 --limit 25

# targets for a disease, tractability-annotated
python skills/open-targets/scripts/ot_associations.py disease-targets MONDO_0004979 \
    --limit 100 --min-score 0.4

# what does the human genetics alone say?
python skills/open-targets/scripts/ot_associations.py target-diseases ENSG00000146648 \
    --only-datasources gwas_credible_sets gene_burden eva --limit 25

Paging, the datatype flattening, and the datasource-weighting arithmetic are handled for you. --indirect propagates evidence from ontology descendants and inflates counts substantially.

What the score is: a harmonic-sum aggregate in [0, 1]. Not a probability, not calibrated across releases, only comparable within one result set. It is evidence-weighted rather than literature-normalised, so well-studied targets score high partly because they are well studied. A zero means "no evidence indexed here", never "evidence of no association".

Restricting to some datasources is a weighting operation, not a filter. Passing a settings array resets the Platform's default weights, so keeping three sources means explicitly zeroing all the others — get that wrong by hand and scores go up while looking restricted. Two ids were renamed and silently match nothing under their old names: chembl → clinical_precedence, ot_genetics_portal → gwas_credible_sets. Likewise the datatype known_drug → clinical.

Evidence records

python skills/open-targets/scripts/ot_associations.py evidence ENSG00000146648 MONDO_0005233 \
    --datasources clinical_precedence --limit 50
datasourceId         datatypeId  score  drug         clinicalStage  literature
clinical_precedence  clinical    1      OSIMERTINIB  PHASE_4        35343187
eva                  genetic_association  0.92                      rs121913465

evidences is cursor-paginated, unlike everything else in the schema — the script follows the cursor for you. Each row keeps its source's own fields, so a ClinVar row has variantRsId and clinicalSignificances while a drug row has drug and clinicalStage.

Disease and drug records

python skills/open-targets/scripts/ot_query.py disease MONDO_0005233
python skills/open-targets/scripts/ot_query.py drug CHEMBL939 --section mechanisms

Disease output includes parents, children, and phenotypes — useful for deciding whether to query a specific subtype or its parent. Drug output covers mechanism of action with resolved target ids, indications by phase, and black-box warnings.

There is no isApproved field: approval is maximumClinicalStage == "APPROVAL". The stage vocabulary is words (APPROVAL, PHASE_3, PHASE_1_2, PRECLINICAL), so map to ChEMBL's numeric max_phase deliberately rather than string-matching.

Arbitrary queries

For anything the subcommands do not cover, write the GraphQL document and run it:

python skills/open-targets/scripts/ot_query.py raw dossier.graphql --var id=ENSG00000146648

Two failure modes to expect. GraphQL answers HTTP 200 with an errors array for a bad field or a missing sub-selection, so a client that only checks the status code reports success on a typo — the bundled client raises instead. And the plural root fields (targets, diseases, drugs) exist so you can batch: one request for 200 ids rather than 200 requests.

Composing with the rest of the bundle

  • depmap — full DepMap cell-line dependency matrix behind the depMapEssentiality roll-up.
  • chembl — measured bioactivity for the compounds Open Targets names as known drugs.
  • uniprot-rcsb — turn proteinIds into sequences and structures for modelling.
  • primekg / ncats-arax — mechanistic paths and provenance for an association worth chasing.
  • target-safety — gnomAD constraint, which this API does not carry: whether healthy humans who have lost the protein actually exist.
  • clinicaltrials — whether anyone has taken the genetic hypothesis into a trial.

Scope and honesty

Open Targets is an evidence aggregator, not an oracle. It reflects what has been published and indexed, so it under-represents novel biology and over-represents fashionable targets. Report scores with their release and their datatype breakdown, never as a probability of success, and verify anything decision-relevant against the primary source the evidence record names.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

adaptyv

無料

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

Turn a set of structures into absorption, distribution, metabolism, excretion, and toxicity estimates with ADMET-AI, and read them as a developability verdict rather than a table of numbers. Use this skill to run batch prediction over a library, interpret each endpoint against its DrugBank-approved percentile, and flag the liabilities that stop a series — hERG blockade, CYP inhibition, poor Caco-2 permeability, high clearance, and plasma protein binding. Also trigger on ADMET-AI, admet_ai, Chemprop-RDKit, hERG liability, CYP3A4 inhibition, Caco-2, bioavailability prediction, or developability triage.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

Number antibody variable domains, annotate CDRs, and assess developability from sequence. Use this skill to apply IMGT, Kabat, Chothia, Martin, or AHo numbering with ANARCI, delimit CDRs and framework regions, scan for chemical liabilities (N-glycosylation sequons, deamidation NG, isomerisation DG, oxidation, unpaired cysteine, fragmentation), compute pI, net charge, extinction coefficient and hydrophobicity, and plan humanisation by CDR grafting. Also trigger on antibody, nanobody, VHH, scFv, Fab, CDR, framework, ANARCI, abnumber, IgBLAST, OAS, SAbDab, humanization, Vernier residues, or developability.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

Structure-based docking with AutoDock Vina, Vinardo, and AutoDock4 through the Meeko toolchain. Use this skill to define a docking box, prepare receptors and ligands as PDBQT, run single or batch docking, rescore, and interpret affinities, poses, and ligand efficiency. Covers box definition from a reference ligand or pocket residues, protonation and tautomer decisions, flexible side chains, exhaustiveness and seeds, redocking validation, and virtual screening over compound libraries. Also trigger on vina, smina, gnina, mk_prepare_ligand, mk_prepare_receptor, mk_export, scrub.py, PDBQT, autogrid4, docking box, or binding-pose prediction.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

Decide whether a protein has a pocket worth targeting, and where it is, before committing to a docking or design campaign. Use this skill to run fpocket cavity detection, rank cavities by druggability and volume, compare apo and holo conformations to spot induced fit, identify allosteric and cryptic cavities that only open in simulation, and convert a chosen cavity into the search box coordinates a docking run needs. Also trigger on fpocket, cavity detection, druggability score, alpha sphere, cryptic pocket, allosteric site, pocket volume, hotspot mapping, or undruggable target assessment.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

boltz

無料

Cofold protein-ligand, protein-protein, and nucleic-acid complexes with Boltz-2, and predict binding affinity with its trained affinity head. Use this skill to build Boltz input YAML, run structure prediction with MSAs, pocket constraints, templates, and modified residues, screen compound libraries by cofolding, and interpret confidence scores (pLDDT, pTM, ipTM, PDE) and affinity output (binder probability and log10 IC50). Also trigger on Boltz, Boltz-1, Boltz-2, cofolding, boltz predict, affinity_pred_value, affinity_probability_binary, ipTM, or open-weights AlphaFold3 alternatives.

日本語の概要は準備中です。原文の説明を表示しています。

K-Dense-AI/drug-discovery-agent-skills362026年10月12日 更新

K-Dense-AI のスキルをすべて見る

このスキルの問題を報告する