From 8dc027309eb5e530b87af3e8b54af2342e0ed0e2 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Wed, 20 Feb 2019 10:38:24 +0100 Subject: [PATCH] website update --- R/catalogue_of_life.R | 2 +- docs/articles/benchmarks.html | 165 +++++++++--------- .../figure-html/unnamed-chunk-4-1.png | Bin 32157 -> 31454 bytes .../figure-html/unnamed-chunk-4-2.png | Bin 33264 -> 33495 bytes docs/index.html | 43 ++--- docs/reference/as.mo.html | 2 +- docs/reference/catalogue_of_life.html | 2 +- docs/reference/catalogue_of_life_version.html | 2 +- docs/reference/microorganisms.codes.html | 2 +- docs/reference/microorganisms.html | 2 +- docs/reference/microorganisms.old.html | 2 +- docs/reference/mo_property.html | 2 +- index.md | 44 +++-- man/as.mo.Rd | 2 +- man/catalogue_of_life.Rd | 2 +- man/catalogue_of_life_version.Rd | 2 +- man/microorganisms.Rd | 2 +- man/microorganisms.codes.Rd | 2 +- man/microorganisms.old.Rd | 2 +- man/mo_property.Rd | 2 +- vignettes/benchmarks.Rmd | 9 +- 21 files changed, 145 insertions(+), 146 deletions(-) diff --git a/R/catalogue_of_life.R b/R/catalogue_of_life.R index 25c41ba5..30e9f626 100755 --- a/R/catalogue_of_life.R +++ b/R/catalogue_of_life.R @@ -30,7 +30,7 @@ #' \itemize{ #' \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} #' \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} -#' \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} +#' \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} #' \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} #' \item{The responsible author(s) and year of scientific publication} #' } diff --git a/docs/articles/benchmarks.html b/docs/articles/benchmarks.html index f50800a3..c8d17ea9 100644 --- a/docs/articles/benchmarks.html +++ b/docs/articles/benchmarks.html @@ -218,26 +218,26 @@ times = 10) print(S.aureus, unit = "ms") #> Unit: milliseconds -#> expr min lq mean median -#> as.mo("sau") 42.58139 42.645368 43.3006677 42.970095 -#> as.mo("stau") 76.60094 77.168264 83.7686909 77.316642 -#> as.mo("staaur") 42.86607 42.947083 43.5035571 43.497293 -#> as.mo("S. aureus") 18.39354 18.432582 22.4304233 18.495928 -#> as.mo("S. aureus") 18.46513 18.559903 18.6640991 18.579110 -#> as.mo("STAAUR") 42.71975 42.788612 44.3280682 43.069864 -#> as.mo("Staphylococcus aureus") 11.56285 11.591419 15.9457298 11.667161 -#> as.mo("B_STPHY_AUR") 0.40487 0.450128 0.5036822 0.481417 +#> expr min lq mean median +#> as.mo("sau") 42.680497 42.766053 43.5046242 43.2246305 +#> as.mo("stau") 76.627901 76.760320 82.2084011 77.2020310 +#> as.mo("staaur") 42.751945 42.828281 46.8816599 43.0017665 +#> as.mo("S. aureus") 18.328588 18.370632 22.3298018 18.4252830 +#> as.mo("S. aureus") 18.258048 18.385997 18.7710600 18.5449555 +#> as.mo("STAAUR") 42.734554 42.854751 43.6593017 43.6353320 +#> as.mo("Staphylococcus aureus") 11.466961 11.572841 16.5287637 11.6172940 +#> as.mo("B_STPHY_AUR") 0.284603 0.302692 0.4095492 0.4190475 #> uq max neval -#> 43.448543 45.058105 10 -#> 78.335591 127.180349 10 -#> 43.817095 44.999509 10 -#> 19.007097 56.501460 10 -#> 18.651814 19.373275 10 -#> 43.741388 54.703256 10 -#> 12.323077 50.121808 10 -#> 0.519271 0.766578 10 -

In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 10 milliseconds means it can determine 100 input values per second. It case of 50 milliseconds, this is only 20 input values per second. The more an input value resembles a full name, the faster the result will be found. In case of as.mo("B_STPHY_AUR"), the input is already a valid MO code, so it only almost takes no time at all (404 millionths of seconds).

-

To achieve this speed, the as.mo function also takes into account the prevalence of human pathogenic microorganisms. The downside is of course that less prevalent microorganisms will be determined far less faster. See this example for the ID of Mycoplasma leonicaptivi (B_MYCPL_LEO), a bug probably never found before in humans:

+#> 44.091919 45.191431 10 +#> 78.670409 123.715942 10 +#> 43.089558 81.640969 10 +#> 18.546004 57.384741 10 +#> 19.235128 19.693775 10 +#> 44.189907 45.381609 10 +#> 12.175081 59.815567 10 +#> 0.482254 0.500343 10 +

In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 10 milliseconds means it can determine 100 input values per second. It case of 50 milliseconds, this is only 20 input values per second. The more an input value resembles a full name, the faster the result will be found. In case of as.mo("B_STPHY_AUR"), the input is already a valid MO code, so it only almost takes no time at all (284 millionths of seconds).

+

To achieve this speed, the as.mo function also takes into account the prevalence of human pathogenic microorganisms. The downside is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of Mycoplasma leonicaptivi (B_MYCPL_LEO), a bug probably never found before in humans:

M.leonicaptivi <- microbenchmark(as.mo("myle"),
                                  as.mo("mycleo"),
                                  as.mo("M. leonicaptivi"),
@@ -248,22 +248,22 @@
                                  times = 10)
 print(M.leonicaptivi, unit = "ms")
 #> Unit: milliseconds
-#>                              expr       min         lq       mean
-#>                     as.mo("myle") 112.28656 112.372601 112.751678
-#>                   as.mo("mycleo") 382.46812 382.757612 383.432440
-#>          as.mo("M. leonicaptivi") 202.68674 203.654949 210.461303
-#>         as.mo("M.  leonicaptivi") 202.89759 203.440956 203.816387
-#>                   as.mo("MYCLEO") 382.27864 383.090895 401.904482
-#>  as.mo("Mycoplasma leonicaptivi") 102.99676 103.191196 109.196394
-#>              as.mo("B_MYCPL_LEO")   0.32155   0.564807   4.320068
-#>      median        uq       max neval
-#>  112.540884 112.76874 113.76321    10
-#>  383.232219 384.05897 385.28587    10
-#>  204.255445 205.80976 242.53035    10
-#>  203.613673 203.82802 206.15038    10
-#>  386.478757 421.87837 437.26978    10
-#>  103.596136 104.65940 142.25748    10
-#>    0.593652   0.62522  37.96384    10
+#> expr min lq mean +#> as.mo("myle") 112.493914 112.698409 113.5834588 +#> as.mo("mycleo") 382.813554 382.992838 389.0918181 +#> as.mo("M. leonicaptivi") 202.903596 203.855253 211.7932317 +#> as.mo("M. leonicaptivi") 203.761037 204.178479 212.5451427 +#> as.mo("MYCLEO") 382.602355 383.481517 393.2696052 +#> as.mo("Mycoplasma leonicaptivi") 103.701176 103.991018 109.5707840 +#> as.mo("B_MYCPL_LEO") 0.312051 0.564876 0.5870787 +#> median uq max neval +#> 113.363438 114.20691 115.907686 10 +#> 384.139806 388.34114 421.458483 10 +#> 204.186195 205.16631 243.204461 10 +#> 204.715173 207.97372 244.462163 10 +#> 383.918409 386.97938 434.456156 10 +#> 104.428888 104.87207 153.125617 10 +#> 0.567914 0.63779 0.859048 10

That takes 6 times as much time on average! A value of 100 milliseconds means it can only determine ~10 different input values per second. We can conclude that looking up arbitrary codes of less prevalent microorganisms is the worst way to go, in terms of calculation performance:

par(mar = c(5, 16, 4, 2)) # set more space for left margin text (16)
 
@@ -273,9 +273,8 @@
 boxplot(S.aureus, horizontal = TRUE, las = 1, unit = "ms", log = FALSE, xlab = "", ylim = c(0, max_y_axis),
         main = expression(paste("Benchmark of ", italic("Staphylococcus aureus"))))

-

-boxplot(M.leonicaptivi, horizontal = TRUE, las = 1, unit = "ms", log = FALSE, xlab = "", ylim = c(0, max_y_axis),
-        main = expression(paste("Benchmark of ", italic("Mycoplasma leonicaptivi"))))
+
boxplot(M.leonicaptivi, horizontal = TRUE, las = 1, unit = "ms", log = FALSE, xlab = "", ylim = c(0, max_y_axis),
+        main = expression(paste("Benchmark of ", italic("Mycoplasma leonicaptivi"))))

To relieve this pitfall and further improve performance, two important calculations take almost no time at all: repetitive results and already precalculated results.

@@ -283,35 +282,27 @@ Repetitive results

Repetitive results mean that unique values are present more than once. Unique values will only be calculated once by as.mo(). We will use mo_fullname() for this test - a helper function that returns the full microbial name (genus, species and possibly subspecies) which uses as.mo() internally.

-

So transforming 500,000 values (!) of 95 unique values only takes 0.47 seconds (468 ms). You only lose time on your unique input values.

+# take 500,000 random MO codes from the septic_patients data set +x = septic_patients %>% + sample_n(500000, replace = TRUE) %>% + pull(mo) + +# got the right length? +length(x) +#> [1] 500000 + +# and how many unique values do we have? +n_distinct(x) +#> [1] 95 + +# now let's see: +run_it <- microbenchmark(X = mo_fullname(x), + times = 10) +print(run_it, unit = "ms") +#> Unit: milliseconds +#> expr min lq mean median uq max neval +#> X 413.2556 431.8327 448.3355 445.8654 465.2447 480.5499 10
+

So transforming 500,000 values (!) of 95 unique values only takes 0.45 seconds (445 ms). You only lose time on your unique input values.

@@ -323,10 +314,10 @@ times = 10) print(run_it, unit = "ms") #> Unit: milliseconds -#> expr min lq mean median uq max neval -#> A 38.887977 38.920313 39.3674024 39.076862 39.258415 42.166327 10 -#> B 19.589084 19.631059 19.8682396 19.781567 19.955611 20.751941 10 -#> C 0.255829 0.382732 0.4199913 0.400156 0.499156 0.564807 10

+#> expr min lq mean median uq max neval +#> A 39.603291 39.713640 39.950479 39.8150500 40.172707 40.664181 10 +#> B 19.570436 19.623515 19.964292 19.9376620 20.228830 20.609744 10 +#> C 0.251429 0.333144 0.389883 0.3866775 0.499087 0.510401 10

So going from mo_fullname("Staphylococcus aureus") to "Staphylococcus aureus" takes 0.0004 seconds - it doesn’t even start calculating if the result would be the same as the expected resulting value. That goes for all helper functions:

microbenchmark(A = mo_species("aureus"),
                B = mo_genus("Staphylococcus"),
@@ -340,20 +331,20 @@
                unit = "ms")
 #> Unit: milliseconds
 #>  expr      min       lq      mean    median       uq      max neval
-#>     A 0.250242 0.292496 0.3891774 0.4266960 0.456902 0.520388    10
-#>     B 0.259461 0.311702 0.3428727 0.3412800 0.374141 0.443912    10
-#>     C 0.290960 0.313169 0.4334429 0.4097595 0.520389 0.725373    10
-#>     D 0.271823 0.282789 0.3187217 0.3192800 0.352909 0.375398    10
-#>     E 0.245353 0.270985 0.3081197 0.2960235 0.330839 0.429036    10
-#>     F 0.246122 0.266585 0.2991101 0.3089435 0.332794 0.351582    10
-#>     G 0.271893 0.272452 0.3085039 0.2850580 0.368204 0.385525    10
-#>     H 0.252686 0.259251 0.3161791 0.2985025 0.334820 0.422680    10
+#> A 0.298084 0.370509 0.4040816 0.4065820 0.449569 0.475480 10 +#> B 0.293753 0.306115 0.3352809 0.3212705 0.370160 0.386154 10 +#> C 0.307652 0.353328 0.4106327 0.3943595 0.467239 0.548255 10 +#> D 0.244376 0.262954 0.2987189 0.3027975 0.338102 0.353747 10 +#> E 0.249614 0.255550 0.2985027 0.2772710 0.351931 0.397049 10 +#> F 0.259531 0.282439 0.3248814 0.3193850 0.345575 0.415906 10 +#> G 0.249055 0.266516 0.3293723 0.3020295 0.344528 0.616350 10 +#> H 0.242141 0.288515 0.3122614 0.3152295 0.339779 0.355773 10

Of course, when running mo_phylum("Firmicutes") the function has zero knowledge about the actual microorganism, namely S. aureus. But since the result would be "Firmicutes" too, there is no point in calculating the result. And because this package ‘knows’ all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately.

Results in other languages

-

When the system language is non-English and supported by this AMR package, some functions take a little while longer:

+

When the system language is non-English and supported by this AMR package, some functions will have a translated result. This almost does’t take extra time:

+#> en 10.74026 11.10686 11.09997 11.11563 11.20366 11.34076 10 +#> de 19.15977 19.59293 19.76980 19.71204 19.78338 20.54633 10 +#> nl 19.42929 19.54013 19.75978 19.67233 19.77263 20.58935 10 +#> es 19.31042 19.66821 19.65120 19.69552 19.73421 19.75538 10 +#> it 19.26362 19.34003 22.93301 19.62998 19.67213 52.79729 10 +#> fr 19.33011 19.54739 26.16391 19.64726 19.87145 52.40164 10 +#> pt 19.22800 19.50164 26.41786 19.66766 20.96244 53.16479 10

Currently supported are German, Dutch, Spanish, Italian, French and Portuguese.

diff --git a/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png b/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png index 331cac824ae97d045a973609778908c63dc5dd79..5d6d89930cd8725a6a590d4d99881a6fc7362e4a 100644 GIT binary patch literal 31454 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 literal 32157 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 bmjHLk+yl&%$OQbxG=bV3t=mP4kNp1!?y78G diff --git a/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-2.png b/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-2.png index c122509514167223e4fe33f025235abddde0eb8e..d979007fd0a580e48b02ee7cd4a21b9228326fc4 100644 GIT binary patch literal 33495 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
  • o}PThR3sxKEFKRIF<>@>KH!S0Ib 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 literal 33264 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 Yh=qjjNj3ssTYpYnMMt^x-XCHA1CA^~=Kufz diff --git a/docs/index.html b/docs/index.html index 2b9faf0d..aa2572ee 100644 --- a/docs/index.html +++ b/docs/index.html @@ -197,11 +197,12 @@

    AMR is a free and open-source R package to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial properties by using evidence-based methods. It supports any data format, including WHONET/EARS-Net data.

    -

    After installing this package, R knows almost all ~20,000 microorganisms and ~500 antibiotics by name and code, and knows all about valid RSI and MIC values.

    +

    After installing this package, R knows almost all ~60,000 microorganisms and ~500 antibiotics by name and code, and knows all about valid RSI and MIC values.

    Used to SPSS? Read our tutorial on how to import data from SPSS, SAS or Stata and learn in which ways R outclasses any of these statistical packages.

    We created this package for both academic research and routine analysis at the Faculty of Medical Sciences of the University of Groningen, the Netherlands, and the Medical Microbiology & Infection Prevention (MMBI) department of the University Medical Center Groningen (UMCG). This R package is actively maintained and is free software; you can freely use and distribute it for both personal and commercial (but not patent) purposes under the terms of the GNU General Public License version 2.0 (GPL-2), as published by the Free Software Foundation. Read the full license here.

    This package can be used for:

      +
    • Reference for microorganisms, since it contains allmost all 60,000 microbial species of the Catalogue of Life
    • Calculating antimicrobial resistance
    • Calculating empirical susceptibility of both mono therapy and combination therapy
    • Predicting future antimicrobial resistance using regression models
    • @@ -252,7 +253,7 @@

      Latest development version

      -

      The latest and unpublished development version can be installed with (precaution: may be unstable):

      +

      The latest and unpublished development version can be installed with (precaution: may be unstable):

      install.packages("devtools")
       devtools::install_gitlab("msberends/AMR")
      @@ -265,12 +266,22 @@

      Short introduction

      -
      +

      -WHONET / EARS-Net

      -

      -

      We support WHONET and EARS-Net data. Exported files from WHONET can be imported into R and can be analysed easily using this package. For education purposes, we created an example data set WHONET with the exact same structure as a WHONET export file. Furthermore, this package also contains a data set antibiotics with all EARS-Net antibiotic abbreviations, and knows almost all WHONET abbreviations for microorganisms. When using WHONET data as input for analysis, all input parameters will be set automatically.

      -

      Read our tutorial about how to work with WHONET data here.

      +Microbial (taxonomic) reference data +

      +

      This package contains the complete taxonomic tree of almost all microorganisms from the authoritative and comprehensive Catalogue of Life (www.catalogueoflife.org).

      +

      Included are:

      +
        +
      • All ~55,000 species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses
      • +
      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).
      • +
      • All ~15,000 previously accepted names of included species that have been taxonomically renamed
      • +
      • The responsible author(s) and year of scientific publication
      • +
      +

      This data is updated annually - check the included version with catalogue_of_life_version().

      +

      About

      +

      The Catalogue of Life (www.catalogueoflife.org) is the most comprehensive and authoritative global index of species currently available. It holds essential information on the names, relationships and distributions of over 1.6 million species. The Catalogue of Life is used to support the major biodiversity and conservation information services such as the Global Biodiversity Information Facility (GBIF), Encyclopedia of Life (EoL) and the International Union for Conservation of Nature Red List. It is recognised by the Convention on Biological Diversity as a significant component of the Global Taxonomy Initiative and a contribution to Target 1 of the Global Strategy for Plant Conservation.

      +

      Read more about the data from the Catalogue of Life in our manual.

      @@ -281,20 +292,12 @@

      This package contains all ~500 antimicrobial drugs and their Anatomical Therapeutic Chemical (ATC) codes, ATC groups and Defined Daily Dose (DDD) from the World Health Organization Collaborating Centre for Drug Statistics Methodology (WHOCC, https://www.whocc.no) and the Pharmaceuticals Community Register of the European Commission.

      Read more about the data from WHOCC in our manual.

      -
      +

      -Microbial (taxonomic) reference data

      -

      -

      This package contains the complete taxonomic tree of almost all microorganisms from the authoritative and comprehensive Catalogue of Life (www.catalogueoflife.org). This data is updated annually - check the included version with catalogue_of_life_version().

      -

      Included are:

      -
        -
      • All ~55,000 species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses
      • -
      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).
      • -
      • All ~15,000 previously accepted names of species that have been taxonomically renamed
      • -
      • The responsible author(s) and year of scientific publication
      • -
      -

      The Catalogue of Life (www.catalogueoflife.org) is the most comprehensive and authoritative global index of species currently available. It holds essential information on the names, relationships and distributions of over 1.6 million species. The Catalogue of Life is used to support the major biodiversity and conservation information services such as the Global Biodiversity Information Facility (GBIF), Encyclopedia of Life (EoL) and the International Union for Conservation of Nature Red List. It is recognised by the Convention on Biological Diversity as a significant component of the Global Taxonomy Initiative and a contribution to Target 1 of the Global Strategy for Plant Conservation.

      -

      Read more about the data from the Catalogue of Life in our manual.

      +WHONET / EARS-Net +

      +

      We support WHONET and EARS-Net data. Exported files from WHONET can be imported into R and can be analysed easily using this package. For education purposes, we created an example data set WHONET with the exact same structure as a WHONET export file. Furthermore, this package also contains a data set antibiotics with all EARS-Net antibiotic abbreviations, and knows almost all WHONET abbreviations for microorganisms. When using WHONET data as input for analysis, all input parameters will be set automatically.

      +

      Read our tutorial about how to work with WHONET data here.

      diff --git a/docs/reference/as.mo.html b/docs/reference/as.mo.html index 814ced43..2ee37374 100644 --- a/docs/reference/as.mo.html +++ b/docs/reference/as.mo.html @@ -345,7 +345,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/catalogue_of_life.html b/docs/reference/catalogue_of_life.html index db69f673..00560033 100644 --- a/docs/reference/catalogue_of_life.html +++ b/docs/reference/catalogue_of_life.html @@ -250,7 +250,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/catalogue_of_life_version.html b/docs/reference/catalogue_of_life_version.html index 2db17f4d..b21adc8f 100644 --- a/docs/reference/catalogue_of_life_version.html +++ b/docs/reference/catalogue_of_life_version.html @@ -251,7 +251,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/microorganisms.codes.html b/docs/reference/microorganisms.codes.html index 66261ab3..07bf9ec2 100644 --- a/docs/reference/microorganisms.codes.html +++ b/docs/reference/microorganisms.codes.html @@ -258,7 +258,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/microorganisms.html b/docs/reference/microorganisms.html index f7095882..104e506d 100644 --- a/docs/reference/microorganisms.html +++ b/docs/reference/microorganisms.html @@ -282,7 +282,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/microorganisms.old.html b/docs/reference/microorganisms.old.html index 928aff99..44442872 100644 --- a/docs/reference/microorganisms.old.html +++ b/docs/reference/microorganisms.old.html @@ -264,7 +264,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/docs/reference/mo_property.html b/docs/reference/mo_property.html index 0a44ac78..0a857696 100644 --- a/docs/reference/mo_property.html +++ b/docs/reference/mo_property.html @@ -331,7 +331,7 @@ This package contains the complete taxonomic tree of almost all microorganisms f

      Included are:

      • All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses

      • All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera Aspergillus, Candida, Pneumocystis, Saccharomyces and Trichophyton).

      • -
      • All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed

      • +
      • All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed

      • The complete taxonomic tree of all included (sub)species: from kingdom to subspecies

      • The responsible author(s) and year of scientific publication

      diff --git a/index.md b/index.md index 190d76cf..dc3d3900 100644 --- a/index.md +++ b/index.md @@ -6,7 +6,7 @@ `AMR` is a free and open-source [R package](https://www.r-project.org) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial properties by using evidence-based methods. It supports any data format, including WHONET/EARS-Net data. -After installing this package, R knows almost all ~20,000 microorganisms and ~500 antibiotics by name and code, and knows all about valid RSI and MIC values. +After installing this package, R knows almost all ~60,000 microorganisms and ~500 antibiotics by name and code, and knows all about valid RSI and MIC values. **Used to SPSS?** Read our [tutorial on how to import data from SPSS, SAS or Stata](./articles/SPSS.html) and learn in which ways R outclasses any of these statistical packages. @@ -15,6 +15,7 @@ This R package is actively maintained and is free software; you can freely use a This package can be used for: + * Reference for microorganisms, since it contains allmost all 60,000 microbial species of the Catalogue of Life * Calculating antimicrobial resistance * Calculating empirical susceptibility of both mono therapy and combination therapy * Predicting future antimicrobial resistance using regression models @@ -67,7 +68,7 @@ It will be downloaded and installed automatically. For RStudio, click on the men #### Latest development version -The latest and unpublished development version can be installed with (precaution: may be unstable): +The latest and unpublished development version can be installed with (**precaution: may be unstable**): ```r install.packages("devtools") devtools::install_gitlab("msberends/AMR") @@ -79,13 +80,27 @@ To find out how to conduct AMR analysis, please [continue reading here to get st ## Short introduction -#### WHONET / EARS-Net +#### Microbial (taxonomic) reference data - + -We support WHONET and EARS-Net data. Exported files from WHONET can be imported into R and can be analysed easily using this package. For education purposes, we created an [example data set `WHONET`](./reference/WHONET.html) with the exact same structure as a WHONET export file. Furthermore, this package also contains a [data set `antibiotics`](./reference/antibiotics.html) with all EARS-Net antibiotic abbreviations, and knows almost all WHONET abbreviations for microorganisms. When using WHONET data as input for analysis, all input parameters will be set automatically. +This package contains the complete taxonomic tree of almost all microorganisms from the authoritative and comprehensive Catalogue of Life ([www.catalogueoflife.org](http://www.catalogueoflife.org)). -Read our tutorial about [how to work with WHONET data here](./articles/WHONET.html). +Included are: + +* All ~55,000 species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses +* All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. + The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera *Aspergillus*, *Candida*, *Pneumocystis*, *Saccharomyces* and *Trichophyton*). +* All ~15,000 previously accepted names of included species that have been taxonomically renamed +* The responsible author(s) and year of scientific publication + +This data is updated annually - check the included version with `catalogue_of_life_version()`. + +**About** + +The Catalogue of Life ([www.catalogueoflife.org](http://www.catalogueoflife.org)) is the most comprehensive and authoritative global index of species currently available. It holds essential information on the names, relationships and distributions of over 1.6 million species. The Catalogue of Life is used to support the major biodiversity and conservation information services such as the Global Biodiversity Information Facility (GBIF), Encyclopedia of Life (EoL) and the International Union for Conservation of Nature Red List. It is recognised by the Convention on Biological Diversity as a significant component of the Global Taxonomy Initiative and a contribution to Target 1 of the Global Strategy for Plant Conservation. + +Read more about the data from the Catalogue of Life [in our manual](./reference/catalogue_of_life.html). #### Antimicrobial reference data @@ -95,22 +110,13 @@ This package contains **all ~500 antimicrobial drugs** and their Anatomical Ther Read more about the data from WHOCC [in our manual](./reference/WHOCC.html). -#### Microbial (taxonomic) reference data +#### WHONET / EARS-Net - + -This package contains the complete taxonomic tree of almost all microorganisms from the authoritative and comprehensive Catalogue of Life ([www.catalogueoflife.org](http://www.catalogueoflife.org)). This data is updated annually - check the included version with `catalogue_of_life_version()`. +We support WHONET and EARS-Net data. Exported files from WHONET can be imported into R and can be analysed easily using this package. For education purposes, we created an [example data set `WHONET`](./reference/WHONET.html) with the exact same structure as a WHONET export file. Furthermore, this package also contains a [data set `antibiotics`](./reference/antibiotics.html) with all EARS-Net antibiotic abbreviations, and knows almost all WHONET abbreviations for microorganisms. When using WHONET data as input for analysis, all input parameters will be set automatically. -Included are: - -* All ~55,000 species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses -* All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera *Aspergillus*, *Candida*, *Pneumocystis*, *Saccharomyces* and *Trichophyton*). -* All ~15,000 previously accepted names of species that have been taxonomically renamed -* The responsible author(s) and year of scientific publication - -The Catalogue of Life ([www.catalogueoflife.org](http://www.catalogueoflife.org)) is the most comprehensive and authoritative global index of species currently available. It holds essential information on the names, relationships and distributions of over 1.6 million species. The Catalogue of Life is used to support the major biodiversity and conservation information services such as the Global Biodiversity Information Facility (GBIF), Encyclopedia of Life (EoL) and the International Union for Conservation of Nature Red List. It is recognised by the Convention on Biological Diversity as a significant component of the Global Taxonomy Initiative and a contribution to Target 1 of the Global Strategy for Plant Conservation. - -Read more about the data from the Catalogue of Life [in our manual](./reference/catalogue_of_life.html). +Read our tutorial about [how to work with WHONET data here](./articles/WHONET.html). #### Overview of functions diff --git a/man/as.mo.Rd b/man/as.mo.Rd index e62e1150..aae08cac 100644 --- a/man/as.mo.Rd +++ b/man/as.mo.Rd @@ -119,7 +119,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/catalogue_of_life.Rd b/man/catalogue_of_life.Rd index cb18c5a2..0e18b32e 100644 --- a/man/catalogue_of_life.Rd +++ b/man/catalogue_of_life.Rd @@ -15,7 +15,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/catalogue_of_life_version.Rd b/man/catalogue_of_life_version.Rd index 696fa1b6..88f73bd2 100644 --- a/man/catalogue_of_life_version.Rd +++ b/man/catalogue_of_life_version.Rd @@ -18,7 +18,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/microorganisms.Rd b/man/microorganisms.Rd index 1a1a2b27..7e184930 100755 --- a/man/microorganisms.Rd +++ b/man/microorganisms.Rd @@ -47,7 +47,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/microorganisms.codes.Rd b/man/microorganisms.codes.Rd index 7357f3d1..f082e677 100644 --- a/man/microorganisms.codes.Rd +++ b/man/microorganisms.codes.Rd @@ -24,7 +24,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/microorganisms.old.Rd b/man/microorganisms.old.Rd index 49dba11c..79507596 100644 --- a/man/microorganisms.old.Rd +++ b/man/microorganisms.old.Rd @@ -29,7 +29,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/man/mo_property.Rd b/man/mo_property.Rd index d7509804..04ac2c2c 100644 --- a/man/mo_property.Rd +++ b/man/mo_property.Rd @@ -102,7 +102,7 @@ Included are: \itemize{ \item{All ~55,000 (sub)species from the kingdoms of Archaea, Bacteria, Protozoa and Viruses} \item{All ~3,000 (sub)species from these orders of the kingdom of Fungi: Eurotiales, Onygenales, Pneumocystales, Saccharomycetales and Schizosaccharomycetales. The kingdom of Fungi is a very large taxon with almost 300,000 different species, of which most are not microbial. Including everything tremendously slows down our algortihms, and not all fungi fit the scope of this package. By only including the aforementioned taxonomic orders, the most relevant species are covered (like genera \emph{Aspergillus}, \emph{Candida}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).} - \item{All ~15,000 previously accepted names of (sub)species that have been taxonomically renamed} + \item{All ~15,000 previously accepted names of inckuded (sub)species that have been taxonomically renamed} \item{The complete taxonomic tree of all included (sub)species: from kingdom to subspecies} \item{The responsible author(s) and year of scientific publication} } diff --git a/vignettes/benchmarks.Rmd b/vignettes/benchmarks.Rmd index 6a5c0ee3..f265ac79 100755 --- a/vignettes/benchmarks.Rmd +++ b/vignettes/benchmarks.Rmd @@ -27,7 +27,7 @@ One of the most important features of this package is the complete microbial tax Using the `microbenchmark` package, we can review the calculation performance of this function. Its function `microbenchmark()` runs different input expressions independently of each other and measures their time-to-result. -```{r} +```{r, message = FALSE} library(microbenchmark) library(AMR) ``` @@ -51,7 +51,7 @@ print(S.aureus, unit = "ms") In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 10 milliseconds means it can determine 100 input values per second. It case of 50 milliseconds, this is only 20 input values per second. The more an input value resembles a full name, the faster the result will be found. In case of `as.mo("B_STPHY_AUR")`, the input is already a valid MO code, so it only almost takes no time at all (`r as.integer(min(S.aureus$time, na.rm = TRUE) / 1000)` millionths of seconds). -To achieve this speed, the `as.mo` function also takes into account the prevalence of human pathogenic microorganisms. The downside is of course that less prevalent microorganisms will be determined far less faster. See this example for the ID of *Mycoplasma leonicaptivi* (`B_MYCPL_LEO`), a bug probably never found before in humans: +To achieve this speed, the `as.mo` function also takes into account the prevalence of human pathogenic microorganisms. The downside is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of *Mycoplasma leonicaptivi* (`B_MYCPL_LEO`), a bug probably never found before in humans: ```{r} M.leonicaptivi <- microbenchmark(as.mo("myle"), @@ -75,7 +75,6 @@ max_y_axis <- max(S.aureus$time, M.leonicaptivi$time, na.rm = TRUE) / 1e6 boxplot(S.aureus, horizontal = TRUE, las = 1, unit = "ms", log = FALSE, xlab = "", ylim = c(0, max_y_axis), main = expression(paste("Benchmark of ", italic("Staphylococcus aureus")))) - boxplot(M.leonicaptivi, horizontal = TRUE, las = 1, unit = "ms", log = FALSE, xlab = "", ylim = c(0, max_y_axis), main = expression(paste("Benchmark of ", italic("Mycoplasma leonicaptivi")))) ``` @@ -86,7 +85,7 @@ To relieve this pitfall and further improve performance, two important calculati Repetitive results mean that unique values are present more than once. Unique values will only be calculated once by `as.mo()`. We will use `mo_fullname()` for this test - a helper function that returns the full microbial name (genus, species and possibly subspecies) which uses `as.mo()` internally. -```{r} +```{r, message = FALSE} library(dplyr) # take 500,000 random MO codes from the septic_patients data set x = septic_patients %>% @@ -138,7 +137,7 @@ Of course, when running `mo_phylum("Firmicutes")` the function has zero knowledg ### Results in other languages -When the system language is non-English and supported by this `AMR` package, some functions take a little while longer: +When the system language is non-English and supported by this `AMR` package, some functions will have a translated result. This almost does't take extra time: ```{r} mo_fullname("CoNS", language = "en") # or just mo_fullname("CoNS") on an English system

    (TLDR - to find out how to conduct AMR analysis, please continue reading here to get started.