24-Year AMR Trends in Salmonella Typhi, Bangladesh

Reproducing and extending Tanmoy et al. 2024 (CHRF) | CHRF Portfolio

Author

Md Abrar Faiyaj

Published

June 7, 2026

Background and Biological Question

Typhoid fever, caused by Salmonella enterica serovar Typhi, remains a major public health challenge in Bangladesh. The multi-drug resistant (MDR) phenotype — defined by resistance to ampicillin, chloramphenicol, and cotrimoxazole — has dominated since the 1980s. More recently, near-universal ciprofloxacin non-susceptibility (>90%) has made it the dominant clinical challenge, while resistance to ceftriaxone and azithromycin is emerging.

A landmark 2024 CHRF study by Tanmoy et al. provided the most comprehensive picture of these dynamics, tracking 12,435 isolates over 24 years. Their central finding was paradoxical: MDR is declining — yet newer antibiotics face rising or entrenched resistance, potentially closing the window for effective oral typhoid treatment.

Biological question addressed here:

Does declining MDR in Bangladesh reflect genuine clinical progress, or does it mask a growing resistance burden for the limited antibiotics that remain?

Data Sources

Primary: Tanmoy AM et al. (2024). PLOS Neglected Tropical Diseases 18(10): e0012558. Supplementary Data S1. 12,435 individual culture-confirmed S. Typhi isolates from CHRF surveillance, Dhaka, 1999–2022. Phenotypic resistance (R/S/I) by CLSI breakpoints. Annual resistance rates calculated from raw isolate-level data.

Secondary: TyphiNET Database (typhinet.org). Dashboard-quality whole-genome sequencing (WGS) data for S. Typhi isolates globally. Used here for 1,664 Bangladesh WGS isolates and South Asian regional comparison (Bangladesh, Pakistan, India, Nepal). Provides genotype assignments, AMR determinant profiles (gyrA, parC, acrB mutations), and ciprofloxacin resistance classification (CipNS, CipR, XDR).

Methods

Trend analysis: Linear regression (lm(pct_resistant ~ year)) applied to each antibiotic independently. Slope = percentage-point change per surveillance year. Statistical significance threshold: p < 0.05. R² reported as measure of linear fit.

Period summary: Annual resistance rates grouped into five predefined surveillance periods (1999–2004, 2005–2009, 2010–2014, 2015–2018, 2019–2022). Mean resistance rate calculated per period.

Genomic validation: TyphiNET isolates filtered to “Include” (dashboard-quality) classification. Ciprofloxacin non-susceptibility (CipNS) and full resistance (CipR) trends analysed by year. Fluoroquinolone resistance mutation prevalence (gyrA S83F, gyrA S83Y, gyrA D87N, parC E84K, acrB R717Q) calculated across all Bangladesh WGS isolates. South Asian XDR comparison across Bangladesh, Pakistan, India, Nepal.

All analysis performed in R ≥ 4.3 (tidyverse); reproducible via renv.

Results

Code
library(tidyverse)
library(here)
library(kableExtra)

bangladesh <- readRDS(here("data","processed","bangladesh_amr.rds"))
trend_res  <- read_csv(here("results","trend_regression.csv"),  show_col_types = FALSE)
period_sum <- read_csv(here("results","period_summary.csv"),    show_col_types = FALSE)

bd_genomic <- readRDS(here("data","processed","bd_genomic.rds"))
sa_genomic <- readRDS(here("data","processed","sa_genomic.rds"))

Figure 1: The central AMR paradox

Code
knitr::include_graphics(here("figures","fig1_amr_trends.png"))

AMR trends in S. Typhi, Bangladesh 1999–2022

Figure 1. The central finding of Tanmoy et al. 2024 reproduced from raw isolate data. MDR declined from 37.5% (1999) to 17.257319% (2022). Ciprofloxacin non-susceptibility, however, has remained above 90% continuously throughout the 24-year period — making it the dominant and unresolved clinical challenge. Azithromycin resistance is low but rising at the right edge of the chart.

Figure 2: Diverging AMR trajectories by drug class

Code
knitr::include_graphics(here("figures","fig2_drug_class_divergence.png"))

Classical vs modern antibiotic resistance divergence

Figure 2. First-line agents (ampicillin, chloramphenicol, cotrimoxazole) show declining resistance — a genuine gain reflecting reduced prescribing pressure. However, the drugs that replaced them now face growing resistance. The MDR decline does not represent a narrowing of the clinical problem; it represents a transfer of that problem to a different set of antibiotics.

Figure 3: AMR prevalence by surveillance era

Code
knitr::include_graphics(here("figures","fig3_period_summary.png"))

Mean resistance rates per 5-year surveillance period

Figure 3. Period-level mean resistance rates confirm the temporal trajectory. MDR prevalence falls across successive eras. Ciprofloxacin non-susceptibility bars remain uniformly tall throughout. Azithromycin resistance, smallest in the earliest period, is the bar showing the steepest relative growth in the final era (2019–2022).

Trend regression summary

Code
trend_res %>%
  select(
    Antibiotic     = antibiotic,
    `Slope (%/yr)` = slope_pct_per_year,
    R2             = r_squared,
    `P-value`      = p_value,
    Direction      = direction,
    Significant    = significant
  ) %>%
  kbl(caption = "Table 1. Linear trend regression for AMR rates, Bangladesh 1999–2022") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed")) %>%
  row_spec(which(trend_res$significant == "Yes"), bold = TRUE)
Table 1. Linear trend regression for AMR rates, Bangladesh 1999–2022
Antibiotic Slope (%/yr) R2 P-value Direction Significant
MDR -2.13 0.616 0.0000 Decreasing ↓ Yes
Ciprofloxacin NS 0.73 0.329 0.0034 Increasing ↑ Yes
Ceftriaxone -0.09 0.209 0.0246 Decreasing ↓ Yes
Azithromycin 0.12 0.395 0.0017 Increasing ↑ Yes
Ampicillin -2.09 0.728 0.0000 Decreasing ↓ Yes
Chloramphenicol -2.20 0.637 0.0000 Decreasing ↓ Yes
Cotrimoxazole -2.22 0.641 0.0000 Decreasing ↓ Yes

Period summary

Code
period_sum %>%
  kbl(caption = "Table 2. Mean AMR rates by 5-year surveillance period") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"))
Table 2. Mean AMR rates by 5-year surveillance period
period n_isolates mean_mdr mean_cip_ns mean_cef mean_azi
1999–2004 296 54.5 84.8 1.5 0.0
2005–2009 2985 50.7 96.0 0.0 0.0
2010–2014 1225 22.8 98.7 0.0 1.2
2015–2018 4009 21.3 97.7 0.0 1.5
2019–2022 3920 16.5 97.9 0.0 2.1

Genomic Validation: TyphiNET Database

The phenotypic trends above describe what resistance looks like in culture. The TyphiNET WGS data below explains why — the specific mutations encoding that resistance, and where Bangladesh stands relative to its regional neighbours.

Figure 4: South Asia genomic AMR profile

Code
knitr::include_graphics(here("figures","fig4_south_asia_genomic.png"))

South Asia genomic AMR comparison (TyphiNET)

Figure 4. Country-level genomic AMR comparison from TyphiNET WGS data (Bangladesh, Pakistan, India, Nepal). The critical finding: Bangladesh has 0% XDR while Pakistan is at 35.4% XDR. Pakistan’s XDR outbreak of 2016–2019 arose from a trajectory that Bangladesh currently mirrors in ciprofloxacin resistance accumulation. Bangladesh is at the inflection point — not past it. The window to act remains open.

Figure 5: The molecular mechanism of ciprofloxacin resistance

Code
knitr::include_graphics(here("figures","fig5_genomic_mechanism.png"))

CipR escalation and gyrA mutation landscape (TyphiNET Bangladesh)

Figure 5. Two panels from TyphiNET Bangladesh WGS data. Top: Although CipNS has been near-universal throughout the surveillance period, full ciprofloxacin resistance (CipR) is rising — from 0.9% (2016) to 8.2% (2018). The bacteria are accumulating a second resistance mutation on top of the first; the flat CipNS line conceals an escalating molecular process. Bottom: gyrA S83F alone is present in 78% of all Bangladesh WGS isolates — a single mutation that has swept through the population and explains the near-universal non-susceptibility observed phenotypically in the Tanmoy surveillance data.

Genomic summary statistics

Code
bd_genomic %>%
  summarise(
    `Total WGS isolates (Bangladesh)` = as.character(n()),
    `Year range` = paste(min(year, na.rm=TRUE), "–", max(year, na.rm=TRUE)),
    `% CipNS`    = paste0(round(mean(cip_ns, na.rm=TRUE)*100, 1), "%"),
    `% CipR (full)` = paste0(round(mean(cip_r,  na.rm=TRUE)*100, 1), "%"),
    `% XDR`      = paste0(round(mean(is_xdr, na.rm=TRUE)*100, 1), "%"),
    `% H58 lineage (4.3.1)` = paste0(round(mean(is_H58, na.rm=TRUE)*100, 1), "%")
  ) %>%
  pivot_longer(everything(), names_to = "Metric", values_to = "Value") %>%
  kbl(caption = "Table 3. Bangladesh WGS isolate summary (TyphiNET)") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"), full_width = FALSE)
Table 3. Bangladesh WGS isolate summary (TyphiNET)
Metric Value
Total WGS isolates (Bangladesh) 1664
Year range 2000 – 2019
% CipNS 99.3%
% CipR (full) 5.9%
% XDR 0%
% H58 lineage (4.3.1) 43.4%

Discussion

The 24-year Bangladesh phenotypic data reveal that the AMR problem has not been solved — it has been transferred. MDR decline is real, but it reflects reduced prescribing of drugs that were already clinically inadequate. The antibiotics that replaced them — ciprofloxacin, ceftriaxone, azithromycin — now accumulate resistance under their own prescribing pressure.

The TyphiNET genomic data adds mechanistic resolution to this picture. The near-universal ciprofloxacin non-susceptibility seen in culture is explained by a single mutation — gyrA S83F — present in 78% of Bangladesh WGS isolates. This mutation has effectively fixed itself in the Bangladesh S. Typhi population. What the phenotypic time series shows as a flat line near 100%, the genomic data reveals as a sweep. Furthermore, CipR (full resistance, typically requiring a second mutation) is now rising, suggesting the population is not static but continuing to accumulate resistance determinants.

The South Asian comparison is the most urgent finding. Bangladesh currently has 0% XDR; Pakistan reached 35.4% following a well-documented 2016–2019 outbreak that arose from exactly the AMR accumulation trajectory Bangladesh is now on. The difference between the two countries is not biology — it is time.

The evidence-based response is already underway. On 12 October 2025, Bangladesh launched a nationwide Typhoid Conjugate Vaccine campaign covering 50 million children, projected to prevent 6,000 deaths per year. The data in this repository is the scientific argument that informed that decision.

Reproducibility

Full code, renv lockfile, and training notes: https://github.com/mdabrarfaiyaj/Typhoid-Fever-in-Bangladesh

Live report: https://mdabrarfaiyaj.github.io/Typhoid-Fever-in-Bangladesh

Interactive dashboard: https://u3j9z9-md0abrar-faiyaj.shinyapps.io/typhoid-amr-bangladesh/

Code
sessionInfo()
R version 4.5.2 (2025-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26200)

Matrix products: default
  LAPACK version 3.12.1

locale:
[1] LC_COLLATE=English_United States.utf8 
[2] LC_CTYPE=English_United States.utf8   
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.utf8    

time zone: Asia/Dhaka
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
 [1] kableExtra_1.4.0 here_1.0.2       lubridate_1.9.5  forcats_1.0.1   
 [5] stringr_1.6.0    dplyr_1.2.1      purrr_1.2.2      readr_2.2.0     
 [9] tidyr_1.3.2      tibble_3.3.1     ggplot2_4.0.2    tidyverse_2.0.0 

loaded via a namespace (and not attached):
 [1] generics_0.1.4     renv_1.2.2         xml2_1.5.2         stringi_1.8.7     
 [5] hms_1.1.4          digest_0.6.39      magrittr_2.0.5     evaluate_1.0.5    
 [9] grid_4.5.2         timechange_0.4.0   RColorBrewer_1.1-3 fastmap_1.2.0     
[13] rprojroot_2.1.1    jsonlite_2.0.0     viridisLite_0.4.3  scales_1.4.0      
[17] textshaping_1.0.5  cli_3.6.6          crayon_1.5.3       rlang_1.2.0       
[21] bit64_4.8.0        withr_3.0.2        yaml_2.3.12        otel_0.2.0        
[25] parallel_4.5.2     tools_4.5.2        tzdb_0.5.0         png_0.1-9         
[29] vctrs_0.7.3        R6_2.6.1           lifecycle_1.0.5    bit_4.6.0         
[33] htmlwidgets_1.6.4  vroom_1.7.1        pkgconfig_2.0.3    pillar_1.11.1     
[37] gtable_0.3.6       glue_1.8.1         systemfonts_1.3.2  xfun_0.57         
[41] tidyselect_1.2.1   rstudioapi_0.18.0  knitr_1.51         farver_2.1.2      
[45] htmltools_0.5.9    rmarkdown_2.31     svglite_2.2.2      compiler_4.5.2    
[49] S7_0.2.1-1        

References

  1. Tanmoy AM, Hooda Y, Sajib MSI et al. (2024). Trends in antimicrobial resistance amongst Salmonella Typhi in Bangladesh: A 24-year retrospective observational study (1999–2022). PLOS Neglected Tropical Diseases 18(10): e0012558. https://doi.org/10.1371/journal.pntd.0012558

  2. TyphiNET Database. Wellcome Sanger Institute and global collaborators. Whole-genome sequencing surveillance of Salmonella Typhi. https://www.typhinet.org

  3. Tanmoy AM et al. (2018). Salmonella enterica Serovar Typhi in Bangladesh: Exploration of Genomic Diversity and Antimicrobial Resistance. mBio 9:10.1128/mbio.02112-18. https://doi.org/10.1128/mbio.02112-18

  4. Government of Bangladesh, UNICEF, Gavi, WHO (2025).Bangladesh launches nationwide Typhoid Conjugate Vaccine campaign to protect 50 million children. Campaign launch: 12 October 2025. https://www.unicef.org/bangladesh/en/press-releases/bangladesh-launches-nationwide-typhoid-conjugate-vaccine-campaign-protect-50-million