Skip to content

Add clinical biomarkers to the data model - #149

Merged
KrishnaTO merged 1 commit into
mainfrom
claude/clinical-biomarkers-model-1e02a3
Oct 16, 2026
Merged

KrishnaTO merged 1 commit into
mainfrom
claude/clinical-biomarkers-model-1e02a3

Conversation

@KrishnaTO

@KrishnaTO KrishnaTO commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Adds clinical biomarkers to the data model: the tests a physician can order to diagnose each disease.

Merge together with KrishnaTO/ARI-metadata-manager#239. The editor creates new markers as ClinicalBiomarker and edits the new fields only once that change is deployed. Until this PR merges, the editor refuses the new fields as undeclared properties. Merge both PRs, then deploy the app.

What changed

  • Ontology (ontologies/ari_t1d.owl)
    • BiochemicalMarker is renamed ClinicalBiomarker, still linked by hasBiomarker.
    • New string fields: markerType (Serological, Biochemical, Cytological, Histopathological, Imaging, Physiological), markerSensitivity, markerSpecificity and loincCode.
    • The six Type 1 diabetes markers are typed Biochemical.
  • Twelve test findings rebuilt as biomarkers on 10 diseases. The ARI#132 review retired them as non-symptoms, for example serum creatine kinase, small intestinal biopsy, the tilt-table test and retinal angiography. The label names the test, and the comment keeps the original finding word for word. The symptom's likelihood becomes markerSensitivity. Each disease's ARI_ChangeLog names the retired symptom its biomarker came from.
  • Data model
    • New Immuno-data-model-v4.xlsx moves the field from Disposition → Serological Markers to Scientific Data → Clinical Profile → Clinical Biomarkers. Objective Signs now means findings on physical examination.
    • immunological_data_model.owl makes ClinicalBiomarker a ClinicalFeature and drops Biomarker, SerologicalMarker and hasSerologicalMarker.
  • Report 12: build_research_gaps.py follows v4 and reads the field as Clinical Profile → Clinical Biomarkers.

Decisions

  • Autoantibodies stay in hasAntibody (358 links, with antibodyDiagnosticValue), so they aren't curated in two places. That's also why the retired Donath-Landsteiner entry isn't rebuilt.
  • Disease descriptions are unchanged, even though the sentences added by issue-132/retire-non-symptoms now repeat what the biomarkers hold.

Not done here

  • 12_Research_Gaps.xlsx is not regenerated. Its prevalence check still reads the flat rates removed in Move prevalence and incidence rates into figures (#229) #146, so a rebuild would wrongly mark most diseases' prevalence as missing. A separate change fixes that check and regenerates the report.
  • immunological_data_model_snapshot.png still shows the old class.

Checks

  • python .github/scripts/validate_mappings.py: 0 errors, plus 5 warnings that were already there.
  • Ran the editor from the app branch against this ontology: Postural orthostatic tachycardia syndrome shows "Active stand or tilt-table test" (Physiological, sensitivity 100%) in the Clinical biomarkers panel.

🤖 Generated with Claude Code

Renames BiochemicalMarker to ClinicalBiomarker and moves the field from
Disposition/Serological Markers to Clinical Profile, so biopsy, imaging and
physiological tests have a home alongside lab analytes. Adds markerType,
markerSensitivity, markerSpecificity and loincCode, types the six T1D markers,
and rebuilds twelve retired ARI#132 test findings as biomarkers on their
diseases. Data model v4 spreadsheet and OWL updated; report 12's field list
follows v4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KrishnaTO
KrishnaTO merged commit 02d5a03 into main Oct 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant