A functional-pathway-centric medical knowledge graph for rare-disease differential-diagnosis research, pathway exclusion logic, and auditable biomedical graph reasoning.
Research tool only. This is not a clinical decision support system, not a medical device, and must not be used for diagnosis, treatment, triage, or any other medical decision.
Note on project status: We are currently unable to actively develop this software and concept further due to time constraints. We would be happy if someone picks this up and are glad to support anyone who does. Feel free to fork, open issues, or reach out.
| Need | Open |
|---|---|
| Understand the research idea | WHITEPAPER.md |
| Cite the software record | Zenodo v0.6 / concept DOI |
| Inspect the implementation | engine/ and database.py |
| Run the prototype | python main.py, then load demo data in the setup wizard |
| Check source health | python -m compileall -q engine ingestion gui main.py database.py config.py and python -m pytest -q |
| Machine-readable repo context | llms.txt |
System-Medizin models the human body as a network of functional pathways (biological processes) linked through genes, proteins, laboratory values, anatomical locations, cell types, and clinical diagnoses. Instead of isolated symptom matching, the graph-based approach enables:
- Exclusion Logic: If a functional pathway is demonstrated intact in a research scenario, genes essential for that pathway can be marked as lower-priority candidate causes under explicit assumptions.
- Probabilistic Analysis: Confidence scores for gene exclusion based on pathway evidence, redundancy, and multi-pathway reinforcement.
- Pattern Detection: Automatic recognition of known measurement signatures (e.g. hemolysis, lupus, sepsis, Cushing's).
- Diagnostic Research Queries: From abnormal measurements via suspect pathways to candidate genes and research-only follow-up hypotheses.
| Category | Count |
|---|---|
| Functional Pathways | 51 |
| Laboratory Parameters | 151 |
| Genes/Proteins | 70 |
| Diagnoses | 68 |
| Measurement Signatures | 42 |
| Body Locations | 28 |
| Cell Types | 25 |
| Graph Edges | 696 |
Covered domains: Hematology, hepatology, nephrology, endocrinology (thyroid, HPA axis, gonads, PTH), immunology (complement, T-cells, NK-cells, IgE/allergy), cardiology, oncology markers, blood gas analysis, rheumatology, hemostasis (including thrombophilia and fibrinolysis), pulmonology, gastroenterology (IBD, celiac, pancreatic insufficiency), infectiology (hepatitis serology), autoimmunology (Hashimoto, Graves', PBC, AIH), urine diagnostics, neurology markers, osteology, copper metabolism, and allergology.
- Python 3.10+
- Windows / Linux / macOS
git clone https://github.com/um-bruch/system-medicine.git
cd system-medicine
pip install -r requirements.txtpython main.pyOn Windows you can also double-click START.bat.
On first launch a Setup Wizard appears. Click "Load Demo Data" to populate all data panels (hemolysis scenario, clinical lab panels, extended systems).
system-medicine/
main.py # Entry point
config.py # Paths, data sources, colors
database.py # SQLite schema, CRUD helpers
engine/
exclusion.py # Binary + probabilistic exclusion logic
query.py # Graph traversal, diagnostic queries, pattern detection
reasoning.py # Human-readable explanations
gui/
app.py # Main window (4 tabs)
theme.py # Dark theme stylesheet
setup_wizard.py # First-run wizard with demo data
graph_view.py # NetworkX graph explorer
exclusion_panel.py # Exclusion analysis (binary + probabilistic)
data_panel.py # Diagnostic query + data browser
ingestion/
manager.py # Download orchestration
downloader.py # HTTP downloads with caching
manifest.py # Data source manifest
hgnc.py # HGNC gene nomenclature parser
uberon.py # Uberon anatomy ontology parser
cell_ontology.py # Cell Ontology parser
uniprot.py # UniProt protein data parser
reactome.py # Reactome pathway data parser
gene_ontology.py # Gene Ontology parser
seed_data.py # Demo/seed data (hemolysis scenario)
paper/ # Methodology paper (EN + DE PDFs)
data/ # Runtime data (DB, cache) -- in .gitignore
| Tab | Function |
|---|---|
| Graph Explorer | Interactive visualization of the knowledge graph with NetworkX |
| Exclusion Analysis | Set pathway status, run binary + probabilistic gene exclusion |
| Diagnostic Query | Enter abnormal measurements, identify suspect pathways and genes, pattern detection |
| Data Browser | Browse all DB tables including measurement signatures |
This tool integrates exclusively public, open-access biological databases:
- Reactome -- Pathway data (CC BY 4.0)
- Gene Ontology -- Biological process annotations (CC BY 4.0)
- UniProt -- Protein data (CC BY 4.0)
- HGNC -- Gene nomenclature (CC0)
- Uberon -- Anatomy ontology (CC BY 3.0)
- Cell Ontology -- Cell type ontology (CC BY 4.0)
The formal exclusion model (binary and probabilistic variants), assumptions, limitations, and validation framework are described in the accompanying concept paper:
Geiger, L. (2026). Functional Pathway-Centric Medical Knowledge Graph with Exclusion Logic for Rare Disease Differential Diagnosis. Zenodo v0.6. https://doi.org/10.5281/zenodo.20101507
The paper/ directory contains the English, German, and combined PDF/LaTeX package. CITATION.cff contains the recommended citation metadata for GitHub and citation tools.
Useful discovery phrases for this repository:
- functional pathway-centric medical knowledge graph
- rare disease differential diagnosis research prototype
- pathway exclusion logic for candidate gene review
- public biomedical knowledge graph with Reactome, Gene Ontology, UniProt, HGNC, Uberon, and Cell Ontology
- research-only PySide6 and SQLite system medicine prototype
Contributions are welcome. Areas where help is especially valued:
- Pathway expansion: Adding new functional pathways with gene/measurement links
- OMIM/HPO integration: Connecting disease-gene associations from OMIM and phenotype data from HPO
- Benchmark cases: Curating validated rare-disease cases for systematic evaluation
- Pathway weight calibration: Data-driven calibration of exclusion confidence weights
Please open an issue first to discuss larger changes.
MIT License -- see LICENSE.
This software is a research prototype for exploring pathway-centric exclusion logic. It is not validated for clinical use and must not be used for diagnosis, treatment, triage, patient management, or any other medical decision. Always consult qualified healthcare professionals.
Rechtlicher Hinweis / Legal Notice
Dieses Projekt ist kein Medizinprodukt im Sinne der MDR (EU) 2017/745 / IVDR (EU) 2017/746. Es ist nicht klinisch validiert, nicht durch BfArM oder eine Benannte Stelle geprüft, nicht zertifiziert. Es verarbeitet Daten ausschließlich zu Forschungs- und Softwareentwicklungszwecken. Eine klinische oder diagnostische Nutzung ist ausdrücklich nicht die Zweckbestimmung. Entscheidungen über Diagnose und Therapie bleiben qualifizierten Fachpersonen vorbehalten.
This project is not a medical device within the meaning of MDR (EU) 2017/745 / IVDR (EU) 2017/746. It is not clinically validated, not approved by BfArM or any Notified Body, not certified. Data is processed exclusively for research and software development purposes. Clinical or diagnostic use is explicitly not the intended purpose. Decisions about diagnosis and therapy remain reserved for qualified professionals.
Unentgeltliche Open-Source-Schenkung (§§ 516 ff. BGB). Haftung auf Vorsatz und grobe Fahrlässigkeit beschränkt (§ 521 BGB). Nutzung auf eigenes Risiko. / Unpaid open-source donation. Liability limited to intent and gross negligence. Use at own risk.