Skip to content
Documentation /Data & sources

Disease coverage

This page describes repository coverage metadata, not clinical coverage or scientific completeness. The current public snapshot is v0.2.1, released 2026-08-22; authoritative numbers live in public-status.yaml.

These counts measure different things. Do not substitute one for another.

Metric Value Definition Source Regeneration Kind
Discoverable modules (registry_modules) 10,404 Disease.list_all() — on-disk packages with __init__.py, excluding blocked slugs Runtime discovery python scripts/refresh_public_status.py full-corpus
On-disk module directories 10,406 Directories with __init__.py and config.py, including two blocked GO-like slugs Filesystem same script full-corpus
Harvest catalog entries 10,391 Unique id values in disease_registry.json src/med_research/diseases/disease_registry.json python scripts/reconcile_harvest_registry.py then refresh full-corpus
Strict L2-validated 88 Strict-validation pass in an n=500 alphabetical list_all() sample v0.2.1 sampled status report nosograph disease corpus-status --limit 500 (sample) or full-corpus --tier L2 --strict (expensive, not the public figure) sample
L3 expression-curated (public) 2 Consensus members that fall inside that same n=500 window (ad, acute_myeloid_leukemia) same sample same sample
L3 consensus membership 23 CURATED_CONSENSUS_DISEASES; compute_tier() assigns L3 to every member pipeline/gene_expression/geo.py refresh script (set size) full-corpus
Reference 6 REFERENCE_DISEASES diseases/identifiers.py code constant full-corpus
CI-validated 8 CI_VALIDATED_DISEASES; hosted CI runs disease validate --strict on each identifiers.py + .github/workflows/test.yml code constant full-corpus
Registered pipeline adapters 25 pipeline.registry.list_modules() adapter catalog refresh script full-corpus

The historical public figure 10,407 was discoverable (10,404) plus the three-id blocklist (positive_regulation_of_ovulation, sensory_perception_of_sound, and the zz_scaffold_test fixture that is not a committed directory). It is not a live counter.

Harvest catalog vs discovery

disease_registry.json is the Open Targets harvest catalog used for scaffolding and Mondo/EFO indexes. It is not Disease.list_all(). Curated short-slug packages (sle, ra, …) existed on disk before harvest and were skipped by batch_scaffold (already-exists). Reconcile them with:

python scripts/reconcile_harvest_registry.py          # admit missing disease-like modules
python scripts/reconcile_harvest_registry.py --check   # CI drift gate

Intentional harvest exclusions: blocked slugs and GO-like / response_to_* / trait_in_response_to_* directories that remain on disk historically. They must not be hand-appended to the catalog. CI-validated and reference slugs must be present. The 13 discoverable GO/response dirs are classified A–E in harvest_registry.ON_DISK_GO_RESPONSE_EXCLUSIONS (none are category C; none were deleted). New GO-like scaffolds are refused. See registry.

L2 / L3 (do not collapse)

  • L2=88 is an n=500 sample. It is not “88 of 88 of the whole registry.”
  • L3=2 is that sample intersecting consensus membership. The consensus set is 23. compute_tier() short-circuits consensus members to L3; it does not require L2 ∩ consensus.
  • Full-corpus L2-strict is not the public metric. Regenerating it is expensive (nosograph disease validate-batch --tier L2 --strict).

Pipelines

25 registered adapters (list_modules()). Additional packages exist under pipeline/ that are not in that catalog (lead_opt, matching_engine, pharmacogenomics, bioinformatics engine package, and others). The retired slogan “40+ pipelines” mixed those packages with adapters.

Commands

python scripts/refresh_public_status.py
python scripts/check_public_metadata.py
python scripts/check_registry_harvest.py
nosograph disease corpus-status
nosograph disease validate-batch --tier ci_validated --strict

Do not use disease validate --all --strict as a green merge gate: the 10k scaffolds are expected to fail. Hosted CI validates the eight CI-validated ids plus the reference batch.

Do not interpret an unrecorded module field as a biological negative finding. Use curation tiers for the readiness model and Sources for upstream integration context.