obophenotype / obophenotype/uberon
Create a single-cell sampling-site subset from observed usage
Nobody has claimed this yet.
- Dominant language
- Emacs Lisp
- Stars
- 163
- Forks
- 43
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 5
Description
Problem
Single-cell schemas (CELLxGENE, scFAIR 7.1.0, HCA, HuBMAP) all require a tissue_ontology_term_id drawn from Uberon, but there is no curated list of terms that are sensible values for that field. Curators have no view of which terms carry annotation load, and consumers have no authoritative pick-list.
No existing subset serves the purpose. Measured against the 705 Uberon terms actually used as tissue_ontology_term_id across the 2,216 datasets in CELLxGENE Discover:
| Subset | Covers |
|---|---|
pheno_slim |
365 (51.8%) |
uberon_slim |
310 (44.0%) |
efo_slim |
210 (29.8%) |
vertebrate_core |
143 (20.3%) |
organ_slim |
48 (6.8%) |
major_organ |
22 (3.1%) |
added_for_HCA |
4 (0.6%) |
added_by_HRA |
0 (0.0%) |
239 of the 705 terms (34%) are in no subset at all. The two subsets named for single-cell consortia contain 6 and 5 terms respectively.
Proposal
Seed a subset (working name single_cell_slim, or extend efo_slim) from observed usage rather than curator intuition, using the ranked table already generated at docs/single-cell/single-cell-gap.tsv. Every term in it resolves to a live Uberon class — this is not an obsoletion or minting problem.
Regenerate at any time with:
python src/scripts/single_cell_coverage.py --cache-dir /tmp/sc-cache
Why this is actionable now
This needs no decision on new relations or on how tissue↔cell-type links are modelled. It is subset assignment over terms that already exist.
Open question for the team
Should this ship as a release product (a .owl/.obo subset artifact) or as a report only?
Context
Full analysis: single-cell coverage gap report §5, and the modernization strategy §3.2.
Related: #3680 (populating added_by_HRA).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/scripts/single_cell_coverage.py and the ranked terms in docs/single-cell/single-cell-gap.tsv; read the gap report §5 and modernization strategy §3.2 for context. Confirm the team’s choice between a release subset artifact and a report-only result, then produce the selected output from existing live Uberon classes and verify coverage against the observed usage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100