AMR/index.md

210 lines
14 KiB
Markdown
Raw Normal View History

2022-08-21 16:37:20 +02:00
# The `AMR` Package for R <a href="https://msberends.github.io/AMR/"><img src="./logo.svg" align="right" height="139" /></a>
2018-12-29 22:24:19 +01:00
2022-08-21 16:37:20 +02:00
### Introduction
2018-12-29 22:24:19 +01:00
2022-10-05 09:12:22 +02:00
The `AMR` package is a [free and open-source](#copyright) R package with [zero dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.
2019-11-30 12:01:50 +01:00
2022-10-05 09:12:22 +02:00
This work was published in the Journal of Statistical Software (Volume 104(3); [DOI 10.18637/jss.v104.i03](https://doi.org/10.18637/jss.v104.i03)) and formed the basis of two PhD theses ([DOI 10.33612/diss.177417131](https://doi.org/10.33612/diss.177417131) and [DOI 10.33612/diss.192486375](https://doi.org/10.33612/diss.192486375)).
After installing this package, R knows [**~49,000 distinct microbial species**](./reference/microorganisms.html) and all [**~570 antibiotic, antimycotic and antiviral drugs**](./reference/antibiotics.html) by name and code (including ATC, WHONET/EARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). **It was designed to work in any setting, including those with very limited resources**. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the [University of Groningen](https://www.rug.nl), in collaboration with non-profit organisations [Certe Medical Diagnostics and Advice Foundation](https://www.certe.nl) and [University Medical Center Groningen](https://www.umcg.nl), and is being [actively and durably maintained](./news) by two public healthcare organisations in the Netherlands.
2019-11-30 12:01:50 +01:00
2022-08-21 16:37:20 +02:00
##### Used in 175 countries, translated to 16 languages
2022-08-21 16:37:20 +02:00
<a href="./countries_large.png"><img src="./countries.png" target="_blank" align="right" style="max-width: 300px;" /></a>
2019-02-14 15:18:17 +01:00
2022-08-21 16:37:20 +02:00
Since its first public release in early 2018, this R package has been used in almost all countries in the world. Click the map to enlarge and to see the country names.
2019-08-09 23:22:10 +02:00
2022-08-21 16:37:20 +02:00
The `AMR` package is available in <img src="lang_en.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> English, <img src="lang_zh.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Chinese, <img src="lang_da.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Danish, <img src="lang_nl.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Dutch, <img src="lang_fr.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> French, <img src="lang_de.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> German, <img src="lang_el.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Greek, <img src="lang_it.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Italian, <img src="lang_ja.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Japanese, <img src="lang_pl.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Polish, <img src="lang_pt.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Portuguese, <img src="lang_ru.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Russian, <img src="lang_es.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Spanish, <img src="lang_sv.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Swedish, <img src="lang_tr.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Turkish, and <img src="lang_uk.svg" style="height: 13px !important; border: 1px solid #cccccc; vertical-align: initial !important;"> Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
### Practical examples
2019-08-09 23:22:10 +02:00
2022-08-21 16:37:20 +02:00
#### Filtering and selecting data
2020-12-08 12:37:25 +01:00
```r
# AMR works great with dplyr, but it's not required or neccesary
library(AMR)
library(dplyr)
example_isolates %>%
mutate(bacteria = mo_fullname()) %>%
filter(mo_is_gram_negative(),
mo_is_intrinsic_resistant(ab = "cefotax")) %>%
select(bacteria,
aminoglycosides(),
carbapenems())
2020-12-08 12:37:25 +01:00
```
2020-12-13 13:44:04 +01:00
With only having defined a row filter on Gram-negative bacteria with intrinsic resistance to cefotaxime (`mo_is_gram_negative()` and `mo_is_intrinsic_resistant()`) and a column selection on two antibiotic groups (`aminoglycosides()` and `carbapenems()`), the reference data about [all microorganisms](./reference/microorganisms.html) and [all antibiotics](./reference/antibiotics.html) in the `AMR` package make sure you get what you meant:
2020-12-09 09:40:50 +01:00
2021-07-04 15:26:50 +02:00
|bacteria | GEN | TOB | AMK | KAN | IPM | MEM |
2021-01-24 23:27:11 +01:00
|:------------------------------|:---:|:---:|:---:|:---:|:---:|:---:|
2021-07-04 15:26:50 +02:00
|*Pseudomonas aeruginosa* | I | S | | R | S | |
|*Pseudomonas aeruginosa* | I | S | | R | S | |
|*Pseudomonas aeruginosa* | I | S | | R | S | |
|*Pseudomonas aeruginosa* | S | S | S | R | | S |
|*Pseudomonas aeruginosa* | S | S | S | R | S | S |
|*Pseudomonas aeruginosa* | S | S | S | R | S | S |
2021-01-24 23:27:11 +01:00
|*Stenotrophomonas maltophilia* | R | R | R | R | R | R |
2021-07-04 15:26:50 +02:00
|*Pseudomonas aeruginosa* | S | S | S | R | | S |
|*Pseudomonas aeruginosa* | S | S | S | R | | S |
|*Pseudomonas aeruginosa* | S | S | S | R | S | S |
2020-12-08 12:37:25 +01:00
2022-08-21 16:37:20 +02:00
A base R equivalent would be:
```r
2021-01-24 23:27:11 +01:00
example_isolates$bacteria <- mo_fullname(example_isolates$mo)
example_isolates[which(mo_is_gram_negative() &
mo_is_intrinsic_resistant(ab = "cefotax")),
2021-01-24 23:27:11 +01:00
c("bacteria", aminoglycosides(), carbapenems())]
```
2022-08-21 16:37:20 +02:00
This base R snippet will work in any version of R since April 2013 (R-3.0).
2019-08-09 23:22:10 +02:00
2022-08-21 16:37:20 +02:00
#### Calculating resistance per group
2019-08-09 23:22:10 +02:00
2022-08-21 16:37:20 +02:00
```r
library(AMR)
library(dplyr)
2019-08-09 23:22:10 +02:00
2022-08-21 16:37:20 +02:00
out <- example_isolates %>%
2022-08-27 20:49:37 +02:00
# group by ward:
group_by(ward) %>%
2022-08-21 16:37:20 +02:00
# calculate AMR using resistance(), over all aminoglycosides
# and polymyxins:
summarise(across(c(aminoglycosides(), polymyxins()),
resistance))
out
```
2019-01-26 23:22:56 +01:00
2022-08-27 20:49:37 +02:00
| ward | GEN | TOB | AMK | KAN | COL |
|:-----------|------:|------:|------:|------:|------:|
| Clinical | 0.229 | 0.315 | 0.626 | 1 | 0.780 |
| ICU | 0.290 | 0.400 | 0.662 | 1 | 0.857 |
| Outpatient | 0.200 | 0.368 | 0.605 | NA | 0.889 |
2022-08-21 16:37:20 +02:00
```r
# transform the antibiotic columns to names:
out %>% set_ab_names()
```
2022-08-27 20:49:37 +02:00
| ward | gentamicin | tobramycin | amikacin | kanamycin | colistin |
|:-----------|-----------:|-----------:|----------|----------:|----------:|
| Clinical | 0.229 | 0.315 | 0.626 | 1 | 0.780 |
| ICU | 0.290 | 0.400 | 0.662 | 1 | 0.857 |
| Outpatient | 0.200 | 0.368 | 0.605 | NA | 0.889 |
2022-08-21 16:37:20 +02:00
```r
# transform the antibiotic column to ATC codes:
out %>% set_ab_names(property = "atc")
```
2022-08-27 20:49:37 +02:00
| ward | J01GB03 | J01GB01 | J01GB06 | J01GB04 | J01XB01 |
|:-----------|-----------:|-----------:|----------|----------:|----------:|
| Clinical | 0.229 | 0.315 | 0.626 | 1 | 0.780 |
| ICU | 0.290 | 0.400 | 0.662 | 1 | 0.857 |
| Outpatient | 0.200 | 0.368 | 0.605 | NA | 0.889 |
2022-08-21 16:37:20 +02:00
### What else can you do with this package?
This package was intended as a comprehensive toolbox for integrated AMR data analysis. This package can be used for:
2019-01-26 23:22:56 +01:00
2022-10-05 09:12:22 +02:00
* Reference for the taxonomy of microorganisms, since the package contains all microbial (sub)species from the List of Prokaryotic names with Standing in Nomenclature ([LPSN]((https://lpsn.dsmz.de))) and the Global Biodiversity Information Facility ([GBIF](https://www.gbif.org)) ([manual](./reference/mo_property.html))
2019-05-23 16:58:59 +02:00
* Interpreting raw MIC and disk diffusion values, based on the latest CLSI or EUCAST guidelines ([manual](./reference/as.rsi.html))
* Retrieving antimicrobial drug names, doses and forms of administration from clinical health care records ([manual](./reference/ab_from_text.html))
* Determining first isolates to be used for AMR data analysis ([manual](./reference/first_isolate.html))
2019-05-23 16:58:59 +02:00
* Calculating antimicrobial resistance ([tutorial](./articles/AMR.html))
* Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) ([tutorial](./articles/MDR.html))
* Calculating (empirical) susceptibility of both mono therapy and combination therapies ([tutorial](./articles/AMR.html))
2019-05-23 16:58:59 +02:00
* Predicting future antimicrobial resistance using regression models ([tutorial](./articles/resistance_predict.html))
* Getting properties for any microorganism (like Gram stain, species, genus or family) ([manual](./reference/mo_property.html))
* Getting properties for any antibiotic (like name, code of EARS-Net/ATC/LOINC/PubChem, defined daily dose or trade name) ([manual](./reference/ab_property.html))
2019-05-23 16:58:59 +02:00
* Plotting antimicrobial resistance ([tutorial](./articles/AMR.html))
2019-05-23 18:53:18 +02:00
* Applying EUCAST expert rules ([manual](./reference/eucast_rules.html))
* Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code ([manual](./reference/mo_property.html))
* Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code ([manual](./reference/ab_property.html))
2021-03-15 07:23:21 +01:00
* Machine reading the EUCAST and CLSI guidelines from 2011-2021 to translate MIC values and disk diffusion diameters to R/SI ([link](./articles/datasets.html))
2020-03-14 14:05:43 +01:00
* Principal component analysis for AMR ([tutorial](./articles/PCA.html))
2018-12-29 22:24:19 +01:00
2019-08-09 23:22:10 +02:00
### Get this package
2018-12-29 22:24:19 +01:00
2022-08-21 16:37:20 +02:00
#### Latest official version
2019-01-30 19:52:58 +01:00
2021-06-03 15:19:21 +02:00
[![CRAN](https://www.r-pkg.org/badges/version-ago/AMR)](https://cran.r-project.org/package=AMR)
[![CRANlogs](https://cranlogs.r-pkg.org/badges/grand-total/AMR)](https://cran.r-project.org/package=AMR)
2021-05-26 11:10:34 +02:00
2021-06-03 15:19:21 +02:00
This package is available [here on the official R network (CRAN)](https://cran.r-project.org/package=AMR). Install this package in R from CRAN by using the command:
2021-06-01 15:33:06 +02:00
```r
install.packages("AMR")
```
It will be downloaded and installed automatically. For RStudio, click on the menu *Tools* > *Install Packages...* and then type in "AMR" and press <kbd>Install</kbd>.
2018-12-29 22:24:19 +01:00
2019-02-22 22:12:10 +01:00
**Note:** Not all functions on this website may be available in this latest release. To use all functions and data sets mentioned on this website, install the latest development version.
2019-02-20 13:57:23 +01:00
2021-06-03 15:19:21 +02:00
#### Latest development version
2018-12-29 22:24:19 +01:00
[![R-code-check](https://github.com/msberends/AMR/workflows/R-code-check/badge.svg?branch=main)](https://codecov.io/gh/msberends/AMR?branch=main)
2021-07-11 13:20:45 +02:00
[![CodeFactor](https://www.codefactor.io/repository/github/msberends/amr/badge)](https://www.codefactor.io/repository/github/msberends/amr)
[![Codecov](https://codecov.io/gh/msberends/AMR/branch/main/graph/badge.svg)](https://codecov.io/gh/msberends/AMR?branch=main)
2021-05-26 14:04:12 +02:00
2022-08-21 16:37:20 +02:00
Please read our [Developer Guideline here](https://github.com/msberends/AMR/wiki/Developer-Guideline).
2021-06-03 15:19:21 +02:00
The latest and unpublished development version can be installed from GitHub in two ways:
2021-07-11 13:20:45 +02:00
1. Manually, using:
2021-06-03 15:19:21 +02:00
```r
install.packages("remotes") # if you haven't already
remotes::install_github("msberends/AMR")
```
2021-07-11 13:20:45 +02:00
2. Automatically, using the [rOpenSci R-universe platform](https://ropensci.org/r-universe/), by adding [our R-universe address](https://msberends.r-universe.dev) to your list of repositories ('repos'):
2021-06-03 15:19:21 +02:00
```r
options(repos = c(getOption("repos"),
msberends = "https://msberends.r-universe.dev"))
```
2021-07-11 13:20:45 +02:00
2021-06-03 15:19:21 +02:00
After this, you can install and update this `AMR` package like any official release (e.g., using `install.packages("AMR")` or in RStudio via *Tools* > *Check for Package Updates...*).
2019-08-09 23:22:10 +02:00
### Get started
2021-07-11 13:20:45 +02:00
To find out how to conduct AMR data analysis, please [continue reading here to get started](./articles/AMR.html) or click a link in the ['How to' menu](https://msberends.github.io/AMR/articles/).
2019-01-12 19:31:30 +01:00
2022-08-21 16:37:20 +02:00
### Partners
2022-08-21 16:37:20 +02:00
The development of this package is part of, related to, or made possible by:
2022-08-21 16:37:20 +02:00
<div align="center">
2022-08-29 09:35:36 +02:00
<a href="https://www.rug.nl" title="University of Groningen"><img src="./logo_rug.svg" style="max-width: 200px;"></a>
<a href="https://www.umcg.nl" title="University Medical Center Groningen"><img src="./logo_umcg.png" style="max-width: 200px;"></a>
<a href="https://www.certe.nl" title="Certe Medical Diagnostics and Advice Foundation"><img src="./logo_certe.png" style="max-width: 200px;"></a>
<a href="https://www.deutschland-nederland.eu" title="EurHealth-1-Health"><img src="./logo_eh1h.png" style="max-width: 200px;"></a>
<a href="https://www.deutschland-nederland.eu" title="INTERREG"><img src="./logo_interreg.png" style="max-width: 200px;"></a>
2022-08-21 16:37:20 +02:00
</div>
2019-08-30 14:50:56 +02:00
### Copyright
This R package is free, open-source software and licensed under the [GNU General Public License v2.0 (GPL-2)](./LICENSE-text.html). In a nutshell, this means that this package:
- May be used for commercial purposes
- May be used for private purposes
- May **not** be used for patent purposes
- May be modified, although:
- Modifications **must** be released under the same license when distributing the package
- Changes made to the code **must** be documented
- May be distributed, although:
- Source code **must** be made available when the package is distributed
- A copy of the license and copyright notice **must** be included with the package.
- Comes with a LIMITATION of liability
- Comes with NO warranty