diff --git a/404.html b/404.html index eecd18100..b151a60b1 100644 --- a/404.html +++ b/404.html @@ -31,7 +31,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/CLAUDE.html b/CLAUDE.html index a943a3e2e..c28654586 100644 --- a/CLAUDE.html +++ b/CLAUDE.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -230,9 +230,10 @@ _pkgdown.yml # pkgdown website configuration currenttag=$(git describe --tags --abbrev=0 | sed 's/v//') currenttagfull=$(git describe --tags --abbrev=0) defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$') -currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch}) -currentversion="${currenttag}.$((currentcommit + 9001 + 1))" -echo "$currentversion" +git fetch origin ${defaultbranch} --quiet +currentcommit=$(git rev-list --count ${currenttagfull}..origin/${defaultbranch}) +currentversion="${currenttag}.$((currentcommit + 9001 + 1))" +echo "$currentversion" The + 1 accounts for the fact that this PR’s squash commit is not yet on the default branch. Set both of these files to the resulting version string (and only once per PR, even across multiple commits): DESCRIPTION — the Version: field diff --git a/CLAUDE.md b/CLAUDE.md index 947c7607b..f8966f20e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -191,7 +191,8 @@ string to use: currenttag=$(git describe --tags --abbrev=0 | sed 's/v//') currenttagfull=$(git describe --tags --abbrev=0) defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$') -currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch}) +git fetch origin ${defaultbranch} --quiet +currentcommit=$(git rev-list --count ${currenttagfull}..origin/${defaultbranch}) currentversion="${currenttag}.$((currentcommit + 9001 + 1))" echo "$currentversion" ``` diff --git a/LICENSE-text.html b/LICENSE-text.html index a2a98cc9d..0f7146b6a 100644 --- a/LICENSE-text.html +++ b/LICENSE-text.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/AMR.html b/articles/AMR.html index 175f01068..616fbde2f 100644 --- a/articles/AMR.html +++ b/articles/AMR.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -1177,77 +1177,447 @@ function on a grouped tibble, i.e., using gender ) %>% wisca(antibiotics = c("TZP", "TZP+TOB", "TZP+GEN")) - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + age_group gender +Amikacin +Amoxicillin +Amoxicillin/clavulanic acid +Ampicillin +Azithromycin +Benzylpenicillin +Cefazolin +Cefepime +Cefotaxime +Cefoxitin +Ceftazidime +Ceftriaxone +Cefuroxime +Chloramphenicol +Ciprofloxacin +Clindamycin +Colistin +Doxycycline +Erythromycin +Flucloxacillin +Fosfomycin +Gentamicin +Imipenem +Kanamycin +Linezolid +Meropenem +Metronidazole +Moxifloxacin +Mupirocin +Nitrofurantoin +Oxacillin Piperacillin/tazobactam -Piperacillin/tazobactam + Gentamicin -Piperacillin/tazobactam + Tobramycin +Rifampicin +Teicoplanin +Tetracycline +Tigecycline +Tobramycin +Trimethoprim +Trimethoprim/sulfamethoxazole +Vancomycin 0-24 F -56.6% (25.2-83.9%) -73.6% (48-91.6%) -68.6% (42.9-89.5%) +45.4% (15.4-79%) +50.1% (20.5-77.6%) +69% (44.5-88.5%) +50.4% (20.6-77.3%) +41.9% (18.1-65.6%) +36.1% (12.3-64.3%) +NA +NA +63.9% (34.6-87.6%) +56.7% (25.9-85.8%) +51.5% (25.6-74.4%) +63.4% (32-88.1%) +70.4% (45.4-89.1%) +54% (22.3-85.3%) +69.8% (45.9-88.9%) +39.3% (17.7-64.6%) +45.3% (18.1-75.9%) +50.1% (21.5-80.5%) +41.7% (19.1-67.6%) +55.8% (23.7-83.3%) +63.5% (32.6-89.4%) +69.3% (44.6-88.3%) +63.6% (36.1-88.2%) +45.5% (15.7-77.7%) +43.3% (17.8-71.2%) +55.9% (24.3-82.2%) +NA +NA +56.5% (24.3-85%) +56.8% (30.9-82.3%) +50.5% (19.4-80.8%) +56.9% (26.7-85%) +42.3% (18.3-68.8%) +40.2% (17.6-67.7%) +49.8% (20-79.3%) +56.1% (22-85.4%) +64.5% (39.6-85.5%) +69.7% (42.3-90.4%) +75.4% (52.1-91.7%) +48.5% (24.3-72.6%) 0-24 M -60.3% (28.4-87.1%) -79.7% (57.6-94.2%) -60.1% (29.5-87.7%) +41.9% (15.2-72.5%) +49.4% (23.3-75.5%) +73.8% (51.8-90.1%) +49.3% (22.7-76%) +63.4% (40.7-83.5%) +41.8% (20.4-64.8%) +56.8% (25.2-83.5%) +58.2% (29.1-85.8%) +59.7% (29.1-87.4%) +59.3% (29.1-86.6%) +24.9% (8.9-47.3%) +58.5% (28-86.5%) +72.1% (47.9-90.5%) +NA +77.2% (53-93.2%) +61.6% (36.2-83.6%) +25.5% (8.7-46.1%) +69.4% (44.6-89.4%) +63.4% (41.8-82.7%) +64% (37.6-85.6%) +NA +63.5% (40.9-83.1%) +58.7% (27.6-86.5%) +41.8% (13.6-71.2%) +48.3% (17.9-78%) +59.2% (27.4-86.4%) +NA +NA +NA +53% (21.3-83.7%) +57.2% (24.6-84.6%) +59.9% (29.7-85.6%) +48.2% (16.1-80.4%) +48.4% (17.4-79.8%) +68% (43.5-87.3%) +65.7% (36-89.2%) +44.3% (17.2-73.4%) +69.4% (46.9-87.8%) +74% (50.8-90.9%) +75.3% (52.4-92.2%) 25-49 F -66.6% (45.6-85.5%) -91.7% (84.6-96.7%) -83% (67.9-94%) +46.8% (26.7-65.6%) +39% (26.3-52.9%) +73.8% (63.5-82.6%) +39.3% (27.2-54.4%) +54.8% (44.9-64.8%) +36.5% (26.3-47.1%) +66.4% (46.1-85%) +69.2% (49.1-86.2%) +70.2% (50.5-86.2%) +68.1% (48.6-85.4%) +27.9% (19.2-37.9%) +70.1% (50.5-87.1%) +71.4% (61.7-80.4%) +58.2% (35.3-79.9%) +85.5% (74.1-94.2%) +67.1% (55.8-77.4%) +25.8% (17-36%) +75.5% (61.2-88.2%) +54.9% (44.8-65.6%) +55.2% (37.8-72.5%) +60.9% (38.3-81.8%) +75.2% (65.7-83.5%) +69.9% (50.1-86.6%) +37.5% (17.7-57.9%) +50.7% (30.8-68.7%) +69.4% (48.6-86.7%) +NA +56.9% (36.2-77.7%) +53.3% (30.9-75.6%) +60.1% (38.1-81.8%) +64.3% (43.2-83.6%) +66% (45.7-85.2%) +50.1% (30-69.6%) +38.8% (19.6-58.9%) +75.8% (61.6-88.1%) +73.3% (56.6-89.5%) +62.7% (47.6-77.1%) +70.4% (58.7-80.2%) +90% (82.9-95.4%) +71.6% (61.7-80.4%) 25-49 M -56.4% (29.1-81.7%) -89.2% (80.3-95.7%) -72.4% (49.7-90%) +49.8% (24.2-75.8%) +16.5% (8.1-27.4%) +72.4% (60.5-83.5%) +16.6% (7.7-28.2%) +55.9% (43.6-67.9%) +24.9% (14.7-37.6%) +60.3% (33.2-82.4%) +55.3% (27.6-81.8%) +55.9% (29.7-81.1%) +56.2% (27.7-82.1%) +22.2% (12.7-33.9%) +55.6% (29.1-81.8%) +73.7% (62.6-83.8%) +52.9% (25.2-79.6%) +67.1% (53-79.8%) +57.8% (43.5-71.8%) +22.3% (12.6-33.6%) +73% (57.8-85.5%) +55.8% (43-68.2%) +66.5% (51.6-79.4%) +63.1% (40.3-84.5%) +83.9% (74.5-91.7%) +56.4% (28.4-84%) +45.4% (18.9-73.8%) +59.4% (37.6-77.9%) +56.3% (28.8-81.1%) +NA +52.8% (24.7-78.7%) +64.2% (40.2-84.5%) +62.9% (37.7-85.1%) +60.5% (37.1-80.7%) +55.8% (29.4-82.9%) +65.4% (48.7-80.8%) +54.5% (31.7-73.7%) +72.8% (58.7-84.8%) +84.8% (72.4-93.6%) +66.7% (44.5-84.1%) +71.4% (58.9-82.6%) +86.6% (77.9-93.7%) +77.1% (65.5-87.1%) 50-74 F -67.8% (55.8-80.1%) -95.6% (93.2-97.5%) -88.1% (80.4-94.6%) +44.8% (35.8-54.1%) +30.1% (24.9-35.3%) +74.1% (69.2-78.7%) +30% (24.6-35.4%) +41.9% (36.5-47.3%) +23.5% (18.6-29%) +73.1% (62-82.9%) +76.6% (66.1-86%) +74.8% (64.9-84.5%) +74.6% (64.2-83.3%) +37.5% (32.3-43.4%) +74.8% (64.4-83.8%) +74.5% (69.7-78.9%) +61.2% (40.3-82.4%) +79.4% (73-85%) +44.9% (38.7-51%) +37.8% (32.7-43.3%) +63.8% (47.6-80.1%) +41.7% (36.6-46.9%) +58.1% (40-75.1%) +65.2% (53.5-76.6%) +78.7% (73.8-83.2%) +80.6% (70.3-90%) +28.1% (10.1-46.6%) +53.2% (42.9-62.4%) +79.3% (68.7-88.6%) +NA +49.5% (37.5-61.8%) +67.8% (48.5-86%) +75.1% (63.3-86.3%) +56.6% (37.8-74.2%) +67.7% (56.4-79.6%) +50.6% (40.9-59.1%) +41.3% (31.5-50.4%) +59% (48.3-74.5%) +87.7% (80.4-94.1%) +62.2% (55.4-68.4%) +55.5% (49.8-61.1%) +68% (62.7-73.3%) +60.9% (55.8-66.1%) 50-74 M -66.2% (54.8-75.8%) -95.2% (92.4-97.4%) -84.4% (74.4-92.5%) +38.8% (30.6-48.6%) +34.6% (29.1-40.3%) +75% (70-79.5%) +34.7% (29.2-40.5%) +43.4% (37.8-48.5%) +21% (16.5-26.4%) +64.3% (54.1-74.1%) +65.9% (56.5-75.4%) +67.3% (58.3-77%) +65.9% (56.1-75.9%) +32.9% (27.6-38%) +67.3% (57.4-76.8%) +74.1% (69.2-78.8%) +63.5% (42.4-83%) +76.9% (71.6-81.9%) +47.3% (40.9-53.8%) +30.8% (26.1-36.1%) +68.5% (53.5-81.9%) +43.4% (37.7-48.8%) +58.1% (42.4-73.2%) +68.1% (53.5-82.2%) +79.1% (74.4-83.1%) +69% (59.7-78.3%) +24.8% (9.5-40.5%) +49.7% (35-63.2%) +68.1% (58.1-77.6%) +53.8% (32-75%) +51.7% (36.1-67.3%) +68.8% (51.1-85.7%) +70.2% (54.7-85.3%) +53.2% (37.5-68.7%) +66.5% (55-76.8%) +56.2% (45.8-65.4%) +44% (30.3-57.5%) +71.9% (58.2-82.2%) +86.8% (77.3-93.6%) +54.1% (46.9-61.4%) +67.1% (61.5-72.5%) +81% (76.4-85.2%) +66.3% (61-71.2%) 75+ F -71.7% (61-81.7%) -96.6% (94.4-98.2%) -90.6% (84.6-95.3%) +51.4% (41.7-62%) +30.9% (26.2-36.5%) +74.4% (70.3-78.6%) +30.9% (25.7-36.1%) +36.6% (32-41.6%) +20.7% (16.2-25.4%) +73.6% (63.6-82.5%) +79.1% (70.6-86.8%) +78.6% (69.9-86.3%) +76% (67.5-83.7%) +43.1% (38.6-48%) +78.9% (70.5-86.4%) +77% (72.6-81.3%) +63.2% (43.2-84.1%) +77.7% (72.1-83.2%) +41.2% (36-46.4%) +39.1% (34.2-44.4%) +63.7% (46.3-80.6%) +36.5% (31.9-41.2%) +57.1% (39.8-76%) +65.8% (57.2-73.5%) +84.6% (80.6-88%) +81.9% (73.7-89.5%) +33.3% (13.7-53%) +49.6% (42.3-56.1%) +81.3% (73.2-88.9%) +55.9% (33.5-76.5%) +41% (31.4-51.8%) +63.7% (43.8-82.3%) +77.8% (66-87.4%) +56.3% (37.3-75.1%) +71.8% (62-82.2%) +48.3% (41.5-54.9%) +43.3% (36.2-50.7%) +63% (45.3-80.3%) +85.9% (79.9-90.9%) +70.4% (64.1-76.8%) +60.4% (55.1-65.8%) +77.6% (73.4-82.1%) +55.3% (50.4-60.1%) 75+ M -72.9% (63.8-82%) -96.6% (94.6-98.1%) -92.8% (87.8-96.5%) +52.6% (43.3-62.6%) +33% (28.1-38%) +77.4% (73.3-81.5%) +33% (28.2-38.2%) +36.8% (32.3-41.8%) +17.9% (12.6-23.2%) +64.4% (55.4-73.3%) +71.2% (63.1-79.1%) +67.9% (59.5-75.8%) +65.3% (56.3-73.6%) +42.6% (37.8-47.4%) +68.2% (59.7-76.4%) +75.1% (70.9-79.2%) +64.1% (45.8-81.8%) +77.6% (72-82.6%) +41% (36-46.4%) +39.9% (35.1-44.5%) +62.1% (46-78.8%) +36.9% (32.4-41.4%) +59.7% (43.4-76.6%) +64.7% (56.6-73.6%) +83% (79.4-86.7%) +75.7% (66.6-83%) +31.6% (12.1-51.7%) +51.8% (44.9-58%) +74.2% (65.8-82.7%) +NA +52.2% (41.5-60.8%) +69.3% (50.5-86.4%) +72.2% (58.7-83.4%) +59.3% (41.6-76.7%) +73.1% (64.3-81.4%) +49.9% (42.4-56.9%) +46.3% (38.2-53.1%) +59.7% (44.2-75.7%) +86.8% (81.4-91.3%) +72% (66.3-77.6%) +55.8% (50.3-61.1%) +73.3% (68.9-77.6%) +57% (52.2-61.6%) diff --git a/articles/AMR.md b/articles/AMR.md index e9f2ee4d6..ffa00ceeb 100644 --- a/articles/AMR.md +++ b/articles/AMR.md @@ -805,16 +805,16 @@ example_isolates %>% wisca(antibiotics = c("TZP", "TZP+TOB", "TZP+GEN")) ``` -| age_group | gender | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin | -|:---|:---|:---|:---|:---| -| 0-24 | F | 56.6% (25.2-83.9%) | 73.6% (48-91.6%) | 68.6% (42.9-89.5%) | -| 0-24 | M | 60.3% (28.4-87.1%) | 79.7% (57.6-94.2%) | 60.1% (29.5-87.7%) | -| 25-49 | F | 66.6% (45.6-85.5%) | 91.7% (84.6-96.7%) | 83% (67.9-94%) | -| 25-49 | M | 56.4% (29.1-81.7%) | 89.2% (80.3-95.7%) | 72.4% (49.7-90%) | -| 50-74 | F | 67.8% (55.8-80.1%) | 95.6% (93.2-97.5%) | 88.1% (80.4-94.6%) | -| 50-74 | M | 66.2% (54.8-75.8%) | 95.2% (92.4-97.4%) | 84.4% (74.4-92.5%) | -| 75+ | F | 71.7% (61-81.7%) | 96.6% (94.4-98.2%) | 90.6% (84.6-95.3%) | -| 75+ | M | 72.9% (63.8-82%) | 96.6% (94.6-98.1%) | 92.8% (87.8-96.5%) | +| age_group | gender | Amikacin | Amoxicillin | Amoxicillin/clavulanic acid | Ampicillin | Azithromycin | Benzylpenicillin | Cefazolin | Cefepime | Cefotaxime | Cefoxitin | Ceftazidime | Ceftriaxone | Cefuroxime | Chloramphenicol | Ciprofloxacin | Clindamycin | Colistin | Doxycycline | Erythromycin | Flucloxacillin | Fosfomycin | Gentamicin | Imipenem | Kanamycin | Linezolid | Meropenem | Metronidazole | Moxifloxacin | Mupirocin | Nitrofurantoin | Oxacillin | Piperacillin/tazobactam | Rifampicin | Teicoplanin | Tetracycline | Tigecycline | Tobramycin | Trimethoprim | Trimethoprim/sulfamethoxazole | Vancomycin | +|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---| +| 0-24 | F | 45.4% (15.4-79%) | 50.1% (20.5-77.6%) | 69% (44.5-88.5%) | 50.4% (20.6-77.3%) | 41.9% (18.1-65.6%) | 36.1% (12.3-64.3%) | NA | NA | 63.9% (34.6-87.6%) | 56.7% (25.9-85.8%) | 51.5% (25.6-74.4%) | 63.4% (32-88.1%) | 70.4% (45.4-89.1%) | 54% (22.3-85.3%) | 69.8% (45.9-88.9%) | 39.3% (17.7-64.6%) | 45.3% (18.1-75.9%) | 50.1% (21.5-80.5%) | 41.7% (19.1-67.6%) | 55.8% (23.7-83.3%) | 63.5% (32.6-89.4%) | 69.3% (44.6-88.3%) | 63.6% (36.1-88.2%) | 45.5% (15.7-77.7%) | 43.3% (17.8-71.2%) | 55.9% (24.3-82.2%) | NA | NA | 56.5% (24.3-85%) | 56.8% (30.9-82.3%) | 50.5% (19.4-80.8%) | 56.9% (26.7-85%) | 42.3% (18.3-68.8%) | 40.2% (17.6-67.7%) | 49.8% (20-79.3%) | 56.1% (22-85.4%) | 64.5% (39.6-85.5%) | 69.7% (42.3-90.4%) | 75.4% (52.1-91.7%) | 48.5% (24.3-72.6%) | +| 0-24 | M | 41.9% (15.2-72.5%) | 49.4% (23.3-75.5%) | 73.8% (51.8-90.1%) | 49.3% (22.7-76%) | 63.4% (40.7-83.5%) | 41.8% (20.4-64.8%) | 56.8% (25.2-83.5%) | 58.2% (29.1-85.8%) | 59.7% (29.1-87.4%) | 59.3% (29.1-86.6%) | 24.9% (8.9-47.3%) | 58.5% (28-86.5%) | 72.1% (47.9-90.5%) | NA | 77.2% (53-93.2%) | 61.6% (36.2-83.6%) | 25.5% (8.7-46.1%) | 69.4% (44.6-89.4%) | 63.4% (41.8-82.7%) | 64% (37.6-85.6%) | NA | 63.5% (40.9-83.1%) | 58.7% (27.6-86.5%) | 41.8% (13.6-71.2%) | 48.3% (17.9-78%) | 59.2% (27.4-86.4%) | NA | NA | NA | 53% (21.3-83.7%) | 57.2% (24.6-84.6%) | 59.9% (29.7-85.6%) | 48.2% (16.1-80.4%) | 48.4% (17.4-79.8%) | 68% (43.5-87.3%) | 65.7% (36-89.2%) | 44.3% (17.2-73.4%) | 69.4% (46.9-87.8%) | 74% (50.8-90.9%) | 75.3% (52.4-92.2%) | +| 25-49 | F | 46.8% (26.7-65.6%) | 39% (26.3-52.9%) | 73.8% (63.5-82.6%) | 39.3% (27.2-54.4%) | 54.8% (44.9-64.8%) | 36.5% (26.3-47.1%) | 66.4% (46.1-85%) | 69.2% (49.1-86.2%) | 70.2% (50.5-86.2%) | 68.1% (48.6-85.4%) | 27.9% (19.2-37.9%) | 70.1% (50.5-87.1%) | 71.4% (61.7-80.4%) | 58.2% (35.3-79.9%) | 85.5% (74.1-94.2%) | 67.1% (55.8-77.4%) | 25.8% (17-36%) | 75.5% (61.2-88.2%) | 54.9% (44.8-65.6%) | 55.2% (37.8-72.5%) | 60.9% (38.3-81.8%) | 75.2% (65.7-83.5%) | 69.9% (50.1-86.6%) | 37.5% (17.7-57.9%) | 50.7% (30.8-68.7%) | 69.4% (48.6-86.7%) | NA | 56.9% (36.2-77.7%) | 53.3% (30.9-75.6%) | 60.1% (38.1-81.8%) | 64.3% (43.2-83.6%) | 66% (45.7-85.2%) | 50.1% (30-69.6%) | 38.8% (19.6-58.9%) | 75.8% (61.6-88.1%) | 73.3% (56.6-89.5%) | 62.7% (47.6-77.1%) | 70.4% (58.7-80.2%) | 90% (82.9-95.4%) | 71.6% (61.7-80.4%) | +| 25-49 | M | 49.8% (24.2-75.8%) | 16.5% (8.1-27.4%) | 72.4% (60.5-83.5%) | 16.6% (7.7-28.2%) | 55.9% (43.6-67.9%) | 24.9% (14.7-37.6%) | 60.3% (33.2-82.4%) | 55.3% (27.6-81.8%) | 55.9% (29.7-81.1%) | 56.2% (27.7-82.1%) | 22.2% (12.7-33.9%) | 55.6% (29.1-81.8%) | 73.7% (62.6-83.8%) | 52.9% (25.2-79.6%) | 67.1% (53-79.8%) | 57.8% (43.5-71.8%) | 22.3% (12.6-33.6%) | 73% (57.8-85.5%) | 55.8% (43-68.2%) | 66.5% (51.6-79.4%) | 63.1% (40.3-84.5%) | 83.9% (74.5-91.7%) | 56.4% (28.4-84%) | 45.4% (18.9-73.8%) | 59.4% (37.6-77.9%) | 56.3% (28.8-81.1%) | NA | 52.8% (24.7-78.7%) | 64.2% (40.2-84.5%) | 62.9% (37.7-85.1%) | 60.5% (37.1-80.7%) | 55.8% (29.4-82.9%) | 65.4% (48.7-80.8%) | 54.5% (31.7-73.7%) | 72.8% (58.7-84.8%) | 84.8% (72.4-93.6%) | 66.7% (44.5-84.1%) | 71.4% (58.9-82.6%) | 86.6% (77.9-93.7%) | 77.1% (65.5-87.1%) | +| 50-74 | F | 44.8% (35.8-54.1%) | 30.1% (24.9-35.3%) | 74.1% (69.2-78.7%) | 30% (24.6-35.4%) | 41.9% (36.5-47.3%) | 23.5% (18.6-29%) | 73.1% (62-82.9%) | 76.6% (66.1-86%) | 74.8% (64.9-84.5%) | 74.6% (64.2-83.3%) | 37.5% (32.3-43.4%) | 74.8% (64.4-83.8%) | 74.5% (69.7-78.9%) | 61.2% (40.3-82.4%) | 79.4% (73-85%) | 44.9% (38.7-51%) | 37.8% (32.7-43.3%) | 63.8% (47.6-80.1%) | 41.7% (36.6-46.9%) | 58.1% (40-75.1%) | 65.2% (53.5-76.6%) | 78.7% (73.8-83.2%) | 80.6% (70.3-90%) | 28.1% (10.1-46.6%) | 53.2% (42.9-62.4%) | 79.3% (68.7-88.6%) | NA | 49.5% (37.5-61.8%) | 67.8% (48.5-86%) | 75.1% (63.3-86.3%) | 56.6% (37.8-74.2%) | 67.7% (56.4-79.6%) | 50.6% (40.9-59.1%) | 41.3% (31.5-50.4%) | 59% (48.3-74.5%) | 87.7% (80.4-94.1%) | 62.2% (55.4-68.4%) | 55.5% (49.8-61.1%) | 68% (62.7-73.3%) | 60.9% (55.8-66.1%) | +| 50-74 | M | 38.8% (30.6-48.6%) | 34.6% (29.1-40.3%) | 75% (70-79.5%) | 34.7% (29.2-40.5%) | 43.4% (37.8-48.5%) | 21% (16.5-26.4%) | 64.3% (54.1-74.1%) | 65.9% (56.5-75.4%) | 67.3% (58.3-77%) | 65.9% (56.1-75.9%) | 32.9% (27.6-38%) | 67.3% (57.4-76.8%) | 74.1% (69.2-78.8%) | 63.5% (42.4-83%) | 76.9% (71.6-81.9%) | 47.3% (40.9-53.8%) | 30.8% (26.1-36.1%) | 68.5% (53.5-81.9%) | 43.4% (37.7-48.8%) | 58.1% (42.4-73.2%) | 68.1% (53.5-82.2%) | 79.1% (74.4-83.1%) | 69% (59.7-78.3%) | 24.8% (9.5-40.5%) | 49.7% (35-63.2%) | 68.1% (58.1-77.6%) | 53.8% (32-75%) | 51.7% (36.1-67.3%) | 68.8% (51.1-85.7%) | 70.2% (54.7-85.3%) | 53.2% (37.5-68.7%) | 66.5% (55-76.8%) | 56.2% (45.8-65.4%) | 44% (30.3-57.5%) | 71.9% (58.2-82.2%) | 86.8% (77.3-93.6%) | 54.1% (46.9-61.4%) | 67.1% (61.5-72.5%) | 81% (76.4-85.2%) | 66.3% (61-71.2%) | +| 75+ | F | 51.4% (41.7-62%) | 30.9% (26.2-36.5%) | 74.4% (70.3-78.6%) | 30.9% (25.7-36.1%) | 36.6% (32-41.6%) | 20.7% (16.2-25.4%) | 73.6% (63.6-82.5%) | 79.1% (70.6-86.8%) | 78.6% (69.9-86.3%) | 76% (67.5-83.7%) | 43.1% (38.6-48%) | 78.9% (70.5-86.4%) | 77% (72.6-81.3%) | 63.2% (43.2-84.1%) | 77.7% (72.1-83.2%) | 41.2% (36-46.4%) | 39.1% (34.2-44.4%) | 63.7% (46.3-80.6%) | 36.5% (31.9-41.2%) | 57.1% (39.8-76%) | 65.8% (57.2-73.5%) | 84.6% (80.6-88%) | 81.9% (73.7-89.5%) | 33.3% (13.7-53%) | 49.6% (42.3-56.1%) | 81.3% (73.2-88.9%) | 55.9% (33.5-76.5%) | 41% (31.4-51.8%) | 63.7% (43.8-82.3%) | 77.8% (66-87.4%) | 56.3% (37.3-75.1%) | 71.8% (62-82.2%) | 48.3% (41.5-54.9%) | 43.3% (36.2-50.7%) | 63% (45.3-80.3%) | 85.9% (79.9-90.9%) | 70.4% (64.1-76.8%) | 60.4% (55.1-65.8%) | 77.6% (73.4-82.1%) | 55.3% (50.4-60.1%) | +| 75+ | M | 52.6% (43.3-62.6%) | 33% (28.1-38%) | 77.4% (73.3-81.5%) | 33% (28.2-38.2%) | 36.8% (32.3-41.8%) | 17.9% (12.6-23.2%) | 64.4% (55.4-73.3%) | 71.2% (63.1-79.1%) | 67.9% (59.5-75.8%) | 65.3% (56.3-73.6%) | 42.6% (37.8-47.4%) | 68.2% (59.7-76.4%) | 75.1% (70.9-79.2%) | 64.1% (45.8-81.8%) | 77.6% (72-82.6%) | 41% (36-46.4%) | 39.9% (35.1-44.5%) | 62.1% (46-78.8%) | 36.9% (32.4-41.4%) | 59.7% (43.4-76.6%) | 64.7% (56.6-73.6%) | 83% (79.4-86.7%) | 75.7% (66.6-83%) | 31.6% (12.1-51.7%) | 51.8% (44.9-58%) | 74.2% (65.8-82.7%) | NA | 52.2% (41.5-60.8%) | 69.3% (50.5-86.4%) | 72.2% (58.7-83.4%) | 59.3% (41.6-76.7%) | 73.1% (64.3-81.4%) | 49.9% (42.4-56.9%) | 46.3% (38.2-53.1%) | 59.7% (44.2-75.7%) | 86.8% (81.4-91.3%) | 72% (66.3-77.6%) | 55.8% (50.3-61.1%) | 73.3% (68.9-77.6%) | 57% (52.2-61.6%) | #### Plotting antibiograms diff --git a/articles/AMR_for_Python.html b/articles/AMR_for_Python.html index 582ea7c6f..f10990a5b 100644 --- a/articles/AMR_for_Python.html +++ b/articles/AMR_for_Python.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/AMR_with_tidymodels.html b/articles/AMR_with_tidymodels.html index 4a594f924..1e871fbe2 100644 --- a/articles/AMR_with_tidymodels.html +++ b/articles/AMR_with_tidymodels.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/EUCAST.html b/articles/EUCAST.html index 72737118e..5d9fdd5f4 100644 --- a/articles/EUCAST.html +++ b/articles/EUCAST.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/PCA.html b/articles/PCA.html index 6b2c664af..4bce87cd2 100644 --- a/articles/PCA.html +++ b/articles/PCA.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/WHONET.html b/articles/WHONET.html index 5af6395ba..29566860c 100644 --- a/articles/WHONET.html +++ b/articles/WHONET.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/WISCA.html b/articles/WISCA.html index 334b1105b..4947bee0c 100644 --- a/articles/WISCA.html +++ b/articles/WISCA.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/datasets.html b/articles/datasets.html index d3969fa4f..2037a11a2 100644 --- a/articles/datasets.html +++ b/articles/datasets.html @@ -30,7 +30,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/articles/index.html b/articles/index.html index 0d63db1d9..eca3e2c8a 100644 --- a/articles/index.html +++ b/articles/index.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/authors.html b/authors.html index 5ee17cc48..49363e23f 100644 --- a/authors.html +++ b/authors.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/index.html b/index.html index 7ddd7d47e..5343c6f28 100644 --- a/index.html +++ b/index.html @@ -33,7 +33,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/news/index.html b/news/index.html index 3c3006bb3..0314470f0 100644 --- a/news/index.html +++ b/news/index.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -49,15 +49,17 @@ -AMR 3.0.1.9053 +AMR 3.0.1.9055 This will become release v3.1.0, intended for launch end of May. -New +New Support for clinical breakpoints of 2026 of both CLSI and EUCAST, by adding all of their over 5,700 new clinical breakpoints to the clinical_breakpoints data set for usage in as.sir(). EUCAST 2026 is now the new default guideline for all MIC and disk diffusion interpretations. Support for the future package and its framework, as the previous implementation of parallel computing was slow Breaking change: as.sir() with parallel = TRUE now requires a non-sequential future::plan() to be active before the call — e.g., future::plan(future::multisession) — and throws an informative error if none is set. New all-core usage setup: when the number of AB columns is smaller than the number of available cores, rows are now split into batches so all cores stay active (row-batch mode). Previously, a 6-column dataset on a 16-core machine would only use 6 cores; now all 16 are used, with each worker processing a smaller row slice (lower per-worker memory pressure and processing time) + +antibiogram() and wisca() gained a parallel argument using the same future/future.apply pattern: for WISCA, Monte Carlo simulations are split into (group, chunk) job pairs distributed across workers; for grouped antibiograms, each group is processed by a separate worker (#281) Integration with the tidymodels framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via recipes @@ -92,7 +94,7 @@ Two new NA objects, NA_ab_ and NA_mo_, analogous to base R’s NA_character_ and NA_integer_, for use in pipelines that require typed missing values -Fixes +Fixes Fixed a bug in as.sir() where values that were purely numeric (e.g., "1") and matched the broad SIR-matching regex would be incorrectly stripped of all content by the Unicode letter filter Fixed a bug in as.mic() where MIC values in scientific notation (e.g., "1e-3") were incorrectly handled because the letter e was removed along with other Unicode letters; scientific notation e is now preserved Fixed a bug in as.ab() where certain AB codes containing “PH” or “TH” (such as ETH, MTH, PHE, PHN, STH, THA, THI1) would incorrectly return NA when combined in a vector with any untranslatable value (#245) @@ -112,7 +114,7 @@ Fixed as.sir() ignoring info = FALSE for columns with no breakpoints (e.g. cefoxitin against E. coli) -Updates +Updates as.sir() with reference_data: custom guideline names now correctly classify values as R using EUCAST convention (> breakpoint_R for MIC, < breakpoint_R for disk); custom breakpoints with host = NA now serve as a host-agnostic fallback when no host-specific row matches (#239) Extensive cli integration for better message handling and clickable links in messages and warnings (#191, #265) diff --git a/news/index.md b/news/index.md index 8cdf9539b..dcaefc859 100644 --- a/news/index.md +++ b/news/index.md @@ -1,6 +1,6 @@ # Changelog -## AMR 3.0.1.9053 +## AMR 3.0.1.9055 This will become release v3.1.0, intended for launch end of May. @@ -28,6 +28,13 @@ This will become release v3.1.0, intended for launch end of May. dataset on a 16-core machine would only use 6 cores; now all 16 are used, with each worker processing a smaller row slice (lower per-worker memory pressure and processing time) + - [`antibiogram()`](https://amr-for-r.org/reference/antibiogram.md) + and [`wisca()`](https://amr-for-r.org/reference/antibiogram.md) + gained a `parallel` argument using the same `future`/`future.apply` + pattern: for WISCA, Monte Carlo simulations are split into + `(group, chunk)` job pairs distributed across workers; for grouped + antibiograms, each group is processed by a separate worker + ([\#281](https://github.com/msberends/AMR/issues/281)) - Integration with the *tidymodels* framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via `recipes` - [`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md) diff --git a/pkgdown.yml b/pkgdown.yml index d1c86685e..349afd8cc 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -10,7 +10,7 @@ articles: PCA: PCA.html WHONET: WHONET.html WISCA: WISCA.html -last_built: 2026-04-30T08:02Z +last_built: 2026-04-30T17:47Z urls: reference: https://amr-for-r.org/reference article: https://amr-for-r.org/articles diff --git a/reference/AMR-deprecated.html b/reference/AMR-deprecated.html index 4bd08c140..9c4ddc908 100644 --- a/reference/AMR-deprecated.html +++ b/reference/AMR-deprecated.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/AMR-options.html b/reference/AMR-options.html index 216da2700..e4c65da2c 100644 --- a/reference/AMR-options.html +++ b/reference/AMR-options.html @@ -9,7 +9,7 @@ options(AMR_guideline = "CLSI")'>AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/AMR.html b/reference/AMR.html index 9e85b94cb..71d2624f4 100644 --- a/reference/AMR.html +++ b/reference/AMR.html @@ -21,7 +21,7 @@ The AMR package is available in English, Arabic, Bengali, Chinese, Czech, Danish AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/WHOCC.html b/reference/WHOCC.html index 886a77b1f..4f949f454 100644 --- a/reference/WHOCC.html +++ b/reference/WHOCC.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/WHONET.html b/reference/WHONET.html index daf062c76..c49a25997 100644 --- a/reference/WHONET.html +++ b/reference/WHONET.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html index 3d50b5a2c..af64b3da4 100644 --- a/reference/ab_from_text.html +++ b/reference/ab_from_text.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/ab_property.html b/reference/ab_property.html index b2be699f2..5cb09a1c0 100644 --- a/reference/ab_property.html +++ b/reference/ab_property.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html index 792a55036..69cf4b81e 100644 --- a/reference/add_custom_antimicrobials.html +++ b/reference/add_custom_antimicrobials.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html index 563256978..4af2b76fe 100644 --- a/reference/add_custom_microorganisms.html +++ b/reference/add_custom_microorganisms.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/age.html b/reference/age.html index 39ea31f3e..252ac559b 100644 --- a/reference/age.html +++ b/reference/age.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/age_groups.html b/reference/age_groups.html index c7c8da93c..689a4f15a 100644 --- a/reference/age_groups.html +++ b/reference/age_groups.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/amr-tidymodels.html b/reference/amr-tidymodels.html index c64c9cb29..b93d118ed 100644 --- a/reference/amr-tidymodels.html +++ b/reference/amr-tidymodels.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/amr_course.html b/reference/amr_course.html index e300f5c15..820d22e90 100644 --- a/reference/amr_course.html +++ b/reference/amr_course.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/antibiogram.html b/reference/antibiogram.html index 58a79482c..3e478bc1c 100644 --- a/reference/antibiogram.html +++ b/reference/antibiogram.html @@ -9,7 +9,7 @@ Adhering to previously described approaches (see Source) and especially the Baye AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -65,7 +65,8 @@ Adhering to previously described approaches (see Source) and especially the Baye ifelse(wisca, 14, 18)), col_mo = NULL, language = get_AMR_locale(), minimum = 30, combine_SI = TRUE, sep = " + ", sort_columns = TRUE, wisca = FALSE, simulations = 1000, conf_interval = 0.95, - interval_side = "two-tailed", info = interactive(), ...) + interval_side = "two-tailed", info = interactive(), parallel = FALSE, + ...) wisca(x, antimicrobials = where(is.sir), ab_transform = "name", syndromic_group = NULL, only_all_tested = FALSE, digits = 1, @@ -73,7 +74,7 @@ Adhering to previously described approaches (see Source) and especially the Baye col_mo = NULL, language = get_AMR_locale(), combine_SI = TRUE, sep = " + ", sort_columns = TRUE, simulations = 1000, conf_interval = 0.95, interval_side = "two-tailed", - info = interactive(), ...) + info = interactive(), parallel = FALSE, ...) retrieve_wisca_parameters(wisca_model, ...) @@ -147,7 +148,7 @@ Adhering to previously described approaches (see Source) and especially the Baye formatting_type -Numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See Details > Formatting Type for a list of options. +Numeric value (1-22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See Details > Formatting Type for a list of options. col_mo @@ -194,6 +195,10 @@ Adhering to previously described approaches (see Source) and especially the Baye A logical to indicate info should be printed - the default is TRUE only in interactive mode. +parallel +A logical to indicate if parallel computing must be used, defaults to FALSE. Requires the future.apply package. For WISCA, Monte Carlo simulations are distributed across workers; for grouped antibiograms, each group is processed by a separate worker. A non-sequential future::plan() must already be active before setting parallel = TRUE – for example, future::plan(future::multisession). An error is thrown if parallel = TRUE is used without a plan set by the user. + + ... When used in R Markdown or Quarto: arguments passed on to knitr::kable() (otherwise, has no use). diff --git a/reference/antibiogram.md b/reference/antibiogram.md index 3df2a9f98..f4e21b65b 100644 --- a/reference/antibiogram.md +++ b/reference/antibiogram.md @@ -19,7 +19,8 @@ antibiogram(x, antimicrobials = where(is.sir), mo_transform = "shortname", ifelse(wisca, 14, 18)), col_mo = NULL, language = get_AMR_locale(), minimum = 30, combine_SI = TRUE, sep = " + ", sort_columns = TRUE, wisca = FALSE, simulations = 1000, conf_interval = 0.95, - interval_side = "two-tailed", info = interactive(), ...) + interval_side = "two-tailed", info = interactive(), parallel = FALSE, + ...) wisca(x, antimicrobials = where(is.sir), ab_transform = "name", syndromic_group = NULL, only_all_tested = FALSE, digits = 1, @@ -27,7 +28,7 @@ wisca(x, antimicrobials = where(is.sir), ab_transform = "name", col_mo = NULL, language = get_AMR_locale(), combine_SI = TRUE, sep = " + ", sort_columns = TRUE, simulations = 1000, conf_interval = 0.95, interval_side = "two-tailed", - info = interactive(), ...) + info = interactive(), parallel = FALSE, ...) retrieve_wisca_parameters(wisca_model, ...) @@ -183,7 +184,7 @@ knit_print(x, italicise = TRUE, - formatting_type: - Numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the + Numeric value (1-22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See *Details* \> *Formatting Type* for a list of options. @@ -251,6 +252,19 @@ knit_print(x, italicise = TRUE, A [logical](https://rdrr.io/r/base/logical.html) to indicate info should be printed - the default is `TRUE` only in interactive mode. +- parallel: + + A [logical](https://rdrr.io/r/base/logical.html) to indicate if + parallel computing must be used, defaults to `FALSE`. Requires the + [`future.apply`](https://future.apply.futureverse.org/reference/future_lapply.html) + package. For WISCA, Monte Carlo simulations are distributed across + workers; for grouped antibiograms, each group is processed by a + separate worker. **A non-sequential + [`future::plan()`](https://future.futureverse.org/reference/plan.html) + must already be active before setting `parallel = TRUE`** – for + example, `future::plan(future::multisession)`. An error is thrown if + `parallel = TRUE` is used without a plan set by the user. + - ...: When used in [R Markdown or diff --git a/reference/antimicrobial_selectors.html b/reference/antimicrobial_selectors.html index 63ab23fbb..8dacb35f2 100644 --- a/reference/antimicrobial_selectors.html +++ b/reference/antimicrobial_selectors.html @@ -17,7 +17,7 @@ my_data_with_all_these_columns %>% AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/antimicrobials.html b/reference/antimicrobials.html index e9e88ca0d..b5acd59a4 100644 --- a/reference/antimicrobials.html +++ b/reference/antimicrobials.html @@ -9,7 +9,7 @@ The antibiotics data set has been renamed to antimicrobials. The old name will b AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.ab.html b/reference/as.ab.html index efa150608..b9be3dd2b 100644 --- a/reference/as.ab.html +++ b/reference/as.ab.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.av.html b/reference/as.av.html index 559ce1f8d..63eff723e 100644 --- a/reference/as.av.html +++ b/reference/as.av.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.disk.html b/reference/as.disk.html index 431fb28e2..0dbfad312 100644 --- a/reference/as.disk.html +++ b/reference/as.disk.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.mic.html b/reference/as.mic.html index 1c477646e..f3b39f75d 100644 --- a/reference/as.mic.html +++ b/reference/as.mic.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.mo.html b/reference/as.mo.html index e245e6087..ac21b5235 100644 --- a/reference/as.mo.html +++ b/reference/as.mo.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/as.sir.html b/reference/as.sir.html index fc379964f..13c9fb796 100644 --- a/reference/as.sir.html +++ b/reference/as.sir.html @@ -9,7 +9,7 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026, AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -420,10 +420,10 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026, #> # A tibble: 4 × 18 #> datetime index method ab_given mo_given host_given input_given #> <dttm> <int> <chr> <chr> <chr> <chr> <chr> -#> 1 2026-04-30 08:03:38 1 MIC amoxicillin Escherich… human 8 -#> 2 2026-04-30 08:03:38 1 MIC cipro Escherich… human 0.256 -#> 3 2026-04-30 08:03:38 1 DISK tobra Escherich… human 16 -#> 4 2026-04-30 08:03:39 1 DISK genta Escherich… human 18 +#> 1 2026-04-30 17:47:55 1 MIC amoxicillin Escherich… human 8 +#> 2 2026-04-30 17:47:55 1 MIC cipro Escherich… human 0.256 +#> 3 2026-04-30 17:47:55 1 DISK tobra Escherich… human 16 +#> 4 2026-04-30 17:47:55 1 DISK genta Escherich… human 18 #> # ℹ 11 more variables: ab <ab>, mo <mo>, host <chr>, input <chr>, #> # outcome <sir>, notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>, #> # breakpoint_S_R <chr>, site <chr> diff --git a/reference/as.sir.md b/reference/as.sir.md index b935e29f3..187ae9ff7 100644 --- a/reference/as.sir.md +++ b/reference/as.sir.md @@ -667,10 +667,10 @@ sir_interpretation_history() #> # A tibble: 4 × 18 #> datetime index method ab_given mo_given host_given input_given #> -#> 1 2026-04-30 08:03:38 1 MIC amoxicillin Escherich… human 8 -#> 2 2026-04-30 08:03:38 1 MIC cipro Escherich… human 0.256 -#> 3 2026-04-30 08:03:38 1 DISK tobra Escherich… human 16 -#> 4 2026-04-30 08:03:39 1 DISK genta Escherich… human 18 +#> 1 2026-04-30 17:47:55 1 MIC amoxicillin Escherich… human 8 +#> 2 2026-04-30 17:47:55 1 MIC cipro Escherich… human 0.256 +#> 3 2026-04-30 17:47:55 1 DISK tobra Escherich… human 16 +#> 4 2026-04-30 17:47:55 1 DISK genta Escherich… human 18 #> # ℹ 11 more variables: ab , mo , host , input , #> # outcome , notes , guideline , ref_table , uti , #> # breakpoint_S_R , site diff --git a/reference/atc_online.html b/reference/atc_online.html index fc3857767..b3c6b65e5 100644 --- a/reference/atc_online.html +++ b/reference/atc_online.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/av_from_text.html b/reference/av_from_text.html index e1b15607a..fafab166e 100644 --- a/reference/av_from_text.html +++ b/reference/av_from_text.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/av_property.html b/reference/av_property.html index 0cd9e1704..18a57920f 100644 --- a/reference/av_property.html +++ b/reference/av_property.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/availability.html b/reference/availability.html index bf0e71654..fbec28a64 100644 --- a/reference/availability.html +++ b/reference/availability.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html index 2cc8f8680..bc18cd012 100644 --- a/reference/bug_drug_combinations.html +++ b/reference/bug_drug_combinations.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html index 3f6b145ec..7ba070571 100644 --- a/reference/clinical_breakpoints.html +++ b/reference/clinical_breakpoints.html @@ -21,7 +21,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/count.html b/reference/count.html index 35ced5108..d340e24f3 100644 --- a/reference/count.html +++ b/reference/count.html @@ -9,7 +9,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible( AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html index 4a8c59338..9910ba62b 100644 --- a/reference/custom_eucast_rules.html +++ b/reference/custom_eucast_rules.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/custom_mdro_guideline.html b/reference/custom_mdro_guideline.html index eddf91abe..df6451cf4 100644 --- a/reference/custom_mdro_guideline.html +++ b/reference/custom_mdro_guideline.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/dosage.html b/reference/dosage.html index 7952b7fb3..b72776b9b 100644 --- a/reference/dosage.html +++ b/reference/dosage.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/esbl_isolates.html b/reference/esbl_isolates.html index d53967c04..03ad334d2 100644 --- a/reference/esbl_isolates.html +++ b/reference/esbl_isolates.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/example_isolates.html b/reference/example_isolates.html index 0ef00b718..3f8bd969a 100644 --- a/reference/example_isolates.html +++ b/reference/example_isolates.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html index a9b77f1f2..98be5001a 100644 --- a/reference/example_isolates_unclean.html +++ b/reference/example_isolates_unclean.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html index a553231b6..613b1fee1 100644 --- a/reference/export_ncbi_biosample.html +++ b/reference/export_ncbi_biosample.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/first_isolate.html b/reference/first_isolate.html index 0cf963b1c..68e10e0ff 100644 --- a/reference/first_isolate.html +++ b/reference/first_isolate.html @@ -9,7 +9,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/g.test.html b/reference/g.test.html index 5d20918d5..bd5cfc74a 100644 --- a/reference/g.test.html +++ b/reference/g.test.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -124,9 +124,8 @@ stdres standardized residuals, - (observed - expected) / sqrt(V), where V is the - residual cell variance (Agresti, 2007, section 2.4.5 - for the case where x is a matrix, n * p * (1 - p) otherwise). + (observed - expected) / sqrt(V), where V is the residual cell variance (Agresti, 2007, + section 2.4.5 for the case where x is a matrix, n * p * (1 - p) otherwise). diff --git a/reference/get_episode.html b/reference/get_episode.html index fbf6ecab6..bd7b7ec36 100644 --- a/reference/get_episode.html +++ b/reference/get_episode.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html index 85bad928e..3ac81e6db 100644 --- a/reference/ggplot_pca.html +++ b/reference/ggplot_pca.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html index d19b95e70..43249a5a6 100644 --- a/reference/ggplot_sir.html +++ b/reference/ggplot_sir.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html index d8917186c..8ddb35126 100644 --- a/reference/guess_ab_col.html +++ b/reference/guess_ab_col.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/index.html b/reference/index.html index 52c72f6d2..a7194889d 100644 --- a/reference/index.html +++ b/reference/index.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/interpretive_rules.html b/reference/interpretive_rules.html index 52e0a6a4c..a8d815bb8 100644 --- a/reference/interpretive_rules.html +++ b/reference/interpretive_rules.html @@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before CLSI/EUCAST interpretive AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html index 369bda5b1..c98aaa80d 100644 --- a/reference/intrinsic_resistant.html +++ b/reference/intrinsic_resistant.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html index 6cdb95e1c..96ae0b043 100644 --- a/reference/italicise_taxonomy.html +++ b/reference/italicise_taxonomy.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/join.html b/reference/join.html index db41fbfc1..6593ed8c0 100644 --- a/reference/join.html +++ b/reference/join.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html index 7d2b6fcf2..cc4d8fe26 100644 --- a/reference/key_antimicrobials.html +++ b/reference/key_antimicrobials.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/kurtosis.html b/reference/kurtosis.html index 6f281a001..85281b629 100644 --- a/reference/kurtosis.html +++ b/reference/kurtosis.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/like.html b/reference/like.html index f064f845f..75ca346af 100644 --- a/reference/like.html +++ b/reference/like.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/mdro.html b/reference/mdro.html index ebd51ba7a..e411f605e 100644 --- a/reference/mdro.html +++ b/reference/mdro.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html index ba3f97841..b8f1a4927 100644 --- a/reference/mean_amr_distance.html +++ b/reference/mean_amr_distance.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html index 4292debc4..0da3a5890 100644 --- a/reference/microorganisms.codes.html +++ b/reference/microorganisms.codes.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html index 98b2165b0..4aef3e329 100644 --- a/reference/microorganisms.groups.html +++ b/reference/microorganisms.groups.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/microorganisms.html b/reference/microorganisms.html index 691b512ea..8d74b616a 100644 --- a/reference/microorganisms.html +++ b/reference/microorganisms.html @@ -9,7 +9,7 @@ This data set is carefully crafted, yet made 100% reproducible from public and a AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html index dcb18d8f7..69cdafebb 100644 --- a/reference/mo_matching_score.html +++ b/reference/mo_matching_score.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/mo_property.html b/reference/mo_property.html index 75ec75c61..1b1e4c0c9 100644 --- a/reference/mo_property.html +++ b/reference/mo_property.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/mo_source.html b/reference/mo_source.html index fdfec3ef9..63ec193ea 100644 --- a/reference/mo_source.html +++ b/reference/mo_source.html @@ -9,7 +9,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/pca.html b/reference/pca.html index 84ed0bf1c..35f5ecf92 100644 --- a/reference/pca.html +++ b/reference/pca.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 @@ -98,7 +98,7 @@ standard deviations are less than or equal to tol times the standard deviation of the first component.) With the default null setting, no components are omitted (unless rank. is specified - less than min(dim(x)).). Other settings for tol could be + less than min(dim(x)).). Other settings for tol could be tol = 0 or tol = sqrt(.Machine$double.eps), which would omit essentially constant components. diff --git a/reference/pca.md b/reference/pca.md index c73dc8591..5326f203c 100644 --- a/reference/pca.md +++ b/reference/pca.md @@ -51,8 +51,8 @@ pca(x, ..., retx = TRUE, center = TRUE, scale. = TRUE, tol = NULL, than or equal to `tol` times the standard deviation of the first component.) With the default null setting, no components are omitted (unless `rank.` is specified less than `min(dim(x))`.). Other settings - for `tol` could be `tol = 0` or `tol = sqrt(.Machine$double.eps)`, - which would omit essentially constant components. + for tol could be `tol = 0` or `tol = sqrt(.Machine$double.eps)`, which + would omit essentially constant components. - rank.: diff --git a/reference/plot.html b/reference/plot.html index 5bed5b7c9..2c0df56e0 100644 --- a/reference/plot.html +++ b/reference/plot.html @@ -9,7 +9,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/proportion.html b/reference/proportion.html index 15bb8480c..ae61c5cf5 100644 --- a/reference/proportion.html +++ b/reference/proportion.html @@ -9,7 +9,7 @@ resistance() should be used to calculate resistance, susceptibility() should be AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/random.html b/reference/random.html index 6239d5790..9ad466c6e 100644 --- a/reference/random.html +++ b/reference/random.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html index 3dbe749cc..09984b070 100644 --- a/reference/resistance_predict.html +++ b/reference/resistance_predict.html @@ -9,7 +9,7 @@ NOTE: These functions are deprecated and will be removed in a future version. Us AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/skewness.html b/reference/skewness.html index 578ac13de..e60ebe4fe 100644 --- a/reference/skewness.html +++ b/reference/skewness.html @@ -9,7 +9,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html index 808bcea3d..0ff9fee03 100644 --- a/reference/top_n_microorganisms.html +++ b/reference/top_n_microorganisms.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/reference/translate.html b/reference/translate.html index 42ec2086d..fcf5765fa 100644 --- a/reference/translate.html +++ b/reference/translate.html @@ -7,7 +7,7 @@ AMR (for R) - 3.0.1.9053 + 3.0.1.9055 diff --git a/search.json b/search.json index 0cff5151e..e744ab0df 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://amr-for-r.org/CLAUDE.html","id":null,"dir":"","previous_headings":"","what":"CLAUDE.md — AMR R Package","title":"CLAUDE.md — AMR R Package","text":"file provides context Claude Code working repository.","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"project-overview","dir":"","previous_headings":"","what":"Project Overview","title":"CLAUDE.md — AMR R Package","text":"AMR zero-dependency R package antimicrobial resistance (AMR) data analysis using One Health approach. peer-reviewed, used 175+ countries, supports 28 languages. Key capabilities: - SIR (Susceptible/Intermediate/Resistant) classification using EUCAST 2011–2025 CLSI 2011–2025 breakpoints - Antibiogram generation: traditional, combined, syndromic, WISCA - Microorganism taxonomy database (~79,000 species) - Antimicrobial drug database (~620 drugs) - Multi-drug resistant organism (MDRO) classification - First-isolate identification - Minimum Inhibitory Concentration (MIC) disk diffusion handling - Multilingual output (28 languages)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"common-commands","dir":"","previous_headings":"","what":"Common Commands","title":"CLAUDE.md — AMR R Package","text":"commands run inside R session: shell:","code":"# Rebuild documentation (roxygen2 → .Rd files + NAMESPACE) devtools::document() # Run all tests devtools::test() # Full package check (CRAN-level: docs + tests + checks) devtools::check() # Build pkgdown website locally pkgdown::build_site() # Code coverage report covr::package_coverage() # CRAN check from parent directory R CMD check AMR"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"repository-structure","dir":"","previous_headings":"","what":"Repository Structure","title":"CLAUDE.md — AMR R Package","text":"","code":"R/ # All R source files (62 files, ~28,000 lines) man/ # Auto-generated .Rd documentation (do not edit manually) tests/testthat/ # testthat test files (test-*.R) and helper-functions.R data/ # Pre-compiled .rda datasets data-raw/ # Scripts used to generate data/ files vignettes/ # Rmd vignette articles inst/ # Installed files (translations, etc.) _pkgdown.yml # pkgdown website configuration"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"r-source-file-conventions","dir":"","previous_headings":"","what":"R Source File Conventions","title":"CLAUDE.md — AMR R Package","text":"Naming conventions R/: Key source files: aa_helper_functions.R / aa_helper_pm_functions.R — internal utility functions (large; ~63 KB ~37 KB) aa_globals.R — global constants breakpoint lookup structures aa_options.R — amr_options() / get_AMR_option() system mo.R / mo_property.R — microorganism lookup properties ab.R / ab_property.R — antimicrobial drug functions av.R / av_property.R — antiviral drug functions sir.R / sir_calc.R / sir_df.R — SIR classification engine mic.R / disk.R — MIC disk diffusion classes antibiogram.R — antibiogram generation (traditional, combined, syndromic, WISCA) first_isolate.R — first-isolate identification algorithms mdro.R — MDRO classification (EUCAST, CLSI, CDC, custom guidelines) amr_selectors.R — tidyselect helpers selecting AMR columns interpretive_rules.R / custom_eucast_rules.R — clinical interpretation rules translate.R — 28-language translation system ggplot_sir.R / ggplot_pca.R / plotting.R — visualisation functions","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"custom-s3-classes","dir":"","previous_headings":"","what":"Custom S3 Classes","title":"CLAUDE.md — AMR R Package","text":"package defines five S3 classes full print/format/plot/vctrs support:","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"data-files","dir":"","previous_headings":"","what":"Data Files","title":"CLAUDE.md — AMR R Package","text":"Pre-compiled data/ (edit directly; regenerate via data-raw/ scripts):","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"zero-dependency-design","dir":"","previous_headings":"","what":"Zero-Dependency Design","title":"CLAUDE.md — AMR R Package","text":"package Imports DESCRIPTION. optional integrations (ggplot2, dplyr, data.table, tidymodels, cli, crayon, etc.) listed Suggests guarded : Never add packages Imports. new functionality requires external package, add Suggests guard usage appropriately.","code":"if (requireNamespace(\"pkg\", quietly = TRUE)) { ... }"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"testing","dir":"","previous_headings":"","what":"Testing","title":"CLAUDE.md — AMR R Package","text":"Framework: testthat (R ≥ 3.1); legacy tinytest used R 3.0–3.6 CI Test files: tests/testthat/test-*.R Helpers: tests/testthat/helper-functions.R CI matrix: GitHub Actions across Windows / macOS / Linux × R devel / release / oldrel-1 oldrel-4 Coverage: covr (files excluded: atc_online.R, mo_source.R, translate.R, resistance_predict.R, zz_deprecated.R, helper files, zzz.R)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"documentation","dir":"","previous_headings":"","what":"Documentation","title":"CLAUDE.md — AMR R Package","text":"exported functions use roxygen2 blocks (RoxygenNote: 7.3.3, markdown enabled) Run devtools::document() change roxygen comments Never edit files man/ directly — auto-generated Vignettes live vignettes/ .Rmd files pkgdown website configured _pkgdown.yml","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"versioning","dir":"","previous_headings":"","what":"Versioning","title":"CLAUDE.md — AMR R Package","text":"Version format: major.minor.patch.dev (e.g., 3.0.1.9021) Development versions use .9xxx suffix Stable CRAN releases drop dev suffix (e.g., 3.0.1) NEWS.md uses sections New, Fixes, Updates GitHub issue references (#NNN)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"version-and-date-bump-required-for-every-pr","dir":"","previous_headings":"Versioning","what":"Version and date bump required for every PR","title":"CLAUDE.md — AMR R Package","text":"PRs squash-merged, PR lands exactly one commit default branch. Version numbers kept sync cumulative commit count since last released tag. Therefore exactly one version bump allowed per PR, regardless many intermediate commits made branch.","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"computing-the-correct-version-number","dir":"","previous_headings":"Versioning > Version and date bump required for every PR","what":"Computing the correct version number","title":"CLAUDE.md — AMR R Package","text":"First, ensure git gh installed — required version computation pushing changes. Install missing anything else: run following repo root determine version string use: + 1 accounts fact PR’s squash commit yet default branch. Set files resulting version string (per PR, even across multiple commits): DESCRIPTION — Version: field NEWS.md — replace line 1 (# AMR heading) new version number; create new section. NEWS.md continuous log entire current x.y.z.9nnn development series: changes since last stable release accumulate single heading. updating line 1, append new change bullet appropriate sub-heading (### New, ### Fixes, ### Updates). Style rules NEWS.md entries: extremely concise — one short line per item end full stop (period) verbose explanations; just essential fact git describe fails (e.g. tags exist environment), fall back reading current version DESCRIPTION adding 1 last numeric component — bump already made PR.","code":"which git || apt-get install -y git which gh || apt-get install -y gh # Also ensure all tags are fetched so git describe works git fetch --tags currenttag=$(git describe --tags --abbrev=0 | sed 's/v//') currenttagfull=$(git describe --tags --abbrev=0) defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$') currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch}) currentversion=\"${currenttag}.$((currentcommit + 9001 + 1))\" echo \"$currentversion\""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"date-field","dir":"","previous_headings":"Versioning > Version and date bump required for every PR","what":"Date field","title":"CLAUDE.md — AMR R Package","text":"Date: field DESCRIPTION must reflect date last commit PR (first), ISO format. Update every commit always current:","code":"Date: 2026-03-07"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"internal-state","dir":"","previous_headings":"","what":"Internal State","title":"CLAUDE.md — AMR R Package","text":"package uses private AMR_env environment (created aa_globals.R) caching expensive lookups (e.g., microorganism matching scores, breakpoint tables). avoids re-computation within session.","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"Conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial drugs, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"Conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"Conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 E. coli R I S S #> 2 R7 A 2018-04-03 K. pneumoniae R I S S #> 3 P3 A 2014-09-19 E. coli R S S S #> 4 P10 A 2015-12-10 E. coli S I S S #> 5 B7 A 2015-03-02 E. coli S S S S #> 6 W3 A 2018-03-31 S. aureus R S R S #> 7 J8 A 2016-06-14 E. coli R S S S #> 8 M3 A 2015-10-25 E. coli R S S S #> 9 J3 A 2019-06-19 E. coli S S S S #> 10 G6 A 2015-04-27 S. aureus S S S S #> # ℹ 2,990 more rows # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"Conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\" mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\" mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\" \"1098201000112108\" \"409801009\" #> [5] \"56415008\" \"714315002\" \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Retrieved values from the `microorganisms.codes` data set for \"ESCCOL\", #> \"KLEPNE\", \"STAAUR\", and \"STRPNE\". #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> `mo_uncertainties()` to review these uncertainties, or use #> `add_custom_microorganisms()` to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See `mo_matching_score()`. #> Colour keys: 0.000-0.549 0.550-0.649 0.650-0.749 0.750-1.000 #> ------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli (0.643), #> Escherichia coli expressing (0.611), Enterobacter cowanii (0.600), Enterococcus #> columbae (0.595), Enterococcus camelliae (0.591), Enterococcus casseliflavus #> (0.577), Enterobacter cloacae cloacae (0.571), Enterobacter cloacae complex #> (0.571), and Enterobacter cloacae dissolvens (0.565) #> ------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae complex (0.707), Klebsiella pneumoniae #> ozaenae (0.707), Klebsiella pneumoniae pneumoniae (0.688), Klebsiella #> pneumoniae rhinoscleromatis (0.658), Klebsiella pasteurii (0.500), Klebsiella #> planticola (0.500), Kingella potus (0.400), Kluyveromyces pseudotropicale #> (0.386), Kluyveromyces pseudotropicalis (0.363), and Kosakonia pseudosacchari #> (0.361) #> ------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus argenteus #> (0.625), Staphylococcus aureus anaerobius (0.625), Staphylococcus auricularis #> (0.615), Salmonella Aurelianis (0.595), Salmonella Aarhus (0.588), Salmonella #> Amounderness (0.587), Staphylococcus argensis (0.587), Streptococcus australis #> (0.587), and Salmonella choleraesuis arizonae (0.562) #> ------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus phocae #> salmonis (0.552), Serratia proteamaculans quinovora (0.545), Streptococcus #> pseudoporcinus (0.536), Staphylococcus piscifermentans (0.533), Staphylococcus #> pseudintermedius (0.532), Serratia proteamaculans proteamaculans (0.526), #> Streptococcus gallolyticus pasteurianus (0.526), Salmonella Portanigra (0.524), #> and Streptococcus periodonticum (0.519) #> ℹ Only the first 10 other matches of each record are shown. Run `` #> `print(mo_uncertainties(), n = ...)` `` to view more entries, or save #> `mo_uncertainties()` to an object."},{"path":"https://amr-for-r.org/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"Conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) # method 2, let the AMR package determine the eligible columns our_data <- our_data %>% mutate_if(is_sir_eligible, as.sir) # result: our_data #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S #> 7 J8 A 2016-06-14 B_ESCHR_COLI R S S S #> 8 M3 A 2015-10-25 B_ESCHR_COLI R S S S #> 9 J3 A 2019-06-19 B_ESCHR_COLI S S S S #> 10 G6 A 2015-04-27 B_STPHY_AURS S S S S #> # ℹ 2,990 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"Conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column bacteria as input for `col_mo`. #> ℹ Column first is SIR eligible (despite only having empty values), since it #> seems to be cefozopran (ZOP) #> ℹ Using column date as input for `col_date`. #> ℹ Using column patient_id as input for `col_patient_id`. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #> microbial ID was available) our_data_1st <- our_data %>% filter(first == TRUE) our_data_1st <- our_data %>% filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S TRUE #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S TRUE #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S TRUE #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 7 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 8 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 9 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 10 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> # ℹ 2,714 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"Conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #> patient_id hospital date bacteria #> Length :2724 Length :2724 Min. :2011-01-01 Class :mo #> N.unique : 260 N.unique : 3 1st Qu.:2013-04-07 :0 #> N.blank : 0 N.blank : 0 Median :2015-06-03 Unique:4 #> Min.nchar: 2 Min.nchar: 1 Mean :2015-06-09 #1 :B_ESCHR_COLI #> Max.nchar: 3 Max.nchar: 1 3rd Qu.:2017-08-11 #2 :B_STPHY_AURS #> Max. :2019-12-27 #3 :B_STRPT_PNMN #> AMX AMC CIP #> Class:sir Class:sir Class:sir #> %S :41.6% (n=1133) %S :52.6% (n=1432) %S :52.5% (n=1431) #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I :16.4% (n=446) %I :12.2% (n=333) %I : 6.5% (n=176) #> %R :42.0% (n=1145) %R :35.2% (n=959) %R :41.0% (n=1117) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> GEN first #> Class:sir Mode:logical #> %S :61.0% (n=1661) TRUE:2724 #> %SDD : 0.0% (n=0) #> %I : 3.0% (n=82) #> %R :36.0% (n=981) #> %NI : 0.0% (n=0) glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP #> 260 3 1854 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"Conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 #> 4 Klebsiella pneumoniae 326 our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1321 #> 2 Staphylococcus aureus 682 #> 3 Streptococcus pneumoniae 402 #> 4 Klebsiella pneumoniae 319"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"Conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>% select(date, aminoglycosides()) #> ℹ For `aminoglycosides()` using column GEN #> (gentamicin) #> # A tibble: 2,724 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2014-09-19 S #> 4 2015-12-10 S #> 5 2015-03-02 S #> 6 2018-03-31 S #> 7 2015-10-25 S #> 8 2019-06-19 S #> 9 2015-04-27 S #> 10 2011-06-21 S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For `betalactams()` using columns AMX (amoxicillin) and AMC #> (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI R S #> 4 B_ESCHR_COLI S I #> 5 B_ESCHR_COLI S S #> 6 B_STPHY_AURS R S #> 7 B_ESCHR_COLI R S #> 8 B_ESCHR_COLI S S #> 9 B_STPHY_AURS S S #> 10 B_ESCHR_COLI S S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #> bacteria AMX AMC CIP GEN #> #> 1 B_ESCHR_COLI R I S S #> 2 B_KLBSL_PNMN R I S S #> 3 B_ESCHR_COLI R S S S #> 4 B_ESCHR_COLI S I S S #> 5 B_ESCHR_COLI S S S S #> 6 B_STPHY_AURS R S R S #> 7 B_ESCHR_COLI R S S S #> 8 B_ESCHR_COLI S S S S #> 9 B_STPHY_AURS S S S S #> 10 B_ESCHR_COLI S S S S #> # ℹ 2,714 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For `aminoglycosides()` using column GEN #> (gentamicin) #> # A tibble: 981 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J5 A 2017-12-25 B_STRPT_PNMN R S S R TRUE #> 2 X1 A 2017-07-04 B_STPHY_AURS R S S R TRUE #> 3 B3 A 2016-07-24 B_ESCHR_COLI S S S R TRUE #> 4 V7 A 2012-04-03 B_ESCHR_COLI S S S R TRUE #> 5 C9 A 2017-03-23 B_ESCHR_COLI S S S R TRUE #> 6 R1 A 2018-06-10 B_STPHY_AURS S S S R TRUE #> 7 S2 A 2013-07-19 B_STRPT_PNMN S S S R TRUE #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE #> # ℹ 971 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For `betalactams()` using columns AMX (amoxicillin) and AMC #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For `betalactams()` using columns AMX (amoxicillin) and AMC #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"Conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , …"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"Conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Arabic, Bengali, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Swedish, Turkish, Ukrainian, Urdu, Vietnamese. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems()) ) #> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK #> (amikacin), and KAN (kanamycin) #> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem) antibiogram(example_isolates, mo_transform = \"gramstain\", antibiotics = aminoglycosides(), ab_transform = \"name\", language = \"es\" ) #> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK #> (amikacin), and KAN (kanamycin)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"Conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"combined_ab <- antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), ab_transform = NULL ) combined_ab"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"Conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems()), syndromic_group = \"ward\" ) #> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK #> (amikacin), and KAN (kanamycin) #> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"Conduct AMR data analysis","text":"create Weighted-Incidence Syndromic Combination Antibiogram (WISCA), simply set wisca = TRUE antibiogram() function, use dedicated wisca() function. Unlike traditional antibiograms, WISCA provides syndrome-based susceptibility estimates, weighted pathogen incidence antimicrobial susceptibility patterns. WISCA uses Bayesian decision model integrate data multiple pathogens, improving empirical therapy guidance, especially low-incidence infections. pathogen-agnostic, meaning results syndrome-based rather stratified microorganism. reliable results, ensure data includes first isolates (use first_isolate()) consider filtering top n species (use top_n_microorganisms()), WISCA outcomes meaningful based robust incidence estimates. patient- syndrome-specific WISCA, run function grouped tibble, .e., using group_by() first:","code":"example_isolates %>% wisca( antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), minimum = 10 ) # Recommended threshold: ≥30 example_isolates %>% top_n_microorganisms(n = 10) %>% group_by( age_group = age_groups(age, c(25, 50, 75)), gender ) %>% wisca(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"Conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(combined_ab)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"Conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package:","code":"our_data_1st %>% resistance(AMX) #> ℹ `resistance()` assumes the EUCAST guideline and thus considers the 'I' #> category susceptible. Set the `guideline` argument or the `AMR_guideline` #> option to either \"CLSI\" or \"EUCAST\", see `?AMR-options`. #> ℹ This message will be shown once per session. #> [1] 0.4203377 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.340 #> 2 B 0.551 #> 3 C 0.370"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"interpreting-mic-and-disk-diffusion-values","dir":"Articles","previous_headings":"Analysing the data","what":"Interpreting MIC and Disk Diffusion Values","title":"Conduct AMR data analysis","text":"Minimal inhibitory concentration (MIC) values disk diffusion diameters can interpreted clinical breakpoints (SIR) using .sir(). ’s example randomly generated MIC values Klebsiella pneumoniae ciprofloxacin: allows direct interpretation according EUCAST CLSI breakpoints, facilitating automated AMR data processing.","code":"set.seed(123) mic_values <- random_mic(100) sir_values <- as.sir(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\") my_data <- tibble(MIC = mic_values, SIR = sir_values) my_data #> # A tibble: 100 × 2 #> MIC SIR #> #> 1 <=0.0001 S #> 2 0.0160 S #> 3 >=8.0000 R #> 4 0.0320 S #> 5 0.0080 S #> 6 64.0000 R #> 7 0.0080 S #> 8 0.1250 S #> 9 0.0320 S #> 10 0.0002 S #> # ℹ 90 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"plotting-mic-and-sir-interpretations","dir":"Articles","previous_headings":"Analysing the data","what":"Plotting MIC and SIR Interpretations","title":"Conduct AMR data analysis","text":"can visualise MIC distributions SIR interpretations using ggplot2, using new scale_y_mic() y-axis scale_colour_sir() colour-code SIR categories. plot provides intuitive way assess susceptibility patterns across different groups incorporating clinical breakpoints. straightforward less manual approach, ggplot2’s function autoplot() extended package directly plot MIC disk diffusion values: Author: Dr. Matthijs Berends, 23rd Feb 2025","code":"# add a group my_data$group <- rep(c(\"A\", \"B\", \"C\", \"D\"), each = 25) ggplot( my_data, aes(x = group, y = MIC, colour = SIR) ) + geom_jitter(width = 0.2, size = 2) + geom_boxplot(fill = NA, colour = \"grey40\") + scale_y_mic() + scale_colour_sir() + labs( title = \"MIC Distribution and SIR Interpretation\", x = \"Sample Groups\", y = \"MIC (mg/L)\" ) autoplot(mic_values) # by providing `mo` and `ab`, colours will indicate the SIR interpretation: autoplot(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\")"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python package. Python package wrapper around AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"prerequisites","dir":"Articles","previous_headings":"","what":"Prerequisites","title":"AMR for Python","text":"package tested virtual environment (venv). can set environment running: can activate environment, venv ready work .","code":"# linux and macOS: python -m venv /path/to/new/virtual/environment # Windows: python -m venv C:\\path\\to\\new\\virtual\\environment"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"install-amr","dir":"Articles","previous_headings":"","what":"Install AMR","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR # Sample data data = { \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'], \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data) # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug']) # Display the results print(df)"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antimicrobials, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antimicrobials"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"example-1-using-antimicrobial-selectors","dir":"Articles","previous_headings":"","what":"Example 1: Using Antimicrobial Selectors","title":"AMR with tidymodels","text":"leveraging power tidymodels AMR package, ’ll build reproducible machine learning workflow predict Gramstain microorganism two important antibiotic classes: aminoglycosides beta-lactams.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Prepare data: Explanation: aminoglycosides() betalactams() dynamically select columns antimicrobials classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(AMR) # For AMR data analysis library(tidymodels) # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) # Your data could look like this: example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , … # Select relevant columns for prediction data <- example_isolates %>% # select AB results dynamically select(mo, aminoglycosides(), betalactams()) %>% # replace NAs with NI (not-interpretable) mutate( across( where(is.sir), ~ replace_na(.x, \"NI\") ), # make factors of SIR columns across( where(is.sir), as.integer ), # get Gramstain of microorganisms mo = as.factor(mo_gramstain(mo)) ) %>% # drop NAs - the ones without a Gramstain (fungi, etc.) drop_na() #> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK #> (amikacin), and KAN (kanamycin) #> ℹ For `betalactams()` using columns PEN (benzylpenicillin), OXA (oxacillin), #> FLC (flucloxacillin), AMX (amoxicillin), AMC (amoxicillin/clavulanic acid), #> AMP (ampicillin), TZP (piperacillin/tazobactam), CZO (cefazolin), FEP #> (cefepime), CXM (cefuroxime), FOX (cefoxitin), CTX (cefotaxime), CAZ #> (ceftazidime), CRO (ceftriaxone), IPM (imipenem), and MEM (meropenem)"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. recipe includes least one preprocessing operation, like step_corr(), necessary parameters can estimated training set using prep(): Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antimicrobial selector functions - need define columns specifically. preparation (retrieved prep()) can see columns variables ‘AMX’ ‘CTX’ removed correlate much existing, variables.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>% step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 20 #> #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams()) prep(resistance_recipe) #> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK #> (amikacin), and KAN (kanamycin) #> ℹ For `betalactams()` using columns PEN (benzylpenicillin), OXA (oxacillin), #> FLC (flucloxacillin), AMX (amoxicillin), AMC (amoxicillin/clavulanic acid), #> AMP (ampicillin), TZP (piperacillin/tazobactam), CZO (cefazolin), FEP #> (cefepime), CXM (cefuroxime), FOX (cefoxitin), CTX (cefotaxime), CAZ #> (ceftazidime), CRO (ceftriaxone), IPM (imipenem), and MEM (meropenem) #> #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> #> #> ── Inputs #> #> Number of variables by role #> #> outcome: 1 #> predictor: 20 #> #> #> #> ── Training information #> #> Training data contained 1968 data points and no incomplete rows. #> #> #> #> ── Operations #> #> • Correlation filter on: AMX CTX | Trained"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>% set_engine(\"glm\") # Use the Generalised Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organises entire modelling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>% add_recipe(resistance_recipe) %>% # Add the preprocessing recipe add_model(logistic_model) # Add the logistic regression model resistance_workflow #> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_corr() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antimicrobial selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram stain 99.5% accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split) # Testing set # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>% fit(training_data) # Train the model # Make predictions on the testing set predictions <- fitted_workflow %>% predict(testing_data) # Generate predictions probabilities <- fitted_workflow %>% predict(testing_data, type = \"prob\") # Generate probabilities predictions <- predictions %>% bind_cols(probabilities) %>% bind_cols(testing_data) # Combine with true labels predictions #> # A tibble: 394 × 24 #> .pred_class `.pred_Gram-negative` `.pred_Gram-positive` mo GEN TOB #> #> 1 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5 #> 2 Gram-positive 3.17e- 8 1.000e+ 0 Gram-p… 5 1 #> 3 Gram-negative 9.99e- 1 1.42 e- 3 Gram-n… 5 5 #> 4 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 5 5 #> 5 Gram-negative 9.46e- 1 5.42 e- 2 Gram-n… 5 5 #> 6 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5 #> 7 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 1 5 #> 8 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 4 4 #> 9 Gram-negative 1 e+ 0 2.22 e-16 Gram-n… 1 1 #> 10 Gram-positive 6.05e-11 1.000e+ 0 Gram-p… 4 4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK , KAN , PEN , OXA , FLC , #> # AMX , AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , IPM , MEM # Evaluate model performance metrics <- predictions %>% metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics metrics #> # A tibble: 2 × 3 #> .metric .estimator .estimate #> #> 1 accuracy binary 0.995 #> 2 kap binary 0.989 # To assess some other model properties, you can make our own `metrics()` function our_metrics <- metric_set(accuracy, kap, ppv, npv) # add Positive Predictive Value and Negative Predictive Value metrics2 <- predictions %>% our_metrics(truth = mo, estimate = .pred_class) # run again on our `our_metrics()` function metrics2 #> # A tibble: 4 × 3 #> .metric .estimator .estimate #> #> 1 accuracy binary 0.995 #> 2 kap binary 0.989 #> 3 ppv binary 0.987 #> 4 npv binary 1 predictions %>% roc_curve(mo, `.pred_Gram-negative`) %>% autoplot()"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Conclusion","title":"AMR with tidymodels","text":"example, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antimicrobial classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"example-2-predicting-esbl-presence-using-raw-mics","dir":"Articles","previous_headings":"","what":"Example 2: Predicting ESBL Presence Using Raw MICs","title":"AMR with tidymodels","text":"second example, demonstrate use columns directly tidymodels workflows using AMR-specific recipe steps. includes transformation log2 scale using step_mic_log2(), prepares MIC values use classification models. approach idea formed basis publication DOI: 10.3389/fmicb.2025.1582703 model presence extended-spectrum beta-lactamases (ESBL) based MIC values.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"objective-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs","what":"Objective","title":"AMR with tidymodels","text":"goal : Use raw MIC values predict whether bacterial isolate produces ESBL. Apply AMR-aware preprocessing tidymodels recipe. Train classification model evaluate predictive performance.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"data-preparation-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs","what":"Data Preparation","title":"AMR with tidymodels","text":"use esbl_isolates dataset comes AMR package. Explanation: esbl_isolates: Contains MIC test results ESBL status isolate. mutate(esbl = ...): Converts target column ordered factor classification.","code":"# Load required libraries library(AMR) library(tidymodels) # View the esbl_isolates data set esbl_isolates #> # A tibble: 500 × 19 #> esbl genus AMC AMP TZP CXM FOX CTX CAZ GEN TOB TMP SXT #>
currenttag=$(git describe --tags --abbrev=0 | sed 's/v//') currenttagfull=$(git describe --tags --abbrev=0) defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$') -currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch}) -currentversion="${currenttag}.$((currentcommit + 9001 + 1))" -echo "$currentversion"
The + 1 accounts for the fact that this PR’s squash commit is not yet on the default branch. Set both of these files to the resulting version string (and only once per PR, even across multiple commits):
+ 1
DESCRIPTION — the Version: field
DESCRIPTION
Version:
tibble
This will become release v3.1.0, intended for launch end of May.
clinical_breakpoints
as.sir()
future
parallel = TRUE
future::plan()
future::plan(future::multisession)
antibiogram()
wisca()
parallel
future.apply
(group, chunk)
recipes
NA
NA_ab_
NA_mo_
NA_character_
NA_integer_
"1"
as.mic()
"1e-3"
e
as.ab()
ETH
MTH
PHE
PHN
STH
THA
THI1
info = FALSE
reference_data
> breakpoint_R
< breakpoint_R
host = NA
cli
Numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See Details > Formatting Type for a list of options.
Numeric value (1-22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See Details > Formatting Type for a list of options.
A logical to indicate info should be printed - the default is TRUE only in interactive mode.
TRUE
A logical to indicate if parallel computing must be used, defaults to FALSE. Requires the future.apply package. For WISCA, Monte Carlo simulations are distributed across workers; for grouped antibiograms, each group is processed by a separate worker. A non-sequential future::plan() must already be active before setting parallel = TRUE – for example, future::plan(future::multisession). An error is thrown if parallel = TRUE is used without a plan set by the user.
FALSE
When used in R Markdown or Quarto: arguments passed on to knitr::kable() (otherwise, has no use).
knitr::kable()
standardized residuals, - (observed - expected) / sqrt(V), where V is the - residual cell variance (Agresti, 2007, section 2.4.5 - for the case where x is a matrix, n * p * (1 - p) otherwise).
(observed - expected) / sqrt(V)
V
x
n * p * (1 - p)
tol
rank.
min(dim(x))
tol = 0
tol = sqrt(.Machine$double.eps)