@@ -68,6 +68,7 @@
reference_df = get_mo_source ( ) ,
ignore_pattern = getOption ( "AMR_ignore_pattern" , NULL ) ,
cleaning_regex = getOption ( "AMR_cleaning_regex" , mo_cleaning_regex ( ) ) ,
+ only_fungi = getOption ( "AMR_only_fungi" , FALSE ) ,
language = get_AMR_locale ( ) ,
info = interactive ( ) ,
...
@@ -124,12 +125,16 @@
a Perl-compatible regular expression (case-insensitive) to clean the input of x
. Every matched part in x
will be removed. At default, this is the outcome of mo_cleaning_regex()
, which removes texts between brackets and texts such as "species" and "serovar". The default can be set with the package option AMR_cleaning_regex
.
+only_fungi
+a logical to indicate if only fungi must be found, making sure that e.g. misspellings always return records from the kingdom of Fungi. This can be set globally for all microorganism functions with the package option AMR_only_fungi
, i.e. options(AMR_only_fungi = TRUE)
.
+
+
language
language to translate text like "no growth", which defaults to the system language (see get_AMR_locale()
)
info
-a logical to indicate if a progress bar should be printed if more than 25 items are to be coerced - the default is TRUE
only in interactive mode
+a logical to indicate that info must be printed, e.g. a progress bar when more than 25 items are to be coerced, or a list with old taxonomic names. The default is TRUE
only in interactive mode.
...
@@ -142,7 +147,7 @@
Details
-
A microorganism (MO) code from this package (class: mo
) is human readable and typically looks like these examples:
+
A microorganism (MO) code from this package (class: mo
) is human-readable and typically looks like these examples:
Code Full name
--------------- --------------------------------------
B_KLBSL Klebsiella
@@ -153,50 +158,76 @@
| | | \-- -> subspecies, a 3-5 letter acronym
| | \--- -> species, a 3-6 letter acronym
| \--- -> genus, a 4-8 letter acronym
- \--- -> taxonomic kingdom: A (Archaea), AN (Animalia), B (Bacteria),
- F (Fungi), PL (Plantae), P (Protozoa)
-
Values that cannot be coerced will be considered 'unknown' and will be returned as the MO code UNKNOWN
with a warning.
+
\--- -> kingdom: A (Archaea), AN (Animalia), B (Bacteria),
+
C (Chromista), F (Fungi), PL (Plantae),
+
P (Protozoa)
+Values that cannot be coerced will be considered 'unknown' and will return the MO code UNKNOWN
with a warning.
Use the mo_*
functions to get properties based on the returned code, see Examples .
-The as.mo()
function uses a novel matching score algorithm (see Matching Score for Microorganisms below) to match input against the available microbial taxonomy in this package. This will lead to the effect that e.g. "E. coli"
(a microorganism highly prevalent in humans) will return the microbial ID of Escherichia coli and not Entamoeba coli (a microorganism less prevalent in humans), although the latter would alphabetically come first.
-With Becker = TRUE
, the following 89 staphylococci will be converted to the coagulase-negative group : S. americanisciuri , S. argensis , S. arlettae , S. auricularis , S. borealis , S. brunensis , S. caeli , S. caledonicus , S. canis , S. capitis , S. capitis capitis , S. capitis urealyticus , S. capitis ureolyticus , S. caprae , S. carnosus , S. carnosus carnosus , S. carnosus utilis , S. casei , S. caseolyticus , S. chromogenes , S. cohnii , S. cohnii cohnii , S. cohnii urealyticum , S. cohnii urealyticus , S. condimenti , S. croceilyticus , S. debuckii , S. devriesei , S. durrellii , S. edaphicus , S. epidermidis , S. equorum , S. equorum equorum , S. equorum linens , S. felis , S. fleurettii , S. gallinarum , S. haemolyticus , S. hominis , S. hominis hominis , S. hominis novobiosepticus , S. jettensis , S. kloosii , S. lentus , S. lloydii , S. lugdunensis , S. marylandisciuri , S. massiliensis , S. microti , S. muscae , S. nepalensis , S. pasteuri , S. petrasii , S. petrasii croceilyticus , S. petrasii jettensis , S. petrasii petrasii , S. petrasii pragensis , S. pettenkoferi , S. piscifermentans , S. pragensis , S. pseudoxylosus , S. pulvereri , S. ratti , S. rostri , S. saccharolyticus , S. saprophyticus , S. saprophyticus bovis , S. saprophyticus saprophyticus , S. schleiferi , S. schleiferi schleiferi , S. sciuri , S. sciuri carnaticus , S. sciuri lentus , S. sciuri rodentium , S. sciuri sciuri , S. shinii , S. simulans , S. stepanovicii , S. succinus , S. succinus casei , S. succinus succinus , S. taiwanensis , S. urealyticus , S. ureilyticus , S. veratri , S. vitulinus , S. vitulus , S. warneri , and S. xylosus . The following 16 staphylococci will be converted to the coagulase-positive group : S. agnetis , S. argenteus , S. coagulans , S. cornubiensis , S. delphini , S. hyicus , S. hyicus chromogenes , S. hyicus hyicus , S. intermedius , S. lutrae , S. pseudintermedius , S. roterodami , S. schleiferi coagulans , S. schweitzeri , S. simiae , and S. singaporensis .
-With Lancefield = TRUE
, the following streptococci will be converted to their corresponding Lancefield group: S. agalactiae (Group B), S. anginosus anginosus (Group F), S. anginosus whileyi (Group F), S. anginosus (Group F), S. canis (Group G), S. dysgalactiae dysgalactiae (Group C), S. dysgalactiae equisimilis (Group C), S. dysgalactiae (Group C), S. equi equi (Group C), S. equi ruminatorum (Group C), S. equi zooepidemicus (Group C), S. equi (Group C), S. pyogenes (Group A), S. salivarius salivarius (Group K), S. salivarius thermophilus (Group K), S. salivarius (Group K), and S. sanguinis (Group H).
+
The as.mo()
function uses a novel and scientifically validated (doi:10.18637/jss.v104.i03
+) matching score algorithm (see Matching Score for Microorganisms below) to match input against the available microbial taxonomy in this package. This implicates that e.g. "E. coli"
(a microorganism highly prevalent in humans) will return the microbial ID of Escherichia coli and not Entamoeba coli (a microorganism less prevalent in humans), although the latter would alphabetically come first.
Coping with Uncertain Results
-
Results of non-exact taxonomic input are based on their matching score . The lowest allowed score can be set with the minimum_matching_score
argument. At default this will be determined based on the character length of the input, and the taxonomic kingdom and human pathogenicity of the taxonomic outcome. If values are matched with uncertainty, a message will be shown to suggest the user to evaluate the results with mo_uncertainties()
, which returns a data.frame with all specifications.
-
To increase the quality of matching, the cleaning_regex
argument can be used to clean the input (i.e., x
). This must be a regular expression that matches parts of the input that should be removed before the input is matched against the available microbial taxonomy . It will be matched Perl-compatible and case-insensitive. The default value of cleaning_regex
is the outcome of the helper function mo_cleaning_regex()
.
+
Results of non-exact taxonomic input are based on their matching score . The lowest allowed score can be set with the minimum_matching_score
argument. At default this will be determined based on the character length of the input, the taxonomic kingdom , and the human pathogenicity of the taxonomic outcome. If values are matched with uncertainty, a message will be shown to suggest the user to inspect the results with mo_uncertainties()
, which returns a data.frame with all specifications.
+
To increase the quality of matching, the cleaning_regex
argument is used to clean the input. This must be a regular expression that matches parts of the input that should be removed before the input is matched against the available microbial taxonomy . It will be matched Perl-compatible and case-insensitive. The default value of cleaning_regex
is the outcome of the helper function mo_cleaning_regex()
.
There are three helper functions that can be run after using the as.mo()
function:
Use mo_uncertainties()
to get a data.frame that prints in a pretty format with all taxonomic names that were guessed. The output contains the matching score for all matches (see Matching Score for Microorganisms below).
Use mo_failures()
to get a character vector with all values that could not be coerced to a valid value.
Use mo_renamed()
to get a data.frame with all values that could be coerced based on old, previously accepted taxonomic names.
-
Microbial Prevalence of Pathogens in Humans
+
For Mycologists
-
The coercion rules consider the prevalence of microorganisms in humans, which is available as the prevalence
column in the microorganisms data set. The grouping into human pathogenic prevalence is explained in the section Matching Score for Microorganisms below.
+
The matching score algorithm gives precedence to bacteria over fungi. If you are only analysing fungi, be sure to use only_fungi = TRUE
, or better yet, add this to your code and run it once every session:
+
+
This will make sure that no bacteria or other 'non-fungi' will be returned by as.mo()
, or any of the mo_*
functions.
+
+
Coagulase-negative and Coagulase-positive Staphylococci
+
+
+
With Becker = TRUE
, the following staphylococci will be converted to their corresponding coagulase group:
Coagulase-negative: S. americanisciuri , S. argensis , S. arlettae , S. auricularis , S. borealis , S. brunensis , S. caeli , S. caledonicus , S. canis , S. capitis , S. capitis capitis , S. capitis urealyticus , S. capitis ureolyticus , S. caprae , S. carnosus , S. carnosus carnosus , S. carnosus utilis , S. casei , S. caseolyticus , S. chromogenes , S. cohnii , S. cohnii cohnii , S. cohnii urealyticum , S. cohnii urealyticus , S. condimenti , S. croceilyticus , S. debuckii , S. devriesei , S. durrellii , S. edaphicus , S. epidermidis , S. equorum , S. equorum equorum , S. equorum linens , S. felis , S. fleurettii , S. gallinarum , S. haemolyticus , S. hominis , S. hominis hominis , S. hominis novobiosepticus , S. jettensis , S. kloosii , S. lentus , S. lloydii , S. lugdunensis , S. marylandisciuri , S. massiliensis , S. microti , S. muscae , S. nepalensis , S. pasteuri , S. petrasii , S. petrasii croceilyticus , S. petrasii jettensis , S. petrasii petrasii , S. petrasii pragensis , S. pettenkoferi , S. piscifermentans , S. pragensis , S. pseudoxylosus , S. pulvereri , S. ratti , S. rostri , S. saccharolyticus , S. saprophyticus , S. saprophyticus bovis , S. saprophyticus saprophyticus , S. schleiferi , S. schleiferi schleiferi , S. sciuri , S. sciuri carnaticus , S. sciuri lentus , S. sciuri rodentium , S. sciuri sciuri , S. shinii , S. simulans , S. stepanovicii , S. succinus , S. succinus casei , S. succinus succinus , S. taiwanensis , S. urealyticus , S. ureilyticus , S. veratri , S. vitulinus , S. vitulus , S. warneri , and S. xylosus
+Coagulase-positive: S. agnetis , S. argenteus , S. coagulans , S. cornubiensis , S. delphini , S. hyicus , S. hyicus chromogenes , S. hyicus hyicus , S. intermedius , S. lutrae , S. pseudintermedius , S. roterodami , S. schleiferi coagulans , S. schweitzeri , S. simiae , and S. singaporensis
+This is based on:
Becker K et al. (2014). Coagulase-Negative Staphylococci. Clin Microbiol Rev. 27(4): 870-926; doi:10.1128/CMR.00109-13
+Becker K et al. (2019). Implications of identifying the recently defined members of the S. aureus complex, S. argenteus and S. schweitzeri : A position paper of members of the ESCMID Study Group for staphylococci and Staphylococcal Diseases (ESGS). Clin Microbiol Infect ; doi:10.1016/j.cmi.2019.02.028
+Becker K et al. (2020). Emergence of coagulase-negative staphylococci. Expert Rev Anti Infect Ther. 18(4):349-366; doi:10.1080/14787210.2020.1730813
+For newly named staphylococcal species, such as S. brunensis (2024) and S. shinii (2023), we looked up the scientific reference to make sure the species are considered for the correct coagulase group.
+
+
+
+
Lancefield Groups in Streptococci
+
+
+
With Lancefield = TRUE
, the following streptococci will be converted to their corresponding Lancefield group:
Streptococcus Group A: S. pyogenes
+Streptococcus Group B: S. agalactiae
+Streptococcus Group C: S. dysgalactiae , S. dysgalactiae dysgalactiae , S. dysgalactiae equisimilis , S. equi , S. equi equi , S. equi ruminatorum , and S. equi zooepidemicus
+Streptococcus Group F: S. anginosus , S. anginosus anginosus , S. anginosus whileyi , S. constellatus , S. constellatus constellatus , S. constellatus pharyngis , S. constellatus viborgensis , and S. intermedius
+Streptococcus Group G: S. canis , S. dysgalactiae , S. dysgalactiae dysgalactiae , and S. dysgalactiae equisimilis
+Streptococcus Group H: S. sanguinis
+Streptococcus Group K: S. salivarius , S. salivarius salivarius , and S. salivarius thermophilus
+Streptococcus Group L: S. dysgalactiae , S. dysgalactiae dysgalactiae , and S. dysgalactiae equisimilis
+This is based on:
+
Source
-
Berends MS et al. (2022). AMR: An R Package for Working with Antimicrobial Resistance Data . Journal of Statistical Software , 104(3), 1-31; doi:10.18637/jss.v104.i03
-Becker K et al. (2014). Coagulase-Negative Staphylococci. Clin Microbiol Rev. 27(4): 870-926; doi:10.1128/CMR.00109-13
-Becker K et al. (2019). Implications of identifying the recently defined members of the S. aureus complex, S. argenteus and S. schweitzeri : A position paper of members of the ESCMID Study Group for staphylococci and Staphylococcal Diseases (ESGS). Clin Microbiol Infect ; doi:10.1016/j.cmi.2019.02.028
-Becker K et al. (2020). Emergence of coagulase-negative staphylococci. Expert Rev Anti Infect Ther. 18(4):349-366; doi:10.1080/14787210.2020.1730813
-Lancefield RC (1933). A serological differentiation of human and other groups of hemolytic streptococci. J Exp Med. 57(4): 571-95; doi:10.1084/jem.57.4.571
-Berends MS et al. (2022). Trends in Occurrence and Phenotypic Resistance of Coagulase-Negative Staphylococci (CoNS) Found in Human Blood in the Northern Netherlands between 2013 and 2019/ Micro.rganisms 10(9), 1801; doi:10.3390/microorganisms10091801
+Berends MS et al. (2022). AMR: An R Package for Working with Antimicrobial Resistance Data . Journal of Statistical Software , 104(3), 1-31; doi:10.18637/jss.v104.i03
Parte, AC et al. (2020). List of Prokaryotic names with Standing in Nomenclature (LPSN) moves to the DSMZ. International Journal of Systematic and Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332
. Accessed from https://lpsn.dsmz.de on June 24th, 2024.
+Vincent, R et al (2013). MycoBank gearing up for new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16
+. Accessed from https://www.mycobank.org on June 24th, 2024.
GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei
. Accessed from https://www.gbif.org on June 24th, 2024.
Reimer, LC et al. (2022). BacDive in 2022: the knowledge base for standardized bacterial and archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961
. Accessed from https://bacdive.dsmz.de on July 16th, 2024.
Public Health Information Network Vocabulary Access and Distribution System (PHIN VADS). US Edition of SNOMED CT from 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov
Bartlett A et al. (2022). A comprehensive list of bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269
-
+
Matching Score for Microorganisms
@@ -268,7 +299,7 @@
# input will get cleaned up with the input given in the `cleaning_regex` argument,
# which defaults to `mo_cleaning_regex()`:
cat ( mo_cleaning_regex ( ) , "\n" )
-
#> ([^A-Za-z- \(\)\[\]{}]+|([({]|\[).+([})]|\])|(^| )(e?spp([^a-z]+|$)|e?ssp([^a-z]+|$)|serogr.?up[a-z]*|e?ss([^a-z]+|$)|e?sp([^a-z]+|$)|var([^a-z]+|$)|serovar[a-z]*|sube?species|biovar[a-z]*|e?species|Ig[ADEGM]|e?subsp|biotype|titer|dummy))
+
#> ([^A-Za-z- \(\)\[\]{}]+|([({]|\[).+([})]|\])|(^| )( ?[a-z-]+[-](resistant|susceptible) ?|e?spp([^a-z]+|$)|e?ssp([^a-z]+|$)|serogr.?up[a-z]*|e?ss([^a-z]+|$)|e?sp([^a-z]+|$)|var([^a-z]+|$)|serovar[a-z]*|sube?species|biovar[a-z]*|e?species|Ig[ADEGM]|e?subsp|biotype|titer|dummy))
as.mo ( "Streptococcus group A" )
#> Class 'mo'
diff --git a/reference/as.sir.html b/reference/as.sir.html
index a066d3e8..47ef4ac8 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -3,14 +3,14 @@
These breakpoints are currently implemented:
For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024;
For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024;
-ECOFFs (Epidemiological cut-off values): EUCAST 2020-2024 and CLSI 2022-2024.
+For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024.
All breakpoints used for interpretation are available in our clinical_breakpoints data set.">
@@ -21,7 +21,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
AMR (for R)
-
2.1.1.9066
+
2.1.1.9073
@@ -71,7 +71,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
Clean up existing SIR values, or interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI. as.sir()
transforms the input to a new class sir
, which is an ordered factor containing the levels S
, SDD
, I
, R
, NI
.
These breakpoints are currently implemented:
For clinical microbiology : EUCAST 2011-2024 and CLSI 2011-2024;
For veterinary microbiology : EUCAST 2021-2024 and CLSI 2019-2024;
-ECOFFs (Epidemiological cut-off values): EUCAST 2020-2024 and CLSI 2022-2024.
+For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024.
All breakpoints used for interpretation are available in our clinical_breakpoints data set.
@@ -155,7 +155,8 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
Source
For interpretations of minimum inhibitory concentration (MIC) values and disk diffusion diameters:
CLSI M39: Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data , 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/ .
CLSI M100: Performance Standard for Antimicrobial Susceptibility Testing , 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m100/ .
-CLSI VET01: Performance Standards for Antimicrobial Disk and Dilution Susceptibility Tests for Bacteria Isolated From Animals , 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01// .
+CLSI VET01: Performance Standards for Antimicrobial Disk and Dilution Susceptibility Tests for Bacteria Isolated From Animals , 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01/ .
+CLSI VET09: Understanding Susceptibility Test Data as a Component of Antimicrobial Stewardship in Veterinary Settings , 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet09/ .
EUCAST Breakpoint tables for interpretation of MICs and zone diameters , 2011-2024, European Committee on Antimicrobial Susceptibility Testing (EUCAST). https://www.eucast.org/clinical_breakpoints .
WHONET as a source for machine-reading the clinical breakpoints (read more here ), 1989-2024, WHO Collaborating Centre for Surveillance of Antimicrobial Resistance . https://whonet.org/ .
@@ -253,7 +254,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
your_data %>% mutate_if ( is.mic , as.sir , ab = c ( "cipro" , "ampicillin" , ... ) , mo = c ( "E. coli" , "K. pneumoniae" , ... ) )
# for veterinary breakpoints, also set `host`:
-your_data %>% mutate_if ( is.mic , as.sir , host = "column_with_animal_hosts" , guideline = "CLSI" )
+your_data %>% mutate_if ( is.mic , as.sir , host = "column_with_animal_species" , guideline = "CLSI" )
Operators like "<=" will be stripped before interpretation. When using conserve_capped_values = TRUE
, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (conserve_capped_values = FALSE
) considers ">2" to be lower than ">=4" and might in this case return "S" or "I".
For interpreting disk diffusion diameters according to EUCAST or CLSI. You must clean your disk zones first using as.disk()
, that also gives your columns the new data class disk
. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the mo
argument.
For interpreting a complete data set , with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running as.sir(your_data)
.
For points 2, 3 and 4: Use sir_interpretation_history()
to retrieve a data.frame (or tibble if the tibble
package is installed) with all results of the last as.sir()
call.
@@ -284,6 +285,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
For veterinary guidelines, these might be the best options:
options (AMR_guideline = "CLSI" )
options (AMR_breakpoint_type = "animal" )
+When applying veterinary breakpoints (by setting host
or by setting breakpoint_type = "animal"
), the CLSI VET09 guideline will be applied to cope with missing animal species-specific breakpoints.
@@ -291,6 +293,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
After using as.sir()
, you can use the eucast_rules()
defined by EUCAST to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism.
+
To determine which isolates are multi-drug resistant, be sure to run mdro()
(which applies the MDR/PDR/XDR guideline from 2012 at default) on a data set that contains S/I/R values. Read more about interpreting multidrug-resistant organisms here .
@@ -560,6 +563,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
df_wide %>%
mutate_at ( vars ( cipro : genta ) , as.sir , mo = "E. coli" , uti = TRUE )
}
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX) based on column
@@ -569,6 +573,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> 'microorganism', EUCAST 2024...
#> NOTE
#> • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'.
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX) based on column
@@ -584,6 +589,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin) based on
#> column 'microorganism', EUCAST 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX) based on column
@@ -593,6 +599,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> 'microorganism', EUCAST 2024...
#> NOTE
#> • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'.
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX) based on column
@@ -605,6 +612,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on
#> column 'microorganism', EUCAST 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX) based on column
@@ -617,18 +625,21 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on
#> column 'microorganism', EUCAST 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin),
#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column
#> 'bacteria', CLSI 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin),
#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column
#> 'bacteria', CLSI 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024...
@@ -637,6 +648,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> OK
#> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024...
@@ -645,37 +657,36 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> OK
#> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024...
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> ℹ Assuming breakpoint_type = "animal", since host is set.
#> ℹ Please note that in the absence of specific veterinary breakpoints for
-
#> certain animal hosts, breakpoints for dogs, cattle, swine, cats, horse,
-
#> aquatic, and poultry, in that order, are used as substitutes.
+
#> certain animal hosts, the CLSI guideline VET09 will be applied where
+
#> possible.
#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin),
#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column
#> 'bacteria', CLSI 2024...
-
#> NOTE
-
#> • Using dogs breakpoints since cattle for gentamicin (GEN) in Escherichia coli are not available.
+
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> ℹ Assuming breakpoint_type = "animal", since host is set.
#> ℹ Please note that in the absence of specific veterinary breakpoints for
-
#> certain animal hosts, breakpoints for dogs, cattle, swine, cats, horse,
-
#> aquatic, and poultry, in that order, are used as substitutes.
+
#> certain animal hosts, the CLSI guideline VET09 will be applied where
+
#> possible.
#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin),
#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column
#> 'bacteria', CLSI 2024...
-
#> NOTE
-
#> • Using dogs breakpoints since cattle for gentamicin (GEN) in Escherichia coli are not available.
+
#> OK
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> ℹ Assuming breakpoint_type = "animal", since host is set.
-
#> ℹ The following host(s) are invalid: "animalspecies". For missing animal
-
#> hosts, assuming "dogs", since these have the highest breakpoint
-
#> availability.
+
#>
#> ℹ Please note that in the absence of specific veterinary breakpoints for
-
#> certain animal hosts, breakpoints for dogs, cattle, swine, cats, horse,
-
#> aquatic, and poultry, in that order, are used as substitutes.
+
#> certain animal hosts, the CLSI guideline VET09 will be applied where
+
#> possible.
#> Interpreting MIC values: 'antibiotic' (TESTAB, test Antibiotic), CLSI
#> 2024...
#> WARNING
@@ -688,22 +699,29 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> CLSI 2024...
#> WARNING
#> • No CLSI 2024 DISK breakpoints available for test Antibiotic (TESTAB).
+
#> Warning: There was 1 warning in `mutate()`.
+
#> ℹ In argument: `cipro = (function (x, ...) ...`.
+
#> Caused by warning:
+
#> ! The following animal host(s) could not be coerced: "animal_species"
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> ℹ Assuming breakpoint_type = "animal", since host is set.
-
#> ℹ The following host(s) are invalid: "animalspecies". For missing animal
-
#> hosts, assuming "dogs", since these have the highest breakpoint
-
#> availability.
+
#>
#> ℹ Please note that in the absence of specific veterinary breakpoints for
-
#> certain animal hosts, breakpoints for dogs, cattle, swine, cats, horse,
-
#> aquatic, and poultry, in that order, are used as substitutes.
+
#> certain animal hosts, the CLSI guideline VET09 will be applied where
+
#> possible.
#> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024...
-
#> WARNING
-
#> • No CLSI 2024 MIC breakpoints available for ciprofloxacin (CIP).
+
#> OK
#> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024...
#> OK
#> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024...
#> OK
+
#> Warning: There was 1 warning in `mutate()`.
+
#> ℹ In argument: `across(...)`.
+
#> Caused by warning:
+
#> ! The following animal host(s) could not be coerced: "animal_species"
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: column 'nitrofuratoin' (NIT, nitrofurantoin),
@@ -713,12 +731,14 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> ℹ Assuming value "urine" in column 'specimen' reflects a urinary tract
#> infection.
#> Use as.sir(uti = FALSE) to prevent this.
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: column 'nitrofuratoin' (NIT, nitrofurantoin),
#> EUCAST 2024...
#> NOTE
#> • Breakpoints for nitrofurantoin (NIT) in Escherichia coli are only available for (uncomplicated) urinary tract infections (UTI); assuming uti = TRUE.
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), EUCAST 2024...
@@ -736,6 +756,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
## Using base R ------------------------------------------------
as.sir ( df_wide )
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: column 'amoxicillin' (AMX), EUCAST 2024...
@@ -760,16 +781,16 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> # A tibble: 59 × 16
#> datetime index ab_given mo_given host_given ab mo
#> * <dttm> <int> <chr> <chr> <chr> <ab> <mo>
-
#> 1 2024-07-16 14:14:03 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
-
#> 2 2024-07-16 14:14:04 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
-
#> 3 2024-07-16 14:14:04 4 genta Escheri… cattle GEN B_[ORD]_ENTRBCTR
-
#> 4 2024-07-16 14:14:05 4 genta Escheri… cattle GEN B_[ORD]_ENTRBCTR
-
#> 5 2024-07-16 14:14:03 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
-
#> 6 2024-07-16 14:14:04 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
-
#> 7 2024-07-16 14:14:04 3 tobra Escheri… horses TOB B_ESCHR_COLI
-
#> 8 2024-07-16 14:14:05 3 tobra Escheri… horses TOB B_ESCHR_COLI
-
#> 9 2024-07-16 14:14:03 2 cipro Escheri… human CIP B_[ORD]_ENTRBCTR
-
#> 10 2024-07-16 14:14:04 2 cipro Escheri… human CIP B_[ORD]_ENTRBCTR
+
#> 1 2024-09-19 12:03:00 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
+
#> 2 2024-09-19 12:03:00 4 genta Escheri… cattle GEN B_ESCHR_COLI
+
#> 3 2024-09-19 12:03:01 4 genta Escheri… cattle GEN B_ESCHR_COLI
+
#> 4 2024-09-19 12:03:00 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
+
#> 5 2024-09-19 12:03:00 3 tobra Escheri… horses TOB B_ESCHR_COLI
+
#> 6 2024-09-19 12:03:01 3 tobra Escheri… horses TOB B_ESCHR_COLI
+
#> 7 2024-09-19 12:03:00 2 cipro Escheri… human CIP B_[ORD]_ENTRBCTR
+
#> 8 2024-09-19 12:03:00 2 cipro Escheri… dogs CIP B_ESCHR_COLI
+
#> 9 2024-09-19 12:03:01 2 cipro Escheri… dogs CIP B_ESCHR_COLI
+
#> 10 2024-09-19 12:03:02 2 nitrofu… E. coli human NIT B_ESCHR_COLI
#> # ℹ 49 more rows
#> # ℹ 9 more variables: host <chr>, method <chr>, input <dbl>, outcome <sir>,
#> # notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>,
@@ -782,6 +803,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
ab = "AMP" ,
guideline = "EUCAST"
)
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting MIC values: 'AMP' (ampicillin), EUCAST 2024...
@@ -796,6 +818,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
ab = "ampicillin" , # and `ab` with as.ab()
guideline = "EUCAST"
)
+
#>
#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with
#> all the details of the breakpoint interpretations.
#> Interpreting disk diffusion zones: 'ampicillin' (AMP), EUCAST 2024...
@@ -807,7 +830,7 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
# For CLEANING existing SIR values ------------------------------------
as.sir ( c ( "S" , "SDD" , "I" , "R" , "NI" , "A" , "B" , "C" ) )
-
#> Warning: in as.sir(): 3 results in column '30' truncated (38%) that were invalid
+
#> Warning: in as.sir(): 3 results in column '19' truncated (38%) that were invalid
#> antimicrobial interpretations: "A", "B", and "C"
#> Class 'sir'
#> [1] S SDD I R NI <NA> <NA> <NA>
diff --git a/reference/atc_online.html b/reference/atc_online.html
index 3c028d09..09dce198 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
AMR (for R)
-
2.1.1.9066
+
2.1.1.9073
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index 975985e8..0eca583c 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/av_property.html b/reference/av_property.html
index 7ec116a9..5dd27fab 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/availability.html b/reference/availability.html
index 331bc99f..8cbe6399 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index 48e23d21..734f93f5 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index c1a38c01..85ab3a7d 100644
--- a/reference/clinical_breakpoints.html
+++ b/reference/clinical_breakpoints.html
@@ -13,7 +13,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values."> AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/count.html b/reference/count.html
index f92f2824..6b1f1362 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)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index 1c84fc35..c9ea4316 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/dosage.html b/reference/dosage.html
index f1ad8f95..0a5341c1 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index b8813ea5..2e0ddbdc 100644
--- a/reference/eucast_rules.html
+++ b/reference/eucast_rules.html
@@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 14ea708f..4c8999de 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index ad5103d3..b84d1735 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index 258002d5..697d2dc0 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index b8371ee1..921efd58 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/g.test.html b/reference/g.test.html
index 9e105109..43a3e58a 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/get_episode.html b/reference/get_episode.html
index ad5c9144..fdb50885 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/ggplot_pca-2.png b/reference/ggplot_pca-2.png
index 00e1c52c..5396dfd7 100644
Binary files a/reference/ggplot_pca-2.png and b/reference/ggplot_pca-2.png differ
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index e02c871c..c856d48e 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/ggplot_sir-1.png b/reference/ggplot_sir-1.png
index 14fec60f..1a177433 100644
Binary files a/reference/ggplot_sir-1.png and b/reference/ggplot_sir-1.png differ
diff --git a/reference/ggplot_sir-10.png b/reference/ggplot_sir-10.png
index ac02d12f..b763cf1e 100644
Binary files a/reference/ggplot_sir-10.png and b/reference/ggplot_sir-10.png differ
diff --git a/reference/ggplot_sir-2.png b/reference/ggplot_sir-2.png
index 765aa31b..b755bd57 100644
Binary files a/reference/ggplot_sir-2.png and b/reference/ggplot_sir-2.png differ
diff --git a/reference/ggplot_sir-3.png b/reference/ggplot_sir-3.png
index c1201cf6..218b9a5b 100644
Binary files a/reference/ggplot_sir-3.png and b/reference/ggplot_sir-3.png differ
diff --git a/reference/ggplot_sir-4.png b/reference/ggplot_sir-4.png
index 6a872bb8..5a12266b 100644
Binary files a/reference/ggplot_sir-4.png and b/reference/ggplot_sir-4.png differ
diff --git a/reference/ggplot_sir-5.png b/reference/ggplot_sir-5.png
index 2229bb05..63163f27 100644
Binary files a/reference/ggplot_sir-5.png and b/reference/ggplot_sir-5.png differ
diff --git a/reference/ggplot_sir-6.png b/reference/ggplot_sir-6.png
index 8ee9b7b5..3da11d2e 100644
Binary files a/reference/ggplot_sir-6.png and b/reference/ggplot_sir-6.png differ
diff --git a/reference/ggplot_sir-7.png b/reference/ggplot_sir-7.png
index 40e5918f..6867e0d2 100644
Binary files a/reference/ggplot_sir-7.png and b/reference/ggplot_sir-7.png differ
diff --git a/reference/ggplot_sir-8.png b/reference/ggplot_sir-8.png
index fcdec813..5cdf56c5 100644
Binary files a/reference/ggplot_sir-8.png and b/reference/ggplot_sir-8.png differ
diff --git a/reference/ggplot_sir-9.png b/reference/ggplot_sir-9.png
index c1201cf6..218b9a5b 100644
Binary files a/reference/ggplot_sir-9.png and b/reference/ggplot_sir-9.png differ
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index dfaaab14..fa902661 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index b440e17b..4ea4dbe4 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/index.html b/reference/index.html
index b747eddc..cb084eca 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 39c6f723..e4bd6af0 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index 36ade193..69b826fc 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/join.html b/reference/join.html
index d34f9065..98876b83 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index f4557ff9..a9068b70 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 923fd963..92e1c632 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/like.html b/reference/like.html
index f515ca92..b6ae0813 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/mdro.html b/reference/mdro.html
index 5a8b7ea9..68641ff1 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index b8174c38..694b7205 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 690bb812..2c63d292 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
@@ -161,6 +161,9 @@
#> $lpsn
#> [1] "776057"
#>
+#> $mycobank
+#> [1] NA
+#>
#> $gbif
#> [1] "11286021"
#>
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 71c14d5c..662ac5db 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index e43904ae..35899709 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)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index e3504695..385c1c22 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/mo_property.html b/reference/mo_property.html
index 67dd0ebc..4f14f5a9 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
@@ -354,26 +354,27 @@
An integer in case of mo_year()
An ordered factor in case of mo_pathogenicity()
-A list in case of mo_taxonomy()
, mo_synonyms()
, mo_snomed()
and mo_info()
-A named character in case of mo_url()
+A list in case of mo_taxonomy()
, mo_synonyms()
, mo_snomed()
, and mo_info()
+A logical in case of mo_is_anaerobic()
, mo_is_gram_negative()
, mo_is_gram_positive()
, mo_is_intrinsic_resistant()
, and mo_is_yeast()
+A named character in case of mo_synonyms()
and mo_url()
A character in all other cases
Details
All functions will, at default, not keep old taxonomic properties, as synonyms are automatically replaced with the current taxonomy. Take for example Enterobacter aerogenes , which was initially named in 1960 but renamed to Klebsiella aerogenes in 2017:
mo_genus("Enterobacter aerogenes")
will return "Klebsiella"
(with a note about the renaming)
mo_genus("Enterobacter aerogenes", keep_synonyms = TRUE)
will return "Enterobacter"
(with a once-per-session warning that the name is outdated)
-mo_ref("Enterobacter aerogenes")
will return "Tindall et al., 2017"
(with a note)
-mo_ref("Enterobacter aerogenes", keep_synonyms = TRUE)
will return "Hormaeche et al., 1960"
(with a warning)
+mo_ref("Enterobacter aerogenes")
will return "Tindall et al., 2017"
(with a note about the renaming)
+mo_ref("Enterobacter aerogenes", keep_synonyms = TRUE)
will return "Hormaeche et al., 1960"
(with a once-per-session warning that the name is outdated)
The short name (mo_shortname()
) returns the first character of the genus and the full species, such as "E. coli"
, for species and subspecies. Exceptions are abbreviations of staphylococci (such as "CoNS" , Coagulase-Negative Staphylococci) and beta-haemolytic streptococci (such as "GBS" , Group B Streptococci). Please bear in mind that e.g. E. coli could mean Escherichia coli (kingdom of Bacteria) as well as Entamoeba coli (kingdom of Protozoa). Returning to the full name will be done using as.mo()
internally, giving priority to bacteria and human pathogens, i.e. "E. coli"
will be considered Escherichia coli . As a result, mo_fullname(mo_shortname("Entamoeba coli"))
returns "Escherichia coli"
.
Since the top-level of the taxonomy is sometimes referred to as 'kingdom' and sometimes as 'domain', the functions mo_kingdom()
and mo_domain()
return the exact same results.
Determination of human pathogenicity (mo_pathogenicity()
) is strongly based on Bartlett et al. (2022, doi:10.1099/mic.0.001269
). This function returns a factor with the levels Pathogenic , Potentially pathogenic , Non-pathogenic , and Unknown .
Determination of the Gram stain (mo_gramstain()
) will be based on the taxonomic kingdom and phylum. Originally, Cavalier-Smith defined the so-called subkingdoms Negibacteria and Posibacteria (2002, PMID 11837318 ), and only considered these phyla as Posibacteria: Actinobacteria, Chloroflexi, Firmicutes, and Tenericutes. These phyla were later renamed to Actinomycetota, Chloroflexota, Bacillota, and Mycoplasmatota (2021, PMID 34694987 ). Bacteria in these phyla are considered Gram-positive in this AMR
package, except for members of the class Negativicutes (within phylum Bacillota) which are Gram-negative. All other bacteria are considered Gram-negative. Species outside the kingdom of Bacteria will return a value NA
. Functions mo_is_gram_negative()
and mo_is_gram_positive()
always return TRUE
or FALSE
(or NA
when the input is NA
or the MO code is UNKNOWN
), thus always return FALSE
for species outside the taxonomic kingdom of Bacteria.
-
Determination of yeasts (mo_is_yeast()
) will be based on the taxonomic kingdom and class. Budding yeasts are fungi of the phylum Ascomycota, class Saccharomycetes (also called Hemiascomycetes). True yeasts are aggregated into the underlying order Saccharomycetales. Thus, for all microorganisms that are member of the taxonomic class Saccharomycetes, the function will return TRUE
. It returns FALSE
otherwise (or NA
when the input is NA
or the MO code is UNKNOWN
).
+
Determination of yeasts (mo_is_yeast()
) will be based on the taxonomic kingdom and class. Budding yeasts are yeasts that reproduce asexually through a process called budding, where a new cell develops from a small protrusion on the parent cell. Taxonomically, these are members of the phylum Ascomycota, class Saccharomycetes (also called Hemiascomycetes) or Pichiomycetes. True yeasts quite specifically refers to yeasts in the underlying order Saccharomycetales (such as Saccharomyces cerevisiae ). Thus, for all microorganisms that are member of the taxonomic class Saccharomycetes or Pichiomycetes, the function will return TRUE
. It returns FALSE
otherwise (or NA
when the input is NA
or the MO code is UNKNOWN
).
Determination of intrinsic resistance (mo_is_intrinsic_resistant()
) will be based on the intrinsic_resistant data set, which is based on 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3 (2021). The mo_is_intrinsic_resistant()
function can be vectorised over both argument x
(input for microorganisms) and ab
(input for antibiotics).
Determination of bacterial oxygen tolerance (mo_oxygen_tolerance()
) will be based on BacDive, see Source . The function mo_is_anaerobic()
only returns TRUE
if the oxygen tolerance is "anaerobe"
, indicting an obligate anaerobic species or genus. It always returns FALSE
for species outside the taxonomic kingdom of Bacteria.
-
The function mo_url()
will return the direct URL to the online database entry, which also shows the scientific reference of the concerned species.
-
SNOMED codes (mo_snomed()
) are from the version of July 16th, 2024. See Source and the microorganisms data set for more info.
+
The function mo_url()
will return the direct URL to the online database entry, which also shows the scientific reference of the concerned species. This MycoBank URL will be used for fungi wherever available , this LPSN URL for bacteria wherever available, and this GBIF link otherwise.
+
SNOMED codes (mo_snomed()
) was last updated on July 16th, 2024. See Source and the microorganisms data set for more info.
Old taxonomic names (so-called 'synonyms') can be retrieved with mo_synonyms()
(which will have the scientific reference as name ), the current taxonomic name can be retrieved with mo_current()
. Both functions return full names.
All output will be translated where possible.
@@ -387,21 +388,18 @@
Source
-Berends MS et al. (2022). AMR: An R Package for Working with Antimicrobial Resistance Data . Journal of Statistical Software , 104(3), 1-31; doi:10.18637/jss.v104.i03
-Becker K et al. (2014). Coagulase-Negative Staphylococci. Clin Microbiol Rev. 27(4): 870-926; doi:10.1128/CMR.00109-13
-Becker K et al. (2019). Implications of identifying the recently defined members of the S. aureus complex, S. argenteus and S. schweitzeri : A position paper of members of the ESCMID Study Group for staphylococci and Staphylococcal Diseases (ESGS). Clin Microbiol Infect ; doi:10.1016/j.cmi.2019.02.028
-Becker K et al. (2020). Emergence of coagulase-negative staphylococci. Expert Rev Anti Infect Ther. 18(4):349-366; doi:10.1080/14787210.2020.1730813
-Lancefield RC (1933). A serological differentiation of human and other groups of hemolytic streptococci. J Exp Med. 57(4): 571-95; doi:10.1084/jem.57.4.571
-Berends MS et al. (2022). Trends in Occurrence and Phenotypic Resistance of Coagulase-Negative Staphylococci (CoNS) Found in Human Blood in the Northern Netherlands between 2013 and 2019/ Micro.rganisms 10(9), 1801; doi:10.3390/microorganisms10091801
+Berends MS et al. (2022). AMR: An R Package for Working with Antimicrobial Resistance Data . Journal of Statistical Software , 104(3), 1-31; doi:10.18637/jss.v104.i03
Parte, AC et al. (2020). List of Prokaryotic names with Standing in Nomenclature (LPSN) moves to the DSMZ. International Journal of Systematic and Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332
. Accessed from https://lpsn.dsmz.de on June 24th, 2024.
+Vincent, R et al (2013). MycoBank gearing up for new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16
+. Accessed from https://www.mycobank.org on June 24th, 2024.
GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei
. Accessed from https://www.gbif.org on June 24th, 2024.
Reimer, LC et al. (2022). BacDive in 2022: the knowledge base for standardized bacterial and archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961
. Accessed from https://bacdive.dsmz.de on July 16th, 2024.
Public Health Information Network Vocabulary Access and Distribution System (PHIN VADS). US Edition of SNOMED CT from 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov
Bartlett A et al. (2022). A comprehensive list of bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269
-
+
Reference Data Publicly Available
@@ -465,13 +463,15 @@
#> Klebsiella pneumoniae
#> "https://lpsn.dsmz.de/species/klebsiella-pneumoniae"
mo_is_yeast ( c ( "Candida" , "Trichophyton" , "Klebsiella" ) )
-
#> [1] FALSE FALSE FALSE
+
#> [1] TRUE FALSE FALSE
-
mo_group_members ( "Streptococcus group A" )
-
#> [1] "Streptococcus pyogenes"
-
mo_group_members ( c ( "Streptococcus group C" ,
+
mo_group_members ( c ( "Streptococcus group A" ,
+
"Streptococcus group C" ,
"Streptococcus group G" ,
"Streptococcus group L" ) )
+
#> $`Streptococcus Group A`
+
#> [1] "Streptococcus pyogenes"
+
#>
#> $`Streptococcus Group C`
#> [1] "Streptococcus dysgalactiae"
#> [2] "Streptococcus dysgalactiae dysgalactiae"
@@ -502,15 +502,23 @@
#> [1] "Tindall et al."
mo_year ( "Klebsiella aerogenes" )
#> [1] 2017
+
mo_synonyms ( "Klebsiella aerogenes" )
+
#> Hormaeche et al., 1960 Bascomb et al., 1971
+
#> "Enterobacter aerogenes" "Klebsiella mobilis"
mo_lpsn ( "Klebsiella aerogenes" )
#> [1] "777146"
mo_gbif ( "Klebsiella aerogenes" )
#> [1] "9281703"
mo_mycobank ( "Candida albicans" )
#> [1] "256187"
-
mo_synonyms ( "Klebsiella aerogenes" )
-
#> Hormaeche et al., 1960 Bascomb et al., 1971
-
#> "Enterobacter aerogenes" "Klebsiella mobilis"
+
mo_mycobank ( "Candida krusei" )
+
#> [1] "337013"
+
mo_mycobank ( "Candida krusei" , keep_synonyms = TRUE )
+
#> Warning: Function as.mo() returned one old taxonomic name. Use as.mo(...,
+
#> keep_synonyms = FALSE) to clean the input to currently accepted taxonomic
+
#> names, or set the R option AMR_keep_synonyms to FALSE. This warning
+
#> will be shown once per session.
+
#> [1] "268707"
# abbreviations known in the field -----------------------------------------
@@ -737,6 +745,9 @@
#> $lpsn
#> [1] "777151"
#>
+
#> $mycobank
+
#> [1] NA
+
#>
#> $gbif
#> [1] "3221874"
#>
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 3284e896..bb4937cd 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)
-
2.1.1.9066
+
2.1.1.9073
diff --git a/reference/pca-2.png b/reference/pca-2.png
index c8634a6e..16592a7a 100644
Binary files a/reference/pca-2.png and b/reference/pca-2.png differ
diff --git a/reference/pca.html b/reference/pca.html
index a0f9dc00..0348f27c 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/plot-10.png b/reference/plot-10.png
index e15a55df..66295bbe 100644
Binary files a/reference/plot-10.png and b/reference/plot-10.png differ
diff --git a/reference/plot-11.png b/reference/plot-11.png
index a491fe9b..61ddea79 100644
Binary files a/reference/plot-11.png and b/reference/plot-11.png differ
diff --git a/reference/plot-12.png b/reference/plot-12.png
index be41f3b7..7e906d1e 100644
Binary files a/reference/plot-12.png and b/reference/plot-12.png differ
diff --git a/reference/plot-13.png b/reference/plot-13.png
index f8459a69..63e86fc1 100644
Binary files a/reference/plot-13.png and b/reference/plot-13.png differ
diff --git a/reference/plot-4.png b/reference/plot-4.png
index a877d368..6e7b0b89 100644
Binary files a/reference/plot-4.png and b/reference/plot-4.png differ
diff --git a/reference/plot-5.png b/reference/plot-5.png
index 026debab..ea12a255 100644
Binary files a/reference/plot-5.png and b/reference/plot-5.png differ
diff --git a/reference/plot-6.png b/reference/plot-6.png
index e210bd93..600f6950 100644
Binary files a/reference/plot-6.png and b/reference/plot-6.png differ
diff --git a/reference/plot-7.png b/reference/plot-7.png
index 61ac5bd0..d253d882 100644
Binary files a/reference/plot-7.png and b/reference/plot-7.png differ
diff --git a/reference/plot-8.png b/reference/plot-8.png
index 150d4950..aa3893e0 100644
Binary files a/reference/plot-8.png and b/reference/plot-8.png differ
diff --git a/reference/plot-9.png b/reference/plot-9.png
index d77d841a..b7cfd428 100644
Binary files a/reference/plot-9.png and b/reference/plot-9.png differ
diff --git a/reference/plot.html b/reference/plot.html
index dc298880..32529b96 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)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/proportion.html b/reference/proportion.html
index 1d8a6a62..dbac0d95 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)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/random.html b/reference/random.html
index 76e12f8e..91a8f0fc 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/resistance_predict-2.png b/reference/resistance_predict-2.png
index 91efd2d1..725c36de 100644
Binary files a/reference/resistance_predict-2.png and b/reference/resistance_predict-2.png differ
diff --git a/reference/resistance_predict-4.png b/reference/resistance_predict-4.png
index 82797392..90b97c14 100644
Binary files a/reference/resistance_predict-4.png and b/reference/resistance_predict-4.png differ
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index e10bf3d0..91050615 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/skewness.html b/reference/skewness.html
index 8a45e8f9..ad0a4259 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)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/reference/translate.html b/reference/translate.html
index 3c3d8aea..06ede640 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9066
+ 2.1.1.9073
diff --git a/search.json b/search.json
index ffce69ec..e1be8032 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to 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 agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to 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://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to 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://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to 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 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [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) #> ℹ 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. #> #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Escherichia coli coli (0.643), Escherichia coli #> expressing (0.611), Enterobacter cowanii (0.600), Eubacterium combesii #> (0.600), Eggerthia catenaformis (0.591), Eubacterium callanderi #> (0.591), Enterocloster citroniae (0.587), Eubacterium cylindroides #> (0.583), Enterococcus casseliflavus (0.577), and Enterobacter cloacae #> cloacae (0.571) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: 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), Kosakonia pseudosacchari #> (0.361), and Kluyveromyces pseudotropicalis pseudotropicalis (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), Salmonella #> Aurelianis (0.595), Salmonella Aarhus (0.588), Salmonella Amounderness #> (0.587), Selenomonas artemidis (0.571), Salmonella choleraesuis #> arizonae (0.562), Streptococcus anginosus anginosus (0.561), and #> Salmonella Abaetetuba (0.548) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Serratia #> proteamaculans quinovora (0.545), Streptococcus pseudoporcinus (0.536), #> Staphylococcus pseudintermedius (0.532), Serratia proteamaculans #> proteamaculans (0.526), Salmonella Portanigra (0.524), Sphingomonas #> paucimobilis (0.520), Streptococcus pluranimalium (0.519), #> Streptococcus constellatus pharyngis (0.514), and Salmonella Pakistan #> (0.500) #> #> 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://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to 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://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to 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: 90% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 712 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. #> ℹ 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,712 'phenotype-based' first isolates (90.4% 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,712 × 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 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 4 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 5 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 6 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 7 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 8 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 9 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> 10 Z1 A 2014-09-05 B_ESCHR_COLI S S S S TRUE #> # ℹ 2,702 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to 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 #> Length:2712 Length:2712 Min. :2011-01-01 #> Class :character Class :character 1st Qu.:2013-05-03 #> Mode :character Mode :character Median :2015-06-16 #> Mean :2015-06-21 #> 3rd Qu.:2017-08-24 #> Max. :2019-12-27 #> bacteria AMX AMC #> Class :mo Class:sir Class:sir #> :0 %S :41.0% (n=1112) %S :52.0% (n=1409) #> Unique:4 %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> #1 :B_ESCHR_COLI %I :16.1% (n=437) %I :12.0% (n=325) #> #2 :B_STPHY_AURS %R :42.9% (n=1163) %R :36.1% (n=978) #> #3 :B_STRPT_PNMN %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> CIP GEN first #> Class:sir Class:sir Mode:logical #> %S :51.5% (n=1396) %S :59.6% (n=1616) TRUE:2712 #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I : 6.6% (n=178) %I : 3.1% (n=85) #> %R :42.0% (n=1138) %R :37.3% (n=1011) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) glimpse(our_data_1st) #> Rows: 2,712 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\", \"Z1\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2015-12-10, 2015-03-02, 2018-03-31… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, S, S, R, R, S, S, S, S, R, S, S, S, R, R, R, R, S, R,… #> $ AMC I, I, I, S, S, S, S, S, S, S, S, S, I, S, S, S, S, R, S, S,… #> $ CIP S, S, S, S, R, S, 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, R, S, 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 1852 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to 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 1319 #> 2 Staphylococcus aureus 676 #> 3 Streptococcus pneumoniae 400 #> 4 Klebsiella pneumoniae 317"},{"path":"https://msberends.github.io/AMR/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":"How to 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,712 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2015-12-10 S #> 4 2015-03-02 S #> 5 2018-03-31 S #> 6 2015-10-25 S #> 7 2019-06-19 S #> 8 2015-04-27 S #> 9 2011-06-21 S #> 10 2014-09-05 S #> # ℹ 2,702 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 2,712 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI S I #> 4 B_ESCHR_COLI S S #> 5 B_STPHY_AURS R S #> 6 B_ESCHR_COLI R S #> 7 B_ESCHR_COLI S S #> 8 B_STPHY_AURS S S #> 9 B_ESCHR_COLI S S #> 10 B_ESCHR_COLI S S #> # ℹ 2,702 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,712 × 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 S I S S #> 4 B_ESCHR_COLI S S S S #> 5 B_STPHY_AURS R S R S #> 6 B_ESCHR_COLI R S S S #> 7 B_ESCHR_COLI S S S S #> 8 B_STPHY_AURS S S S S #> 9 B_ESCHR_COLI S S S S #> 10 B_ESCHR_COLI S S S S #> # ℹ 2,702 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 1,011 × 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 #> # ℹ 1,001 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 483 × 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 #> # ℹ 473 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: 483 × 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 #> # ℹ 473 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to 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://msberends.github.io/AMR/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"How to 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, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. 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://msberends.github.io/AMR/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"How to conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"How to 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://msberends.github.io/AMR/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":"How to conduct AMR data analysis","text":"create WISCA, must state combination therapy antibiotics argument (similar Combination Antibiogram), define syndromic group syndromic_group argument (similar Syndromic Antibiogram) cases predefined based clinical demographic characteristics (e.g., endocarditis 75+ females). next example simplification without clinical characteristics, just gives idea WISCA can created:","code":"wisca <- antibiogram(example_isolates, antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"), mo_transform = \"gramstain\", minimum = 10, # this should be >= 30, but now just as example syndromic_group = ifelse(example_isolates$age >= 65 & example_isolates$gender == \"M\", \"WISCA Group 1\", \"WISCA Group 2\")) wisca"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"How to 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(wisca)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to 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: Author: Dr. Matthijs Berends, 26th Feb 2023","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4288348 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.342 #> 2 B 0.564 #> 3 C 0.372"},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.1, 2016). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antibiotics: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame( mo = c( \"Klebsiella\", \"Escherichia\" ), ampicillin = \"S\" ) oops #> mo ampicillin #> 1 Klebsiella S #> 2 Escherichia S eucast_rules(oops, info = FALSE) #> mo ampicillin #> 1 Klebsiella R #> 2 Escherichia S mo_is_intrinsic_resistant( c(\"Klebsiella\", \"Escherichia\"), \"ampicillin\" ) #> [1] TRUE FALSE mo_is_intrinsic_resistant( \"Klebsiella\", c(\"ampicillin\", \"kanamycin\") ) #> [1] TRUE FALSE data <- data.frame( mo = c( \"Staphylococcus aureus\", \"Enterococcus faecalis\", \"Escherichia coli\", \"Klebsiella pneumoniae\", \"Pseudomonas aeruginosa\" ), VAN = \"-\", # Vancomycin AMX = \"-\", # Amoxicillin COL = \"-\", # Colistin CAZ = \"-\", # Ceftazidime CXM = \"-\", # Cefuroxime PEN = \"S\", # Benzylenicillin FOX = \"S\", # Cefoxitin stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline( CIP == \"R\" & age > 60 ~ \"Elderly Type A\", ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #> 1. If CIP is \"R\" and age is higher than 60 then: Elderly Type A #> 2. If ERY is \"R\" and age is higher than 60 then: Elderly Type B #> 3. Otherwise: Negative #> #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #> Negative Elderly Type A Elderly Type B #> 1070 198 732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,729 (86.45%, NA: 271 = 13.55%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>% mdro() %>% freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame( rifampicin = random_sir(5000), isoniazid = random_sir(5000), gatifloxacin = random_sir(5000), ethambutol = random_sir(5000), pyrazinamide = random_sir(5000), moxifloxacin = random_sir(5000), kanamycin = random_sir(5000) ) my_TB_data <- data.frame( RIF = random_sir(5000), INH = random_sir(5000), GAT = random_sir(5000), ETH = random_sir(5000), PZA = random_sir(5000), MFX = random_sir(5000), KAN = random_sir(5000) ) head(my_TB_data) #> rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1 I R S S S S #> 2 S S I R R S #> 3 R I I I R I #> 4 I S S S S S #> 5 I I I S I S #> 6 R S R S I I #> kanamycin #> 1 R #> 2 I #> 3 S #> 4 I #> 5 I #> 6 I mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #> Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… resistance_data <- example_isolates %>% group_by( order = mo_order(mo), # group on anything, like order genus = mo_genus(mo) ) %>% # and genus as we do here summarise_if(is.sir, resistance) %>% # then get resistance of all drugs select( order, genus, AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT ) # and select only relevant columns head(resistance_data) #> # A tibble: 6 × 10 #> # Groups: order [5] #> order genus AMC CXM CTX CAZ GEN TOB TMP SXT #> #> 1 (unknown order) (unknown ge… NA NA NA NA NA NA NA NA #> 2 Actinomycetales Schaalia NA NA NA NA NA NA NA NA #> 3 Bacteroidales Bacteroides NA NA NA NA NA NA NA NA #> 4 Campylobacterales Campylobact… NA NA NA NA NA NA NA NA #> 5 Caryophanales Gemella NA NA NA NA NA NA NA NA #> 6 Caryophanales Listeria NA NA NA NA NA NA NA NA"},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"perform-principal-component-analysis","dir":"Articles","previous_headings":"","what":"Perform principal component analysis","title":"How to conduct principal component analysis (PCA) for AMR","text":"new pca() function automatically filter rows contain numeric values selected variables, now need : result can reviewed good old summary() function: Good news. first two components explain total 93.3% variance (see PC1 PC2 values Proportion Variance. can create -called biplot base R biplot() function, see antimicrobial resistance per drug explain difference per microorganism.","code":"pca_result <- pca(resistance_data) #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #> \"TMP\", and \"TOB\". Total observations available: 7. summary(pca_result) #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\" #> Importance of components: #> PC1 PC2 PC3 PC4 PC5 PC6 PC7 #> Standard deviation 2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 1.232e-16 #> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00 #> Cumulative Proportion 0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00 #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\""},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"plotting-the-results","dir":"Articles","previous_headings":"","what":"Plotting the results","title":"How to conduct principal component analysis (PCA) for AMR","text":"can’t see explanation points. Perhaps works better new ggplot_pca() function, automatically adds right labels even groups: can also print ellipse per group, edit appearance:","code":"biplot(pca_result) ggplot_pca(pca_result) ggplot_pca(pca_result, ellipse = TRUE) + ggplot2::labs(title = \"An AMR/PCA biplot!\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"import-of-data","dir":"Articles","previous_headings":"","what":"Import of data","title":"How to work with WHONET data","text":"tutorial assumes already imported WHONET data e.g. readxl package. RStudio, can done using menu button ‘Import Dataset’ tab ‘Environment’. Choose option ‘Excel’ select exported file. Make sure date fields imported correctly. example syntax look like : package comes example data set WHONET. use analysis.","code":"library(readxl) data <- read_excel(path = \"path/to/your/file.xlsx\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to work with WHONET data","text":"First, load relevant packages yet . use tidyverse analyses. . don’t know yet, suggest read website: https://www.tidyverse.org/. transform variables simplify automate analysis: Microorganisms transformed microorganism codes (called mo) using Catalogue Life reference data set, contains ~70,000 microorganisms taxonomic kingdoms Bacteria, Fungi Protozoa. tranformation .mo(). function also recognises almost WHONET abbreviations microorganisms. Antimicrobial results interpretations clean valid. words, contain values \"S\", \"\" \"R\". exactly .sir() function . errors warnings, values transformed succesfully. also created package dedicated data cleaning checking, called cleaner package. freq() function can used create frequency tables. let’s check data, couple frequency tables: Frequency table Class: character Length: 500 Available: 500 (100%, NA: 0 = 0%) Unique: 38 Shortest: 11 Longest: 40 (omitted 28 entries, n = 57 [11.4%]) Frequency table Class: factor > ordered > sir (numeric) Length: 500 Levels: 5: S < SDD < < R < NI Available: 481 (96.2%, NA: 19 = 3.8%) Unique: 3 Drug: Amoxicillin/clavulanic acid (AMC, J01CR02) Drug group: Beta-lactams/penicillins %SI: 78.59%","code":"library(dplyr) # part of tidyverse library(ggplot2) # part of tidyverse library(AMR) # this package library(cleaner) # to create frequency tables # transform variables data <- WHONET %>% # get microbial ID based on given organism mutate(mo = as.mo(Organism)) %>% # transform everything from \"AMP_ND10\" to \"CIP_EE\" to the new `sir` class mutate_at(vars(AMP_ND10:CIP_EE), as.sir) # our newly created `mo` variable, put in the mo_name() function data %>% freq(mo_name(mo), nmax = 10) # our transformed antibiotic columns # amoxicillin/clavulanic acid (J01CR02) as an example data %>% freq(AMC_ND2)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"a-first-glimpse-at-results","dir":"Articles","previous_headings":"","what":"A first glimpse at results","title":"How to work with WHONET data","text":"easy ggplot already give lot information, using included ggplot_sir() function:","code":"data %>% group_by(Country) %>% select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>% ggplot_sir(translate_ab = \"ab\", facet = \"Country\", datalabels = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-full-microbial-taxonomy","dir":"Articles","previous_headings":"","what":"microorganisms: Full Microbial Taxonomy","title":"Data sets for download / own use","text":"data set 70 547 rows 26 columns, containing following column names:mo, fullname, status, kingdom, phylum, class, order, family, genus, species, subspecies, rank, ref, oxygen_tolerance, source, lpsn, lpsn_parent, lpsn_renamed_to, mycobank, mycobank_parent, mycobank_renamed_to, gbif, gbif_parent, gbif_renamed_to, prevalence, snomed. data set R available microorganisms, load AMR package. last updated 16 July 2024 12:51:57 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (1.6 MB) Download tab-separated text file (15.9 MB) Download Microsoft Excel workbook (7.8 MB) Download Apache Feather file (19 MB) Download Apache Parquet file (0 kB) Download SAS transport (XPT) file (69.5 MB) Download IBM SPSS Statistics data file (24.5 MB) Download Stata DTA file (69.5 MB) NOTE: exported files SAS, SPSS Stata contain first 50 SNOMED codes per record, file size otherwise exceed 100 MB; file size limit GitHub. file structures compression techniques inefficient. Advice? Use R instead. ’s free much better many ways. tab-separated text file Microsoft Excel workbook contain SNOMED codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Source","title":"Data sets for download / own use","text":"data set contains full microbial taxonomy six kingdoms List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; . Accessed https://lpsn.dsmz.de June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset . Accessed https://www.gbif.org June 24th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name ‘Microorganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Example content","title":"Data sets for download / own use","text":"Included (sub)species per taxonomic kingdom: Example rows filtering genus Escherichia:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antibiotics-antibiotic-antifungal-drugs","dir":"Articles","previous_headings":"","what":"antibiotics: Antibiotic (+Antifungal) Drugs","title":"Data sets for download / own use","text":"data set 485 rows 14 columns, containing following column names:ab, cid, name, group, atc, atc_group1, atc_group2, abbreviations, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antibiotics, load AMR package. last updated 14 June 2024 20:39:01 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (44 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (73 kB) Download Apache Feather file (0.2 MB) Download Apache Parquet file (0 kB) Download SAS transport (XPT) file (1.5 MB) Download IBM SPSS Statistics data file (0.4 MB) Download Stata DTA file (0.5 MB) tab-separated text file Microsoft Excel workbook, SAS, SPSS Stata files contain ATC codes, common abbreviations, trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-1","dir":"Articles","previous_headings":"antibiotics: Antibiotic (+Antifungal) Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains EARS-Net ATC codes gathered WHONET, compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine WHONET software 2019 LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antivirals-antiviral-drugs","dir":"Articles","previous_headings":"","what":"antivirals: Antiviral Drugs","title":"Data sets for download / own use","text":"data set 120 rows 11 columns, containing following column names:av, name, atc, cid, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antivirals, load AMR package. last updated 20 October 2023 12:51:48 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (6 kB) Download tab-separated text file (17 kB) Download Microsoft Excel workbook (16 kB) Download Apache Feather file (16 kB) Download Apache Parquet file (13 kB) Download SAS transport (XPT) file (73 kB) Download IBM SPSS Statistics data file (32 kB) Download Stata DTA file (78 kB) tab-separated text file Microsoft Excel workbook, SAS, SPSS Stata files contain trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-2","dir":"Articles","previous_headings":"antivirals: Antiviral Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains ATC codes gathered compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"clinical_breakpoints-interpretation-from-mic-values-disk-diameters-to-sir","dir":"Articles","previous_headings":"","what":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","title":"Data sets for download / own use","text":"data set 34 063 rows 14 columns, containing following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, is_SDD. data set R available clinical_breakpoints, load AMR package. last updated 16 July 2024 12:51:57 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (70 kB) Download tab-separated text file (3.1 MB) Download Microsoft Excel workbook (2 MB) Download Apache Feather file (4.9 MB) Download Apache Parquet file (0 kB) Download SAS transport (XPT) file (9.6 MB) Download IBM SPSS Statistics data file (5.6 MB) Download Stata DTA file (9.3 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-3","dir":"Articles","previous_headings":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","what":"Source","title":"Data sets for download / own use","text":"data set contains interpretation rules MIC values disk diffusion diameters. Included guidelines CLSI (2011-2024) EUCAST (2011-2024). Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate development WHONET software. CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET AMR package. NOTE: AMR package (WHONET software well) contains internal methods apply guidelines, rather complex. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"intrinsic_resistant-intrinsic-bacterial-resistance","dir":"Articles","previous_headings":"","what":"intrinsic_resistant: Intrinsic Bacterial Resistance","title":"Data sets for download / own use","text":"data set 340 804 rows 2 columns, containing following column names:mo ab. data set R available intrinsic_resistant, load AMR package. last updated 16 July 2024 12:51:57 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (0.1 MB) Download tab-separated text file (12.4 MB) Download Microsoft Excel workbook (3.4 MB) Download Apache Feather file (13.1 MB) Download Apache Parquet file (0 kB) Download SAS transport (XPT) file (28.3 MB) Download IBM SPSS Statistics data file (18.4 MB) Download Stata DTA file (28.3 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Source","title":"Data sets for download / own use","text":"data set contains defined intrinsic resistance EUCAST bug-drug combinations, based ‘EUCAST Expert Rules’ ‘EUCAST Intrinsic Resistance Unusual Phenotypes’ v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Example content","title":"Data sets for download / own use","text":"Example rows filtering Enterobacter cloacae:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"dosage-dosage-guidelines-from-eucast","dir":"Articles","previous_headings":"","what":"dosage: Dosage Guidelines from EUCAST","title":"Data sets for download / own use","text":"data set 503 rows 9 columns, containing following column names:ab, name, type, dose, dose_times, administration, notes, original_txt, eucast_version. data set R available dosage, load AMR package. last updated 22 June 2023 13:10:59 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (3 kB) Download tab-separated text file (43 kB) Download Microsoft Excel workbook (25 kB) Download Apache Feather file (21 kB) Download Apache Parquet file (9 kB) Download SAS transport (XPT) file (0.1 MB) Download IBM SPSS Statistics data file (64 kB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-5","dir":"Articles","previous_headings":"dosage: Dosage Guidelines from EUCAST","what":"Source","title":"Data sets for download / own use","text":"EUCAST breakpoints used package based dosages data set. Currently included dosages data set meant : (), ‘EUCAST Clinical Breakpoint Tables’ v11.0 (2021), ‘EUCAST Clinical Breakpoint Tables’ v12.0 (2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates: Example Data for Practice","title":"Data sets for download / own use","text":"data set 2 000 rows 46 columns, containing following column names:date, patient, age, gender, ward, mo, PEN, OXA, FLC, AMX, 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, RIF. data set R available example_isolates, load AMR package. last updated 15 June 2024 13:33:49 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-6","dir":"Articles","previous_headings":"example_isolates: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates_unclean-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates_unclean: Example Data for Practice","title":"Data sets for download / own use","text":"data set 3 000 rows 8 columns, containing following column names:patient_id, hospital, date, bacteria, AMX, AMC, CIP, GEN. data set R available example_isolates_unclean, load AMR package. last updated 27 August 2022 18:49:37 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-7","dir":"Articles","previous_headings":"example_isolates_unclean: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-groups-species-groups-and-microbiological-complexes","dir":"Articles","previous_headings":"","what":"microorganisms.groups: Species Groups and Microbiological Complexes","title":"Data sets for download / own use","text":"data set 521 rows 4 columns, containing following column names:mo_group, mo, mo_group_name, mo_name. data set R available microorganisms.groups, load AMR package. last updated 14 July 2023 08:49:06 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (6 kB) Download tab-separated text file (49 kB) Download Microsoft Excel workbook (20 kB) Download Apache Feather file (19 kB) Download Apache Parquet file (13 kB) Download SAS transport (XPT) file (0 kB) Download IBM SPSS Statistics data file (64 kB) Download Stata DTA file (81 kB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-8","dir":"Articles","previous_headings":"microorganisms.groups: Species Groups and Microbiological Complexes","what":"Source","title":"Data sets for download / own use","text":"data set contains species groups microbiological complexes, used clinical_breakpoints data set.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-codes-common-laboratory-codes","dir":"Articles","previous_headings":"","what":"microorganisms.codes: Common Laboratory Codes","title":"Data sets for download / own use","text":"data set 4 971 rows 2 columns, containing following column names:code mo. data set R available microorganisms.codes, load AMR package. last updated 16 July 2024 12:51:57 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (22 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (82 kB) Download Apache Feather file (0.1 MB) Download Apache Parquet file (0 kB) Download SAS transport (XPT) file (0 kB) Download IBM SPSS Statistics data file (0.1 MB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-9","dir":"Articles","previous_headings":"microorganisms.codes: Common Laboratory Codes","what":"Source","title":"Data sets for download / own use","text":"data set contains commonly used codes microorganisms, laboratory systems WHONET.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"needed-r-packages","dir":"Articles","previous_headings":"","what":"Needed R packages","title":"How to predict antimicrobial resistance","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. AMR package depends packages even extends use functions.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"tidyverse\", \"AMR\"))"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"prediction-analysis","dir":"Articles","previous_headings":"","what":"Prediction analysis","title":"How to predict antimicrobial resistance","text":"package contains function resistance_predict(), takes input functions AMR data analysis. Based date column, calculates cases per year uses regression model predict antimicrobial resistance. basically easy : function look date column col_date set. running commands, summary regression model printed unless using resistance_predict(..., info = FALSE). text printed summary - actual result (output) function data.frame containing year: number observations, actual observed resistance, estimated resistance standard error estimation: function plot available base R, can extended packages depend output based type input. extended function cope resistance predictions: fastest way plot result. automatically adds right axes, error bars, titles, number available observations type model. also support ggplot2 package custom function ggplot_sir_predict() create appealing plots:","code":"# resistance prediction of piperacillin/tazobactam (TZP): resistance_predict(tbl = example_isolates, col_date = \"date\", col_ab = \"TZP\", model = \"binomial\") # or: example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) # to bind it to object 'predict_TZP' for example: predict_TZP <- example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) predict_TZP #> # A tibble: 33 × 7 #> year value se_min se_max observations observed estimated #> * #> 1 2002 0.2 NA NA 15 0.2 0.0562 #> 2 2003 0.0625 NA NA 32 0.0625 0.0616 #> 3 2004 0.0854 NA NA 82 0.0854 0.0676 #> 4 2005 0.05 NA NA 60 0.05 0.0741 #> 5 2006 0.0508 NA NA 59 0.0508 0.0812 #> 6 2007 0.121 NA NA 66 0.121 0.0889 #> 7 2008 0.0417 NA NA 72 0.0417 0.0972 #> 8 2009 0.0164 NA NA 61 0.0164 0.106 #> 9 2010 0.0566 NA NA 53 0.0566 0.116 #> 10 2011 0.183 NA NA 93 0.183 0.127 #> # ℹ 23 more rows plot(predict_TZP) ggplot_sir_predict(predict_TZP) # choose for error bars instead of a ribbon ggplot_sir_predict(predict_TZP, ribbon = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"choosing-the-right-model","dir":"Articles","previous_headings":"Prediction analysis","what":"Choosing the right model","title":"How to predict antimicrobial resistance","text":"Resistance easily predicted; look vancomycin resistance Gram-positive bacteria, spread (.e. standard error) enormous: Vancomycin resistance 100% ten years, might remain low. can define model model parameter. model chosen generalised linear regression model using binomial distribution, assuming period zero resistance followed period increasing resistance leading slowly resistance. Valid values : vancomycin resistance Gram-positive bacteria, linear model might appropriate: model also available object, attribute:","code":"example_isolates %>% filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>% resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"binomial\") %>% ggplot_sir_predict() example_isolates %>% filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>% resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"linear\") %>% ggplot_sir_predict() model <- attributes(predict_TZP)$model summary(model)$family #> #> Family: binomial #> Link function: logit summary(model)$coefficients #> Estimate Std. Error z value Pr(>|z|) #> (Intercept) -200.67944891 46.17315349 -4.346237 1.384932e-05 #> year 0.09883005 0.02295317 4.305725 1.664395e-05"},{"path":"https://msberends.github.io/AMR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Matthijs S. Berends. Author, maintainer. Dennis Souverein. Author, contributor. Erwin E. . Hassing. Author, contributor. Casper J. Albers. Thesis advisor. Peter Dutey-Magni. Contributor. Judith M. Fonville. Contributor. Alex W. Friedrich. Thesis advisor. Corinna Glasner. Thesis advisor. Eric H. L. C. M. Hazenberg. Contributor. Gwen Knight. Contributor. Annick Lenglet. Contributor. Christian F. Luz. Contributor. Bart C. Meijer. Contributor. Dmytro Mykhailenko. Contributor. Anton Mymrikov. Contributor. Andrew P. Norgan. Contributor. Sofia Ny. Contributor. Matthew Saab. Contributor. Jonas Salm. Contributor. Javier Sanchez. Contributor. Rogier P. Schade. Contributor. Bhanu N. M. Sinha. Thesis advisor. Jason Stull. Contributor. Anthony Underwood. Contributor. Anita Williams. Contributor.","code":""},{"path":"https://msberends.github.io/AMR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). “AMR: R Package Working Antimicrobial Resistance Data.” Journal Statistical Software, 104(3), 1–31. doi:10.18637/jss.v104.i03.","code":"@Article{, title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data}, author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner}, journal = {Journal of Statistical Software}, year = {2022}, volume = {104}, number = {3}, pages = {1--31}, doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/index.html","id":"the-amr-package-for-r-","dir":"","previous_headings":"","what":"Antimicrobial Resistance Data Analysis","title":"Antimicrobial Resistance Data Analysis","text":"Provides --one solution antimicrobial resistance (AMR) data analysis One Health approach Used 175 countries, available 20 languages Generates antibiograms - traditional, combined, syndromic, even WISCA Provides full microbiological taxonomy extensive info antimicrobial drugs Applies recent CLSI EUCAST clinical veterinary breakpoints MICs disk zones Corrects duplicate isolates, calculates predicts AMR per antibiotic class Integrates WHONET, ATC, EARS-Net, PubChem, LOINC, SNOMED CT, NCBI 100% free costs dependencies, highly suitable places limited resources https://msberends.github.io/AMR https://doi.org/10.18637/jss.v104.i03","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"introduction","dir":"","previous_headings":"","what":"Introduction","title":"Antimicrobial Resistance Data Analysis","text":"AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03) formed basis two PhD theses (DOI 10.33612/diss.177417131 DOI 10.33612/diss.192486375). installing package, R knows ~52,000 distinct microbial species (updated December 2022) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"used-in-over-175-countries-available-in-20-languages","dir":"","previous_headings":"Introduction","what":"Used in over 175 countries, available in 20 languages","title":"Antimicrobial Resistance Data Analysis","text":"Since first public release early 2018, R package used almost countries world. Click map enlarge see country names. help contributors corners world, AMR package available English, Czech, Chinese, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"filtering-and-selecting-data","dir":"","previous_headings":"Practical examples","what":"Filtering and selecting data","title":"Antimicrobial Resistance Data Analysis","text":"One powerful functions package, aside calculating plotting AMR, selecting filtering based antibiotic columns. can done using -called antibiotic class selectors work base R, dplyr data.table: defined row filter Gram-negative bacteria intrinsic resistance cefotaxime (mo_is_gram_negative() mo_is_intrinsic_resistant()) column selection two antibiotic groups (aminoglycosides() carbapenems()), reference data microorganisms antibiotics AMR package make sure get meant: base R equivalent : base R code work version R since April 2013 (R-3.0). Moreover, code works identically data.table package, starting :","code":"# AMR works great with dplyr, but it's not required or neccesary library(AMR) library(dplyr) example_isolates %>% mutate(bacteria = mo_fullname()) %>% # filtering functions for microorganisms: filter(mo_is_gram_negative(), mo_is_intrinsic_resistant(ab = \"cefotax\")) %>% # antibiotic selectors: select(bacteria, aminoglycosides(), carbapenems()) library(AMR) example_isolates$bacteria <- mo_fullname(example_isolates$mo) example_isolates[which(mo_is_gram_negative() & mo_is_intrinsic_resistant(ab = \"cefotax\")), c(\"bacteria\", aminoglycosides(), carbapenems())] example_isolates <- data.table::as.data.table(example_isolates)"},{"path":"https://msberends.github.io/AMR/index.html","id":"generating-antibiograms","dir":"","previous_headings":"Practical examples","what":"Generating antibiograms","title":"Antimicrobial Resistance Data Analysis","text":"AMR package supports generating traditional, combined, syndromic, even weighted-incidence syndromic combination antibiograms (WISCA). used inside R Markdown Quarto, table printed right output format automatically (markdown, LaTeX, HTML, etc.). combination antibiograms, clear combined antibiotics yield higher empiric coverage: Like many functions package, antibiogram() comes support 20 languages often detected automatically based system language:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), mo_transform = \"gramstain\") antibiogram(example_isolates, antibiotics = c(\"cipro\", \"tobra\", \"genta\"), # any arbitrary name or code will work mo_transform = \"gramstain\", ab_transform = \"name\", language = \"uk\") # Ukrainian"},{"path":"https://msberends.github.io/AMR/index.html","id":"calculating-resistance-per-group","dir":"","previous_headings":"Practical examples","what":"Calculating resistance per group","title":"Antimicrobial Resistance Data Analysis","text":"manual approach, can use resistance susceptibility() function: use antibiotic class selectors select series antibiotic columns:","code":"example_isolates %>% # group by ward: group_by(ward) %>% # calculate AMR using resistance() for gentamicin and tobramycin # and get their 95% confidence intervals using sir_confidence_interval(): summarise(across(c(GEN, TOB), list(total_R = resistance, conf_int = function(x) sir_confidence_interval(x, collapse = \"-\")))) library(AMR) library(dplyr) out <- example_isolates %>% # group by ward: group_by(ward) %>% # calculate AMR using resistance(), over all aminoglycosides and polymyxins: summarise(across(c(aminoglycosides(), polymyxins()), resistance)) out # transform the antibiotic columns to names: out %>% set_ab_names() # transform the antibiotic column to ATC codes: out %>% set_ab_names(property = \"atc\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"what-else-can-you-do-with-this-package","dir":"","previous_headings":"","what":"What else can you do with this package?","title":"Antimicrobial Resistance Data Analysis","text":"package intended comprehensive toolbox integrated AMR data analysis. package can used : Reference taxonomy microorganisms, since package contains microbial (sub)species List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF) (manual) Interpreting raw MIC disk diffusion values, based CLSI EUCAST guideline (manual) Retrieving antimicrobial drug names, doses forms administration clinical health care records (manual) Determining first isolates used AMR data analysis (manual) Calculating antimicrobial resistance (tutorial) Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) (tutorial) Calculating (empirical) susceptibility mono therapy combination therapies (tutorial) Predicting future antimicrobial resistance using regression models (tutorial) Getting properties microorganism (like Gram stain, species, genus family) (manual) Getting properties antibiotic (like name, code EARS-Net/ATC/LOINC/PubChem, defined daily dose trade name) (manual) Plotting antimicrobial resistance (tutorial) Applying EUCAST expert rules (manual) Getting SNOMED codes microorganism, getting properties microorganism based SNOMED code (manual) Getting LOINC codes antibiotic, getting properties antibiotic based LOINC code (manual) Machine reading EUCAST CLSI guidelines 2011-2021 translate MIC values disk diffusion diameters SIR (link) Principal component analysis AMR (tutorial)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-official-version","dir":"","previous_headings":"Get this package","what":"Latest official version","title":"Antimicrobial Resistance Data Analysis","text":"package available official R network (CRAN). Install package R CRAN using command: downloaded installed automatically. RStudio, click menu Tools > Install Packages… type “AMR” press Install. Note: functions website may available latest release. use functions data sets mentioned website, install latest development version.","code":"install.packages(\"AMR\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-development-version","dir":"","previous_headings":"Get this package","what":"Latest development version","title":"Antimicrobial Resistance Data Analysis","text":"Please read Developer Guideline . latest unpublished development version can installed GitHub two ways: Manually, using: Automatically, using rOpenSci R-universe platform, adding R-universe address list repositories (‘repos’): , can install update AMR package like official release (e.g., using install.packages(\"AMR\") RStudio via Tools > Check Package Updates…).","code":"install.packages(\"remotes\") # if you haven't already remotes::install_github(\"msberends/AMR\") options(repos = c(getOption(\"repos\"), msberends = \"https://msberends.r-universe.dev\"))"},{"path":"https://msberends.github.io/AMR/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get started","title":"Antimicrobial Resistance Data Analysis","text":"find conduct AMR data analysis, please continue reading get started click link ‘’ menu.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"partners","dir":"","previous_headings":"","what":"Partners","title":"Antimicrobial Resistance Data Analysis","text":"development package part , related , made possible following non-profit organisations initiatives:","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"copyright","dir":"","previous_headings":"","what":"Copyright","title":"Antimicrobial Resistance Data Analysis","text":"R package free, open-source software licensed GNU General Public License v2.0 (GPL-2). nutshell, means package: May used commercial purposes May used private purposes May used patent purposes May modified, although: Modifications must released license distributing package Changes made code must documented May distributed, although: Source code must made available package distributed copy license copyright notice must included package. Comes LIMITATION liability Comes warranty","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":null,"dir":"Reference","previous_headings":"","what":"Options for the AMR package — AMR-options","title":"Options for the AMR package — AMR-options","text":"overview package-specific options() can set AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"options","dir":"Reference","previous_headings":"","what":"Options","title":"Options for the AMR package — AMR-options","text":"AMR_breakpoint_type character use .sir(), indicate breakpoint type use. must either \"ECOFF\", \"animal\", \"human\". AMR_cleaning_regex regular expression (case-insensitive) use .mo() mo_* functions, clean user input. default outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". AMR_custom_ab file location RDS file, use custom antimicrobial drugs package. explained add_custom_antimicrobials(). AMR_custom_mo file location RDS file, use custom microorganisms package. explained add_custom_microorganisms(). AMR_eucastrules character set default types rules eucast_rules() function, must one : \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). AMR_guideline character set default guideline interpreting MIC values disk diffusion diameters .sir(). Can guideline name (e.g., \"CLSI\") name year (e.g. \"CLSI 2019\"). default latest implemented EUCAST guideline, currently \"EUCAST 2024\". Supported guideline currently EUCAST (2011-2024) CLSI (2011-2024). AMR_ignore_pattern regular expression ignore (.e., make NA) match given .mo() mo_* functions. AMR_include_PKPD logical use .sir(), indicate PK/PD clinical breakpoints must applied last resort - default TRUE. AMR_include_screening logical use .sir(), indicate clinical breakpoints screening allowed - default FALSE. AMR_keep_synonyms logical use .mo() mo_* functions, indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE. AMR_locale character set language AMR package, can one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). default current system language (supported, English otherwise). AMR_mo_source file location manual code list used .mo() mo_* functions. explained set_mo_source().","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"saving-settings-between-sessions","dir":"Reference","previous_headings":"","what":"Saving Settings Between Sessions","title":"Options for the AMR package — AMR-options","text":"Settings R saved globally thus lost R exited. can save options .Rprofile file, user-specific file. can edit using: file, can set options ... ...add Portuguese language support antibiotics, allow PK/PD rules interpreting MIC values .sir().","code":"utils::file.edit(\"~/.Rprofile\") options(AMR_locale = \"pt\") options(AMR_include_PKPD = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"share-options-within-team","dir":"Reference","previous_headings":"","what":"Share Options Within Team","title":"Options for the AMR package — AMR-options","text":"global approach, e.g. within (data) team, save options file remote file location, shared network drive, user read file automatically start-. work way: Save plain text file e.g. \"X:/team_folder/R_options.R\" fill preferred settings. user, open .Rprofile file using utils::file.edit(\"~/.Rprofile\") put : Reload R/RStudio check settings getOption(), e.g. getOption(\"AMR_locale\") set value. Now team settings configured one place, can maintained .","code":"source(\"X:/team_folder/R_options.R\")"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":null,"dir":"Reference","previous_headings":"","what":"The AMR Package — AMR","title":"The AMR Package — AMR","text":"Welcome AMR package. AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); doi:10.18637/jss.v104.i03 ) formed basis two PhD theses (doi:10.33612/diss.177417131 doi:10.33612/diss.192486375 ). installing package, R knows ~71 000 microorganisms (updated June 2024) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences public University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen. AMR package available English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"The AMR Package — AMR","text":"cite AMR publications use: Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). \"AMR: R Package Working Antimicrobial Resistance Data.\" Journal Statistical Software, 104(3), 1-31. doi:10.18637/jss.v104.i03 BibTeX entry LaTeX users :","code":"@Article{, title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data}, author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner}, journal = {Journal of Statistical Software}, year = {2022}, volume = {104}, number = {3}, pages = {1--31}, doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"The AMR Package — AMR","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The AMR Package — AMR","text":"Maintainer: Matthijs S. Berends m.s.berends@umcg.nl (ORCID) Authors: Dennis Souverein (ORCID) [contributor] Erwin E. . Hassing [contributor] contributors: Casper J. Albers (ORCID) [thesis advisor] Peter Dutey-Magni (ORCID) [contributor] Judith M. Fonville [contributor] Alex W. Friedrich (ORCID) [thesis advisor] Corinna Glasner (ORCID) [thesis advisor] Eric H. L. C. M. Hazenberg [contributor] Gwen Knight (ORCID) [contributor] Annick Lenglet (ORCID) [contributor] Christian F. Luz (ORCID) [contributor] Bart C. Meijer [contributor] Dmytro Mykhailenko [contributor] Anton Mymrikov [contributor] Andrew P. Norgan (ORCID) [contributor] Sofia Ny (ORCID) [contributor] Matthew Saab [contributor] Jonas Salm [contributor] Javier Sanchez (ORCID) [contributor] Rogier P. Schade [contributor] Bhanu N. M. Sinha (ORCID) [thesis advisor] Jason Stull (ORCID) [contributor] Anthony Underwood (ORCID) [contributor] Anita Williams (ORCID) [contributor]","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":null,"dir":"Reference","previous_headings":"","what":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"antimicrobial drugs official names, ATC codes, ATC groups defined daily dose (DDD) included package, using Collaborating Centre Drug Statistics Methodology.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"","code":"as.ab(\"meropenem\") #> Class 'ab' #> [1] MEM ab_name(\"J01DH02\") #> [1] \"Meropenem\" ab_tradenames(\"flucloxacillin\") #> [1] \"culpen\" \"floxacillin\" \"floxacillin sodium\" #> [4] \"floxapen\" \"floxapen sodium salt\" \"fluclox\" #> [7] \"flucloxacilina\" \"flucloxacillin\" \"flucloxacilline\" #> [10] \"flucloxacillinum\" \"fluorochloroxacillin\" \"staphylex\""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 500 Isolates - WHONET Example — WHONET","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"example data set exact structure export file WHONET. files can used package, example data set shows. antibiotic results example_isolates data set. patient names created using online surname generators place practice purposes.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET"},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"tibble 500 observations 53 variables: Identification number ID sample Specimen number ID specimen Organism Name microorganism. analysis, transform valid microbial class, using .mo(). Country Country origin Laboratory Name laboratory Last name Fictitious last name patient First name Fictitious initial patient Sex Fictitious gender patient Age Fictitious age patient Age category Age group, can also looked using age_groups() Date admissionDate hospital admission Specimen dateDate specimen received laboratory Specimen type Specimen type group Specimen type (Numeric) Translation \"Specimen type\" Reason Reason request Differential Diagnosis Isolate number ID isolate Organism type Type microorganism, can also looked using mo_type() Serotype Serotype microorganism Beta-lactamase Microorganism produces beta-lactamase? ESBL Microorganism produces extended spectrum beta-lactamase? Carbapenemase Microorganism produces carbapenemase? MRSA screening test Microorganism possible MRSA? Inducible clindamycin resistance Clindamycin can induced? Comment comments Date data entryDate data entered WHONET AMP_ND10:CIP_EE 28 different antibiotics. can lookup abbreviations antibiotics data set, use e.g. ab_name(\"AMP\") get official name immediately. analysis, transform valid antibiotic class, using .sir().","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET #> # A tibble: 500 × 53 #> `Identification number` `Specimen number` Organism Country Laboratory #> #> 1 fe41d7bafa 1748 SPN Belgium National … #> 2 91f175ec37 1767 eco The Netherlands National … #> 3 cc4015056e 1343 eco The Netherlands National … #> 4 e864b692f5 1894 MAP Denmark National … #> 5 3d051fe345 1739 PVU Belgium National … #> 6 c80762a08d 1846 103 The Netherlands National … #> 7 8022d3727c 1628 103 Denmark National … #> 8 f3dc5f553d 1493 eco The Netherlands National … #> 9 15add38f6c 1847 eco France National … #> 10 fd41248def 1458 eco Germany National … #> # ℹ 490 more rows #> # ℹ 48 more variables: `Last name` , `First name` , Sex , #> # Age , `Age category` , `Date of admission` , #> # `Specimen date` , `Specimen type` , #> # `Specimen type (Numeric)` , Reason , `Isolate number` , #> # `Organism type` , Serotype , `Beta-lactamase` , ESBL , #> # Carbapenemase , `MRSA screening test` , …"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Use function e.g. clinical texts health care records. returns list antimicrobial drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"ab_from_text( text, type = c(\"drug\", \"dose\", \"administration\"), collapse = NULL, translate_ab = FALSE, thorough_search = NULL, info = interactive(), ... )"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_ab type = \"drug\": column name antibiotics data set translate antibiotic abbreviations , using ab_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .ab()","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"list, character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"function also internally used .ab(), although searches first drug name throw note drug names returned. Note: .ab() function may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"default, function search antimicrobial drug names. text elements searched official names, ATC codes brand names. uses .ab() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(abx = ab_from_text(clinical_text)) returned AB codes can transformed official names, groups, etc. ab_* functions ab_name() ab_group(), using translate_ab argument. using collapse, function return character:df %>% mutate(abx = ab_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"# mind the bad spelling of amoxicillin in this line, # straight from a true health care record: ab_from_text(\"28/03/2020 regular amoxicilliin 500mg po tid\") #> [[1]] #> Class 'ab' #> [1] AMX #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") #> [[1]] #> Class 'ab' #> [1] AMX CIP #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"dose\") #> [[1]] #> [1] 500 400 #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"admin\") #> [[1]] #> [1] \"oral\" \"iv\" #> ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", collapse = \", \") #> [1] \"AMX, CIP\" # \\donttest{ # if you want to know which antibiotic groups were administered, do e.g.: abx <- ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") ab_group(abx[[1]]) #> [1] \"Beta-lactams/penicillins\" \"Quinolones\" if (require(\"dplyr\")) { tibble(clinical_text = c( \"given 400mg cipro and 500 mg amox\", \"started on doxy iv today\" )) %>% mutate( abx_codes = ab_from_text(clinical_text), abx_doses = ab_from_text(clinical_text, type = \"doses\"), abx_admin = ab_from_text(clinical_text, type = \"admin\"), abx_coll = ab_from_text(clinical_text, collapse = \"|\"), abx_coll_names = ab_from_text(clinical_text, collapse = \"|\", translate_ab = \"name\" ), abx_coll_doses = ab_from_text(clinical_text, type = \"doses\", collapse = \"|\" ), abx_coll_admin = ab_from_text(clinical_text, type = \"admin\", collapse = \"|\" ) ) } #> Loading required package: dplyr #> #> Attaching package: ‘dplyr’ #> The following objects are masked from ‘package:stats’: #> #> filter, lag #> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union #> # A tibble: 2 × 8 #> clinical_text abx_codes abx_doses abx_admin abx_coll abx_coll_names #> #> 1 given 400mg cipro and 5… CIP|AMX Ciprofloxacin… #> 2 started on doxy iv today DOX Doxycycline #> # ℹ 2 more variables: abx_coll_doses , abx_coll_admin # }"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antibiotic — ab_property","title":"Get Properties of an Antibiotic — ab_property","text":"Use functions return specific property antibiotic antibiotics data set. input values evaluated internally .ab().","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"ab_name(x, language = get_AMR_locale(), tolower = FALSE, ...) ab_cid(x, ...) ab_synonyms(x, ...) ab_tradenames(x, ...) ab_group(x, language = get_AMR_locale(), ...) ab_atc(x, only_first = FALSE, ...) ab_atc_group1(x, language = get_AMR_locale(), ...) ab_atc_group2(x, language = get_AMR_locale(), ...) ab_loinc(x, ...) ab_ddd(x, administration = \"oral\", ...) ab_ddd_units(x, administration = \"oral\", ...) ab_info(x, language = get_AMR_locale(), ...) ab_url(x, open = FALSE, ...) ab_property(x, property = \"name\", language = get_AMR_locale(), ...) set_ab_names( data, ..., property = \"name\", language = get_AMR_locale(), snake_case = NULL )"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antibiotic — ab_property","text":"x (vector ) text can coerced valid antibiotic drug code .ab() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. lead e.g. \"polymyxin B\" \"polymyxin b\". ... case set_ab_names() data data.frame: columns select (supports tidy selection column1:column4), otherwise arguments passed .ab() only_first logical indicate whether first ATC code must returned, giving preference J0-codes (.e., antimicrobial drug group) administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antibiotics data set: vector_or(colnames(antibiotics), sort = FALSE). data data.frame columns need renamed, character vector column names snake_case logical indicate whether names -called snake case: lower case spaces/slashes replaced underscore (_)","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antibiotic — ab_property","text":"integer case ab_cid() named list case ab_info() multiple ab_atc()/ab_synonyms()/ab_tradenames() double case ab_ddd() data.frame case set_ab_names() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antibiotic — ab_property","text":"output translated possible. function ab_url() return direct URL official website. warning returned required ATC code available. function set_ab_names() special column renaming function data.frames. renames columns names resemble antimicrobial drugs. always makes sure new column names unique. property = \"atc\" set, preference given ATC codes J-group.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antibiotic — ab_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antibiotic — ab_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"# all properties: ab_name(\"AMX\") #> [1] \"Amoxicillin\" ab_atc(\"AMX\") #> [1] \"J01CA04\" ab_cid(\"AMX\") #> [1] 33613 ab_synonyms(\"AMX\") #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" ab_tradenames(\"AMX\") #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" ab_group(\"AMX\") #> [1] \"Beta-lactams/penicillins\" ab_atc_group1(\"AMX\") #> [1] \"Beta-lactam antibacterials, penicillins\" ab_atc_group2(\"AMX\") #> [1] \"Penicillins with extended spectrum\" ab_url(\"AMX\") #> Amoxicillin #> \"https://atcddd.fhi.no/atc_ddd_index//?code=J01CA04&showdescription=no\" # smart lowercase transformation ab_name(x = c(\"AMC\", \"PLB\")) #> [1] \"Amoxicillin/clavulanic acid\" \"Polymyxin B\" ab_name(x = c(\"AMC\", \"PLB\"), tolower = TRUE) #> [1] \"amoxicillin/clavulanic acid\" \"polymyxin B\" # defined daily doses (DDD) ab_ddd(\"AMX\", \"oral\") #> [1] 1.5 ab_ddd_units(\"AMX\", \"oral\") #> [1] \"g\" ab_ddd(\"AMX\", \"iv\") #> [1] 3 ab_ddd_units(\"AMX\", \"iv\") #> [1] \"g\" ab_info(\"AMX\") # all properties as a list #> $ab #> [1] \"AMX\" #> #> $cid #> [1] 33613 #> #> $name #> [1] \"Amoxicillin\" #> #> $group #> [1] \"Beta-lactams/penicillins\" #> #> $atc #> [1] \"J01CA04\" #> #> $atc_group1 #> [1] \"Beta-lactam antibacterials, penicillins\" #> #> $atc_group2 #> [1] \"Penicillins with extended spectrum\" #> #> $tradenames #> [1] \"actimoxi\" \"amoclen\" \"amolin\" #> [4] \"amopen\" \"amopenixin\" \"amoxibiotic\" #> [7] \"amoxicaps\" \"amoxicilina\" \"amoxicillin\" #> [10] \"amoxicillin hydrate\" \"amoxicilline\" \"amoxicillinum\" #> [13] \"amoxiden\" \"amoxil\" \"amoxivet\" #> [16] \"amoxy\" \"amoxycillin\" \"amoxyke\" #> [19] \"anemolin\" \"aspenil\" \"atoksilin\" #> [22] \"biomox\" \"bristamox\" \"cemoxin\" #> [25] \"clamoxyl\" \"damoxy\" \"delacillin\" #> [28] \"demoksil\" \"dispermox\" \"efpenix\" #> [31] \"flemoxin\" \"hiconcil\" \"histocillin\" #> [34] \"hydroxyampicillin\" \"ibiamox\" \"imacillin\" #> [37] \"lamoxy\" \"largopen\" \"metafarma capsules\" #> [40] \"metifarma capsules\" \"moksilin\" \"moxacin\" #> [43] \"moxatag\" \"ospamox\" \"pamoxicillin\" #> [46] \"piramox\" \"promoxil\" \"remoxil\" #> [49] \"robamox\" \"sawamox pm\" \"tolodina\" #> [52] \"topramoxin\" \"unicillin\" \"utimox\" #> [55] \"vetramox\" #> #> $loinc #> [1] \"101498-4\" \"15-8\" \"16-6\" \"16365-9\" \"17-4\" \"18-2\" #> [7] \"18861-5\" \"18862-3\" \"19-0\" \"20-8\" \"21-6\" \"22-4\" #> [13] \"25274-2\" \"25310-4\" \"3344-9\" \"55614-2\" \"55615-9\" \"55616-7\" #> [19] \"6976-5\" \"6977-3\" \"80133-2\" #> #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 1.5 #> #> $ddd$oral$units #> [1] \"g\" #> #> #> $ddd$iv #> $ddd$iv$amount #> [1] 3 #> #> $ddd$iv$units #> [1] \"g\" #> #> #> # all ab_* functions use as.ab() internally, so you can go from 'any' to 'any': ab_atc(\"AMP\") #> [1] \"J01CA01\" \"S01AA19\" ab_group(\"J01CA01\") #> [1] \"Beta-lactams/penicillins\" ab_loinc(\"ampicillin\") #> [1] \"101477-8\" \"101478-6\" \"18864-9\" \"18865-6\" \"20374-5\" \"21066-6\" #> [7] \"23618-2\" \"27-3\" \"28-1\" \"29-9\" \"30-7\" \"31-5\" #> [13] \"32-3\" \"33-1\" \"3355-5\" \"33562-0\" \"33919-2\" \"34-9\" #> [19] \"43883-8\" \"43884-6\" \"6979-9\" \"6980-7\" \"87604-5\" ab_name(\"21066-6\") #> [1] \"Ampicillin\" ab_name(6249) #> [1] \"Ampicillin\" ab_name(\"J01CA01\") #> [1] \"Ampicillin\" # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") #> [1] \"J01DD04\" # use set_ab_names() for renaming columns colnames(example_isolates) #> [1] \"date\" \"patient\" \"age\" \"gender\" \"ward\" \"mo\" \"PEN\" #> [8] \"OXA\" \"FLC\" \"AMX\" \"AMC\" \"AMP\" \"TZP\" \"CZO\" #> [15] \"FEP\" \"CXM\" \"FOX\" \"CTX\" \"CAZ\" \"CRO\" \"GEN\" #> [22] \"TOB\" \"AMK\" \"KAN\" \"TMP\" \"SXT\" \"NIT\" \"FOS\" #> [29] \"LNZ\" \"CIP\" \"MFX\" \"VAN\" \"TEC\" \"TCY\" \"TGC\" #> [36] \"DOX\" \"ERY\" \"CLI\" \"AZM\" \"IPM\" \"MEM\" \"MTR\" #> [43] \"CHL\" \"COL\" \"MUP\" \"RIF\" colnames(set_ab_names(example_isolates)) #> [1] \"date\" \"patient\" #> [3] \"age\" \"gender\" #> [5] \"ward\" \"mo\" #> [7] \"benzylpenicillin\" \"oxacillin\" #> [9] \"flucloxacillin\" \"amoxicillin\" #> [11] \"amoxicillin_clavulanic_acid\" \"ampicillin\" #> [13] \"piperacillin_tazobactam\" \"cefazolin\" #> [15] \"cefepime\" \"cefuroxime\" #> [17] \"cefoxitin\" \"cefotaxime\" #> [19] \"ceftazidime\" \"ceftriaxone\" #> [21] \"gentamicin\" \"tobramycin\" #> [23] \"amikacin\" \"kanamycin\" #> [25] \"trimethoprim\" \"trimethoprim_sulfamethoxazole\" #> [27] \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" #> [31] \"moxifloxacin\" \"vancomycin\" #> [33] \"teicoplanin\" \"tetracycline\" #> [35] \"tigecycline\" \"doxycycline\" #> [37] \"erythromycin\" \"clindamycin\" #> [39] \"azithromycin\" \"imipenem\" #> [41] \"meropenem\" \"metronidazole\" #> [43] \"chloramphenicol\" \"colistin\" #> [45] \"mupirocin\" \"rifampicin\" colnames(set_ab_names(example_isolates, NIT:VAN)) #> [1] \"date\" \"patient\" \"age\" \"gender\" #> [5] \"ward\" \"mo\" \"PEN\" \"OXA\" #> [9] \"FLC\" \"AMX\" \"AMC\" \"AMP\" #> [13] \"TZP\" \"CZO\" \"FEP\" \"CXM\" #> [17] \"FOX\" \"CTX\" \"CAZ\" \"CRO\" #> [21] \"GEN\" \"TOB\" \"AMK\" \"KAN\" #> [25] \"TMP\" \"SXT\" \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" \"moxifloxacin\" \"vancomycin\" #> [33] \"TEC\" \"TCY\" \"TGC\" \"DOX\" #> [37] \"ERY\" \"CLI\" \"AZM\" \"IPM\" #> [41] \"MEM\" \"MTR\" \"CHL\" \"COL\" #> [45] \"MUP\" \"RIF\" # \\donttest{ if (require(\"dplyr\")) { example_isolates %>% set_ab_names() # this does the same: example_isolates %>% rename_with(set_ab_names) # set_ab_names() works with any AB property: example_isolates %>% set_ab_names(property = \"atc\") example_isolates %>% set_ab_names(where(is.sir)) %>% colnames() example_isolates %>% set_ab_names(NIT:VAN) %>% colnames() } #> [1] \"date\" \"patient\" \"age\" \"gender\" #> [5] \"ward\" \"mo\" \"PEN\" \"OXA\" #> [9] \"FLC\" \"AMX\" \"AMC\" \"AMP\" #> [13] \"TZP\" \"CZO\" \"FEP\" \"CXM\" #> [17] \"FOX\" \"CTX\" \"CAZ\" \"CRO\" #> [21] \"GEN\" \"TOB\" \"AMK\" \"KAN\" #> [25] \"TMP\" \"SXT\" \"nitrofurantoin\" \"fosfomycin\" #> [29] \"linezolid\" \"ciprofloxacin\" \"moxifloxacin\" \"vancomycin\" #> [33] \"TEC\" \"TCY\" \"TGC\" \"DOX\" #> [37] \"ERY\" \"CLI\" \"AZM\" \"IPM\" #> [41] \"MEM\" \"MTR\" \"CHL\" \"COL\" #> [45] \"MUP\" \"RIF\" # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Antimicrobials — add_custom_antimicrobials","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"add_custom_antimicrobials() can add custom antimicrobial drug names codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"add_custom_antimicrobials(x) clear_custom_antimicrobials()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"x data.frame resembling antibiotics data set, least containing columns \"ab\" \"name\"","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"Important: Due R works, add_custom_antimicrobials() function run every R session - added antimicrobials stored sessions thus lost R exited. two ways circumvent automate process adding antimicrobials: Method 1: Using package option AMR_custom_ab, preferred method. use method: Create data set structure antibiotics data set (containing least columns \"ab\" \"name\") save saveRDS() location choice, e.g. \"~/my_custom_ab.rds\", remote location. Set file location package option AMR_custom_ab: options(AMR_custom_ab = \"~/my_custom_ab.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file: Upon package load, file loaded run add_custom_antimicrobials() function. Method 2: Loading antimicrobial additions directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file: Use clear_custom_antimicrobials() clear previously added antimicrobials.","code":"# Add custom antimicrobial codes: options(AMR_custom_ab = \"~/my_custom_ab.rds\") # Add custom antibiotic drug codes: AMR::add_custom_antimicrobials( data.frame(ab = \"TESTAB\", name = \"Test Antibiotic\", group = \"Test Group\") )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"# \\donttest{ # returns NA and throws a warning (which is suppressed here): suppressWarnings( as.ab(\"testab\") ) #> Class 'ab' #> [1] # now add a custom entry - it will be considered by as.ab() and # all ab_*() functions add_custom_antimicrobials( data.frame( ab = \"TESTAB\", name = \"Test Antibiotic\", # you can add any property present in the # 'antibiotics' data set, such as 'group': group = \"Test Group\" ) ) #> ℹ Added one record to the internal antibiotics data set. # \"testab\" is now a new antibiotic: as.ab(\"testab\") #> Class 'ab' #> [1] TESTAB ab_name(\"testab\") #> [1] \"Test Antibiotic\" ab_group(\"testab\") #> [1] \"Test Group\" ab_info(\"testab\") #> $ab #> [1] \"TESTAB\" #> #> $cid #> [1] NA #> #> $name #> [1] \"Test Antibiotic\" #> #> $group #> [1] \"Test Group\" #> #> $atc #> [1] NA #> #> $atc_group1 #> [1] NA #> #> $atc_group2 #> [1] NA #> #> $tradenames #> [1] NA #> #> $loinc #> [1] NA #> #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] NA #> #> $ddd$oral$units #> [1] NA #> #> #> $ddd$iv #> $ddd$iv$amount #> [1] NA #> #> $ddd$iv$units #> [1] NA #> #> #> # Add Co-fluampicil, which is one of the many J01CR50 codes, see # https://atcddd.fhi.no/ddd/list_of_ddds_combined_products/ add_custom_antimicrobials( data.frame( ab = \"COFLU\", name = \"Co-fluampicil\", atc = \"J01CR50\", group = \"Beta-lactams/penicillins\" ) ) #> ℹ Added one record to the internal antibiotics data set. ab_atc(\"Co-fluampicil\") #> [1] \"J01CR50\" ab_name(\"J01CR50\") #> [1] \"Co-fluampicil\" # even antibiotic selectors work x <- data.frame( random_column = \"some value\", coflu = as.sir(\"S\"), ampicillin = as.sir(\"R\") ) x #> random_column coflu ampicillin #> 1 some value S R x[, betalactams()] #> ℹ For betalactams() using columns 'coflu' (co-fluampicil) and #> 'ampicillin' #> coflu ampicillin #> 1 S R # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Microorganisms — add_custom_microorganisms","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"add_custom_microorganisms() can add custom microorganisms, non-taxonomic outcome laboratory analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"add_custom_microorganisms(x) clear_custom_microorganisms()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"x data.frame resembling microorganisms data set, least containing column \"genus\" (case-insensitive)","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"function fill missing taxonomy , specific taxonomic columns missing, see Examples. Important: Due R works, add_custom_microorganisms() function run every R session - added microorganisms stored sessions thus lost R exited. two ways circumvent automate process adding microorganisms: Method 1: Using package option AMR_custom_mo, preferred method. use method: Create data set structure microorganisms data set (containing least column \"genus\") save saveRDS() location choice, e.g. \"~/my_custom_mo.rds\", remote location. Set file location package option AMR_custom_mo: options(AMR_custom_mo = \"~/my_custom_mo.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file: Upon package load, file loaded run add_custom_microorganisms() function. Method 2: Loading microorganism directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file: Use clear_custom_microorganisms() clear previously added microorganisms.","code":"# Add custom microorganism codes: options(AMR_custom_mo = \"~/my_custom_mo.rds\") # Add custom antibiotic drug codes: AMR::add_custom_microorganisms( data.frame(genus = \"Enterobacter\", species = \"asburiae/cloacae\") )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"# \\donttest{ # a combination of species is not formal taxonomy, so # this will result in \"Enterobacter cloacae cloacae\", # since it resembles the input best: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae\" # now add a custom entry - it will be considered by as.mo() and # all mo_*() functions add_custom_microorganisms( data.frame( genus = \"Enterobacter\", species = \"asburiae/cloacae\" ) ) #> ℹ Added Enterobacter asburiae/cloacae to the internal microorganisms data #> set. # E. asburiae/cloacae is now a new microorganism: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae/cloacae\" # its code: as.mo(\"Enterobacter asburiae/cloacae\") #> Class 'mo' #> [1] CUSTOM1_ENTRB_ASB/ # all internal algorithms will work as well: mo_name(\"Ent asburia cloacae\") #> [1] \"Enterobacter asburiae/cloacae\" # and even the taxonomy was added based on the genus! mo_family(\"E. asburiae/cloacae\") #> [1] \"Enterobacteriaceae\" mo_gramstain(\"Enterobacter asburiae/cloacae\") #> [1] \"Gram-negative\" mo_info(\"Enterobacter asburiae/cloacae\") #> $mo #> [1] \"CUSTOM1_ENTRB_ASB/\" #> #> $kingdom #> [1] \"Bacteria\" #> #> $phylum #> [1] \"Pseudomonadota\" #> #> $class #> [1] \"Gammaproteobacteria\" #> #> $order #> [1] \"Enterobacterales\" #> #> $family #> [1] \"Enterobacteriaceae\" #> #> $genus #> [1] \"Enterobacter\" #> #> $species #> [1] \"asburiae/cloacae\" #> #> $subspecies #> [1] \"\" #> #> $status #> [1] \"accepted\" #> #> $synonyms #> NULL #> #> $gramstain #> [1] \"Gram-negative\" #> #> $oxygen_tolerance #> [1] NA #> #> $url #> [1] \"\" #> #> $ref #> [1] \"Self-added, 2024\" #> #> $snomed #> [1] NA #> #> $lpsn #> [1] NA #> #> $gbif #> [1] NA #> #> $group_members #> character(0) #> # the function tries to be forgiving: add_custom_microorganisms( data.frame( GENUS = \"BACTEROIDES / PARABACTEROIDES SLASHLINE\", SPECIES = \"SPECIES\" ) ) #> ℹ Added Bacteroides/Parabacteroides to the internal microorganisms data #> set. mo_name(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"Bacteroides/Parabacteroides\" mo_rank(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"genus\" # taxonomy still works, even though a slashline genus was given as input: mo_family(\"Bacteroides/Parabacteroides\") #> [1] \"Bacteroidaceae\" # for groups and complexes, set them as species or subspecies: add_custom_microorganisms( data.frame( genus = \"Citrobacter\", species = c(\"freundii\", \"braakii complex\"), subspecies = c(\"complex\", \"\") ) ) #> ℹ Added Citrobacter braakii complex and Citrobacter freundii complex to the #> internal microorganisms data set. mo_name(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Citrobacter freundii complex\" \"Citrobacter braakii complex\" mo_species(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"freundii complex\" \"braakii complex\" mo_gramstain(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Gram-negative\" \"Gram-negative\" # }"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":null,"dir":"Reference","previous_headings":"","what":"Age in Years of Individuals — age","title":"Age in Years of Individuals — age","text":"Calculates age years based reference date, system date default.","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Age in Years of Individuals — age","text":"","code":"age(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Age in Years of Individuals — age","text":"x date(s), character (vectors) coerced .POSIXlt() reference reference date(s) (default today), character (vectors) coerced .POSIXlt() exact logical indicate whether age calculation exact, .e. decimals. divides number days year--date (YTD) x number days year reference (either 365 366). na.rm logical indicate whether missing values removed ... arguments passed .POSIXlt(), origin","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Age in Years of Individuals — age","text":"integer (decimals) exact = FALSE, double (decimals) otherwise","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Age in Years of Individuals — age","text":"Ages 0 returned NA warning. Ages 120 give warning. function vectorises x reference, meaning either can length 1 argument larger length.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Age in Years of Individuals — age","text":"","code":"# 10 random pre-Y2K birth dates df <- data.frame(birth_date = as.Date(\"2000-01-01\") - runif(10) * 25000) # add ages df$age <- age(df$birth_date) # add exact ages df$age_exact <- age(df$birth_date, exact = TRUE) # add age at millenium switch df$age_at_y2k <- age(df$birth_date, \"2000-01-01\") df #> birth_date age age_exact age_at_y2k #> 1 1965-12-05 58 58.61202 34 #> 2 1980-03-01 44 44.37432 19 #> 3 1949-11-01 74 74.70492 50 #> 4 1947-02-14 77 77.41803 52 #> 5 1940-02-19 84 84.40437 59 #> 6 1988-01-10 36 36.51366 11 #> 7 1997-08-27 26 26.88525 2 #> 8 1978-01-26 46 46.46995 21 #> 9 1972-06-17 52 52.07923 27 #> 10 1986-08-10 37 37.93169 13"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Split Ages into Age Groups — age_groups","title":"Split Ages into Age Groups — age_groups","text":"Split ages age groups defined split argument. allows easier demographic (antimicrobial resistance) analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Split Ages into Age Groups — age_groups","text":"","code":"age_groups(x, split_at = c(12, 25, 55, 75), na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Split Ages into Age Groups — age_groups","text":"x age, e.g. calculated age() split_at values split x - default age groups 0-11, 12-24, 25-54, 55-74 75+. See Details. na.rm logical indicate whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Split Ages into Age Groups — age_groups","text":"Ordered factor","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Split Ages into Age Groups — age_groups","text":"split ages, input split_at argument can : numeric vector. value e.g. c(10, 20) split x 0-9, 10-19 20+. value 50 split x 0-49 50+. default split young children (0-11), youth (12-24), young adults (25-54), middle-aged adults (55-74) elderly (75+). character: \"children\" \"kids\", equivalent : c(0, 1, 2, 4, 6, 13, 18). split 0, 1, 2-3, 4-5, 6-12, 13-17 18+. \"elderly\" \"seniors\", equivalent : c(65, 75, 85). split 0-64, 65-74, 75-84, 85+. \"fives\", equivalent : 1:20 * 5. split 0-4, 5-9, ..., 95-99, 100+. \"tens\", equivalent : 1:10 * 10. split 0-9, 10-19, ..., 90-99, 100+.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Split Ages into Age Groups — age_groups","text":"","code":"ages <- c(3, 8, 16, 54, 31, 76, 101, 43, 21) # split into 0-49 and 50+ age_groups(ages, 50) #> [1] 0-49 0-49 0-49 50+ 0-49 50+ 50+ 0-49 0-49 #> Levels: 0-49 < 50+ # split into 0-19, 20-49 and 50+ age_groups(ages, c(20, 50)) #> [1] 0-19 0-19 0-19 50+ 20-49 50+ 50+ 20-49 20-49 #> Levels: 0-19 < 20-49 < 50+ # split into groups of ten years age_groups(ages, 1:10 * 10) #> [1] 0-9 0-9 10-19 50-59 30-39 70-79 100+ 40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ age_groups(ages, split_at = \"tens\") #> [1] 0-9 0-9 10-19 50-59 30-39 70-79 100+ 40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ # split into groups of five years age_groups(ages, 1:20 * 5) #> [1] 0-4 5-9 15-19 50-54 30-34 75-79 100+ 40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ age_groups(ages, split_at = \"fives\") #> [1] 0-4 5-9 15-19 50-54 30-34 75-79 100+ 40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ # split specifically for children age_groups(ages, c(1, 2, 4, 6, 13, 18)) #> [1] 2-3 6-12 13-17 18+ 18+ 18+ 18+ 18+ 18+ #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ age_groups(ages, \"children\") #> [1] 2-3 6-12 13-17 18+ 18+ 18+ 18+ 18+ 18+ #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ # \\donttest{ # resistance of ciprofloxacin per age group if (require(\"dplyr\") && require(\"ggplot2\")) { example_isolates %>% filter_first_isolate() %>% filter(mo == as.mo(\"Escherichia coli\")) %>% group_by(age_group = age_groups(age)) %>% select(age_group, CIP) %>% ggplot_sir( x = \"age_group\", minimum = 0, x.title = \"Age Group\", title = \"Ciprofloxacin resistance per age group\" ) } #> Loading required package: ggplot2 # }"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"Generate antibiogram, communicate results plots tables. functions follow logic Klinker et al. Barbieri et al. (see Source), allow reporting e.g. R Markdown Quarto well.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"","code":"antibiogram( x, antibiotics = where(is.sir), mo_transform = \"shortname\", ab_transform = NULL, syndromic_group = NULL, add_total_n = TRUE, only_all_tested = FALSE, digits = 0, col_mo = NULL, language = get_AMR_locale(), minimum = 30, combine_SI = TRUE, sep = \" + \", info = interactive() ) # S3 method for class 'antibiogram' plot(x, ...) # S3 method for class 'antibiogram' autoplot(object, ...) # S3 method for class 'antibiogram' knit_print( x, italicise = TRUE, na = getOption(\"knitr.kable.NA\", default = \"\"), ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"Klinker KP et al. (2021). Antimicrobial stewardship antibiograms: importance moving beyond traditional antibiograms. Therapeutic Advances Infectious Disease, May 5;8:20499361211011373; doi:10.1177/20499361211011373 Barbieri E et al. (2021). Development Weighted-Incidence Syndromic Combination Antibiogram (WISCA) guide choice empiric antibiotic treatment urinary tract infection paediatric patients: Bayesian approach Antimicrobial Resistance & Infection Control May 1;10(1):74; doi:10.1186/s13756-021-00939-2 M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"x data.frame containing least column microorganisms columns antibiotic results (class 'sir', see .sir()) antibiotics vector antibiotic name code (evaluated .ab(), column name x, (combinations ) antibiotic selectors aminoglycosides() carbapenems(). combination antibiograms, can also set values separated \"+\", \"TZP+TOB\" \"cipro + genta\", given columns resembling antibiotics exist x. See Examples. mo_transform character transform microorganism input - must \"name\", \"shortname\", \"gramstain\", one column names microorganisms data set: \"mo\", \"fullname\", \"status\", \"kingdom\", \"phylum\", \"class\", \"order\", \"family\", \"genus\", \"species\", \"subspecies\", \"rank\", \"ref\", \"oxygen_tolerance\", \"source\", \"lpsn\", \"lpsn_parent\", \"lpsn_renamed_to\", \"mycobank\", \"mycobank_parent\", \"mycobank_renamed_to\", \"gbif\", \"gbif_parent\", \"gbif_renamed_to\", \"prevalence\", \"snomed\". Can also NULL transform input. ab_transform character transform antibiotic input - must one column names antibiotics data set: \"ab\", \"cid\", \"name\", \"group\", \"atc\", \"atc_group1\", \"atc_group2\", \"abbreviations\", \"synonyms\", \"oral_ddd\", \"oral_units\", \"iv_ddd\", \"iv_units\", \"loinc\". Can also NULL transform input. syndromic_group column name x, values calculated split rows x, e.g. using ifelse() case_when(). See Examples. add_total_n logical indicate whether total available numbers per pathogen added table (default TRUE). add lowest highest number available isolate per antibiotic (e.g, E. coli 200 isolates available ciprofloxacin 150 amoxicillin, returned number \"150-200\"). only_all_tested (combination antibiograms): logical indicate isolates must tested antibiotics, see Details digits number digits use rounding col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). language language translate text, defaults system language (see get_AMR_locale()) minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether susceptibility determined results either S , instead S (default TRUE) sep separating character antibiotic columns combination antibiograms info logical indicate info printed - default TRUE interactive mode ... used R Markdown Quarto: arguments passed knitr::kable() (otherwise, use) object antibiogram() object italicise logical indicate whether microorganism names knitr table made italic, using italicise_taxonomy(). na character use showing NA values","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"function returns table values 0 100 susceptibility, resistance. Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms. types antibiograms listed can plotted (using ggplot2::autoplot() base R plot()/barplot()). antibiogram object can also used directly R Markdown / Quarto (.e., knitr) reports. case, knitr::kable() applied automatically microorganism names even printed italics default (see argument italicise). can also use functions specific 'table reporting' packages transform output antibiogram() needs, e.g. flextable::as_flextable() gt::gt().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"antibiogram-types","dir":"Reference","previous_headings":"","what":"Antibiogram Types","title":"Generate Antibiogram: Traditional, Combined, Syndromic, or Weighted-Incidence Syndromic Combination (WISCA) — antibiogram","text":"four antibiogram types, proposed Klinker et al. (2021, doi:10.1177/20499361211011373 ), supported antibiogram(): Traditional Antibiogram Case example: Susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Code example: Combination Antibiogram Case example: Additional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Code example: Syndromic Antibiogram Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Code example: Weighted-Incidence Syndromic Combination Antibiogram (WISCA) Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure Code example: Note combination antibiograms, important realise susceptibility can calculated two ways, can set only_all_tested argument (default FALSE). See example two antibiotics, Drug Drug B, antibiogram() works calculate %SI:","code":"antibiogram(your_data, antibiotics = \"TZP\") antibiogram(your_data, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\")) antibiogram(your_data, antibiotics = penicillins(), syndromic_group = \"ward\") library(dplyr) your_data %>% filter(ward == \"ICU\" & specimen_type == \"Respiratory\") %>% antibiogram(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), syndromic_group = ifelse(.$age >= 65 & .$gender == \"Male\" & .$condition == \"Heart Disease\", \"Study Group\", \"Control Group\")) -------------------------------------------------------------------- only_all_tested = FALSE only_all_tested = TRUE ----------------------- ----------------------- Drug A Drug B include as include as include as include as numerator denominator numerator denominator -------- -------- ---------- ----------- ---------- ----------- S or I S or I X X X X R S or I X X X X S or I X X - - S or I R X X X X R R - X - X R - - - - S or I X X - - R - - - -