Hi, I have a multi-omics dataset where I would like to plot the AUROCs for each dataset run by itself and for the combination of the datasets in one figure just like the one attached here. How can I do this in mixomics?
Thank you for such a great tool!
Best wishes,
Stef
If using a supervised model, multiple lines will be plotted corresponding to each class in the response variable:
suppressMessages(library(mixOmics))
data(breast.TCGA)
X.train <- breast.TCGA$data.train$mirna
Y.train <- as.vector(breast.TCGA$data.train$subtype)
X.test <- breast.TCGA$data.train$mirna
Y.test <- as.vector(breast.TCGA$data.train$subtype)
MyResult.splsda.final <- splsda(X.train, Y.train)
auroc(MyResult.splsda.final)
Created on 2022-09-20 with reprex v2.0.2
There isnβt currently a way to plot multiple models on the auroc()
plot. Iβll have a look today to see if this can be easily and quickly implemented for you
Hej Max,
Yes, I have been able to make a plot similar to the one you posted. But I typically have only 2 groups, thus one graph and it would be fantastic to be able to plot und thus be able to compare visually several models.
Thank you very much!
/Stef
Gβday Stepra.
Yesterday arvo and this morning Iβve put together a build for you which allows for the combination of AUROC plots. You can see the functionality below:
suppressMessages(devtools::load_all("D:/My Files/Work/mixOmics/mixOmics"))
data(breast.TCGA)
X <- list(miRNA = breast.TCGA$data.train$mirna,
mRNA = breast.TCGA$data.train$mrna,
proteomics = breast.TCGA$data.train$protein)
Y <- breast.TCGA$data.train$subtype
model1 <- splsda(X$miRNA, Y, ncomp=3)
model2 <- splsda(X$mRNA, Y, ncomp=3)
model3 <- splsda(X$proteomics, Y, ncomp=3)
models <- list(miRNA.Model=model1,
mRNA.Model=model2,
proteomics.Model=model3)
auroc.out <- auroc(models, print = F, plot=T, roc.comp = 1)
auroc.out <- auroc(models, print = F, plot=T, roc.comp = 3)
Created on 2022-09-23 with reprex v2.0.2
Session info
sessioninfo::session_info()
#> β Session info βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
#> setting value
#> version R version 4.2.1 (2022-06-23 ucrt)
#> os Windows 10 x64 (build 19044)
#> system x86_64, mingw32
#> ui RTerm
#> language (EN)
#> collate English_United States.utf8
#> ctype English_United States.utf8
#> tz Australia/Sydney
#> date 2022-09-23
#> pandoc 2.18 @ D:/Programs/Work Programs/RStudio/bin/quarto/bin/tools/ (via rmarkdown)
#>
#> β Packages βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
#> ! package * version date (UTC) lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.2.1)
#> BiocParallel 1.30.3 2022-06-07 [1] Bioconductor
#> brio 1.1.3 2021-11-30 [1] CRAN (R 4.2.1)
#> cachem 1.0.6 2021-08-19 [1] CRAN (R 4.2.1)
#> callr 3.7.2 2022-08-22 [1] CRAN (R 4.2.1)
#> cli 3.3.0 2022-04-25 [1] CRAN (R 4.2.1)
#> codetools 0.2-18 2020-11-04 [1] CRAN (R 4.2.1)
#> colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.2.1)
#> corpcor 1.6.10 2021-09-16 [1] CRAN (R 4.2.0)
#> crayon 1.5.1 2022-03-26 [1] CRAN (R 4.2.1)
#> curl 4.3.2 2021-06-23 [1] CRAN (R 4.2.1)
#> DBI 1.1.3 2022-06-18 [1] CRAN (R 4.2.1)
#> desc 1.4.2 2022-09-08 [1] CRAN (R 4.2.1)
#> devtools 2.4.4 2022-07-20 [1] CRAN (R 4.2.1)
#> digest 0.6.29 2021-12-01 [1] CRAN (R 4.2.1)
#> dplyr 1.0.9 2022-04-28 [1] CRAN (R 4.2.1)
#> ellipse 0.4.3 2022-05-31 [1] CRAN (R 4.2.1)
#> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.2.1)
#> evaluate 0.16 2022-08-09 [1] CRAN (R 4.2.1)
#> fansi 1.0.3 2022-03-24 [1] CRAN (R 4.2.1)
#> farver 2.1.1 2022-07-06 [1] CRAN (R 4.2.1)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.2.1)
#> fs 1.5.2 2021-12-08 [1] CRAN (R 4.2.1)
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.2.1)
#> ggplot2 * 3.3.6 2022-05-03 [1] CRAN (R 4.2.1)
#> ggrepel 0.9.1 2021-01-15 [1] CRAN (R 4.2.1)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.2.1)
#> gridExtra 2.3 2017-09-09 [1] CRAN (R 4.2.1)
#> gtable 0.3.1 2022-09-01 [1] CRAN (R 4.2.1)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.2.1)
#> htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.2.1)
#> htmlwidgets 1.5.4 2021-09-08 [1] CRAN (R 4.2.1)
#> httpuv 1.6.5 2022-01-05 [1] CRAN (R 4.2.1)
#> httr 1.4.4 2022-08-17 [1] CRAN (R 4.2.1)
#> igraph 1.3.4 2022-07-19 [1] CRAN (R 4.2.1)
#> knitr 1.40 2022-08-24 [1] CRAN (R 4.2.1)
#> later 1.3.0 2021-08-18 [1] CRAN (R 4.2.1)
#> lattice * 0.20-45 2021-09-22 [1] CRAN (R 4.2.1)
#> lifecycle 1.0.2 2022-09-09 [1] CRAN (R 4.2.1)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.2.1)
#> MASS * 7.3-58.1 2022-08-03 [1] CRAN (R 4.2.1)
#> Matrix 1.4-1 2022-03-23 [1] CRAN (R 4.2.1)
#> matrixStats 0.62.0 2022-04-19 [1] CRAN (R 4.2.1)
#> memoise 2.0.1 2021-11-26 [1] CRAN (R 4.2.1)
#> mime 0.12 2021-09-28 [1] CRAN (R 4.2.0)
#> miniUI 0.1.1.1 2018-05-18 [1] CRAN (R 4.2.1)
#> VP mixOmics * 6.21.0 2022-04-26 [?] Bioconductor (R 4.2.0) (on disk 6.20.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.2.1)
#> pillar 1.8.1 2022-08-19 [1] CRAN (R 4.2.1)
#> pkgbuild 1.3.1 2021-12-20 [1] CRAN (R 4.2.1)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.1)
#> pkgload 1.3.0 2022-06-27 [1] CRAN (R 4.2.1)
#> plyr 1.8.7 2022-03-24 [1] CRAN (R 4.2.1)
#> prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.2.1)
#> processx 3.7.0 2022-07-07 [1] CRAN (R 4.2.1)
#> profvis 0.3.7 2020-11-02 [1] CRAN (R 4.2.1)
#> promises 1.2.0.1 2021-02-11 [1] CRAN (R 4.2.1)
#> ps 1.7.1 2022-06-18 [1] CRAN (R 4.2.1)
#> purrr 0.3.4 2020-04-17 [1] CRAN (R 4.2.1)
#> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.2.1)
#> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.2.0)
#> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.2.0)
#> R.utils 2.12.0 2022-06-28 [1] CRAN (R 4.2.1)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.2.1)
#> rARPACK 0.11-0 2016-03-10 [1] CRAN (R 4.2.1)
#> RColorBrewer 1.1-3 2022-04-03 [1] CRAN (R 4.2.0)
#> Rcpp 1.0.9 2022-07-08 [1] CRAN (R 4.2.1)
#> remotes 2.4.2 2021-11-30 [1] CRAN (R 4.2.1)
#> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.2.1)
#> reshape2 1.4.4 2020-04-09 [1] CRAN (R 4.2.1)
#> rlang 1.0.5 2022-08-31 [1] CRAN (R 4.2.1)
#> rmarkdown 2.16 2022-08-24 [1] CRAN (R 4.2.1)
#> rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.2.1)
#> RSpectra 0.16-1 2022-04-24 [1] CRAN (R 4.2.1)
#> rstudioapi 0.14 2022-08-22 [1] CRAN (R 4.2.1)
#> scales 1.2.1 2022-08-20 [1] CRAN (R 4.2.1)
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.2.1)
#> shiny 1.7.2 2022-07-19 [1] CRAN (R 4.2.1)
#> stringi 1.7.8 2022-07-11 [1] CRAN (R 4.2.1)
#> stringr 1.4.1 2022-08-20 [1] CRAN (R 4.2.1)
#> styler 1.7.0 2022-03-13 [1] CRAN (R 4.2.1)
#> testthat * 3.1.4 2022-04-26 [1] CRAN (R 4.2.1)
#> tibble 3.1.8 2022-07-22 [1] CRAN (R 4.2.1)
#> tidyr 1.2.0 2022-02-01 [1] CRAN (R 4.2.1)
#> tidyselect 1.1.2 2022-02-21 [1] CRAN (R 4.2.1)
#> urlchecker 1.0.1 2021-11-30 [1] CRAN (R 4.2.1)
#> usethis 2.1.6 2022-05-25 [1] CRAN (R 4.2.1)
#> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.2.1)
#> vctrs 0.4.1 2022-04-13 [1] CRAN (R 4.2.1)
#> withr 2.5.0 2022-03-03 [1] CRAN (R 4.2.1)
#> xfun 0.32 2022-08-10 [1] CRAN (R 4.2.1)
#> xml2 1.3.3 2021-11-30 [1] CRAN (R 4.2.1)
#> xtable 1.8-4 2019-04-21 [1] CRAN (R 4.2.1)
#> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.2.0)
#>
#> [1] D:/Programs/Work Programs/R-4.2.1/library
#>
#> V ββ Loaded and on-disk version mismatch.
#> P ββ Loaded and on-disk path mismatch.
#>
#> ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
As this is not yet deployed, feel free to install this branch from the Github using the following steps:
- Navigate to the R directory on your computer. Ensure the folder is titled like βR-X.X.Xβ (in my case,
R-4.2.1
). This can be found using the following command in RStudio:
> file.path(R.home())
[1] "D:/Programs/Work Programs/R-4.2.1"
-
Go into this folder, then to
library
and look formixOmics
. Select themixOmics
folder and delete it. -
Load the devtools package (ensure you have it installed):
install.packages("devtools")
library(devtools)
- Download the package on the βissue-242β branch or via the specific pull request:
install_github("mixOmicsTeam/mixOmics",
ref = github_pull("243"))
# OR
install_github("mixOmicsTeam/mixOmics",
branch = "issue-242")
- Load the mixOmics library, and voilΓ !
library(mixOmics)
Thank you, @MaxBladen! This looks awesome! I will try it!
/Stef
Hej @MaxBladen. The code works very well! I have 4 models I want to compare and overlay all with one outcome and several curves are similar. Please, see figure below. How can I draw the curves in different colors instead?
Thanks a lot for your help!
/Stef
hi @stepra
Glad to know it is working. @MaxBladen has left the team now.
Looking at the auroc() function, we have ββ¦β arguments stating external optional arguments for plotting - line.col
for custom colors and legend.title
for custom legend title which means that you could either try βcol=β or any ggplot2 argument for color. It may work, it may not!
Kim-Anh
Thank you for the advice! Unfortunately, I could not get it to work.
/Stef
hi @stepra,
Ah that is a shame, I will be in the process of training a new maintainer, but it may take up to end of October to actually give you a code. If you have any R specialist around you, they will be able to help.
Kim-Anh