obophenotype / obophenotype/uberon

Create a single-cell sampling-site subset from observed usage

Open
#3,764 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.