atc_online_property (  
-  atc_code , 
-  property , 
-  administration =  "O" , 
+    atc_online_property ( atc_code , property , administration =  "O" , 
   url =  "https://atcddd.fhi.no/atc_ddd_index/?code=%s&showdescription=no" , 
-  url_vet =  "https://atcddd.fhi.no/atcvet/atcvet_index/?code=%s&showdescription=no"  
-)  
+  url_vet =  "https://atcddd.fhi.no/atcvet/atcvet_index/?code=%s&showdescription=no" )  
  
 atc_online_groups ( atc_code , ... )  
  
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index c204e28c3..53fd039d4 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,15 +54,9 @@
 
     
     Usage 
-    
av_from_text (  
-  text , 
-  type =  c ( "drug" , "dose" , "administration" ) , 
-  collapse =  NULL , 
-  translate_av =  FALSE , 
-  thorough_search =  NULL , 
-  info =  interactive ( ) , 
-  ...  
-) 
+    
av_from_text ( text , type =  c ( "drug" , "dose" , "administration" ) , 
+  collapse =  NULL , translate_av =  FALSE , thorough_search =  NULL , 
+  info =  interactive ( ) , ... )   
      
 
     
diff --git a/reference/av_property.html b/reference/av_property.html
index ffb6e5cc3..3f0785c4f 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
diff --git a/reference/availability.html b/reference/availability.html
index 73da57f5e..b68c7a6f8 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index 3eac70cbe..8ec79681a 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,21 +54,15 @@
 
     
     Usage 
-    
bug_drug_combinations ( x , col_mo =  NULL , FUN =  mo_shortname , ... )  
+    bug_drug_combinations ( x , col_mo =  NULL , FUN =  mo_shortname , 
+  include_n_rows =  FALSE , ... )  
  
 # S3 method for class 'bug_drug_combinations'  
-format (  
-  x , 
-  translate_ab =  "name (ab, atc)" , 
-  language =  get_AMR_locale ( ) , 
-  minimum =  30 , 
-  combine_SI =  TRUE , 
-  add_ab_group =  TRUE , 
-  remove_intrinsic_resistant =  FALSE , 
-  decimal.mark =  getOption ( "OutDec" ) , 
-  big.mark =  ifelse ( decimal.mark  ==  "," , "." , "," ) , 
-  ...  
-)  
+format ( x , translate_ab =  "name (ab, atc)" , 
+  language =  get_AMR_locale ( ) , minimum =  30 , combine_SI =  TRUE , 
+  add_ab_group =  TRUE , remove_intrinsic_resistant =  FALSE , 
+  decimal.mark =  getOption ( "OutDec" ) , big.mark =  ifelse ( decimal.mark  ==  
+  "," , "." , "," ) , ... )   
      
 
     
@@ -87,6 +81,10 @@
 
the function to call on the mo column to transform the microorganism codes - the default is mo_shortname() 
 
 
+
include_n_rows 
+
a logical  to indicate if the total number of rows must be included in the output
+
+
 
... 
 arguments passed on to FUN
 
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index b22644880..1fe10f2fc 100644
--- a/reference/clinical_breakpoints.html
+++ b/reference/clinical_breakpoints.html
@@ -21,7 +21,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">
AMR (for R)
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
diff --git a/reference/count.html b/reference/count.html
index 9d80efa47..566f5dc23 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.9125 
+    2.1.1.9133 
 
 
     
@@ -75,12 +75,8 @@ count_resistant() should be used to count resistant isolates, count_susceptible(
  
 n_sir ( ... , only_all_tested =  FALSE )  
  
-count_df (  
-  data , 
-  translate_ab =  "name" , 
-  language =  get_AMR_locale ( ) , 
-  combine_SI =  TRUE  
-)    
+count_df ( data , translate_ab =  "name" , language =  get_AMR_locale ( ) , 
+  combine_SI =  TRUE )      
       
 
     
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index f919047c2..6ec74512a 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
diff --git a/reference/dosage.html b/reference/dosage.html
index e3adad971..cc1ae7e09 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index ec9d6a1f5..7b4cbea7d 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.9125 
+    2.1.1.9133 
 
 
     
@@ -57,19 +57,11 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
 
     
     Usage 
-    
eucast_rules (  
-  x , 
-  col_mo =  NULL , 
-  info =  interactive ( ) , 
+    eucast_rules ( x , col_mo =  NULL , info =  interactive ( ) , 
   rules =  getOption ( "AMR_eucastrules" , default =  c ( "breakpoints" , "expert" ) ) , 
-  verbose =  FALSE , 
-  version_breakpoints =  12 , 
-  version_expertrules =  3.3 , 
-  ampc_cephalosporin_resistance =  NA , 
-  only_sir_columns =  FALSE , 
-  custom_rules =  NULL , 
-  ...  
-)  
+  verbose =  FALSE , version_breakpoints =  12 , version_expertrules =  3.3 , 
+  ampc_cephalosporin_resistance =  NA , only_sir_columns =  FALSE , 
+  custom_rules =  NULL , ... )  
  
 eucast_dosage ( ab , administration =  "iv" , version_breakpoints =  12 )  
     
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 7cb6939d3..cda3d0cfd 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index ab1057bfb..35d4d7bea 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index 24ce0dd5c..7ab713e19 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,13 +54,9 @@
 
     
     Usage 
-    
export_ncbi_biosample (  
-  x , 
-  filename =  paste0 ( "biosample_" , format ( Sys.time ( ) , "%Y-%m-%d-%H%M%S" ) , ".xlsx" ) , 
-  type =  "pathogen MIC" , 
-  columns =  where ( is.mic ) , 
-  save_as_xlsx =  TRUE  
-) 
+    
export_ncbi_biosample ( x , filename =  paste0 ( "biosample_" , format ( Sys.time ( ) , 
+  "%Y-%m-%d-%H%M%S" ) , ".xlsx" ) , type =  "pathogen MIC" , 
+  columns =  where ( is.mic ) , save_as_xlsx =  TRUE )   
      
 
     
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index 0ee361b68..9b14bb4f0 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -57,38 +57,18 @@
 
     
     Usage 
-    
first_isolate (  
-  x =  NULL , 
-  col_date =  NULL , 
-  col_patient_id =  NULL , 
-  col_mo =  NULL , 
-  col_testcode =  NULL , 
-  col_specimen =  NULL , 
-  col_icu =  NULL , 
-  col_keyantimicrobials =  NULL , 
-  episode_days =  365 , 
-  testcodes_exclude =  NULL , 
-  icu_exclude =  FALSE , 
-  specimen_group =  NULL , 
-  type =  "points" , 
-  method =  c ( "phenotype-based" , "episode-based" , "patient-based" , "isolate-based" ) , 
-  ignore_I =  TRUE , 
-  points_threshold =  2 , 
-  info =  interactive ( ) , 
-  include_unknown =  FALSE , 
-  include_untested_sir =  TRUE , 
-  ...  
-)  
+    first_isolate ( x =  NULL , col_date =  NULL , col_patient_id =  NULL , 
+  col_mo =  NULL , col_testcode =  NULL , col_specimen =  NULL , 
+  col_icu =  NULL , col_keyantimicrobials =  NULL , episode_days =  365 , 
+  testcodes_exclude =  NULL , icu_exclude =  FALSE , specimen_group =  NULL , 
+  type =  "points" , method =  c ( "phenotype-based" , "episode-based" , 
+  "patient-based" , "isolate-based" ) , ignore_I =  TRUE , points_threshold =  2 , 
+  info =  interactive ( ) , include_unknown =  FALSE , 
+  include_untested_sir =  TRUE , ... )  
  
-filter_first_isolate (  
-  x =  NULL , 
-  col_date =  NULL , 
-  col_patient_id =  NULL , 
-  col_mo =  NULL , 
-  episode_days =  365 , 
-  method =  c ( "phenotype-based" , "episode-based" , "patient-based" , "isolate-based" ) , 
-  ...  
-)  
+filter_first_isolate ( x =  NULL , col_date =  NULL , col_patient_id =  NULL , 
+  col_mo =  NULL , episode_days =  365 , method =  c ( "phenotype-based" , 
+  "episode-based" , "patient-based" , "isolate-based" ) , ... )   
      
 
     
@@ -186,15 +166,16 @@
     
     
     Details 
-    
To conduct epidemiological analyses on antimicrobial resistance data, only so-called first isolates should be included to prevent overestimation and underestimation of antimicrobial resistance. Different methods can be used to do so, see below.
+    
The methodology implemented in these functions is based on the research overview by Hindler et al.  (2007, doi:10.1086/511864 
+) and the recommendations outlined in the CLSI Guideline M39 .
+To conduct epidemiological analyses on antimicrobial resistance data, only so-called first isolates should be included to prevent overestimation and underestimation of antimicrobial resistance. Different methods can be used to do so, see below.
 These functions are context-aware. This means that the x argument can be left blank if used inside a data.frame  call, see Examples .
 The first_isolate() function is a wrapper around the is_new_episode()  function, but more efficient for data sets containing microorganism codes or names.
 All isolates with a microbial ID of NA will be excluded as first isolate.
 Different methods 
 
 
-
According to Hindler et al.  (2007, doi:10.1086/511864 
-), there are different methods (algorithms) to select first isolates with increasing reliability: isolate-based, patient-based, episode-based and phenotype-based. All methods select on a combination of the taxonomic genus and species (not subspecies).
+
According to previously-mentioned sources, there are different methods (algorithms) to select first isolates with increasing reliability: isolate-based, patient-based, episode-based and phenotype-based. All methods select on a combination of the taxonomic genus and species (not subspecies).
 All mentioned methods are covered in the first_isolate() function:
Method Function to apply Isolate-based first_isolate(x, method = "isolate-based")(= all isolates) Patient-based first_isolate(x, method = "patient-based")(= first isolate per patient) Episode-based first_isolate(x, method = "episode-based"), or:(= first isolate per episode) - 7-Day interval from initial isolate - first_isolate(x, method = "e", episode_days = 7) - 30-Day interval from initial isolate - first_isolate(x, method = "e", episode_days = 30) Phenotype-based first_isolate(x, method = "phenotype-based"), or:(= first isolate per phenotype) - Major difference in any antimicrobial result - first_isolate(x, type = "points") - Any difference in key antimicrobial results - first_isolate(x, type = "keyantimicrobials") 
 
 
 
@@ -208,14 +189,14 @@
 
Patient-based 
 
 
-
To include every genus-species combination per patient once, set the episode_days to Inf. Although often inappropriate, this method makes sure that no duplicate isolates are selected from the same patient. In a large longitudinal data set, this could mean that isolates are excluded  that were found years after the initial isolate.
+
To include every genus-species combination per patient once, set the episode_days to Inf. This method makes sure that no duplicate isolates are selected from the same patient. This method is preferred to e.g. identify the first MRSA finding of each patient to determine the incidence. Conversely, in a large longitudinal data set, this could mean that isolates are excluded  that were found years after the initial isolate.
  
 
 
 Episode-based 
 
 
-
To include every genus-species combination per patient episode once, set the episode_days to a sensible number of days. Depending on the type of analysis, this could be 14, 30, 60 or 365. Short episodes are common for analysing specific hospital or ward data, long episodes are common for analysing regional and national data.
+
To include every genus-species combination per patient episode once, set the episode_days to a sensible number of days. Depending on the type of analysis, this could be 14, 30, 60 or 365. Short episodes are common for analysing specific hospital or ward data or ICU cases, long episodes are common for analysing regional and national data.
 This is the most common method to correct for duplicate isolates. Patients are categorised into episodes based on their ID and dates (e.g., the date of specimen receipt or laboratory result). While this is a common method, it does not take into account antimicrobial test results. This means that e.g. a methicillin-resistant Staphylococcus aureus  (MRSA) isolate cannot be differentiated from a wildtype Staphylococcus aureus  isolate.
  
 
diff --git a/reference/g.test.html b/reference/g.test.html
index 39c747867..0d2ac5cbf 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
diff --git a/reference/get_episode.html b/reference/get_episode.html
index d8367b2c2..0dfd39c56 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -153,27 +153,28 @@
 df  <-  example_isolates [ sample ( seq_len ( 2000 ) , size =  100 ) , ]  
  
 get_episode ( df $ date , episode_days =  60 )  # indices  
-#>    [1] 41 37 28  7 11 41 48 47  3  1 32  8  1  1 28 15 28 31 25 27 20 38 33  4 45 
-#>   [26] 23 15  8 13 44 34 16 42 14  6  4 47  4 10 15 41 16 24  2 14 26 21 20 19 35 
-#>   [51] 18 17 11 43 17 15 17  2 22 21 20 10 31  9 30 12 22 18 47 11 30 16  5 46 36 
-#>   [76] 21 20 14 29 18 39 28  7 27 33 10  6 26 22 25 47 40 39 14 14 39  1 34 42 31 
+#>    [1]  4 33  6  2 25  6 21 16 50 24 16  7 22 41 47 35  6  1 20 27 16 25 20  4 38 
+#>   [26] 16 31 43 40 10  8 24  9 19  8 28 14 32 11 39 36 49  5  8 33 17  9 34  4 19 
+#>   [51] 18 29  7 50 45 10 30 13 10 13 27 23 43 26 15 14 43 49 37 39 10 26  4 15 28 
+#>   [76] 48 38 19 50 26 32  3 42 24 28 21 37  7 42 44 41  4  3 46  5  1 49 48 34 12 
 is_new_episode ( df $ date , episode_days =  60 )  # TRUE/FALSE  
-#>    [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE 
-#>   [13] FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE 
-#>   [25]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE 
-#>   [37] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE 
-#>   [49]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE 
-#>   [61] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE 
-#>   [73]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE 
-#>   [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE 
-#>   [97] FALSE FALSE FALSE FALSE 
+#>    [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE 
+#>   [13]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE 
+#>   [25]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE 
+#>   [37]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE 
+#>   [49] FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE 
+#>   [61] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE 
+#>   [73] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE 
+#>   [85] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE 
+#>   [97] FALSE FALSE FALSE  TRUE 
  
 # filter on results from the third 60-day episode only, using base R  
 df [ which ( get_episode ( df $ date , 60 )  ==  3 ) , ]  
-#>  # A tibble: 1 × 46  
+#>  # A tibble: 2 × 46  
 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   
 #>    <date>      <chr>    <dbl>  <chr>   <chr>     <mo>          <sir>  <sir>  <sir>  <sir>  
-#>  1  2002-06-06 24D393     20 F      Clinical B_ESCHR_COLI R     NA    NA    NA    
+#>  1  2002-08-19 A49852     70 M      Clinical B_ESCHR_COLI R     NA    NA    NA    
+#>  2  2002-08-19 A49852     70 M      Clinical B_ESCHR_COLI R     NA    NA    NA    
 #>  # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,  
 #>  #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,  
 #>  #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,  
@@ -210,16 +211,16 @@
 #>  # Groups:   patient, condition [99]  
 #>     patient date       condition new_episode 
 #>     <chr>    <date>      <chr>      <lgl>        
-#>   1  006606  2011-10-30 A         TRUE        
-#>   2  059414  2006-07-21 C         TRUE        
-#>   3  066895  2002-02-27 C         TRUE        
-#>   4  067927  2002-01-16 A         TRUE        
-#>   5  0DBF93  2015-10-12 A         TRUE        
-#>   6  0F9638  2014-09-22 C         TRUE        
-#>   7  179451  2007-09-15 B         TRUE        
-#>   8  183220  2008-11-14 C         TRUE        
-#>   9  1D4C00  2011-04-04 B         TRUE        
-#>  10  218456  2003-09-26 C         TRUE        
+#>   1  001213  2009-08-03 B         TRUE        
+#>   2  036063  2010-01-28 C         TRUE        
+#>   3  04C169  2012-07-18 A         TRUE        
+#>   4  077922  2009-08-18 B         TRUE        
+#>   5  080086  2007-10-26 A         TRUE        
+#>   6  088256  2003-01-25 C         TRUE        
+#>   7  0D7D34  2011-03-19 A         TRUE        
+#>   8  0DBF93  2015-10-12 A         TRUE        
+#>   9  122506  2007-08-11 A         TRUE        
+#>  10  144549  2009-09-01 C         TRUE        
 #>  # ℹ 90 more rows  
  
 if  ( require ( "dplyr" ) )  {  
@@ -233,19 +234,19 @@
     arrange ( patient , ward , date )   
 }  
 #>  # A tibble: 100 × 5  
-#>  # Groups:   ward, patient [94]  
+#>  # Groups:   ward, patient [96]  
 #>     ward     date       patient new_index new_logical 
 #>     <chr>     <date>      <chr>        <int>  <lgl>        
-#>   1  Clinical 2011-10-30 006606          1 TRUE        
-#>   2  Clinical 2006-07-21 059414          1 TRUE        
-#>   3  Clinical 2002-02-27 066895          1 TRUE        
-#>   4  ICU      2002-01-16 067927          1 TRUE        
-#>   5  Clinical 2015-10-12 0DBF93          1 TRUE        
-#>   6  Clinical 2014-09-22 0F9638          1 TRUE        
-#>   7  ICU      2007-09-15 179451          1 TRUE        
-#>   8  Clinical 2008-11-14 183220          1 TRUE        
-#>   9  Clinical 2011-04-04 1D4C00          1 TRUE        
-#>  10  Clinical 2003-09-26 218456          1 TRUE        
+#>   1  Clinical 2009-08-03 001213          1 TRUE        
+#>   2  Clinical 2010-01-28 036063          1 TRUE        
+#>   3  Clinical 2012-07-18 04C169          1 TRUE        
+#>   4  Clinical 2009-08-18 077922          1 TRUE        
+#>   5  Clinical 2007-10-26 080086          1 TRUE        
+#>   6  ICU      2003-01-25 088256          1 TRUE        
+#>   7  ICU      2011-03-19 0D7D34          1 TRUE        
+#>   8  Clinical 2015-10-12 0DBF93          1 TRUE        
+#>   9  Clinical 2007-08-11 122506          1 TRUE        
+#>  10  Clinical 2009-09-01 144549          1 TRUE        
 #>  # ℹ 90 more rows  
  
 if  ( require ( "dplyr" ) )  {  
@@ -261,9 +262,9 @@
 #>  # A tibble: 3 × 5  
 #>    ward       n_patients n_episodes_365 n_episodes_60 n_episodes_30 
 #>    <chr>            <int>           <int>          <int>          <int>  
-#>  1  Clinical           68             13            40            51 
-#>  2  ICU                22              9            17            19 
-#>  3  Outpatient          4              3             4             4 
+#>  1  Clinical           66             14            41            50 
+#>  2  ICU                24             10            17            19 
+#>  3  Outpatient          6              4             6             6 
  
 # grouping on patients and microorganisms leads to the same  
 # results as first_isolate() when using 'episode-based':  
@@ -292,19 +293,19 @@
     select ( group_vars ( . ) , flag_episode )   
 }  
 #>  # A tibble: 100 × 4  
-#>  # Groups:   patient, mo, ward [98]  
+#>  # Groups:   patient, mo, ward [97]  
 #>     patient mo           ward       flag_episode 
 #>     <chr>    <mo>          <chr>       <lgl>         
-#>   1  F76081  B_ESCHR_COLI ICU        TRUE         
-#>   2  F74547  B_STPHY_EPDR Clinical   TRUE         
-#>   3  988763  B_STPHY_AURS Clinical   TRUE         
-#>   4  8DB5B8  B_STPHY_CONS Clinical   TRUE         
-#>   5  FB50D6  B_STRPT_MITS ICU        TRUE         
-#>   6  310665  B_STPHY_CPTS Outpatient TRUE         
-#>   7  3D2C93  B_STPHY_EPDR ICU        TRUE         
-#>   8  D80438  B_CRYNB_STRT Clinical   TRUE         
-#>   9  24D393  B_ESCHR_COLI Clinical   TRUE         
-#>  10  066895  B_KLBSL_PNMN Clinical   TRUE         
+#>   1  D80753  B_STPHY_CONS Outpatient TRUE         
+#>   2  04C169  B_STPHY_CONS Clinical   TRUE         
+#>   3  D63414  B_PROTS_MRBL Clinical   TRUE         
+#>   4  EE2510  B_ESCHR_COLI ICU        TRUE         
+#>   5  F08866  B_ESCHR_COLI Clinical   TRUE         
+#>   6  A59636  B_STPHY_AURS Clinical   TRUE         
+#>   7  080086  B_STRPT_GRPB Clinical   TRUE         
+#>   8  3CF3C4  B_STPHY_CONS Clinical   TRUE         
+#>   9  C80762  B_ESCHR_COLI ICU        TRUE         
+#>  10  534816  F_CANDD_ALBC Clinical   TRUE         
 #>  # ℹ 90 more rows  
 # }  
    
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index 3415adbc9..405c4aa23 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,30 +54,13 @@
 
     
     Usage 
-    
ggplot_pca (  
-  x , 
-  choices =  1 : 2 , 
-  scale =  1 , 
-  pc.biplot =  TRUE , 
-  labels =  NULL , 
-  labels_textsize =  3 , 
-  labels_text_placement =  1.5 , 
-  groups =  NULL , 
-  ellipse =  TRUE , 
-  ellipse_prob =  0.68 , 
-  ellipse_size =  0.5 , 
-  ellipse_alpha =  0.5 , 
-  points_size =  2 , 
-  points_alpha =  0.25 , 
-  arrows =  TRUE , 
-  arrows_colour =  "darkblue" , 
-  arrows_size =  0.5 , 
-  arrows_textsize =  3 , 
-  arrows_textangled =  TRUE , 
-  arrows_alpha =  0.75 , 
-  base_textsize =  10 , 
-  ...  
-) 
+    
ggplot_pca ( x , choices =  1 : 2 , scale =  1 , pc.biplot =  TRUE , 
+  labels =  NULL , labels_textsize =  3 , labels_text_placement =  1.5 , 
+  groups =  NULL , ellipse =  TRUE , ellipse_prob =  0.68 , 
+  ellipse_size =  0.5 , ellipse_alpha =  0.5 , points_size =  2 , 
+  points_alpha =  0.25 , arrows =  TRUE , arrows_colour =  "darkblue" , 
+  arrows_size =  0.5 , arrows_textsize =  3 , arrows_textangled =  TRUE , 
+  arrows_alpha =  0.75 , base_textsize =  10 , ... )   
      
 
     
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index bdf83b241..ee68bbc6e 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -54,42 +54,18 @@
 
     
     Usage 
-    
ggplot_sir (  
-  data , 
-  position =  NULL , 
-  x =  "antibiotic" , 
-  fill =  "interpretation" , 
-  facet =  NULL , 
-  breaks =  seq ( 0 , 1 , 0.1 ) , 
-  limits =  NULL , 
-  translate_ab =  "name" , 
-  combine_SI =  TRUE , 
-  minimum =  30 , 
-  language =  get_AMR_locale ( ) , 
-  nrow =  NULL , 
-  colours =  c ( S =  "#3CAEA3" , SI =  "#3CAEA3" , I =  "#F6D55C" , IR =  "#ED553B" , R =  
-    "#ED553B" ) , 
-  datalabels =  TRUE , 
-  datalabels.size =  2.5 , 
-  datalabels.colour =  "grey15" , 
-  title =  NULL , 
-  subtitle =  NULL , 
-  caption =  NULL , 
-  x.title =  "Antimicrobial" , 
-  y.title =  "Proportion" , 
-  ...  
-)  
+    ggplot_sir ( data , position =  NULL , x =  "antibiotic" , 
+  fill =  "interpretation" , facet =  NULL , breaks =  seq ( 0 , 1 , 0.1 ) , 
+  limits =  NULL , translate_ab =  "name" , combine_SI =  TRUE , 
+  minimum =  30 , language =  get_AMR_locale ( ) , nrow =  NULL , colours =  c ( S 
+  =  "#3CAEA3" , SI =  "#3CAEA3" , I =  "#F6D55C" , IR =  "#ED553B" , R =  "#ED553B" ) , 
+  datalabels =  TRUE , datalabels.size =  2.5 , datalabels.colour =  "grey15" , 
+  title =  NULL , subtitle =  NULL , caption =  NULL , 
+  x.title =  "Antimicrobial" , y.title =  "Proportion" , ... )  
  
-geom_sir (  
-  position =  NULL , 
-  x =  c ( "antibiotic" , "interpretation" ) , 
-  fill =  "interpretation" , 
-  translate_ab =  "name" , 
-  minimum =  30 , 
-  language =  get_AMR_locale ( ) , 
-  combine_SI =  TRUE , 
-  ...  
-)  
+geom_sir ( position =  NULL , x =  c ( "antibiotic" , "interpretation" ) , 
+  fill =  "interpretation" , translate_ab =  "name" , minimum =  30 , 
+  language =  get_AMR_locale ( ) , combine_SI =  TRUE , ... )   
      
 
     
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index 7aafe147d..4cbf3a68d 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -54,12 +54,8 @@
 
     
     Usage 
-    
guess_ab_col (  
-  x =  NULL , 
-  search_string =  NULL , 
-  verbose =  FALSE , 
-  only_sir_columns =  FALSE  
-) 
+    
guess_ab_col ( x =  NULL , search_string =  NULL , verbose =  FALSE , 
+  only_sir_columns =  FALSE )   
      
 
     
diff --git a/reference/index.html b/reference/index.html
index a586f0bde..af02fa973 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -183,7 +183,7 @@
        
       Analysing data 
 
-      
Use these function for the analysis part. You can use susceptibility()  or resistance()  on any antibiotic column. With antibiogram() , you can generate a traditional, combined, syndromic, or weighted-incidence syndromic combination antibiogram(WISCA). This function also comes with support for R Markdown and Quarto. Be sure to first select the isolates that are appropiate for analysis, by using first_isolate()  or is_new_episode() . You can also filter your data on certain resistance in certain antibiotic classes (carbapenems() , aminoglycosides() ), or determine multi-drug resistant microorganisms (MDRO, mdro() ).
+      
Use these function for the analysis part. You can use susceptibility()  or resistance()  on any antibiotic column. With antibiogram() , you can generate a traditional, combined, syndromic, or weighted-incidence syndromic combination antibiogram (WISCA). This function also comes with support for R Markdown and Quarto. Be sure to first select the isolates that are appropiate for analysis, by using first_isolate()  or is_new_episode() . You can also filter your data on certain resistance in certain antibiotic classes (carbapenems() , aminoglycosides() ), or determine multi-drug resistant microorganisms (MDRO, mdro() ).
 
 
 
      
+      
Other: deprecated functions 
+
+      
These functions are deprecated, meaning that they will still work but show a warning that they will be removed in a future version.
+
+
+    
 
     
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index d21dd0960..9f52f483f 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index 0c8b80ec6..c8d385637 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/join.html b/reference/join.html
index 89e59f356..8977f1178 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index e4961f149..6df7bc017 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,31 +54,19 @@
 
     
     Usage 
-    
key_antimicrobials (  
-  x =  NULL , 
-  col_mo =  NULL , 
-  universal =  c ( "ampicillin" , "amoxicillin/clavulanic acid" , "cefuroxime" , 
-    "piperacillin/tazobactam" , "ciprofloxacin" , "trimethoprim/sulfamethoxazole" ) , 
-  gram_negative =  c ( "gentamicin" , "tobramycin" , "colistin" , "cefotaxime" , "ceftazidime" , 
-    "meropenem" ) , 
-  gram_positive =  c ( "vancomycin" , "teicoplanin" , "tetracycline" , "erythromycin" , 
-    "oxacillin" , "rifampin" ) , 
-  antifungal =  c ( "anidulafungin" , "caspofungin" , "fluconazole" , "miconazole" , "nystatin" , 
-    "voriconazole" ) , 
-  only_sir_columns =  FALSE , 
-  ...  
-)  
+    key_antimicrobials ( x =  NULL , col_mo =  NULL , universal =  c ( "ampicillin" , 
+  "amoxicillin/clavulanic acid" , "cefuroxime" , "piperacillin/tazobactam" , 
+  "ciprofloxacin" , "trimethoprim/sulfamethoxazole" ) , 
+  gram_negative =  c ( "gentamicin" , "tobramycin" , "colistin" , "cefotaxime" , 
+  "ceftazidime" , "meropenem" ) , gram_positive =  c ( "vancomycin" , "teicoplanin" , 
+  "tetracycline" , "erythromycin" , "oxacillin" , "rifampin" ) , 
+  antifungal =  c ( "anidulafungin" , "caspofungin" , "fluconazole" , "miconazole" , 
+  "nystatin" , "voriconazole" ) , only_sir_columns =  FALSE , ... )  
  
 all_antimicrobials ( x =  NULL , only_sir_columns =  FALSE , ... )  
  
-antimicrobials_equal (  
-  y , 
-  z , 
-  type =  c ( "points" , "keyantimicrobials" ) , 
-  ignore_I =  TRUE , 
-  points_threshold =  2 , 
-  ...  
-)  
+antimicrobials_equal ( y , z , type =  c ( "points" , "keyantimicrobials" ) , 
+  ignore_I =  TRUE , points_threshold =  2 , ... )   
      
 
     
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 4506bb495..6c5179d47 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -90,9 +90,9 @@
     
     Examples 
     kurtosis ( rnorm ( 10000 ) )  
-#>  [1] 3.03269 
+#>  [1] 2.883046 
 kurtosis ( rnorm ( 10000 ) , excess =  TRUE )  
-#>  [1] 0.07248166 
+#>  [1] -0.05230069 
  
      
   On this page 
diff --git a/reference/like.html b/reference/like.html
index 6edbf0372..64f79d9c5 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/mdro.html b/reference/mdro.html
index 69e80f227..6657fd7cf 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,23 +54,10 @@
 
     
     Usage 
-    
mdro (  
-  x =  NULL , 
-  guideline =  "CMI2012" , 
-  col_mo =  NULL , 
-  esbl =  NA , 
-  carbapenemase =  NA , 
-  mecA =  NA , 
-  mecC =  NA , 
-  vanA =  NA , 
-  vanB =  NA , 
-  info =  interactive ( ) , 
-  pct_required_classes =  0.5 , 
-  combine_SI =  TRUE , 
-  verbose =  FALSE , 
-  only_sir_columns =  FALSE , 
-  ...  
-)  
+    mdro ( x =  NULL , guideline =  "CMI2012" , col_mo =  NULL , esbl =  NA , 
+  carbapenemase =  NA , mecA =  NA , mecC =  NA , vanA =  NA , vanB =  NA , 
+  info =  interactive ( ) , pct_required_classes =  0.5 , combine_SI =  TRUE , 
+  verbose =  FALSE , only_sir_columns =  FALSE , ... )  
  
 custom_mdro_guideline ( ... , as_factor =  TRUE )  
  
@@ -82,12 +69,8 @@
  
 mdr_cmi2012 ( x =  NULL , only_sir_columns =  FALSE , verbose =  FALSE , ... )  
  
-eucast_exceptional_phenotypes (  
-  x =  NULL , 
-  only_sir_columns =  FALSE , 
-  verbose =  FALSE , 
-  ...  
-)  
+eucast_exceptional_phenotypes ( x =  NULL , only_sir_columns =  FALSE , 
+  verbose =  FALSE , ... )   
      
 
     
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index e299aa602..aad0f30e8 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -109,30 +109,31 @@
     sir  <-  random_sir ( 10 )  
 sir  
 #>  Class 'sir' 
-#>   [1] I I S I I S S S R R 
+#>   [1] S I S I I I R R I R 
 mean_amr_distance ( sir )  
-#>   [1] -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 
-#>   [7] -0.4743416 -0.4743416  1.8973666  1.8973666 
+#>   [1] -0.621059 -0.621059 -0.621059 -0.621059 -0.621059 -0.621059  1.449138 
+#>   [8]  1.449138 -0.621059  1.449138 
  
 mic  <-  random_mic ( 10 )  
 mic  
 #>  Class 'mic' 
-#>   [1] 0.001 256   0.25  0.5   32    0.002 8     0.125 0.002 0.125 
+#>   [1] 64      16      8       64      256     0.5     128     128     2       
+#>  [10] <=0.002 
 mean_amr_distance ( mic )  
-#>   [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 
-#>   [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638 
+#>   [1]  0.54295251  0.15465479 -0.03949407  0.54295251  0.93125022 -0.81608950 
+#>   [7]  0.73710137  0.73710137 -0.42779178 -2.36263742 
 # equal to the Z-score of their log2:  
 ( log2 ( mic )  -  mean ( log2 ( mic ) ) )  /  sd ( log2 ( mic ) )  
-#>   [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 
-#>   [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638 
+#>   [1]  0.54295251  0.15465479 -0.03949407  0.54295251  0.93125022 -0.81608950 
+#>   [7]  0.73710137  0.73710137 -0.42779178 -2.36263742 
  
 disk  <-  random_disk ( 10 )  
 disk  
 #>  Class 'disk' 
-#>   [1] 41 29 40 12 16  7 45 46 22  9 
+#>   [1] 28 27 30 48  9 45 12 26 42 25 
 mean_amr_distance ( disk )  
-#>   [1]  0.9256143  0.1488750  0.8608860 -0.9515056 -0.6925925 -1.2751469 
-#>   [7]  1.1845274  1.2492556 -0.3042229 -1.1456904 
+#>   [1] -0.09277857 -0.17009405  0.06185238  1.45353101 -1.56177268  1.22158457 
+#>   [7] -1.32982624 -0.24740953  0.98963813 -0.32472501 
  
 y  <-  data.frame (  
   id =  LETTERS [ 1 : 10 ] ,  
@@ -142,22 +143,22 @@
   tobr =  random_mic ( 10 , ab =  "tobr" , mo =  "Escherichia coli" )   
 )  
 y  
-#>     id amox cipr gent tobr 
-#>  1   A    R   29  <=1    4 
-#>  2   B    I   30    4  <=2 
-#>  3   C    I   26   16   16 
-#>  4   D    I   18    2    8 
-#>  5   E    S   29    4    4 
-#>  6   F    R   31   16  <=2 
-#>  7   G    S   31  <=1   16 
-#>  8   H    R   21   16   16 
-#>  9   I    I   31   16   16 
-#>  10  J    S   21  <=1    4 
+#>     id amox cipr gent   tobr 
+#>  1   A    I   28    2    0.5 
+#>  2   B    R   29    1      4 
+#>  3   C    S   23    4      4 
+#>  4   D    I   27    4      2 
+#>  5   E    S   19    1      4 
+#>  6   F    S   22  0.5 <=0.25 
+#>  7   G    I   26    1      4 
+#>  8   H    R   17    2    0.5 
+#>  9   I    S   19    1      1 
+#>  10  J    I   30    2      2 
 mean_amr_distance ( y )  
 #>  ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", 
 #>    and "tobr" 
-#>   [1]  0.04629994 -0.34117383  0.33391321 -0.69063550 -0.19222473  0.50618460 
-#>   [7]  0.02978803  0.59753857  0.58783703 -0.87752733 
+#>   [1] -0.06537260  0.82078512  0.42232605  0.47166071 -0.31061057 -1.07205573 
+#>   [7]  0.06631747 -0.06476102 -0.64271615  0.37442671 
 y $ amr_distance  <-  mean_amr_distance ( y , where ( is.mic ) )  
 #>  Error in .subset(x, j):  invalid subscript type 'list' 
 y [ order ( y $ amr_distance ) , ]  
@@ -173,17 +174,17 @@
 }  
 #>  ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", 
 #>    and "tobr" 
-#>     id amox cipr gent tobr amr_distance check_id_C 
-#>  1   C    I   26   16   16   0.33391321  0.0000000 
-#>  2   F    R   31   16  <=2   0.50618460  0.1722714 
-#>  3   I    I   31   16   16   0.58783703  0.2539238 
-#>  4   H    R   21   16   16   0.59753857  0.2636254 
-#>  5   A    R   29  <=1    4   0.04629994  0.2876133 
-#>  6   G    S   31  <=1   16   0.02978803  0.3041252 
-#>  7   E    S   29    4    4  -0.19222473  0.5261379 
-#>  8   B    I   30    4  <=2  -0.34117383  0.6750870 
-#>  9   D    I   18    2    8  -0.69063550  1.0245487 
-#>  10  J    S   21  <=1    4  -0.87752733  1.2114405 
+#>     id amox cipr gent   tobr amr_distance check_id_C 
+#>  1   C    S   23    4      4   0.42232605 0.00000000 
+#>  2   J    I   30    2      2   0.37442671 0.04789934 
+#>  3   D    I   27    4      2   0.47166071 0.04933466 
+#>  4   G    I   26    1      4   0.06631747 0.35600858 
+#>  5   B    R   29    1      4   0.82078512 0.39845906 
+#>  6   H    R   17    2    0.5  -0.06476102 0.48708707 
+#>  7   A    I   28    2    0.5  -0.06537260 0.48769865 
+#>  8   E    S   19    1      4  -0.31061057 0.73293662 
+#>  9   I    S   19    1      1  -0.64271615 1.06504220 
+#>  10  F    S   22  0.5 <=0.25  -1.07205573 1.49438178 
 if  ( require ( "dplyr" ) )  {  
   # support for groups   
   example_isolates  %>%   
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index bfd97e6eb..e55305ac0 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 3197545c2..c8682df18 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index bd5b26622..b2d670157 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.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index e161a508b..de21a8fcb 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/mo_property.html b/reference/mo_property.html
index 28be41dc8..2f7ff1052 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,262 +54,115 @@
 
     
     Usage 
-    
mo_name (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+    mo_name ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_fullname (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_fullname ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_shortname (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_shortname ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_subspecies (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_subspecies ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_species (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_species ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_genus (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_genus ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_family (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_family ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_order (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_order ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_class (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_class ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_phylum (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_phylum ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_kingdom (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_kingdom ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_domain (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_domain ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_type (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_type ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_status (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_status ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_pathogenicity (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_pathogenicity ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_gramstain (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_gramstain ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_is_gram_negative (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_is_gram_negative ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_is_gram_positive (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_is_gram_positive ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_is_yeast (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_is_yeast ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_is_intrinsic_resistant (  
-  x , 
-  ab , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_is_intrinsic_resistant ( x , ab , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_oxygen_tolerance (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_oxygen_tolerance ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_is_anaerobic (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_is_anaerobic ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_snomed (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_snomed ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_ref (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_ref ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_authors (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_authors ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_year (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_year ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_lpsn (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_lpsn ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_mycobank (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_mycobank ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_gbif (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_gbif ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_rank (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_rank ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_taxonomy (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_taxonomy ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_synonyms (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_synonyms ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
 mo_current ( x , language =  get_AMR_locale ( ) , ... )  
  
-mo_group_members (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_group_members ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_info (  
-  x , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_info ( x , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_url (  
-  x , 
-  open =  FALSE , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_url ( x , open =  FALSE , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )  
  
-mo_property (  
-  x , 
-  property =  "fullname" , 
-  language =  get_AMR_locale ( ) , 
-  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , 
-  ...  
-)  
+mo_property ( x , property =  "fullname" , language =  get_AMR_locale ( ) , 
+  keep_synonyms =  getOption ( "AMR_keep_synonyms" , FALSE ) , ... )   
      
 
     
diff --git a/reference/mo_source.html b/reference/mo_source.html
index b0de917e6..1c1593d52 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.9125 
+    
2.1.1.9133 
 
 
     
@@ -57,10 +57,8 @@ This is the fastest way to have your organisation (or analysis) specific codes p
 
     
     Usage 
-    
set_mo_source (  
-  path , 
-  destination =  getOption ( "AMR_mo_source" , "~/mo_source.rds" )  
-)  
+    set_mo_source ( path , destination =  getOption ( "AMR_mo_source" , 
+  "~/mo_source.rds" ) )  
  
 get_mo_source ( destination =  getOption ( "AMR_mo_source" , "~/mo_source.rds" ) )  
     
diff --git a/reference/pca.html b/reference/pca.html
index ae0da65dc..fed03d1e8 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -54,15 +54,8 @@
 
     
     Usage 
-    
pca (  
-  x , 
-  ... , 
-  retx =  TRUE , 
-  center =  TRUE , 
-  scale. =  TRUE , 
-  tol =  NULL , 
-  rank. =  NULL  
-) 
+    
pca ( x , ... , retx =  TRUE , center =  TRUE , scale. =  TRUE , tol =  NULL , 
+  rank. =  NULL )   
      
 
     
diff --git a/reference/plot-1.png b/reference/plot-1.png
index 3970c472e..0fc008355 100644
Binary files a/reference/plot-1.png and b/reference/plot-1.png differ
diff --git a/reference/plot-12.png b/reference/plot-12.png
index c102cdd8d..ef8dcbfe3 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 20b3931d5..356589060 100644
Binary files a/reference/plot-13.png and b/reference/plot-13.png differ
diff --git a/reference/plot-14.png b/reference/plot-14.png
index 9236cc4ca..f877651a9 100644
Binary files a/reference/plot-14.png and b/reference/plot-14.png differ
diff --git a/reference/plot-2.png b/reference/plot-2.png
index ba9323f27..1f33d75fd 100644
Binary files a/reference/plot-2.png and b/reference/plot-2.png differ
diff --git a/reference/plot-3.png b/reference/plot-3.png
index 6ddb0ca52..f53b79bf6 100644
Binary files a/reference/plot-3.png and b/reference/plot-3.png differ
diff --git a/reference/plot-4.png b/reference/plot-4.png
index 461e9186d..eb6c8a8e4 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 72a67d2f8..8f5df0dc0 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 24e5b3026..6cf703a3a 100644
Binary files a/reference/plot-6.png and b/reference/plot-6.png differ
diff --git a/reference/plot.html b/reference/plot.html
index 8c7cf15b6..514094768 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.9125 
+    
2.1.1.9133 
 
 
     
@@ -57,137 +57,92 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
 
     
     Usage 
-    
scale_x_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , ... )  
+    scale_x_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , 
+  ... )  
  
-scale_y_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , ... )  
+scale_y_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , 
+  ... )  
  
-scale_colour_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , ... )  
+scale_colour_mic ( keep_operators =  "edges" , mic_range =  NULL , 
+  drop =  FALSE , ... )  
  
-scale_fill_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , ... )  
+scale_fill_mic ( keep_operators =  "edges" , mic_range =  NULL , drop =  FALSE , 
+  ... )  
  
 # S3 method for class 'mic'  
-plot (  
-  x , 
-  mo =  NULL , 
-  ab =  NULL , 
-  guideline =  "EUCAST" , 
-  main =  deparse ( substitute ( x ) ) , 
-  ylab =  translate_AMR ( "Frequency" , language =  language ) , 
-  xlab =  translate_AMR ( "Minimum Inhibitory Concentration (mg/L)" , language =  language ) , 
-  colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
-  language =  get_AMR_locale ( ) , 
-  expand =  TRUE , 
+plot ( x , mo =  NULL , ab =  NULL , guideline =  "EUCAST" , 
+  main =  deparse ( substitute ( x ) ) , ylab =  translate_AMR ( "Frequency" , language 
+  =  language ) , 
+  xlab =  translate_AMR ( "Minimum Inhibitory Concentration (mg/L)" , language =  
+  language ) , colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
+  language =  get_AMR_locale ( ) , expand =  TRUE , 
   include_PKPD =  getOption ( "AMR_include_PKPD" , TRUE ) , 
-  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , 
-  ...  
-)  
+  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , ... )  
  
 # S3 method for class 'mic'  
-autoplot (  
-  object , 
-  mo =  NULL , 
-  ab =  NULL , 
-  guideline =  "EUCAST" , 
-  title =  deparse ( substitute ( object ) ) , 
+autoplot ( object , mo =  NULL , ab =  NULL , 
+  guideline =  "EUCAST" , title =  deparse ( substitute ( object ) ) , 
   ylab =  translate_AMR ( "Frequency" , language =  language ) , 
-  xlab =  translate_AMR ( "Minimum Inhibitory Concentration (mg/L)" , language =  language ) , 
-  colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
-  language =  get_AMR_locale ( ) , 
-  expand =  TRUE , 
+  xlab =  translate_AMR ( "Minimum Inhibitory Concentration (mg/L)" , language =  
+  language ) , colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
+  language =  get_AMR_locale ( ) , expand =  TRUE , 
   include_PKPD =  getOption ( "AMR_include_PKPD" , TRUE ) , 
-  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , 
-  ...  
-)  
+  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , ... )  
  
 # S3 method for class 'mic'  
 fortify ( object , ... )  
  
 # S3 method for class 'disk'  
-plot (  
-  x , 
-  main =  deparse ( substitute ( x ) ) , 
+plot ( x , main =  deparse ( substitute ( x ) ) , 
   ylab =  translate_AMR ( "Frequency" , language =  language ) , 
   xlab =  translate_AMR ( "Disk diffusion diameter (mm)" , language =  language ) , 
-  mo =  NULL , 
-  ab =  NULL , 
-  guideline =  "EUCAST" , 
+  mo =  NULL , ab =  NULL , guideline =  "EUCAST" , 
   colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
-  language =  get_AMR_locale ( ) , 
-  expand =  TRUE , 
+  language =  get_AMR_locale ( ) , expand =  TRUE , 
   include_PKPD =  getOption ( "AMR_include_PKPD" , TRUE ) , 
-  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , 
-  ...  
-)  
+  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , ... )  
  
 # S3 method for class 'disk'  
-autoplot (  
-  object , 
-  mo =  NULL , 
-  ab =  NULL , 
-  title =  deparse ( substitute ( object ) ) , 
-  ylab =  translate_AMR ( "Frequency" , language =  language ) , 
-  xlab =  translate_AMR ( "Disk diffusion diameter (mm)" , language =  language ) , 
-  guideline =  "EUCAST" , 
-  colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
-  language =  get_AMR_locale ( ) , 
-  expand =  TRUE , 
+autoplot ( object , mo =  NULL , ab =  NULL , 
+  title =  deparse ( substitute ( object ) ) , ylab =  translate_AMR ( "Frequency" , 
+  language =  language ) , xlab =  translate_AMR ( "Disk diffusion diameter (mm)" , 
+  language =  language ) , guideline =  "EUCAST" , colours_SIR =  c ( "#3CAEA3" , 
+  "#F6D55C" , "#ED553B" ) , language =  get_AMR_locale ( ) , expand =  TRUE , 
   include_PKPD =  getOption ( "AMR_include_PKPD" , TRUE ) , 
-  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , 
-  ...  
-)  
+  breakpoint_type =  getOption ( "AMR_breakpoint_type" , "human" ) , ... )  
  
 # S3 method for class 'disk'  
 fortify ( object , ... )  
  
 # S3 method for class 'sir'  
-plot (  
-  x , 
-  ylab =  translate_AMR ( "Percentage" , language =  language ) , 
-  xlab =  translate_AMR ( "Antimicrobial Interpretation" , language =  language ) , 
-  main =  deparse ( substitute ( x ) ) , 
-  language =  get_AMR_locale ( ) , 
-  ...  
-)  
+plot ( x , ylab =  translate_AMR ( "Percentage" , language =  
+  language ) , xlab =  translate_AMR ( "Antimicrobial Interpretation" , language =  
+  language ) , main =  deparse ( substitute ( x ) ) , language =  get_AMR_locale ( ) , 
+  ... )  
  
 # S3 method for class 'sir'  
-autoplot (  
-  object , 
-  title =  deparse ( substitute ( object ) ) , 
+autoplot ( object , title =  deparse ( substitute ( object ) ) , 
   xlab =  translate_AMR ( "Antimicrobial Interpretation" , language =  language ) , 
   ylab =  translate_AMR ( "Frequency" , language =  language ) , 
   colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" ) , 
-  language =  get_AMR_locale ( ) , 
-  ...  
-)  
+  language =  get_AMR_locale ( ) , ... )  
  
 # S3 method for class 'sir'  
 fortify ( object , ... )  
  
 facet_sir ( facet =  c ( "interpretation" , "antibiotic" ) , nrow =  NULL )  
  
-scale_y_percent (  
-  breaks =  function ( x )  seq ( 0 , max ( x , na.rm =  TRUE ) , 0.1 ) , 
-  limits =  c ( 0 , NA )  
-)  
+scale_y_percent ( breaks =  function ( x )  seq ( 0 , max ( x , na.rm =  TRUE ) , 0.1 ) , 
+  limits =  c ( 0 , NA ) )  
  
-scale_sir_colours (  
-  ... , 
-  aesthetics =  "fill" , 
-  colours_SIR =  c ( "#3CAEA3" , "#F6D55C" , "#ED553B" )  
-)  
+scale_sir_colours ( ... , aesthetics =  "fill" , colours_SIR =  c ( "#3CAEA3" , 
+  "#F6D55C" , "#ED553B" ) )  
  
 theme_sir ( )  
  
-labels_sir_count (  
-  position =  NULL , 
-  x =  "antibiotic" , 
-  translate_ab =  "name" , 
-  minimum =  30 , 
-  language =  get_AMR_locale ( ) , 
-  combine_SI =  TRUE , 
-  datalabels.size =  3 , 
-  datalabels.colour =  "grey15"  
-)  
+labels_sir_count ( position =  NULL , x =  "antibiotic" , 
+  translate_ab =  "name" , minimum =  30 , language =  get_AMR_locale ( ) , 
+  combine_SI =  TRUE , datalabels.size =  3 , datalabels.colour =  "grey15" )   
      
 
     
diff --git a/reference/proportion.html b/reference/proportion.html
index a90397537..cfa76fc6b 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.9125 
+    
2.1.1.9133 
 
 
     
@@ -57,50 +57,38 @@ resistance() should be used to calculate resistance, susceptibility() should be
 
     
     Usage 
-    
resistance ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+    resistance ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-susceptibility ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+susceptibility ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-sir_confidence_interval (  
-  ... , 
-  ab_result =  "R" , 
-  minimum =  30 , 
-  as_percent =  FALSE , 
-  only_all_tested =  FALSE , 
-  confidence_level =  0.95 , 
-  side =  "both" , 
-  collapse =  FALSE  
-)  
+sir_confidence_interval ( ... , ab_result =  "R" , minimum =  30 , 
+  as_percent =  FALSE , only_all_tested =  FALSE , confidence_level =  0.95 , 
+  side =  "both" , collapse =  FALSE )  
  
-proportion_R ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+proportion_R ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-proportion_IR ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+proportion_IR ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-proportion_I ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+proportion_I ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-proportion_SI ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+proportion_SI ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-proportion_S ( ... , minimum =  30 , as_percent =  FALSE , only_all_tested =  FALSE )  
+proportion_S ( ... , minimum =  30 , as_percent =  FALSE , 
+  only_all_tested =  FALSE )  
  
-proportion_df (  
-  data , 
-  translate_ab =  "name" , 
-  language =  get_AMR_locale ( ) , 
-  minimum =  30 , 
-  as_percent =  FALSE , 
-  combine_SI =  TRUE , 
-  confidence_level =  0.95  
-)  
+proportion_df ( data , translate_ab =  "name" , language =  get_AMR_locale ( ) , 
+  minimum =  30 , as_percent =  FALSE , combine_SI =  TRUE , 
+  confidence_level =  0.95 )  
  
-sir_df (  
-  data , 
-  translate_ab =  "name" , 
-  language =  get_AMR_locale ( ) , 
-  minimum =  30 , 
-  as_percent =  FALSE , 
-  combine_SI =  TRUE , 
-  confidence_level =  0.95  
-)  
+sir_df ( data , translate_ab =  "name" , language =  get_AMR_locale ( ) , 
+  minimum =  30 , as_percent =  FALSE , combine_SI =  TRUE , 
+  confidence_level =  0.95 )   
      
 
     
diff --git a/reference/random.html b/reference/random.html
index 02c305653..adc0991b2 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
 
     
AMR (for R) 
 
-    
2.1.1.9125 
+    
2.1.1.9133 
 
 
     
@@ -99,43 +99,43 @@
     Examples 
     random_mic ( 25 )  
 #>  Class 'mic' 
-#>   [1] 0.025   8       0.002   0.005   0.25    >=256   0.01    0.002   64      
-#>  [10] 0.5     4       32      0.002   16      >=256   0.01    0.002   0.0625  
-#>  [19] 0.002   64      8       8       2       <=0.001 0.125   
+#>   [1] 1      16     4      0.125  4      0.005  0.001  0.01   >=128  32     
+#>  [11] 16     0.001  64     64     0.125  0.001  64     0.0625 0.002  0.005  
+#>  [21] 64     2      0.25   0.01   1      
 random_disk ( 25 )  
 #>  Class 'disk' 
-#>   [1] 43  7 48 40 19 50 50 20 44 14 16 33 31 17 30  6 38  7  6 12 16 11 43 43 45 
+#>   [1] 28 21 50  8 29 44 46 42 24  6 41 19 39 48 19 18 49  7 15 36 50 50 48  8 35 
 random_sir ( 25 )  
 #>  Class 'sir' 
-#>   [1] R S R R S S R I S R S S R I I R S I R R R R I R S 
+#>   [1] I I I I R S I I R I R S I R I I R R I S S I I S R 
  
 # \donttest{  
 # make the random generation more realistic by setting a bug and/or drug:  
 random_mic ( 25 , "Klebsiella pneumoniae" )  # range 0.0625-64  
 #>  Class 'mic' 
-#>   [1] 0.025  0.25   16     8      0.001  4      16     0.025  0.25   8      
-#>  [11] 0.5    0.005  0.0625 2      0.125  0.002  1      16     16     0.005  
-#>  [21] 0.001  >=32   0.002  0.0625 0.125  
+#>   [1] 0.0625 16     0.025  4      32     0.025  0.002  0.0625 2      0.25   
+#>  [11] 0.0625 0.125  0.001  16     0.001  1      0.25   0.5    64     0.005  
+#>  [21] 4      4      0.125  0.002  0.5    
 random_mic ( 25 , "Klebsiella pneumoniae" , "meropenem" )  # range 0.0625-16  
 #>  Class 'mic' 
-#>   [1] 4    8    2    8    8    16   8    8    1    0.5  1    >=32 2    4    1    
-#>  [16] >=32 4    2    4    4    2    16   4    16   2    
+#>   [1] >=16 0.5  8    8    4    >=16 1    1    4    1    8    4    >=16 4    0.5  
+#>  [16] 1    >=16 4    2    2    4    2    8    0.5  1    
 random_mic ( 25 , "Streptococcus pneumoniae" , "meropenem" )  # range 0.0625-4  
 #>  Class 'mic' 
-#>   [1] <=0.0625 <=0.0625 <=0.0625 0.5      0.125    0.25     0.5      2        
-#>   [9] 0.125    0.125    0.5      4        <=0.0625 2        0.25     4        
-#>  [17] 2        0.25     1        2        2        <=0.0625 2        <=0.0625 
-#>  [25] 0.5      
+#>   [1] >=8      4        2        <=0.0625 0.25     1        1        0.25     
+#>   [9] <=0.0625 0.25     0.5      1        >=8      1        2        <=0.0625 
+#>  [17] >=8      <=0.0625 1        1        1        4        0.125    0.125    
+#>  [25] 2        
  
 random_disk ( 25 , "Klebsiella pneumoniae" )  # range 8-50  
 #>  Class 'disk' 
-#>   [1] 30 43 22 49 40  8 14 36 49 23 12  9 17 25 43 46 30 49 34 22 50 24 39 38 46 
+#>   [1] 15 46 20 39 24 36 50 42 15 12 11 17 40 16 46 44 48 50 24 50 29 14 39 43 14 
 random_disk ( 25 , "Klebsiella pneumoniae" , "ampicillin" )  # range 11-17  
 #>  Class 'disk' 
-#>   [1] 17 15 16 14 17 14 12 13 13 17 17 12 14 16 15 14 16 14 16 13 11 16 17 13 13 
+#>   [1] 16 11 11 13 11 16 17 16 11 11 14 11 11 14 16 14 16 12 12 13 14 13 17 12 11 
 random_disk ( 25 , "Streptococcus pneumoniae" , "ampicillin" )  # range 12-27  
 #>  Class 'disk' 
-#>   [1] 25 22 21 23 19 20 21 25 20 19 21 19 27 22 26 25 27 21 17 26 18 23 23 26 27 
+#>   [1] 25 16 23 19 25 20 24 17 27 16 18 17 18 20 19 24 20 23 23 20 19 25 23 17 16 
 # }  
  
       
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index b39ae2a2c..5787569b9 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
@@ -54,53 +54,24 @@
 
     
     Usage 
-    
resistance_predict (  
-  x , 
-  col_ab , 
-  col_date =  NULL , 
-  year_min =  NULL , 
-  year_max =  NULL , 
-  year_every =  1 , 
-  minimum =  30 , 
-  model =  NULL , 
-  I_as_S =  TRUE , 
-  preserve_measurements =  TRUE , 
-  info =  interactive ( ) , 
-  ...  
-)  
+    resistance_predict ( x , col_ab , col_date =  NULL , year_min =  NULL , 
+  year_max =  NULL , year_every =  1 , minimum =  30 , model =  NULL , 
+  I_as_S =  TRUE , preserve_measurements =  TRUE , info =  interactive ( ) , ... )  
  
-sir_predict (  
-  x , 
-  col_ab , 
-  col_date =  NULL , 
-  year_min =  NULL , 
-  year_max =  NULL , 
-  year_every =  1 , 
-  minimum =  30 , 
-  model =  NULL , 
-  I_as_S =  TRUE , 
-  preserve_measurements =  TRUE , 
-  info =  interactive ( ) , 
-  ...  
-)  
+sir_predict ( x , col_ab , col_date =  NULL , year_min =  NULL , year_max =  NULL , 
+  year_every =  1 , minimum =  30 , model =  NULL , I_as_S =  TRUE , 
+  preserve_measurements =  TRUE , info =  interactive ( ) , ... )  
  
 # S3 method for class 'resistance_predict'  
-plot ( x , main =  paste ( "Resistance Prediction of" , x_name ) , ... )  
+plot ( x , main =  paste ( "Resistance Prediction of" , 
+  x_name ) , ... )  
  
-ggplot_sir_predict (  
-  x , 
-  main =  paste ( "Resistance Prediction of" , x_name ) , 
-  ribbon =  TRUE , 
-  ...  
-)  
+ggplot_sir_predict ( x , main =  paste ( "Resistance Prediction of" , x_name ) , 
+  ribbon =  TRUE , ... )  
  
 # S3 method for class 'resistance_predict'  
-autoplot (  
-  object , 
-  main =  paste ( "Resistance Prediction of" , x_name ) , 
-  ribbon =  TRUE , 
-  ...  
-)  
+autoplot ( object , 
+  main =  paste ( "Resistance Prediction of" , x_name ) , ribbon =  TRUE , ... )   
      
 
     
diff --git a/reference/skewness.html b/reference/skewness.html
index 77b671590..79f5ef7a0 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.9125 
+    
2.1.1.9133 
 
 
     
@@ -89,7 +89,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
     
     Examples 
     skewness ( runif ( 1000 ) )  
-#>  [1] -0.07394966 
+#>  [1] -0.02093725 
  
      
   On this page 
diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html
new file mode 100644
index 000000000..40b1b7b6e
--- /dev/null
+++ b/reference/top_n_microorganisms.html
@@ -0,0 +1,192 @@
+
+Filter Top n Microorganisms — top_n_microorganisms • AMR (for R)  
+    Skip to contents 
+
+
+    
+ 
+
+  
+
+    
+    
This function filters a data set to include only the top n  microorganisms based on a specified property, such as taxonomic family or genus. For example, it can filter a data set to the top 3 species, or to any species in the top 5 genera, or to the top 3 species in each of the top 5 genera.
+    
 
+
+    
+    
Usage 
+    
top_n_microorganisms ( x , n , property =  "fullname" , n_for_each =  NULL , 
+  col_mo =  NULL , ... )  
+    
 
+
+    
+    
Arguments 
+
+
+
x 
+a data frame containing microbial data
 
+
+
+n 
+an integer specifying the maximum number of unique values of the property to include in the output
 
+
+
+property 
+a character string indicating the microorganism property to use for filtering. Must be one of the column names of the 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", or "snomed". If NULL, the raw values from col_mo will be used without transformation.
 
+
+
+n_for_each 
+an optional integer specifying the maximum number of rows to retain for each value of the selected property. If NULL, all rows within the top n  groups will be included.
 
+
+
+col_mo 
+A character string indicating the column in x that contains microorganism names or codes. Defaults to the first column of class mo . Values will be coerced using as.mo() .
 
+
+
+... 
+Additional arguments passed on to mo_property()  when property is not NULL.
 
+
+ 
+    
+    
Details 
+    
This function is useful for preprocessing data before creating antibiograms  or other analyses that require focused subsets of microbial data. For example, it can filter a data set to only include isolates from the top 10 species.
+    
 
+    
+
+    
+    
Examples 
+    
# filter to the top 3 species:  
+top_n_microorganisms ( example_isolates , 
+                     n =  3 )   
+#>  # A tibble: 1,015 × 46  
+#>     date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   
+#>     <date>      <chr>    <dbl>  <chr>   <chr>     <mo>          <sir>  <sir>  <sir>  <sir>  
+#>   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-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     
+#>   4  2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     
+#>   5  2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    
+#>   6  2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    
+#>   7  2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    
+#>   8  2002-02-14 067927     45 F      ICU      B_STPHY_CONS R     NA    R     NA    
+#>   9  2002-02-14 067927     45 F      ICU      B_STPHY_CONS S     NA    S     NA    
+#>  10  2002-02-21 A56499     64 M      Clinical B_STPHY_CONS S     NA    S     NA    
+#>  # ℹ 1,005 more rows  
+#>  # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,  
+#>  #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,  
+#>  #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,  
+#>  #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,  
+#>  #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,  
+#>  #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  
+ 
+# filter to any species in the top 5 genera:  
+top_n_microorganisms ( example_isolates , 
+                     n =  5 , property =  "genus" )   
+#>  # A tibble: 1,742 × 46  
+#>     date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   
+#>     <date>      <chr>    <dbl>  <chr>   <chr>     <mo>          <sir>  <sir>  <sir>  <sir>  
+#>   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,732 more rows  
+#>  # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,  
+#>  #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,  
+#>  #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,  
+#>  #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,  
+#>  #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,  
+#>  #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  
+ 
+# filter to the top 3 species in each of the top 5 genera:  
+top_n_microorganisms ( example_isolates , 
+                     n =  5 , property =  "genus" , n_for_each =  3 )   
+#>  # A tibble: 1,497 × 46  
+#>     date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   
+#>     <date>      <chr>    <dbl>  <chr>   <chr>     <mo>          <sir>  <sir>  <sir>  <sir>  
+#>   1  2002-02-21 4FC193     69 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    
+#>   2  2002-04-08 130252     78 M      ICU      B_ENTRC_FCLS NA    NA    NA    NA    
+#>   3  2002-06-23 798871     82 M      Clinical B_ENTRC_FCLS NA    NA    NA    NA    
+#>   4  2002-06-23 798871     82 M      Clinical B_ENTRC_FCLS NA    NA    NA    NA    
+#>   5  2003-04-20 6BC362     62 M      ICU      B_ENTRC      NA    NA    NA    NA    
+#>   6  2003-04-21 6BC362     62 M      ICU      B_ENTRC      NA    NA    NA    NA    
+#>   7  2003-08-13 F35553     52 M      ICU      B_ENTRC_FCLS NA    NA    NA    NA    
+#>   8  2003-09-05 F35553     52 M      ICU      B_ENTRC      NA    NA    NA    NA    
+#>   9  2003-09-05 F35553     52 M      ICU      B_ENTRC_FCLS NA    NA    NA    NA    
+#>  10  2003-09-28 1B0933     80 M      Clinical B_ENTRC      NA    NA    NA    NA    
+#>  # ℹ 1,487 more rows  
+#>  # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,  
+#>  #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,  
+#>  #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,  
+#>  #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,  
+#>  #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,  
+#>  #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  
+
+    
 
+   
+
+
+    
 
+
+
+
+
+
+  
+
diff --git a/reference/translate.html b/reference/translate.html
index 43627e76a..a142d013a 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
 
     AMR (for R) 
 
-    2.1.1.9125 
+    2.1.1.9133 
 
 
     
diff --git a/reference/wisca.html b/reference/wisca.html
new file mode 100644
index 000000000..4748f41b8
--- /dev/null
+++ b/reference/wisca.html
@@ -0,0 +1,8 @@
+
+  
+     
+     
+     
+  
+
+
diff --git a/search.json b/search.json
index 1c0fe119d..f4d17d4ae 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: Enterococcus crotali (0.650), Escherichia coli coli #>               (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #>               (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #>               Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #>               (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #>               dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae 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), #>               Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #>               Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #>               Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #>               Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #>               phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #>               Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #>               (0.533), Staphylococcus pseudintermedius (0.532), Serratia #>               proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #>               pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #>               periodonticum (0.519) #>  #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://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: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>%   mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #>    microbial ID was available) our_data_1st <- our_data %>%   filter(first == TRUE) our_data_1st <- our_data %>%   filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>                                 #>  1 J3         A        2012-11-21 B_ESCHR_COLI R     I     S     S     TRUE  #>  2 R7         A        2018-04-03 B_KLBSL_PNMN R     I     S     S     TRUE  #>  3 P3         A        2014-09-19 B_ESCHR_COLI R     S     S     S     TRUE  #>  4 P10        A        2015-12-10 B_ESCHR_COLI S     I     S     S     TRUE  #>  5 B7         A        2015-03-02 B_ESCHR_COLI S     S     S     S     TRUE  #>  6 W3         A        2018-03-31 B_STPHY_AURS R     S     R     S     TRUE  #>  7 M3         A        2015-10-25 B_ESCHR_COLI R     S     S     S     TRUE  #>  8 J3         A        2019-06-19 B_ESCHR_COLI S     S     S     S     TRUE  #>  9 G6         A        2015-04-27 B_STPHY_AURS S     S     S     S     TRUE  #> 10 P4         A        2011-06-21 B_ESCHR_COLI S     S     S     S     TRUE  #> # ℹ 2,714 more rows"},{"path":"https://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:2724        Length:2724        Min.   :2011-01-01   #>  Class :character   Class :character   1st Qu.:2013-04-07   #>  Mode  :character   Mode  :character   Median :2015-06-03   #>                                        Mean   :2015-06-09   #>                                        3rd Qu.:2017-08-11   #>                                        Max.   :2019-12-27   #>    bacteria               AMX                    AMC                 #>  Class :mo             Class:sir              Class:sir              #>    :0              %S   :41.6% (n=1133)   %S   :52.6% (n=1432)   #>  Unique:4              %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)      #>  #1    :B_ESCHR_COLI   %I   :16.4% (n=446)    %I   :12.2% (n=333)    #>  #2    :B_STPHY_AURS   %R   :42.0% (n=1145)   %R   :35.2% (n=959)    #>  #3    :B_STRPT_PNMN   %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)      #>     CIP                    GEN                  first         #>  Class:sir              Class:sir              Mode:logical   #>  %S   :52.5% (n=1431)   %S   :61.0% (n=1661)   TRUE:2724      #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)                     #>  %I   : 6.5% (n=176)    %I   : 3.0% (n=82)                    #>  %R   :41.0% (n=1117)   %R   :36.0% (n=981)                   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)  glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id  \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital    \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date        2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria    \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX         R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC         I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP         S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN         S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first       TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…  # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id   hospital       date   bacteria        AMX        AMC        CIP  #>        260          3       1854          4          3          3          3  #>        GEN      first  #>          3          1"},{"path":"https://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          1321 #> 2 Staphylococcus aureus      682 #> 3 Streptococcus pneumoniae   402 #> 4 Klebsiella pneumoniae      319"},{"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,724 × 2 #>    date       GEN   #>          #>  1 2012-11-21 S     #>  2 2018-04-03 S     #>  3 2014-09-19 S     #>  4 2015-12-10 S     #>  5 2015-03-02 S     #>  6 2018-03-31 S     #>  7 2015-10-25 S     #>  8 2019-06-19 S     #>  9 2015-04-27 S     #> 10 2011-06-21 S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #>    bacteria     AMX   AMC   #>               #>  1 B_ESCHR_COLI R     I     #>  2 B_KLBSL_PNMN R     I     #>  3 B_ESCHR_COLI R     S     #>  4 B_ESCHR_COLI S     I     #>  5 B_ESCHR_COLI S     S     #>  6 B_STPHY_AURS R     S     #>  7 B_ESCHR_COLI R     S     #>  8 B_ESCHR_COLI S     S     #>  9 B_STPHY_AURS S     S     #> 10 B_ESCHR_COLI S     S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #>    bacteria     AMX   AMC   CIP   GEN   #>                 #>  1 B_ESCHR_COLI R     I     S     S     #>  2 B_KLBSL_PNMN R     I     S     S     #>  3 B_ESCHR_COLI R     S     S     S     #>  4 B_ESCHR_COLI S     I     S     S     #>  5 B_ESCHR_COLI S     S     S     S     #>  6 B_STPHY_AURS R     S     R     S     #>  7 B_ESCHR_COLI R     S     S     S     #>  8 B_ESCHR_COLI S     S     S     S     #>  9 B_STPHY_AURS S     S     S     S     #> 10 B_ESCHR_COLI S     S     S     S     #> # ℹ 2,714 more rows  # filtering using AB selectors is also possible: our_data_1st %>%   filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>                                 #>  1 J5         A        2017-12-25 B_STRPT_PNMN R     S     S     R     TRUE  #>  2 X1         A        2017-07-04 B_STPHY_AURS R     S     S     R     TRUE  #>  3 B3         A        2016-07-24 B_ESCHR_COLI S     S     S     R     TRUE  #>  4 V7         A        2012-04-03 B_ESCHR_COLI S     S     S     R     TRUE  #>  5 C9         A        2017-03-23 B_ESCHR_COLI S     S     S     R     TRUE  #>  6 R1         A        2018-06-10 B_STPHY_AURS S     S     S     R     TRUE  #>  7 S2         A        2013-07-19 B_STRPT_PNMN S     S     S     R     TRUE  #>  8 P5         A        2019-03-09 B_STPHY_AURS S     S     S     R     TRUE  #>  9 Q8         A        2019-08-10 B_STPHY_AURS S     S     S     R     TRUE  #> 10 K5         A        2013-03-15 B_STRPT_PNMN S     S     S     R     TRUE  #> # ℹ 971 more rows  our_data_1st %>%   filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>                                 #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows  # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>                                 #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows"},{"path":"https://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())) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. antibiogram(example_isolates,             mo_transform = \"gramstain\",             antibiotics = aminoglycosides(),             ab_transform = \"name\",             language = \"es\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select."},{"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\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select."},{"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.4203377 our_data_1st %>%   group_by(hospital) %>%   summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #>   hospital amoxicillin #>              #> 1 A              0.340 #> 2 B              0.551 #> 3 C              0.370"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python Package Index. Python package wrapper round AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"install","dir":"Articles","previous_headings":"","what":"Install","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR  # Sample data data = {     \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'],     \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data)  # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug'])  # Display the results print(df)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antibiotics, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antibiotics"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd  df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Explanation: aminoglycosides() betalactams() dynamically select columns antibiotics classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(tidymodels)   # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) #> ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ── #> ✔ broom        1.0.7     ✔ recipes      1.1.0 #> ✔ dials        1.3.0     ✔ rsample      1.2.1 #> ✔ dplyr        1.1.4     ✔ tibble       3.2.1 #> ✔ ggplot2      3.5.1     ✔ tidyr        1.3.1 #> ✔ infer        1.0.7     ✔ tune         1.2.1 #> ✔ modeldata    1.4.0     ✔ workflows    1.1.4 #> ✔ parsnip      1.2.1     ✔ workflowsets 1.1.0 #> ✔ purrr        1.0.2     ✔ yardstick    1.3.1 #> ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ── #> ✖ purrr::discard() masks scales::discard() #> ✖ dplyr::filter()  masks stats::filter() #> ✖ dplyr::lag()     masks stats::lag() #> ✖ recipes::step()  masks stats::step() #> • Dig deeper into tidy modeling with R at https://www.tmwr.org library(AMR)          # For AMR data analysis  # Load the example_isolates dataset data(\"example_isolates\")  # Preloaded dataset with AMR results  # Select relevant columns for prediction data <- example_isolates %>%   # select AB results dynamically   select(mo, aminoglycosides(), betalactams()) %>%   # replace NAs with NI (not-interpretable)    mutate(across(where(is.sir),                  ~replace_na(.x, \"NI\")),           # make factors of SIR columns           across(where(is.sir),                  as.integer),           # get Gramstain of microorganisms           mo = as.factor(mo_gramstain(mo))) %>%   # drop NAs - the ones without a Gramstain (fungi, etc.)   drop_na() #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antibiotic selector functions - need define columns specifically.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>%   step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #>  #> ── Recipe ────────────────────────────────────────────────────────────────────── #>  #> ── Inputs #> Number of variables by role #> outcome:    1 #> predictor: 20 #>  #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams())"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>%   set_engine(\"glm\") # Use the Generalized Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #>  #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organizes entire modeling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>%   add_recipe(resistance_recipe) %>% # Add the preprocessing recipe   add_model(logistic_model) # Add the logistic regression model"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antibiotic selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram based AMR results 0.995 accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split)   # Testing set  # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>%   fit(training_data) # Train the model #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem) # Make predictions on the testing set predictions <- fitted_workflow %>%   predict(testing_data)                # Generate predictions probabilities <- fitted_workflow %>%   predict(testing_data, type = \"prob\") # Generate probabilities  predictions <- predictions %>%   bind_cols(probabilities) %>%   bind_cols(testing_data) # Combine with true labels  predictions #> # A tibble: 394 × 24 #>    .pred_class   `.pred_Gram-negative` `.pred_Gram-positive` mo        GEN   TOB #>                                                    #>  1 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  2 Gram-positive              3.17e- 8              1.00e+ 0 Gram-p…     5     1 #>  3 Gram-negative              9.99e- 1              1.42e- 3 Gram-n…     5     5 #>  4 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     5     5 #>  5 Gram-negative              9.46e- 1              5.42e- 2 Gram-n…     5     5 #>  6 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  7 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     1     5 #>  8 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     4     4 #>  9 Gram-negative              1   e+ 0              2.22e-16 Gram-n…     1     1 #> 10 Gram-positive              6.05e-11              1.00e+ 0 Gram-p…     4     4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK , KAN , PEN , OXA , FLC , #> #   AMX , AMC , AMP , TZP , CZO , FEP , #> #   CXM , FOX , CTX , CAZ , CRO , IPM , MEM   # Evaluate model performance metrics <- predictions %>%   metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics  metrics #> # A tibble: 2 × 3 #>   .metric  .estimator .estimate #>                  #> 1 accuracy binary         0.995 #> 2 kap      binary         0.989 predictions %>%   roc_curve(mo, `.pred_Gram-negative`) %>%   autoplot()"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR with tidymodels","text":"post, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antibiotic classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"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,745 (87.25%, NA: 255 = 12.75%) 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