mixOmicsTeam / mixOmics

Development repository for the Bioconductor package 'mixOmics '
http://mixomics.org/
153 stars 51 forks source link

`auroc()` unable to operate on mint.block.(s)plsda objects #246

Closed Max-Bladen closed 1 year ago

Max-Bladen commented 1 year ago

🐞 Describe the bug: The auroc() function raises an ambiguous error when a mint.block.(s)plsda object is passed to it. This is despite there being the auroc.mint.block.plsda() function - implying that auroc() should function in this scenario.


🔍 reprex results from reproducible example including sessioninfo():

library(mixOmics)
data(breast.TCGA)
mrna <- rbind(breast.TCGA$data.train$mrna, breast.TCGA$data.test$mrna)
mirna <- rbind(breast.TCGA$data.train$mirna, breast.TCGA$data.test$mirna)
X <- list(mrna = mrna, mirna = mirna)
Y <- c(breast.TCGA$data.train$subtype, breast.TCGA$data.test$subtype)

study <- c(rep("study1",150), rep("study2",70))

m.b.model <- mint.block.splsda(X, Y, study=study, design="full")
auroc(m.b.model)
#> Warning in max(cumDim[cumDim <= lstats]): no non-missing arguments to max;
#> returning -Inf
#> Error in array(STATS, dims[perm]): 'data' must be of a vector type, was 'NULL'

Created on 2022-09-26 with reprex v2.0.2

Session info ``` r 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-26 #> 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 #> 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) #> DBI 1.1.3 2022-06-18 [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) #> 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) #> 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) #> 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) #> 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) #> mixOmics * 6.20.0 2022-04-26 [1] Bioconductor (R 4.2.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) #> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.1) #> plyr 1.8.7 2022-03-24 [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) #> 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) #> 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) #> 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) #> 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) #> 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) #> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.2.0) #> #> [1] D:/Programs/Work Programs/R-4.2.1/library #> #> ────────────────────────────────────────────────────────────────────────────── ```


🤔 Expected behavior: The auroc() function should behave normally and not raise an error at this point.


💡 Possible solution: Likely a result of the mean_centering_per_study() function returning center and scale attributes for each study and not the global levels. When auroc() calls predict(), the global center and scale attributes can't be found and an error is raised