web app · surveillance · 2026
amr islands dashboard puts 66,005 resistance islands in a browser, with no server
An annotation pipeline and three static pages over NCBI Pathogen Detection: where each resistance gene sits, what it travels with, how its family varies and folds, and whether the lab result agrees with the genotype.
read the case study ↓What it is
Public pathogen surveillance databases list which resistance genes an isolate carries, but not where they sit, what they travel with, or how they vary. This project takes one organism group from NCBI Pathogen Detection, downloads every public genome, cuts a neighbourhood of ten genes on either side of each resistance gene, and packs the result into three HTML pages that need no install, no server and no account.
How it works
A chain of numbered scripts, driven by a per-organism config, runs from the download to the packed pages. Steps one to five take under a minute; the genome download is about 60 GB and is not stored in the repository. Structure prediction needs a GPU.
Three views
Islands. Gene maps of resistance islands, aligned on a chosen gene, family or architecture type: every island carrying blaKPC, for instance, stacked so the shared backbone lines up.
Gene families. Per-family records: identity, prevalence, per-residue variation counted by lineage, Pfam domains, and the predicted structure with fold matches.
Antibiograms. Susceptibility results next to the resistance genes of the same isolate, for a chosen antibiotic and gene family.
Design decisions
- No database server. The data is packed into the pages with a compact codec; the decoder is generated from the encoder so the two cannot disagree.
- One config per organism. The same 37 scripts run for the next group by adding an entry.
- Verified pages. Playwright opens every page after a build and checks what it shows.
What is not done
1,224 isolates have no public assembly. Antibiograms cover about 1 % of isolates. One organism group has been run; the pipeline is written for more.