01
homonin.core
Vocabularies, units, provenance, errors – the one import every other package shares.
homonin.* · open-source instruments · register 00

Instruments for
medical data.

Eight typed Python packages that read clinical formats, build validated objects and never score you.

$ pip install homonin # soon
  1. 01labsFHIR Observation · LOINC
  2. 02geneticsVCF · HGVS · htsget
  3. 03signals.ecgaECG · WFDB
  4. 04signals.eegEDF · MNE
  5. 05imagingDICOM
  6. 06molecularPDB · SMILES
  7. 07pharmacologyRxNorm
  8. 08documentationSNOMED CT · Phenopacket
Scroll to take it apart ↓
Skip to spec ↓
~/homonin $ cat POSTSCRIPT.md

You, split into eight streams.

# after Deleuze: the individual becomes the dividual. A body in the clinic arrives as labs, images, waveforms, variants and notes, each in its own standard. homonin.* reads every stream into a typed object and checks it against that standard. It never interprets and never scores.

# status: in development · not yet published to PyPI

tree homonin/
homonin/
├── core/               # vocabularies, units, provenance
├── labs/               # FHIR Observation · LOINC
├── genetics/           # VCF · HGVS · htsget
├── signals.ecg/        # aECG · WFDB
├── signals.eeg/        # EDF · MNE
├── imaging/            # DICOM
├── molecular/          # PDB · SMILES
├── pharmacology/       # RxNorm
└── documentation/      # SNOMED CT · Phenopacket
ingest.py # Reads the native format.
model.py # Builds the typed object.
validate.py # Checks it against the standard.
rhizome --no-trunk
homonin --list
glyphpackagestandardcalls
homonin.labsFHIR Observation · LOINCread_observation() read_panel() link_loinc()
homonin.geneticsVCF · HGVS · htsgetread_vcf() open_htsget() parse_hgvs()
homonin.signals.ecgaECG · WFDBread_ecg() detect_qrs() to_waveform()
homonin.signals.eegEDF · MNEread_eeg() apply_montage() bandpower()
homonin.imagingDICOMread_series() series_metadata() to_numpy()
homonin.molecularPDB · SMILESread_structure() parse_smiles() load_embedding()
homonin.pharmacologyRxNormread_medication() link_rxnorm() parse_dose()
homonin.documentationSNOMED CT · Phenopacketread_condition() read_problem_list() to_phenopacket()
example.py · planned API
# planned API: not yet published
from homonin.labs import read_observation

obs = read_observation("observation.json")  # FHIR Observation
obs.loinc       # "2823-3"  (Potassium)
obs.value       # Quantity(4.1, "mmol/L")
obs.validate()  # raises on anything off-standard
punchcard --encode packages

Typed, validated, never scored. Get told when the first packages ship.

cd ../platform