Curation Workflow
The curation workflow turns enrichment output into LinkML-validated biological interpretations of non-GO gene sets.
Local Setup
Use the curation extra from the Python workflow package:
uv run --project python/genesets-workflows --extra curation \
genesets-workflows curate --help
The justfile provides the common repository commands:
just curate-validate-schema
just curate-validate
just curate-report
Steps
-
Validate the schema’s ontology-backed enum meanings:
just curate-validate-schema -
Draft a curated interpretation from enrichment output:
uv run --project python/genesets-workflows --extra curation \ genesets-workflows curate draft MSIGDB:<SET> \ --enrichment-tsv path/to/enrichment.tsv \ -o curation/genesets/<SET>.yaml -
Adjudicate the draft by assigning
category,confidence,specificity, andrecovery_status. Add curator-only core terms and literature evidence where needed. -
Validate every curated YAML file:
just curate-validate -
Build the precision/recall report:
just curate-report
Judgment Model
category is the biological judgment. A term that is central to the gene set’s
biology should remain core even if current GO annotations do not recover it.
recovery_status records whether the current annotations and membership make
that biological judgment recoverable:
annotation_supported: current annotations recover the term.annotation_gap: relevant genes are present, but GO annotation is too shallow.membership_gap: the gene set lacks genes needed to support the term.
This separation keeps the corpus useful both as an enrichment eval fixture and as a source of curation targets.