These functions can be used to predefine your own reference to be used in as.mo()
and consequently all mo_*
functions (such as mo_genus()
and mo_gramstain()
).
This is the fastest way to have your organisation (or analysis) specific codes picked up and translated by this package, since you don't have to bother about it again after setting it up once.
set_mo_source( path, destination = getOption("AMR_mo_source", "~/mo_source.rds") ) get_mo_source(destination = getOption("AMR_mo_source", "~/mo_source.rds"))
path | location of your reference file, see Details. Can be |
---|---|
destination | destination of the compressed data file, default to the user's home directory. |
The reference file can be a text file separated with commas (CSV) or tabs or pipes, an Excel file (either 'xls' or 'xlsx' format) or an R object file (extension '.rds'). To use an Excel file, you will need to have the readxl
package installed.
set_mo_source()
will check the file for validity: it must be a data.frame, must have a column named "mo"
which contains values from microorganisms$mo
and must have a reference column with your own defined values. If all tests pass, set_mo_source()
will read the file into R and will ask to export it to "~/mo_source.rds"
. The CRAN policy disallows packages to write to the file system, although 'exceptions may be allowed in interactive sessions if the package obtains confirmation from the user'. For this reason, this function only works in interactive sessions so that the user can specifically confirm and allow that this file will be created. The destination of this file can be set with the destination
argument and defaults to the user's home directory. It can also be set as an R option, using options(AMR_mo_source = "my/location/file.rds")
.
The created compressed data file "mo_source.rds"
will be used at default for MO determination (function as.mo()
and consequently all mo_*
functions like mo_genus()
and mo_gramstain()
). The location and timestamp of the original file will be saved as an attribute to the compressed data file.
The function get_mo_source()
will return the data set by reading "mo_source.rds"
with readRDS()
. If the original file has changed (by checking the location and timestamp of the original file), it will call set_mo_source()
to update the data file automatically if used in an interactive session.
Reading an Excel file (.xlsx
) with only one row has a size of 8-9 kB. The compressed file created with set_mo_source()
will then have a size of 0.1 kB and can be read by get_mo_source()
in only a couple of microseconds (millionths of a second).
Imagine this data on a sheet of an Excel file (mo codes were looked up in the microorganisms data set). The first column contains the organisation specific codes, the second column contains an MO code from this package:
| A | B | --|--------------------|--------------| 1 | Organisation XYZ | mo | 2 | lab_mo_ecoli | B_ESCHR_COLI | 3 | lab_mo_kpneumoniae | B_KLBSL_PNMN | 4 | | |
We save it as "home/me/ourcodes.xlsx"
. Now we have to set it as a source:
set_mo_source("home/me/ourcodes.xlsx") #> NOTE: Created mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #> '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #> "Organisation XYZ" and "mo"
It has now created a file "~/mo_source.rds"
with the contents of our Excel file. Only the first column with foreign values and the 'mo' column will be kept when creating the RDS file.
And now we can use it in our functions:
as.mo("lab_mo_ecoli") #> Class <mo> #> [1] B_ESCHR_COLI mo_genus("lab_mo_kpneumoniae") #> [1] "Klebsiella" # other input values still work too as.mo(c("Escherichia coli", "E. coli", "lab_mo_ecoli")) #> NOTE: Translation to one microorganism was guessed with uncertainty. #> Use mo_uncertainties() to review it. #> Class <mo> #> [1] B_ESCHR_COLI B_ESCHR_COLI B_ESCHR_COLI
If we edit the Excel file by, let's say, adding row 4 like this:
| A | B | --|--------------------|--------------| 1 | Organisation XYZ | mo | 2 | lab_mo_ecoli | B_ESCHR_COLI | 3 | lab_mo_kpneumoniae | B_KLBSL_PNMN | 4 | lab_Staph_aureus | B_STPHY_AURS | 5 | | |
...any new usage of an MO function in this package will update your data file:
as.mo("lab_mo_ecoli") #> NOTE: Updated mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #> '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #> "Organisation XYZ" and "mo" #> Class <mo> #> [1] B_ESCHR_COLI mo_genus("lab_Staph_aureus") #> [1] "Staphylococcus"
To delete the reference data file, just use ""
, NULL
or FALSE
as input for set_mo_source()
:
set_mo_source(NULL) #> Removed mo_source file '/Users/me/mo_source.rds'
If the original file (in the previous case an Excel file) is moved or deleted, the mo_source.rds
file will be removed upon the next use of as.mo()
or any mo_*
function.
The lifecycle of this function is stable. In a stable function, major changes are unlikely. This means that the unlying code will generally evolve by adding new arguments; removing arguments or changing the meaning of existing arguments will be avoided.
If the unlying code needs breaking changes, they will occur gradually. For example, a argument will be deprecated and first continue to work, but will emit an message informing you of the change. Next, typically after at least one newly released version on CRAN, the message will be transformed to an error.
On our website https://msberends.github.io/AMR/ you can find a comprehensive tutorial about how to conduct AMR data analysis, the complete documentation of all functions and an example analysis using WHONET data. As we would like to better understand the backgrounds and needs of our users, please participate in our survey!