Skip to content

um-bruch/system-medicine

Repository files navigation

System-Medizin (System Medicine)

DOI License: MIT Python 3.10+ PySide6 System Medicine smoke tests

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.

Start Here

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

What is System-Medizin?

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.

Data Coverage (v0.4)

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.

Getting Started

Requirements

  • Python 3.10+
  • Windows / Linux / macOS

Installation

git clone https://github.com/um-bruch/system-medicine.git
cd system-medicine
pip install -r requirements.txt

Run

python main.py

On 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).

Architecture

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

Features

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

Data Sources

This tool integrates exclusively public, open-access biological databases:

Methodology

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.

Search Context

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

Contributing

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.

License

MIT License -- see LICENSE.

Disclaimer

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.

Releases

No releases published

Packages

 
 
 

Contributors