Skip to main content
Glama

AMR-Climate Atlas — Kausale Attribution von Klima auf antimikrobielle Resistenzen

Projekt 2 eines Drei-Projekte-Portfolios zu Klima und Gesundheit (siehe ../harvard-dataverse-climate-health-projects.md). Scoping: ../amr-climate-causal-attribution-scoping.md · Bauplan: ../amr-climate-causal-attribution-phases.md · Ausführlicher Bericht: docs/paper.md.

Status: alle vier Phasen abgeschlossen. EU/EWR-Panel (29 Länder, 2000–2023, 4 Pathogen-Antibiotika-Kombinationen), ein ordentlich getestetes Kausalmodell, ein genomischer Quercheck, eine Live-Streamlit-App, ein MCP-Server, der die Live-Datenquellen bereitstellt, und eine automatisierte, eval-gesteuerte Validierungspipeline.

App-Screenshot: K. pneumoniae/Carbapeneme-Kombination, Griechenland 2023 hervorgehoben an der Spitze der Resistenzverteilung, mit dem Hinweis auf den Kausaltest über dem Diagramm

Die Erkenntnis

Eine Panel-Regression mit Zwei-Wege-Fixeffekten (Land + Jahr), mit einem obligatorischen Permutations-Plazebotest mit 200+ Wiederholungen für jedes Ergebnis, bevor es als signifikant bezeichnet werden darf:

Kombination

n

Coef

Parametrischer p

Permutations-p

E. coli / Fluorchinolone

642

+0.11

0.77

0.62

E. coli / Cephalosporine der 3. Generation

642

+0.21

0.54

0.31

K. pneumoniae / Carbapeneme (2010-2022, verbrauchsbereinigt)

355

−1.73

0.008

0.000

S. aureus / MRSA

667

−0.13

0.89

0.69

3 von 4 Kombinationen zeigen keinerlei Wettereffekt. Die eine Ausnahme — K. pneumoniae-Carbapenem-Resistenz in der ESAC-Net-verbrauchsbereinigten Teilstichprobe 2010–2022 — ist real (stabil bei Leave-one-country-out, nicht COVID-bedingt) und richtungsmäßig durch unabhängige genomische Sequenzierungsdaten bestätigt (NCBI Pathogen Detection/MicroBIGG-E, gleiches negatives Vorzeichen, r=+0,38 Korrelation mit der phänotypischen Rate), erscheint jedoch nicht im vollständigen Panel 2000–2023, und der Antibiotikaverbrauch selbst ist in dem Modell, das ihn kontrollieren soll, nicht signifikant. Zu lesen als: ein reales, enges, stichprobenfensterspezifisches Muster, kein bestätigter kausaler Klima→AMR-Zusammenhang.

Dieses Ergebnis hat einen echten QA-Prozess überstanden — ein unabhängiger Testdurchlauf deckte einen fehlenden Permutationstest für das verbrauchsbereinigte Modell auf, und ein späterer Robustheitscheck deckte einen Confounder-Spaltenauswahl-Bug auf, der bedeutete, dass der Antibiotikaverbrauch tatsächlich nie im Modell war, wie ursprünglich berichtet. Beides wird in docs/paper.md offen offengelegt, nicht übertüncht.

Related MCP server: DMAP-AI MCP Server

Was in diesem Repo ist

app.py                         Streamlit atlas — combo explorer, causal-test caveat, rankings
mcp_server/                    live-data MCP server (NASA POWER + BigQuery, not the frozen CSV)
data/
  eu_eea_pilot_panel.csv       joined country-year-combo panel (join_panel.py's output)
  validation_baseline.json     accepted "known good" snapshot for the eval-gate pipeline
  raw/                         gitignored raw pulls (ECDC, NASA POWER, ESAC-Net, EPI)
validation_runs/               timestamped JSON logs from validate_pipeline.py runs
docs/
  phase1_access_check.md       access-verification memo
  phase3_scoping.md            causal-design scoping, grounded in the real pilot data
  phase4_scoping.md            scale-up fork (WHO GLASS vs. BigQuery vs. deepen EU/EEA) + genomic cross-check
  paper.md                     full write-up: methods, bugs found and fixed, results
src/amr_climate_atlas/
  config.py                    country lists, centroids, DOIs, ECDC/NASA POWER/BigQuery constants
  fetch_ears_net.py            EARS-Net resistance rates via ECDC Atlas (fully scriptable, see below)
  fetch_esac_net.py            antibiotic-consumption confounder (static XLSX annexes, 2010-2022)
  fetch_weather_anomaly.py     daily weather per EU/EEA country centroid (NASA POWER)
  fetch_confounders.py         EPI 2024 tabular confounder from Harvard Dataverse
  join_panel.py                joins resistance + weather + EPI into the country-year panel
  stage3_identification.py     two-way FE model + mandatory permutation test + lag check, per combo
  compare_genomic_phenotypic.py genomic (BigQuery) vs. phenotypic (EARS-Net) cross-check
  validate_pipeline.py         automated eval-gate: rerun + placebo-sanity-check + baseline drift check
.github/workflows/validate.yml ready-to-run CI (fires once this repo is pushed to GitHub)

Zwei vorab erwähnenswerte Erkenntnisse

  1. Der Export des ECDC-Surveillance-Atlas ist vollständig scriptbar, nicht nur über die manuelle Oberfläche. Der Export sendet einen einfachen parametrisierten GET, und sein downloadTokenId-Parameter wird serverseitig nicht wirklich validiert — jeder Wert funktioniert, sobald ein Session-Cookie initialisiert ist. fetch_ears_net.py zieht das vollständige Land×Jahr-Raster für eine gegebene Pathogen-Antibiotika-Kombination in zwei HTTP-Anfragen.

  2. Die Dataverse-API gibt dem Standard-python-requests-User-Agent eine 403-Antwort — nirgends dokumentiert, ein browserähnlicher User-Agent ist erforderlich (siehe config.DATAVERSE_REQUEST_HEADERS).

Schnellstart

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

PYTHONPATH=src python -m amr_climate_atlas.fetch_ears_net        # ECDC EARS-Net resistance rates
PYTHONPATH=src python -m amr_climate_atlas.fetch_esac_net        # antibiotic consumption confounder
PYTHONPATH=src python -m amr_climate_atlas.fetch_weather_anomaly # NASA POWER, EU/EEA centroids
PYTHONPATH=src python -m amr_climate_atlas.fetch_confounders     # EPI 2024 from Dataverse
PYTHONPATH=src python -m amr_climate_atlas.join_panel            # join panel
PYTHONPATH=src python -m amr_climate_atlas.stage3_identification # causal model + permutation test

streamlit run app.py                                            # the live atlas

MCP-Server — Live-Daten, nicht nur die eingefrorene CSV

mcp_server/ stellt zwei Datenquellen dieses Projekts über das Model Context Protocol bereit, sodass jeder MCP-kompatible Client (Claude Desktop, ein benutzerdefinierter Agent) Live-Wetter- oder Live-genomische-AMR-Daten auf Abruf abfragen kann, anstatt nur eu_eea_pilot_panel.csv zu lesen. Basierend auf dem offiziellen mcp-Python-SDK von Anthropic (nicht der erfundenen "MCP 2.0"/"Agent Plugins"-Terminologie, die ein früherer Entwurf dieses Scopes verwendete — siehe mcp_server/README.md für die vollständige Terminologiekorrektur und einen echten API-Drift-Befund: die FastMCP-Klasse, die die meisten Tutorials verwenden, wurde aus dem aktuellen SDK entfernt). Getestet mit einem echten externen Prozess-Client (mcp_server/test_external_client.py), nicht nur mit einem In-Process-Aufruf — echte Wetterdaten für Paris, echte Carbapenem-Gen-Prävalenz (16,83 %) für französische E. coli-Isolate. Siehe mcp_server/README.md für die Einrichtung und eine dokumentierte Namensbesonderheit (NCBI gruppiert E. coli in seinem eigenen Schema unter "E.coli and Shigella", nicht unter "Escherichia coli").

Automatisierte eval-gesteuerte Validierung

validate_pipeline.py automatisiert den Fit + Permutationstest von stage3_identification.py zu einem wiederholbaren Gate: Es schlägt fehl, wenn die Nullverteilung des Permutationstests degeneriert aussieht (ein echter Check, ob die Shuffle-Logik still bricht) oder wenn die Ergebnisse signifikant von einer gespeicherten Baseline abweichen. Dies ist so konzipiert, dass es den obigen Confounder-Bug automatisch erkannt hätte, nicht nur, wenn ein Mensch zufällig genau hinschaut. Ein GitHub-Actions-Workflow (.github/workflows/validate.yml) ist bereit, dies bei jedem Push auszuführen, sobald das Repo auf GitHub ist.

Aufgeschoben / standardmäßig nicht abgerufen

GRDI v1.10 (Raster-GeoTIFFs, 932 MB) und EnvClim (2,6 GB Geopackage) — gerasterte/subnationale Produkte, die für ein Land-Jahr-Panel unverhältnismäßig sind. fetch_confounders.py gibt ihre Dateilisten aus, damit ein zukünftiger subnationaler Build entscheiden kann, ob sich die Investition in GIS-Werkzeuge lohnt.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • NASA POWER MCP — Prediction of Worldwide Energy Resources

  • Search NOAA climate stations and datasets, fetch historical weather observations.

  • NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rishavbhattarai/amr-climate-atlas'

If you have feedback or need assistance with the MCP directory API, please join our Discord server