>ctfepi
Sign in

# a capture the flag for epidemiologists, in seven books

Analyze the data. Find the flaw. Close the case.

You are the newest analyst at the Office of Evidence and Appraisal in Port Meridian. Every scene hands you real looking data or a synthetic manuscript. Run the analysis in R, convert the results with the arithmetic of epidemiology, and submit the flag. Nothing expires; new scenes open as they are written.

Open the boardRead the prologue
Console ~/port-meridianR 4.4
> library(ctfepi)
Welcome to Port Meridian. Your desk at the Office of Evidence and Appraisal is ready.
> briefing("e2-leave-one-out")
Case E2: Pooling QUAYSIDE. Scene 2: Leave One Out.
Kastner reads Corvane's forest plot aloud for the third time...
> exhibits("e2-leave-one-out")
✓ quayside_trials.rds sha256 ok
> hint("e2-leave-one-out")
Marlow's note: And Then There Were None (Agatha Christie, 1939)
> submit_flag("e2-leave-one-out", "epi{...}")
# the flag is several results joined: no guessing
>

> books()

Seven books, 43 cases

Each book is a track of methods, each case a category, each scene a challenge from easy to insane.

# how a scene works

Four calls

  1. 01

    briefing()

    Read the scene: the story, then the exact Specification.

  2. 02

    exhibits()

    Download the data: .rds, SQLite, Parquet, .xpt, PDF, and more.

  3. 03

    analyze()

    Your own R session. Only the flag is checked.

  4. 04

    submit_flag()

    Several results joined into one flag. Wrong flags cost nothing.