"Use gget for gene-set enrichment, cancer cohort exploration, local
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill disease-structure --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Disease Structure?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-disease-structure)More formats (shields.io, HTML) on the badges page.
---
name: disease-structure
description: "Use gget for gene-set enrichment, cancer cohort exploration, local
COSMIC queries, Open Targets target annotations, and G2P residue/isoform maps;
choose identifiers, filters, plots, files, and service/licensing boundaries
safely."
disable-model-invocation: true
metadata:
disco-role: operating
license: BSD 2-Clause
---
# Disease and structure annotations
Use this sub-skill when the task needs disease, cancer, enrichment, target,
residue, isoform, or protein-to-structure annotations from gget. It covers
`gget.enrichr`, `gget.cbio_search`, `gget.cbio_plot`, `gget.cosmic`,
`gget.opentargets`, and `gget.g2p`. These functions are wrappers around public
remote services or user-provided local files; results can change as upstream
databases are updated.
## Choose the operation
- **Gene-set enrichment:** start with `enrichr`. Use a supported shortcut only
for human/mouse; use an exact library name for other species. Ensembl IDs
require `ensembl=True`, and an Ensembl background requires
`ensembl_bkg=True`. See [Enrichr](references/enrichr.md).
- **Cancer cohort discovery/heatmaps:** call `cbio_search` to obtain study IDs,
inspect the returned IDs, then call `cbio_plot`. The latter downloads and
caches cBioPortal data and writes a PNG; it does not return a result table.
See [cBioPortal](references/cbio.md).
- **COSMIC:** query a local TSV with an exact, case-insensitive match. Download
first only when the user has the required COSMIC account, permission, and
storage. See [COSMIC](references/cosmic.md).
- **Target associations:** use `opentargets` with an Ensembl gene ID and one of
its seven resources. Filters are exact equality on returned column names.
See [Open Targets](references/opentargets.md).
- **Residue/isoform annotations:** use `g2p` for G2P `features`, `map`, or
`alignment`. Resolve or pass the gene/UniProt pair explicitly; use residue
filtering only for per-residue resources. See [G2P](references/g2p.md).
## Common execution contract
1. Record the identifier namespace and species before making a request. Keep
Ensembl version suffixes when they are meaningful to the upstream service;
note that Enrichr conversion strips a suffix and cBio/COSMIC have their own
accession matching rules.
2. Run Python calls with `verbose=False` only after the first diagnostic run;
retain the returned object and inspect its type, shape, columns, and a few
rows before writing a downstream analysis.
3. Prefer explicit output paths in caller code. gget's `save=True` conventions
differ by module; where a Python function has no save argument, write the
returned DataFrame yourself.
4. Treat an empty DataFrame/list, `None`, a failed plot, a missing cache file,
or a service error as an unresolved result—not evidence of no biology.
Follow [troubleshooting](references/troubleshooting.md).
5. Do not place credentials in prompts, notebooks, committed code, or command
history. COSMIC full downloads require an account and licensing review;
public Enrichr, cBioPortal, Open Targets, G2P, and UniProt calls still need
network access and may be rate-limited.
## Minimal Python recipes
```python
import gget
# Symbols, or Ensembl IDs with ensembl=True.
enrichment = gget.enrichr(["ACE2", "AGT", "AGTR1"], database="ontology")
# Search first; then inspect/select IDs rather than guessing a study ID.
studies = gget.cbio_search(["esophag", "ovarian"])
gget.cbio_plot(studies[:1], ["AKT1", "NOTCH3"], stratification="tissue")
# Existing, licensed/local COSMIC TSV only.
cosmic_rows = gget.cosmic("EGFR", cosmic_tsv_path="path/to/file.tsv", limit=20)
# Target disease associations; use resource-specific filters when narrowing.
diseases = gget.opentargets("ENSG00000169194", resource="diseases", limit=10)
# G2P feature rows at selected residues, with an explicit reviewed accession.
features = gget.g2p("BRCA1", uniprot_id="P38398", residues=[185, 1775, 1812])
```
Expected Python defaults are pandas DataFrames for Enrichr, COSMIC, Open
Targets, and G2P; Enrichr/COSMIC can return JSON-compatible lists with
`json=True`, and `cbio_plot` returns `True` after plotting. A remote failure can
instead raise, return an empty object, or return `None` according to the
module; never assume one universal error behavior.
## Boundaries and routing
- Route raw PDB retrieval, AlphaFold prediction, sequence retrieval, or direct
structure download to the sequence-tools sub-skill. G2P `map` may expose a
`PDB Ids List`, but this sub-skill only teaches the mapping.
- Route mutation sequence transformation and the detailed `gget mutate`
workflow to specialized-workflows. COSMIC's `gget_mutate=True` export is a
handoff, not a mutation-analysis recipe here.
- Open Targets' disease rows are EFO-mapped associations and may be phenotypes
or measurements, not only MONDO diseases. G2P's public API does not expose
the portal-only gnomAD, ClinVar, or HGMD overlays.
- For full signatures, resource schemas, cache/output names, constraints,
and recovery steps, use the linked reference pages rather than guessing from
a CLI help screen.
## Verification checklist
For a new workflow, verify: (a) the identifier namespace and species are
explicit; (b) the selected database/resource/filter names occur in the local
reference; (c) the returned type and required columns are checked; (d) output
paths are inspected; (e) a small deterministic or mocked case is retained; and
(f) network, account, license, cache, and truncation limits are recorded.
Difficult cases to test are an Enrichr Ensembl list with versioned IDs and a
small top-N assertion after conversion, plus an Open Targets diseases query
whose disease IDs seed a G2P feature request while clearly labeling the
portal-only variant-overlay gap. These cases are intentionally more demanding
than the original smoke tests.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!