Quick Start#

Epidemic Model#

from episia import epi

# Run SEIR model
model = epi.seir(
    N=1_000_000,
    I0=10,
    E0=50,
    beta=0.35,
    sigma=1/5.2,
    gamma=1/14
)
result = model.run()
print(result)

# Plot results
result.plot().show()

Biostatistics#

from episia import epi

# Calculate risk ratio
rr = epi.risk_ratio(a=40, b=10, c=20, d=30)
print(rr)
# Output: Risk Ratio: 2.667 (1.514-4.696)

# Confidence interval for proportion
prop = epi.proportion_ci(k=45, n=100)
print(prop)
# Output: Proportion: 0.4500 (0.354-0.549)

# Diagnostic test evaluation
diag = epi.diagnostic_test_2x2(tp=80, fp=20, fn=10, tn=90)
print(f"Sensitivity: {diag.sensitivity:.3f}")
print(f"Specificity: {diag.specificity:.3f}")

DHIS2 Integration#

from episia.dhis2 import DHIS2Client

# Connect to DHIS2 demo instance
client = DHIS2Client(
    url      = "https://play.dhis2.org/40.2.2",
    username = "admin",
    password = "district",
)

# Fetch surveillance data
ds = client.to_dataset(
    data_element = "FTRrcoaog83",  # Malaria cases
    period       = "LAST_52_WEEKS",
    org_unit     = "ImspTQPwCqd",   # Sierra Leone
)

print(f"Loaded {ds.total_cases} cases")
print(f"Date range: {ds.date_range}")

# Generate epidemic curve
ds.to_timeseries_result().plot().show()

Reporting#

from episia import epi

# Generate report from model result
report = epi.report(
    result,
    title="SEIR Model - Burkina Faso 2024",
    author="Dr. Ouedraogo"
)

# Export in multiple formats
report.save_html("report.html")
report.save_markdown("report.md")
report.save_json("report.json")

More Examples#

See the Examples directory for more detailed examples.