Molecular targets
Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/molecular_targets
Query the NCI CCDI Molecular Targets Platform (pediatric oncology) for targets (genes), diseases, drugs, and target-disease associations via its public GraphQL API. Auto-detects entity type from input string.From its SKILL.md
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill molecular_targetsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.9 KB, 741 tokens by cl100k_base, as published. Nobody here has run it
Molecular Targets Platform Query Skill
Search the CCDI Molecular Targets Platform — an NCI-supported Open Targets instance focused on preclinical pediatric oncology data. Includes FDA Pediatric Molecular Target Lists and additional pediatric cancer datasets.
Entity Auto-Detection
| Input Pattern | Detected As | Query Used |
|---|---|---|
ENSG00000141510 | Target (Ensembl gene) | target(ensemblId) |
EFO_\d+, MONDO_\d+, Orphanet_\d+, HP_\d+, DOID_\d+ | Disease / Phenotype | disease(efoId) |
CHEMBL\d+ | Drug / molecule | drug(chemblId) |
| anything else | Free text | search(queryString) |
API
| Function | Input | Returns |
|---|---|---|
search(entity, size=10) | single entity string | dict (GraphQL data) or None |
search_batch(entities) | list of strings | dict[str, dict|None] — uses batch GraphQL where possible |
get_associations(entity, size=10) | Ensembl ID or EFO/MONDO ID | associated diseases (for target) or targets (for disease) |
summarize(data, entity) | result dict + label | compact LLM-readable text |
to_json(data) | result dict | list[dict] for pipeline output |
Helper
| Function | Purpose |
|---|---|
detect_entity_type(entity) | returns 'target', 'disease', 'drug', or 'search' |
Usage
See if __name__ == "__main__" block in 16_MolecularTargets.py for runnable
examples covering:
- Free-text search (
"neuroblastoma") - Target lookup by Ensembl ID (
"ENSG00000141510"→ TP53) - Disease lookup by ontology ID (
"MONDO_0005072") - Drug lookup by ChEMBL ID (
"CHEMBL941"→ imatinib) - Target → disease associations
- Disease → target associations
- Batch search (mixed entity types)
- JSON pipeline output
Data Source
- Platform: NCI CCDI Molecular Targets Platform
- URL: https://moleculartargets.ccdi.cancer.gov
- API endpoint:
https://moleculartargets.ccdi.cancer.gov/api/v4/graphql - Method: HTTP POST,
Content-Type: application/json, no auth required - Upstream schema: Open Targets Platform GraphQL v4
- Focus: Pediatric oncology — FDA Pediatric Molecular Target Lists, preclinical data
Notes
- The API is optimised for single-entity queries. For bulk analyses consider Open Targets data downloads.
- Batch functions (
search_batch) use the plural GraphQL fields (targets,diseases,drugs) to reduce round-trips where possible; free-text queries fall back to one-at-a-time. get_associations()returns scored target↔disease links ranked by overall evidence score (0–1). Usesizeto control how many rows are returned.- Returns
None/[]on HTTP errors — callers handle no-results gracefully.
What ships with it: 4 files
21.6 KB alongside SKILL.md, 4 of them executable
- example.pyruns13.8 KB
- __init__.pyruns171 B
- molecular_targets_skill.pyruns6.9 KB
- retrieve.pyruns794 B