zdk123 / SpiecEasi

Sparse InversE Covariance estimation for Ecological Association and Statistical Inference
GNU General Public License v3.0
192 stars 68 forks source link

renv::update is interfering with pulsar update method dispatching #166

Open alex-d13 opened 3 years ago

alex-d13 commented 3 years ago

Hi, I am getting a strange error message, when I try to run SpiecEasi:

spiec.easi(phylo, method='mb', lambda.min.ratio=1e-2, nlambda=20, pulsar.params=list(rep.num=50)) Applying data transformations... Error in stop(err) : bad error message

My phyloseq-object looks like this:

phyloseq-class experiment-level object
otu_table()   OTU Table:         [ 124 taxa and 24 samples ]
sample_data() Sample Data:       [ 24 samples by 10 sample variables ]
tax_table()   Taxonomy Table:    [ 124 taxa by 7 taxonomic ranks ]
phy_tree()    Phylogenetic Tree: [ 124 tips and 122 internal nodes ]

Do you have an idea, what is going on here?

alex-d13 commented 3 years ago

I am suspecting, that some other package is messing SpiecEasi up, do you maybe have an idea, which one it could be? My session-info:

R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=de_DE.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=de_DE.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=de_DE.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats4    parallel  stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
 [1] SpiecEasi_1.0.7          DECIPHER_2.14.0          RSQLite_2.2.4            proxy_0.4-25             renv_0.13.1             
 [6] shinydashboardPlus_2.0.0 shinydashboard_0.7.1     shinyWidgets_0.6.0       fontawesome_0.1.0        Biostrings_2.54.0       
[11] XVector_0.26.0           IRanges_2.20.2           S4Vectors_0.24.4         BiocGenerics_0.32.0      dada2_1.14.1            
[16] waiter_0.2.0             biomformat_1.14.0        mdine_1.0.2              MLmetrics_1.1.1          MLeval_0.3              
[21] shinyjs_2.0.0            gbm_2.1.8                ranger_0.12.1            caret_6.0-86             NbClust_3.0             
[26] phyloseq_1.30.0          Matrix_1.3-2             igraph_1.2.6             themetagenomics_1.0.2    Rcpp_1.0.6              
[31] umap_0.2.7.0             tidyr_1.1.3              textshape_1.7.1          shiny_1.6.0              Rtsne_0.15              
[36] reshape2_1.4.4           RColorBrewer_1.1-2       phangorn_2.6.2           klaR_0.6-15              MASS_7.3-53.1           
[41] networkD3_0.4            heatmaply_1.2.1          viridis_0.5.1            viridisLite_0.3.0        plotly_4.9.3            
[46] ggplot2_3.3.3            GUniFrac_1.1             matrixStats_0.58.0       ape_5.4-1                vegan_2.5-7             
[51] lattice_0.20-41          permute_0.9-5            fpc_2.2-9                DT_0.17                  cluster_2.1.1           
[56] data.table_1.14.0        ade4_1.7-16             

loaded via a namespace (and not attached):
  [1] utf8_1.2.1                  questionr_0.7.4             reticulate_1.18             tidyselect_1.1.0            lme4_1.1-26                
  [6] htmlwidgets_1.5.3           BiocParallel_1.20.1         grid_3.6.3                  TSP_1.1-10                  combinat_0.0-8             
 [11] pROC_1.17.0.1               munsell_0.5.0               codetools_0.2-18            statmod_1.4.35              miniUI_0.1.1.1             
 [16] withr_2.4.1                 colorspace_2.0-0            Biobase_2.46.0              highr_0.8                   rstudioapi_0.13            
 [21] robustbase_0.93-7           huge_1.3.4.1                rstan_2.21.2                GenomeInfoDbData_1.2.2      hwriter_1.3.2              
 [26] bit64_4.0.5                 rhdf5_2.30.1                vctrs_0.3.6                 generics_0.1.0              ipred_0.9-11               
 [31] GenomeInfoDb_1.22.1         diptest_0.75-7              R6_2.5.0                    VGAM_1.1-5                  pulsar_0.3.7               
 [36] seriation_1.2-9             flexmix_2.3-17              cachem_1.0.4                DelayedArray_0.12.3         bitops_1.0-6               
 [41] assertthat_0.2.1            promises_1.2.0.1            scales_1.1.1                nnet_7.3-15                 gtable_0.3.0               
 [46] processx_3.4.5              timeDate_3043.102           rlang_0.4.10                splines_3.6.3               lazyeval_0.2.2             
 [51] ModelMetrics_1.2.2.2        inline_0.3.17               BiocManager_1.30.10         httpuv_1.5.5                tools_3.6.3                
 [56] lava_1.6.9                  ellipsis_0.3.1              jquerylib_0.1.3             plyr_1.8.6                  progress_1.2.2             
 [61] zlibbioc_1.32.0             RCurl_1.98-1.3              purrr_0.3.4                 ps_1.6.0                    prettyunits_1.1.1          
 [66] rpart_4.1-15                openssl_1.4.3               SummarizedExperiment_1.16.1 haven_2.3.1                 magrittr_2.0.1             
 [71] RSpectra_0.16-0             hms_1.0.0                   mime_0.10                   xtable_1.8-4                jpeg_0.1-8.1               
 [76] mclust_5.4.7                rstantools_2.1.1            gridExtra_2.3               compiler_3.6.3              tibble_3.1.0               
 [81] V8_3.4.0                    crayon_1.4.1                minqa_1.2.4                 StanHeaders_2.21.0-7        htmltools_0.5.1.1          
 [86] mgcv_1.8-34                 later_1.1.0.1               RcppParallel_5.0.3          lubridate_1.7.10            DBI_1.1.1                  
 [91] boot_1.3-27                 ShortRead_1.44.3            cli_2.3.1                   quadprog_1.5-8              gower_0.2.2                
 [96] GenomicRanges_1.38.0        forcats_0.5.1               pkgconfig_2.0.3             GenomicAlignments_1.22.1    registry_0.5-1             
[101] recipes_0.1.15              foreach_1.5.1               lda_1.4.2                   bslib_0.2.4                 multtest_2.42.0            
[106] webshot_0.5.2               prodlim_2019.11.13          stringr_1.4.0               callr_3.5.1                 digest_0.6.27              
[111] fastmatch_1.1-0             dendextend_1.14.0           curl_4.3                    kernlab_0.9-29              Rsamtools_2.2.3            
[116] modeltools_0.2-23           nloptr_1.2.2.2              lifecycle_1.0.0             nlme_3.1-152                jsonlite_1.7.2             
[121] Rhdf5lib_1.8.0              askpass_1.1                 fansi_0.4.2                 labelled_2.8.0              pillar_1.5.1               
[126] loo_2.4.1                   fastmap_1.1.0               httr_1.4.2                  DEoptimR_1.0-8              pkgbuild_1.2.0             
[131] survival_3.2-10             glue_1.4.2                  png_0.1-7                   prabclus_2.3-2              iterators_1.0.13           
[136] bit_4.0.4                   sass_0.3.1                  class_7.3-18                stringi_1.5.3               blob_1.2.1                 
[141] memoise_2.0.0               latticeExtra_0.6-29         dplyr_1.0.5    
zdk123 commented 3 years ago

Thanks for the report. I did some googling and this "bad error message" may be a result of a too-long error being returned from an assertion.

I do see from your package list that your SpiecEasi version is slightly out of date (we're up to 1.1.0 now). You can try upgrading that, but the neighborhood selection code hasn't been touched in a while so I'd be surprised if that made a difference.

If you could provide a reproducible example (if you would be willing to share private data via email) that would be much appreciated.

alex-d13 commented 3 years ago

Hi, thanks for the quick response. I found the issue already, it was the renv package. When I unload it with detach("package:renv"), SpiecEasi works just fine again. It probably messes up some base functions, that you are using.

zdk123 commented 3 years ago

great, thanks for the fix. I'll update the issue title and try to reproduce with the test data.

I was able to reproduce the issue by loading renv before running the tests. It looks like we're inadvertently dispatching to renv::update instead of stats::update when that package is loaded.

This may be related to #47.