shbrief / GenomicSuperSignature

Interpretation of RNAseq experiments through robust, efficient comparison to public databases
https://shbrief.github.io/GenomicSuperSignature/
16 stars 7 forks source link

Questions about heatmap table function #22

Open HelloWorldLTY opened 2 years ago

HelloWorldLTY commented 2 years ago

Hi, I found that this step took me a pretty long time to run: image I waited for more than one hour with one 30 GB GPU from an HPC. Is it normal? Thanks a lot.

shbrief commented 2 years ago

It's not normal! Could you share your input data? I can double-check this from my side. Thanks!

p.s. Sorry for the delayed response. The notification keeps getting lost somehow. ;(

HelloWorldLTY commented 2 years ago

Hi, many thanks for your reply! I just run the codes listed on the website. https://shbrief.github.io/GenomicSuperSignature/articles/Quickstart.html image 1657782111029 But I can generate the next figure: image

shbrief commented 2 years ago

Hi @HelloWorldLTY, I can't reproduce this issue. Can you check whether BiocManager::valid("GenomicSuperSignature") returns TRUE? Also, can you try to save the output as pdf?

lwaldron commented 2 years ago

@HelloWorldLTY you mentioned you were using a GPU, is that correct or is it a typo for CPU?

lwaldron commented 2 years ago

Also, could you try running the following benchmark? It would help to be sure that your time is actually being spent evaluating the heatmapTable function, and not something else cluster scheduling-related. It should produce the output below, although if it really takes an hour to make each heatmap this won't finish in any reasonable amount of time. But in my benchmarking it only takes ~20ms per function call.

source("https://gist.githubusercontent.com/lwaldron/90ac62ef51d030a6f878aa0d11e3689a/raw/18687f7e18d9033cd333b2407b9117b2c1648558/benchmark_heatmapTable.R")
  BiocManager::version()
#> [1] '3.15'
  BiocManager::valid()
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> '?repositories' for details
#> 
#> replacement repositories:
#>     CRAN: https://cloud.r-project.org
#> Warning: 0 packages out-of-date; 39 packages too new
#> 
#> * sessionInfo()
#> 
#> R version 4.2.1 (2022-06-23)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 20.04.4 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              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> loaded via a namespace (and not attached):
#>  [1] rstudioapi_0.13     knitr_1.39          magrittr_2.0.3     
#>  [4] R.cache_0.15.0      rlang_1.0.4         fastmap_1.1.0      
#>  [7] fansi_1.0.3         stringr_1.4.0       styler_1.7.0       
#> [10] highr_0.9           tools_4.2.1         xfun_0.31          
#> [13] R.oo_1.25.0         utf8_1.2.2          cli_3.3.0          
#> [16] withr_2.5.0         htmltools_0.5.2     ellipsis_0.3.2     
#> [19] yaml_2.3.5          digest_0.6.29       tibble_3.1.7       
#> [22] lifecycle_1.0.1     crayon_1.5.1        BiocManager_1.30.18
#> [25] purrr_0.3.4         R.utils_2.12.0      vctrs_0.4.1        
#> [28] fs_1.5.2            glue_1.6.2          evaluate_0.15      
#> [31] rmarkdown_2.14      reprex_2.0.1        stringi_1.7.8      
#> [34] compiler_4.2.1      pillar_1.7.0        R.methodsS3_1.8.2  
#> [37] pkgconfig_2.0.3    
#> 
#> Bioconductor version '3.15'
#> 
#>   * 0 packages out-of-date
#>   * 39 packages too new
#> 
#> create a valid installation with
#> 
#>   BiocManager::install(c(
#>     "annotation", "AnnotationDbi", "AnnotationHub", "beachmat", "Biobase",
#>     "BiocFileCache", "BiocGenerics", "BiocNeighbors", "BiocParallel",
#>     "BiocSingular", "BioPlex", "Biostrings", "curatedMetagenomicData",
#>     "DECIPHER", "decontam", "DelayedArray", "DelayedMatrixStats",
#>     "DirichletMultinomial", "ExperimentHub", "GenomeInfoDb", "GenomicRanges",
#>     "HGNChelper", "interactiveDisplayBase", "IRanges", "KEGGREST",
#>     "MatrixGenerics", "mia", "MultiAssayExperiment", "S4Vectors",
#>     "ScaledMatrix", "scater", "scuttle", "SingleCellExperiment",
#>     "sparseMatrixStats", "SummarizedExperiment", "treeio",
#>     "TreeSummarizedExperiment", "XVector", "zlibbioc"
#>   ), update = TRUE, ask = FALSE)
#> 
#> more details: BiocManager::valid()$too_new, BiocManager::valid()$out_of_date

  suppressPackageStartupMessages({
    library(GenomicSuperSignature)
    library(bcellViper)
    library(microbenchmark)
  })

  RAVmodel <- getModel("PLIERpriors", load = TRUE)
#> [1] "downloading"
  data(bcellViper)
  dset
#> ExpressionSet (storageMode: lockedEnvironment)
#> assayData: 6249 features, 211 samples 
#>   element names: exprs 
#> protocolData: none
#> phenoData
#>   sampleNames: GSM44075 GSM44078 ... GSM44302 (211 total)
#>   varLabels: sampleID description detailed_description
#>   varMetadata: labelDescription
#> featureData: none
#> experimentData: use 'experimentData(object)'
#> Annotation:
  val_all <- validate(dset, RAVmodel)

  suppressMessages({
    microbenchmark(heatmapTable(
      val_all,
      RAVmodel,
      num.out = 5,
      swCutoff = 0
    ))
  })
#> Unit: milliseconds
#>                                                        expr     min       lq
#>  heatmapTable(val_all, RAVmodel, num.out = 5, swCutoff = 0) 18.1544 18.87651
#>      mean   median       uq      max neval
#>  21.89993 19.24291 21.69203 113.4549   100
sessionInfo()
#> R version 4.2.1 (2022-06-23)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 20.04.4 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              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> attached base packages:
#> [1] stats4    stats     graphics  grDevices utils     datasets  methods  
#> [8] base     
#> 
#> other attached packages:
#>  [1] microbenchmark_1.4.9        bcellViper_1.32.0          
#>  [3] GenomicSuperSignature_1.4.0 SummarizedExperiment_1.27.1
#>  [5] Biobase_2.57.1              GenomicRanges_1.49.0       
#>  [7] GenomeInfoDb_1.33.3         IRanges_2.31.0             
#>  [9] S4Vectors_0.35.1            BiocGenerics_0.43.0        
#> [11] MatrixGenerics_1.9.0        matrixStats_0.62.0         
#> 
#> loaded via a namespace (and not attached):
#>   [1] TH.data_1.1-1          colorspace_2.0-3       ggsignif_0.6.3        
#>   [4] rjson_0.2.21           ellipsis_0.3.2         circlize_0.4.15       
#>   [7] XVector_0.37.0         GlobalOptions_0.1.2    fs_1.5.2              
#>  [10] clue_0.3-61            rstudioapi_0.13        ggpubr_0.4.0          
#>  [13] bit64_4.0.5            mvtnorm_1.1-3          fansi_1.0.3           
#>  [16] splines_4.2.1          codetools_0.2-18       R.methodsS3_1.8.2     
#>  [19] doParallel_1.0.17      cachem_1.0.6           knitr_1.39            
#>  [22] broom_1.0.0            cluster_2.1.3          dbplyr_2.2.1          
#>  [25] png_0.1-7              R.oo_1.25.0            BiocManager_1.30.18   
#>  [28] readr_2.1.2            compiler_4.2.1         httr_1.4.3            
#>  [31] backports_1.4.1        assertthat_0.2.1       Matrix_1.4-1          
#>  [34] fastmap_1.1.0          cli_3.3.0              htmltools_0.5.2       
#>  [37] tools_4.2.1            gtable_0.3.0           glue_1.6.2            
#>  [40] GenomeInfoDbData_1.2.8 dplyr_1.0.9            rappdirs_0.3.3        
#>  [43] Rcpp_1.0.9             carData_3.0-5          styler_1.7.0          
#>  [46] vctrs_0.4.1            iterators_1.0.14       xfun_0.31             
#>  [49] stringr_1.4.0          lifecycle_1.0.1        rstatix_0.7.0         
#>  [52] MASS_7.3-58            zoo_1.8-10             zlibbioc_1.43.0       
#>  [55] scales_1.2.0           hms_1.1.1              parallel_4.2.1        
#>  [58] sandwich_3.0-2         RColorBrewer_1.1-3     ComplexHeatmap_2.12.0 
#>  [61] yaml_2.3.5             curl_4.3.2             memoise_2.0.1         
#>  [64] ggplot2_3.3.6          stringi_1.7.8          RSQLite_2.2.14        
#>  [67] highr_0.9              foreach_1.5.2          filelock_1.0.2        
#>  [70] shape_1.4.6            rlang_1.0.4            pkgconfig_2.0.3       
#>  [73] bitops_1.0-7           evaluate_0.15          lattice_0.20-45       
#>  [76] purrr_0.3.4            bit_4.0.4              tidyselect_1.1.2      
#>  [79] magrittr_2.0.3         R6_2.5.1               magick_2.7.3          
#>  [82] generics_0.1.3         multcomp_1.4-19        DelayedArray_0.23.0   
#>  [85] DBI_1.1.3              pillar_1.7.0           withr_2.5.0           
#>  [88] survival_3.3-1         abind_1.4-5            RCurl_1.98-1.7        
#>  [91] tibble_3.1.7           crayon_1.5.1           car_3.1-0             
#>  [94] utf8_1.2.2             BiocFileCache_2.5.0    tzdb_0.3.0            
#>  [97] rmarkdown_2.14         GetoptLong_1.0.5       grid_4.2.1            
#> [100] blob_1.2.3             reprex_2.0.1           digest_0.6.29         
#> [103] R.cache_0.15.0         tidyr_1.2.0            R.utils_2.12.0        
#> [106] munsell_0.5.0

Created on 2022-07-15 by the reprex package (v2.0.1)

HelloWorldLTY commented 2 years ago

Hi, thanks for your help. For the valid instruction, it returns true. image However, for the source code, I cannot run it. `'getOption("repos")' replaces Bioconductor standard repositories, see '?repositories' for details

replacement repositories: CRAN: https://cran.r-project.org/

Bioconductor version 3.14 (BiocManager 1.30.18), R 4.1.3 (2022-03-10)

Warning message: “package(s) not installed when version(s) same as current; use force = TRUE to re-install: 'GenomicSuperSignature' 'bcellViper'” Installing package(s) 'microbenchmark', 'reprex'

Updating HTML index of packages in '.Library'

Making 'packages.html' ... done

Old packages: 'bslib', 'callr', 'farver', 'gert', 'lme4', 'MASS', 'processx', 'Rcpp', 'recipes', 'rlang', 'sass', 'stringi'

Updating HTML index of packages in '.Library'

Making 'packages.html' ... done

✖ Install the styler package in order to use style = TRUE.

ℹ Non-interactive session, setting html_preview = FALSE.

ℹ Rendering reprex...

CLIPR_ALLOW has not been set, so clipr will not run interactively`

Could you please help me solve it? Thanks a lot.