Quick start

pip install scitex_seizure_metrics

Detection (per-window classification)

from scitex_seizure_metrics import detection

rep = detection.evaluate(y_true, y_proba, threshold=0.5, fs=1)
print(rep.roc_auc, rep.pr_auc, rep.brier, rep.mcc)

Forecasting (continuous stream with explicit AlarmPolicy)

from scitex_seizure_metrics import AlarmPolicy, forecasting

policy = AlarmPolicy(
    sph_seconds=300,
    sop_seconds=600,
    cadence_seconds=60,
    refractory_seconds=600,
    alarm_threshold=0.5,
    fp_denominator="interictal",
)

rep = forecasting.evaluate_stream(
    proba, times, seizures, policy,
    total_recording_time=24 * 3600,
)
print(rep.sensitivity, rep.fp_per_hour, rep.ioc, rep.time_in_warning_frac)

Cross-paper bridge

from scitex_seizure_metrics import bridge

bnd = bridge.sample_to_alarm(
    sample_sensitivity=0.79,
    sample_specificity=0.85,
    sop_seconds=600,
    cadence_seconds=60,
    refractory_seconds=600,
    prevalence=0.1,
)
print(bnd.alarm_sensitivity_upper, bnd.fp_per_hour_upper)