Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 1.65 KB

File metadata and controls

84 lines (63 loc) · 1.65 KB

Getting Started

This Python port of the R AMR package is complete for all critical workflows (SIR, antibiogram, breakpoints, MO/AB/AV normalization, veterinary breakpoints, translation). See port_status.md.

Install

cd python-amr
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Sanity Checks

ruff check src tests
mypy src
pytest -q

First SIR Interpretation (CLI)

Create sir_values.json:

[0.25, 1, 2, 8]

Run:

amr sir sir_values.json --microorganism B_ESCHR_COLI --antimicrobial AMX --guideline "EUCAST 2025"

Expected output shape:

{"values": ["S", "S", "R", "R"], "guideline": "EUCAST 2025"}

First antibiogram (CLI)

Create rows.json:

[
  {"Pathogen": "Escherichia coli", "AMX": "S", "CIP": "R"},
  {"Pathogen": "Escherichia coli", "AMX": "R", "CIP": "S"},
  {"Pathogen": "Staphylococcus aureus", "AMX": "S", "CIP": "S"}
]

Run:

amr antibiogram rows.json --pathogen-column Pathogen --antimicrobial-columns AMX,CIP

Python API (in-process)

import polars as pl
from amr.core.interpretation import interpret_sir_values
from amr.core.antibiogram import compute_antibiogram

sir = interpret_sir_values(
    values=[0.25, 1, 2, 8],
    microorganism="B_ESCHR_COLI",
    antimicrobial="AMX",
    guideline="EUCAST 2025",
)
print(sir.sir_values)

ab = compute_antibiogram(
    df=pl.DataFrame([
        {"Pathogen": "Escherichia coli", "AMX": "S", "CIP": "R"},
        {"Pathogen": "Escherichia coli", "AMX": "R", "CIP": "S"},
    ]),
    pathogen_column="Pathogen",
    antimicrobial_columns=["AMX", "CIP"],
)
print(ab)