As of version 2.0.0 the MIC package has being refocused to provideMIC-specific analysis and validation utilities. Genomics-relatedfunctions (PATRIC download helpers, genome ->faLearn.
To continue using these functions, simply install and load thefaLearn package alongsideMIC:
# install.packages("remotes")remotes::install_github("agerada/faLearn")library(faLearn)MIC is an R package for the analysis of minimuminhibitory concentration (MIC) data. The package was designed to becompatible with theAMR, in particular mostof the functions inMIC are designed to accept and returnAMR objects, such asmic andsir.The primary functions inMIC are designed towardsvalidation studies of minimum inhibitory concentrations, however it alsocan (optionally) be used to support the construction of machine learningmodels that predict MIC values from genomic data.
Rcpp.XGBoost-compatiblelibsvm format.install.packages("MIC")# install.packages("remotes")remotes::install_github("agerada/MIC")Load theMIC package – it is highly recommended thatAMR is also loaded. Where possible,MICfunctions maintain compatibility withAMR objects, inparticular themic andsir classes.
library(MIC)#>#> Attaching package: 'MIC'#> The following object is masked from 'package:base':#>#> tablelibrary(AMR)To compare twomic vectors (e.g., one from a goldstandard and one from a prediction or investigational assay), thecompare_mic function can be used. An example dataset of MICvalues is provided with the package, which will be used here.
data("example_mics")head(example_mics)#> gs test mo ab#> 1 0.002 0.002 B_ESCHR_COLI GEN#> 2 0.004 0.002 B_ESCHR_COLI GEN#> 3 8 16 B_ESCHR_COLI GEN#> 4 0.008 0.016 B_ESCHR_COLI GEN#> 5 64 64 B_ESCHR_COLI GEN#> 6 0.06 0.06 B_ESCHR_COLI GENThe dataset contains MIC values (inmic format) for a“test” assay, and a “gold standard” (gs) assay. We will usecompare_mic to compare the MICs and validate the “test”assay:
val<-compare_mic(gold_standard = example_mics$gs,test = example_mics$test)val#> MIC validation object with 300 observations#> Agreement type: essentialCallingsummary provides the essential agreement (EA)rates and assay bias:
summary(val)#> MIC validation summary#> Essential agreement: 267 (89%)#> Bias: -7If organisms and antimicrobials are provided,compare_mic will also calculate and return the categoricalagreement (CA) rates, in the form of minor, major, and very majorerrors:
val<-compare_mic(gold_standard = example_mics$gs,test = example_mics$test,mo = example_mics$mo,ab = example_mics$ab)val#> MIC validation object with 300 observations#> Agreement type: essential and categorical#> Antibiotics: GEN, MEM, AMX#> Organisms: B_ESCHR_COLIThis time, callingsummary will provide a breakdown ofthe categorical agreement rates in addition to the EA rates:
summary(val)#> MIC validation summary#> Antibiotic: AMX, GEN, MEM#> Organism: B_ESCHR_COLI#> Essential agreement: 267 (89%)#> Resistant: 113 (37.67%)#> Minor errors: 0 (0%)#> Major errors: 6 (2%)#> Very major errors: 8 (2.67%)#> Mean bias: -7#> N: 300#> *Use as.data.frame() to see full summary*Usingas.data.frame allows us to continue working withthe summarised results:
head(as.data.frame(val))#> gold_standard test essential_agreement ab mo gold_standard_sir#> 1 0.002 0.002 TRUE GEN B_ESCHR_COLI S#> 2 0.004 0.002 TRUE GEN B_ESCHR_COLI S#> 3 8 16 TRUE GEN B_ESCHR_COLI R#> 4 0.008 0.016 TRUE GEN B_ESCHR_COLI S#> 5 64 64 TRUE GEN B_ESCHR_COLI R#> 6 0.06 0.06 TRUE GEN B_ESCHR_COLI S#> test_sir error#> 1 S <NA>#> 2 S <NA>#> 3 R <NA>#> 4 S <NA>#> 5 R <NA>#> 6 S <NA>The results of anmic_validation can be plotted in aconfusion matrix (failed essential agreements are in red):
plot(val)
The plot can also be faceted by antimicrobial:
plot(val,facet_wrap_ncol =1)
Thetable function can be used to generate a table ofthe results:
# generate table for MEMmem_dat<-subset(example_mics, ab=="MEM")mem_val<-compare_mic(gold_standard = mem_dat$gs,test = mem_dat$test)table(mem_val)