Skip to content

Releases: AdamEddahmouni/nosograph

v0.2.1

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 23 Aug 18:41
v0.2.1
8e6001b

NosoGraph v0.2.1 — Stabilization

Backward-compatible stabilization patch for the v0.2.0 Compare V2 milestone. No new features, no public API changes, and no changes to Compare V2 biomedical semantics, fingerprints, exports, or replay behavior.

Fixed

  • Timezone-aware UTC timestamps in the asynchronous job queue, target hypothesis agent, and dossier web flow; machine-facing serialized timestamps carry an explicit UTC offset while filename-safe tokens retain their exact YYYYMMDDTHHMMSSZ shape.
  • Open Targets ingestion normalizes optional phase data at an explicit boundary (integer/numeric-string phases become integers; missing, null, boolean, malformed, or unsupported values become no phase instead of crashing import) and types snapshot identifiers as UUID values with deterministic import behavior preserved.
  • Compare V2 validates persisted status at the storage boundary: comparable and insufficient_data round-trip unchanged; unknown stored statuses are invalid persisted data following the existing persistence-error path rather than a raw validation error or silent coercion to insufficient_data.
  • Disease discovery excludes the transient zz_scaffold_test test fixture so parallel test execution no longer leaks it into registry sampling.

Changed

  • The informational mypy ratchet (make typecheck) now covers the recently shipped stabilization surfaces (Open Targets import adapter, biomed/nosograph_compare/, dossier API/router/service); those files type-check cleanly.
  • Removed obsolete dossier-service type-suppression comments after confirming the optional WeasyPrint/ReportLab imports are typed correctly; PDF fallback behavior is unchanged.
  • Technical-debt ledger refreshed with a prioritized active backlog separating current open work from the completed historical audit.
  • Public package, runtime, citation, CodeMeta, roadmap, and documentation metadata advance to v0.2.1. v0.2.1 has no Zenodo archive record yet, so citation metadata uses the all-versions concept DOI; the v0.2.0 version DOI remains historical metadata for v0.2.0 only.

Known limitations

  • Third-party warnings remain visible and documented: FastAPI/Starlette TestClient's future httpx2 migration and SHAP/Matplotlib color-map deprecations (dependency-family work deferred to the ledger).
  • The mypy ratchet across remaining legacy runtime boundaries (59 known errors in 45 previously checked files) continues as incremental debt work.

Verification

python -m ruff check src tests
python -m ruff format --check src tests
python scripts/lock_verify.py
python scripts/check_imports.py
python scripts/check_public_metadata.py
python scripts/check_public_fonts.py
python -m pytest tests/ -m "unit and not network and not slow" -q --tb=short -n auto --dist=loadscope --ignore=tests/test_evidence_workspace_browser.py
python -m pytest tests/ -m "integration and not slow" -q --tb=short
python -m mkdocs build --strict
python -m med_research.cli disease validate sle|ra|ibd|ms|ss|ssc|t1d|ad --strict

NosoGraph v2.4.0 — Evidence Explorer (Legacy prototype)

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 22 Aug 04:11
v2.4.0
309c315

NosoGraph v2.4.0 — Evidence Explorer

NosoGraph v2.4.0 makes evidence traceability a first-class research experience: open any claim, inspect supporting and contradictory evidence, read provenance, and reach original sources — without treating associations as causation.

Maturity: Public Alpha — research use only; not production clinical software.

What changed

Evidence Explorer

  • First-class dashboard navigation (#evidence-explorer) with deep links (?claim_id={uuid}).
  • Claim summary (subject · predicate · object), evidence groups, quality badges, provenance timeline, filters, related claims.
  • Condition Explorer bridge: Open in Evidence Explorer on claim rows.

Evidence quality

  • ADR-001 structured dimensions on each evidence row (species_context, study_design, origin_class, etc.).
  • Missing metadata remains unknown — absence is not low quality.

Provenance & sources

  • Machine-readable provenance chains and per-evidence source metadata with validated HTTPS links when available.

Condition integration

  • Discover claims via GET /api/v1/conditions/{curie}/claims and drill into Explorer from the dashboard.

Reliability

  • Playwright fixes for modal overlays and structure API mocks.
  • Hosted slow-test workflow green including browser subset (workspace 11/11, explorer 4/4 locally and on Actions).

API changes

  • GET /api/v1/claims/{id}/evidence returns a paginated PagedResponse (not a bare array).
  • New: GET /api/v1/claims/{id}/related.
  • Claim detail adds summary counts and quality on evidence rows.

Validation

Check Result
lint PASS — PR #22 run 32547396870
security PASS
test (3.11 / 3.12) PASS
integration-tests PASS
docs build PASS
hosted slow-tests (browser) PASS — run 32547140215
Offline unit suite 2391 collected
Workspace Playwright 11/11
Explorer Playwright 4/4

Upgrade notes

If you called GET /api/v1/claims/{id}/evidence and parsed a JSON array directly, read response.items instead. Claim detail (GET /api/v1/claims/{id}) still embeds inline evidence arrays.

Known limitations

  • Heuristic evidence-quality inference; sparse rows stay unknown.
  • Compare V2, public demo, and contradiction engine remain future work (Wave 2+).
  • No public hosted demo deployment.

NosoGraph v0.2.0 — Compare V2

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 22 Aug 23:16
v0.2.0
5a86756

NosoGraph v0.2.0 ships Compare V2 as a usable public-alpha research workflow. Researchers can select two through five imported diseases, choose one or more evidence dimensions, inspect shared and distinguishing entities, identify missing curation, follow supporting assertions into Evidence Explorer, and export the same deterministic result for review or automation.

Highlights

  • Deterministic cohorts of two through five unique, resolved condition CURIEs.
  • Phenotype, gene, pathway, treatment, and evidence-coverage dimensions in a fixed canonical order.
  • Shared-by-all, shared-by-subset, disease-distinct, KNOWN_ABSENT, and NOT_RECORDED views.
  • Structured missing-curation, asymmetric-curation, and conflicting-assertion warnings.
  • Evidence Explorer links for the exact positive and negated claims behind each recorded state.
  • Canonical JSON and timestamp-free Markdown exports with stable ordering and filenames.
  • Accepted Compare V2 semantics ADR, result-schema versioning, golden fixtures, API tests, and Playwright coverage through both deterministic mocks and the live FastAPI seam.

API and compatibility

The canonical endpoint is POST /api/v1/nosograph/comparisons. It accepts condition_curies and optional dimensions, validates a cohort of two through five unique conditions, and returns HTTP 200 for both comparable and valid insufficient_data results. Persisted results can be retrieved or exported by run ID.

The deprecated POST /api/v1/nosograph/compare endpoint remains as a two-condition projection. Its legacy mechanism dimension maps to pathway. The separate scored comparison API is unchanged.

Compare semantics use algorithm nosograph-compare-v2 version 2.0.0. The persisted response contract is independently versioned as schema 2.0, preventing older incomplete payloads from being replayed for new requests after contract evolution.

Interpretation

KNOWN_ABSENT requires an explicit current negated assertion. NOT_RECORDED means neither a positive nor a negated assertion is present in the active imported snapshots. Empty data is not evidence of absence. When positive and negated assertions coexist, PRESENT takes precedence, both claim directions remain available for inspection, and a conflict warning is emitted.

NosoGraph Compare does not produce a universal similarity score. Coverage and overlap reflect imported snapshots and curation depth, not clinical truth.

Verification

The release passed the complete offline suite, Ruff lint and format checks, dependency locks, import boundaries, public metadata and fonts, strict documentation build, deterministic export fixtures, API tests, Playwright product flows, and fresh post-merge master checks across Python 3.11 and 3.12.

Maturity

Public Alpha — research use only. NosoGraph is not medical advice, a diagnostic system, or clinical decision support. No public hosted demo is deployed.

NosoGraph v0.1.0 — Public Alpha

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 22 Aug 08:35
v0.1.0
1381a38

NosoGraph v0.1.0 establishes the public-alpha baseline for Disease Intelligence. Connected.

Highlights: disease-general core, Evidence Explorer, NosoGraph Compare, provenance APIs, responsive public documentation, canonical metadata, and strengthened CI/community settings.

Creator: Adam Eddahmouni
Contributors: NosoGraph contributors

Research software only; not clinical decision support.

NosoGraph v2.3.0 — Disease-General Core & Computational Comparison (Legacy prototype)

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 21 Aug 17:35
v2.3.0
ff1ea22

NosoGraph v2.3.0 — Disease-General Core & Computational Comparison

NosoGraph v2.3.0 expands the public alpha into a more disease-general, validated, evidence-traceable computational research platform.

Maturity: Public Alpha — research use only; not production clinical software.

Highlights

Disease-general core

  • Centralized disease identifier resolution and explicit disease selection where semantically required.
  • Removal of inappropriate SLE/RA platform defaults in P1 scope.
  • Multi-disease CLI/API behavior with preserved legacy compatibility.

Strict curated validation

  • Batch validation: nosograph disease validate-batch --tier L2 --strict
  • 88/88 current L2 modules pass strict validation (recomputed at release).
  • CI reference-tier gate on pull requests; weekly full L2 run in slow-test workflow.

NosoGraph Compare (experimental initial slice)

  • Multidimensional comparison across phenotype, gene, mechanism, treatment, and evidence_coverage.
  • Explicit missingness semantics: NOT_RECORDEDKNOWN_ABSENT.
  • Engine + API (POST /api/v1/nosograph/compare) + dashboard panel — not a finished standalone Compare product.

Evidence & provenance

  • Claim, evidence, and provenance APIs connected with end-to-end traceability.
  • Golden trace verified from condition → claim → evidence → provenance → source snapshot.
  • Polished Evidence Explorer UX remains incomplete.

Biomedical source synchronization

  • Nine-stage sync lifecycle with Open Targets vertical slice.
  • nosograph biomed sync open_targets --dry-run CLI.
  • Hosted dry-run workflow proven on GitHub Actions (publish skipped in dry-run mode).

CLI

  • Canonical: nosograph
  • Legacy alias: med-research (same implementation)
  • Python import: med_research
  • PyPI package: med-research (unchanged)

Validation

Check Result
Offline unit suite 2351 passed
L2 strict 88/88
Compare tests 19/19
Provenance API 3/3
Hosted CI (required) lint, security, test 3.12, integration — PASS

Current corpus

Tier Count Notes
Registry modules 10,407 Mostly scaffolds
L2 strict-validated 88 Pipeline-ready
Reference 6 Deep reference set
CI-validated 8 Original eight diseases
L3 2 In sampled status report

Registry size ≠ curation depth. Scaffold modules are starting points, not validated clinical models.

Experimental / partial capabilities

  • NosoGraph Compare (initial slice)
  • Source sync (Open Targets only)
  • Evidence/provenance APIs (backend complete; UX partial)
  • Optional LLM enrichment

Not implemented

  • Polished Evidence Explorer
  • Full Compare standalone workflow
  • Public hosted demo
  • FHIR / OMOP / Phenopackets export
  • PyPI package rename to nosograph

Compatibility

  • v2.2.0 tag and release unchanged.
  • Breaking package rename deferred to a future major release.

Research scope

Outputs are computational prioritization hypotheses for research use only — not medical advice.

NosoGraph v2.2.0 — Public Alpha (Legacy prototype)

Choose a tag to compare

@AdamEddahmouni AdamEddahmouni released this 20 Aug 23:23
v2.2.0

NosoGraph v2.2.0 — Public Alpha

NosoGraph is an open-source, evidence-native computational map of human disease designed to connect diseases and conditions to phenotypes, mechanisms, genes, variants, pathways, cells, anatomy, biomarkers, treatments, drugs, trials, literature, datasets, and computational models.

This release marks the project's public transition to NosoGraph.

Compatibility: The Python package still installs as med-research with import path med_research and CLI command med-research.

Current maturity

Public Alpha

What works today

STABLE

  • Unified CLI (med-research)
  • Disease validation and coverage tooling
  • JSON knowledge-graph schema
  • Provenance fingerprints
  • Optional API-key authentication

BETA

  • FastAPI web API + vanilla JavaScript dashboard
  • Celery-based background jobs
  • Evidence Workspace
  • Universal Biomedical Store
  • 40+ analysis pipelines
  • Live external connectors (Open Targets, GTEx, ChEMBL, UniProt, bioRxiv)
  • DuckDB-accelerated biomedical graph analytics

Disease coverage

Tier Count Meaning
Registry modules 10,407 MONDO-aligned slugs — mostly Open Targets auto-generated scaffolds
L2 pipeline-ready ~45 Pass strict validation (symptoms, queries, CAR-T, safety, etc.)
L3 expression-curated 23 L2 plus hand-curated GEO consensus gene lists
CI-validated (original eight) 8 sle, ra, ibd, ms, ss, ssc, t1d, ad

Important: Registry size does not equal curation depth. The 10,000+ scaffold modules are starting points for contributor curation — not validated clinical models.

Experimental

  • 10,000+ Open Targets scaffolds
  • Optional LLM enrichment (requires OPENAI_API_KEY)
  • DuckDB graph analytics at scale

Not yet implemented

  • FHIR, OMOP, Phenopackets export
  • Hosted SaaS, enterprise SSO, billing
  • Clinical decision support or PHI/EHR ingestion
  • PyPI publish workflow

Open-source license

Apache License 2.0 for original NosoGraph software. Third-party biomedical data retains its applicable upstream licensing and attribution requirements. See docs/legal/data-licenses.md.

Next priorities

  • Expand CI strict validation into the L2 disease corpus
  • Reduce disease-specific CLI assumptions
  • Establish canonical nosograph CLI/package compatibility
  • Deepen evidence/provenance UX
  • Begin the NosoGraph Compare vertical slice
  • Strengthen curated disease depth
  • Automate upstream biomedical-source synchronization

Important scope note

NosoGraph is a biomedical research platform. Computational outputs and research information are not a substitute for professional clinical judgment or medical diagnosis.

Full changelog: CHANGELOG.md