spatialLIBD
spatialLIBD copied to clipboard
[BUG] Error during extract and reformat enrichment results when using `registration_wrapper`
Describe the bug
Thanks for creating and maintaining the awesome spatialLIBD
package. Recently, I was trying to conduct spatial registration by running registration_wrapper
function on a SpatialExperiment
object. I encountered the error message Error in combn(colnames(registration_model)[regis_cols], 2) : n < m
(please find the reproducible example below), which I have trouble interpreting the error message and fix it.
The spatialLIBD
is at v1.14.1 installed via Bioconductor version '3.18'
Provide a minimally reproducible example (reprex)
# Load packages -----------------------------------------------------------
library(here)
#> here() starts at /private/var/folders/ff/m8yvwsq51sjg43xscd3x1tmr0000gn/T/RtmpWA9JNL/reprex-774f49f557da-stony-moth
library(SpatialExperiment)
#> Loading required package: SingleCellExperiment
#> Loading required package: SummarizedExperiment
#> Loading required package: MatrixGenerics
#> Loading required package: matrixStats
#>
#> Attaching package: 'MatrixGenerics'
#> The following objects are masked from 'package:matrixStats':
#>
#> colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse,
#> colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
#> colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs,
#> colMads, colMaxs, colMeans2, colMedians, colMins, colOrderStats,
#> colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds,
#> colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
#> colWeightedMeans, colWeightedMedians, colWeightedSds,
#> colWeightedVars, rowAlls, rowAnyNAs, rowAnys, rowAvgsPerColSet,
#> rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
#> rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps,
#> rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins,
#> rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
#> rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
#> rowWeightedMads, rowWeightedMeans, rowWeightedMedians,
#> rowWeightedSds, rowWeightedVars
#> Loading required package: GenomicRanges
#> Loading required package: stats4
#> Loading required package: BiocGenerics
#>
#> Attaching package: 'BiocGenerics'
#> The following objects are masked from 'package:stats':
#>
#> IQR, mad, sd, var, xtabs
#> The following objects are masked from 'package:base':
#>
#> anyDuplicated, aperm, append, as.data.frame, basename, cbind,
#> colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
#> get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply,
#> match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
#> Position, rank, rbind, Reduce, rownames, sapply, setdiff, sort,
#> table, tapply, union, unique, unsplit, which.max, which.min
#> Loading required package: S4Vectors
#>
#> Attaching package: 'S4Vectors'
#> The following object is masked from 'package:utils':
#>
#> findMatches
#> The following objects are masked from 'package:base':
#>
#> expand.grid, I, unname
#> Loading required package: IRanges
#> Loading required package: GenomeInfoDb
#> Loading required package: Biobase
#> Welcome to Bioconductor
#>
#> Vignettes contain introductory material; view with
#> 'browseVignettes()'. To cite Bioconductor, see
#> 'citation("Biobase")', and for packages 'citation("pkgname")'.
#>
#> Attaching package: 'Biobase'
#> The following object is masked from 'package:MatrixGenerics':
#>
#> rowMedians
#> The following objects are masked from 'package:matrixStats':
#>
#> anyMissing, rowMedians
library(spatialLIBD)
library(SingleR)
# library(tidyverse)
# Load spatialDLPFC data ---------------------------------------------------
spe <- fetch_data(type = "spatialDLPFC_Visium")
#> 2024-01-02 13:33:34.255759 loading file /Users/bguo6/Library/Caches/org.R-project.R/R/BiocFileCache/5449288a26e9_spe_filtered_final_with_clusters_and_deconvolution_results.rds%3Fdl%3D1
set.seed(1)
scr_idx <- sample(unique(spe$sample_id), 15)
tar_idx <- setdiff(unique(spe$sample_id), scr_idx)
src_spe <- spe[,spe$sample_id %in% scr_idx]
tar_spe <- spe[,spe$sample_id %in% tar_idx]
# Spatial Registration ----------------------------------------------------
## Get enrichment statistics from source ---------------------------------
sce_modeling_results <- registration_wrapper(
sce = src_spe,
# sce = src_spe,
var_registration = "BayesSpace_harmony_09",
var_sample_id = "sample_id",
gene_ensembl = "gene_id",
gene_name = "gene_name"
)
#> 2024-01-02 13:34:59.526861 make pseudobulk object
#> 2024-01-02 13:35:07.619735 dropping 0 pseudo-bulked samples that are below 'min_ncells'.
#> 2024-01-02 13:35:07.650823 drop lowly expressed genes
#> 2024-01-02 13:35:07.781492 normalize expression
#> 2024-01-02 13:35:08.545616 create model matrix
#> 2024-01-02 13:35:08.696194 run duplicateCorrelation()
#> 2024-01-02 13:35:26.808509 The estimated correlation is: 0.960849320333061
#> 2024-01-02 13:35:26.811491 computing enrichment statistics
#> 2024-01-02 13:35:28.62727 extract and reformat enrichment results
#> Error in combn(colnames(registration_model)[regis_cols], 2): n < m
Created on 2024-01-02 with reprex v2.0.2
Expected behavior
I would expect that registration_wrapper
would run successfully.
R Session Information
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.3.2 (2023-10-31)
#> os macOS Sonoma 14.2.1
#> system aarch64, darwin20
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz America/New_York
#> date 2024-01-02
#> pandoc 3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> abind 1.4-5 2016-07-21 [1] CRAN (R 4.3.0)
#> AnnotationDbi 1.64.1 2023-11-02 [1] Bioconductor
#> AnnotationHub 3.10.0 2023-10-26 [1] Bioconductor
#> attempt 0.3.1 2020-05-03 [1] CRAN (R 4.3.0)
#> beachmat 2.18.0 2023-10-24 [1] Bioconductor
#> beeswarm 0.4.0 2021-06-01 [1] CRAN (R 4.3.0)
#> benchmarkme 1.0.8 2022-06-12 [1] CRAN (R 4.3.0)
#> benchmarkmeData 1.0.4 2020-04-23 [1] CRAN (R 4.3.0)
#> Biobase * 2.62.0 2023-10-26 [1] Bioconductor
#> BiocFileCache 2.10.1 2023-10-26 [1] Bioconductor
#> BiocGenerics * 0.48.1 2023-11-02 [1] Bioconductor
#> BiocIO 1.12.0 2023-10-26 [1] Bioconductor
#> BiocManager 1.30.22 2023-08-08 [1] CRAN (R 4.3.0)
#> BiocNeighbors 1.20.1 2023-12-18 [1] Bioconductor 3.18 (R 4.3.0)
#> BiocParallel 1.36.0 2023-10-26 [1] Bioconductor
#> BiocSingular 1.18.0 2023-10-24 [1] Bioconductor
#> BiocVersion 3.18.1 2023-11-18 [1] Bioconductor 3.18 (R 4.3.2)
#> Biostrings 2.70.1 2023-10-26 [1] Bioconductor
#> bit 4.0.5 2022-11-15 [1] CRAN (R 4.3.0)
#> bit64 4.0.5 2020-08-30 [1] CRAN (R 4.3.0)
#> bitops 1.0-7 2021-04-24 [1] CRAN (R 4.3.0)
#> blob 1.2.4 2023-03-17 [1] CRAN (R 4.3.0)
#> bslib 0.6.1 2023-11-28 [1] CRAN (R 4.3.1)
#> cachem 1.0.8 2023-05-01 [1] CRAN (R 4.3.0)
#> cli 3.6.2 2023-12-11 [1] CRAN (R 4.3.1)
#> codetools 0.2-19 2023-02-01 [1] CRAN (R 4.3.2)
#> colorspace 2.1-0 2023-01-23 [1] CRAN (R 4.3.0)
#> config 0.3.2 2023-08-30 [1] CRAN (R 4.3.0)
#> cowplot 1.1.2 2023-12-15 [1] CRAN (R 4.3.1)
#> crayon 1.5.2 2022-09-29 [1] CRAN (R 4.3.0)
#> curl 5.2.0 2023-12-08 [1] CRAN (R 4.3.1)
#> data.table 1.14.10 2023-12-08 [1] CRAN (R 4.3.1)
#> DBI 1.2.0 2023-12-21 [1] CRAN (R 4.3.1)
#> dbplyr 2.4.0 2023-10-26 [1] CRAN (R 4.3.1)
#> DelayedArray 0.28.0 2023-10-24 [1] Bioconductor
#> DelayedMatrixStats 1.24.0 2023-10-24 [1] Bioconductor
#> digest 0.6.33 2023-07-07 [1] CRAN (R 4.3.0)
#> doParallel 1.0.17 2022-02-07 [1] CRAN (R 4.3.0)
#> dotCall64 1.1-1 2023-11-28 [1] CRAN (R 4.3.1)
#> dplyr 1.1.4 2023-11-17 [1] CRAN (R 4.3.1)
#> DT 0.31 2023-12-09 [1] CRAN (R 4.3.1)
#> edgeR 4.0.3 2023-12-09 [1] Bioconductor 3.18 (R 4.3.2)
#> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.3.0)
#> evaluate 0.23 2023-11-01 [1] CRAN (R 4.3.1)
#> ExperimentHub 2.10.0 2023-10-26 [1] Bioconductor
#> fansi 1.0.6 2023-12-08 [1] CRAN (R 4.3.1)
#> fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.3.0)
#> fields 15.2 2023-08-17 [1] CRAN (R 4.3.0)
#> filelock 1.0.3 2023-12-11 [1] CRAN (R 4.3.1)
#> foreach 1.5.2 2022-02-02 [1] CRAN (R 4.3.0)
#> fs 1.6.3 2023-07-20 [1] CRAN (R 4.3.0)
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.3.0)
#> GenomeInfoDb * 1.38.1 2023-11-11 [1] Bioconductor
#> GenomeInfoDbData 1.2.11 2023-11-08 [1] Bioconductor
#> GenomicAlignments 1.38.0 2023-10-26 [1] Bioconductor
#> GenomicRanges * 1.54.1 2023-10-30 [1] Bioconductor
#> ggbeeswarm 0.7.2 2023-04-29 [1] CRAN (R 4.3.0)
#> ggplot2 3.4.4 2023-10-12 [1] CRAN (R 4.3.1)
#> ggrepel 0.9.4 2023-10-13 [1] CRAN (R 4.3.1)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.3.0)
#> golem 0.4.1 2023-06-05 [1] CRAN (R 4.3.0)
#> gridExtra 2.3 2017-09-09 [1] CRAN (R 4.3.0)
#> gtable 0.3.4 2023-08-21 [1] CRAN (R 4.3.0)
#> here * 1.0.1 2020-12-13 [1] CRAN (R 4.3.0)
#> htmltools 0.5.7 2023-11-03 [1] CRAN (R 4.3.1)
#> htmlwidgets 1.6.4 2023-12-06 [1] CRAN (R 4.3.1)
#> httpuv 1.6.13 2023-12-06 [1] CRAN (R 4.3.1)
#> httr 1.4.7 2023-08-15 [1] CRAN (R 4.3.0)
#> interactiveDisplayBase 1.40.0 2023-10-26 [1] Bioconductor
#> IRanges * 2.36.0 2023-10-26 [1] Bioconductor
#> irlba 2.3.5.1 2022-10-03 [1] CRAN (R 4.3.0)
#> iterators 1.0.14 2022-02-05 [1] CRAN (R 4.3.0)
#> jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.3.0)
#> jsonlite 1.8.8 2023-12-04 [1] CRAN (R 4.3.1)
#> KEGGREST 1.42.0 2023-10-26 [1] Bioconductor
#> knitr 1.45 2023-10-30 [1] CRAN (R 4.3.1)
#> later 1.3.2 2023-12-06 [1] CRAN (R 4.3.1)
#> lattice 0.21-9 2023-10-01 [1] CRAN (R 4.3.2)
#> lazyeval 0.2.2 2019-03-15 [1] CRAN (R 4.3.0)
#> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.3.0)
#> limma 3.58.1 2023-11-02 [1] Bioconductor
#> locfit 1.5-9.8 2023-06-11 [1] CRAN (R 4.3.0)
#> magick 2.8.2 2023-12-20 [1] CRAN (R 4.3.1)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.0)
#> maps 3.4.2 2023-12-15 [1] CRAN (R 4.3.1)
#> Matrix 1.6-1.1 2023-09-18 [1] CRAN (R 4.3.2)
#> MatrixGenerics * 1.14.0 2023-10-26 [1] Bioconductor
#> matrixStats * 1.2.0 2023-12-11 [1] CRAN (R 4.3.1)
#> memoise 2.0.1 2021-11-26 [1] CRAN (R 4.3.0)
#> mime 0.12 2021-09-28 [1] CRAN (R 4.3.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.3.0)
#> paletteer 1.5.0 2022-10-19 [1] CRAN (R 4.3.0)
#> pillar 1.9.0 2023-03-22 [1] CRAN (R 4.3.0)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.3.0)
#> plotly 4.10.3 2023-10-21 [1] CRAN (R 4.3.1)
#> png 0.1-8 2022-11-29 [1] CRAN (R 4.3.0)
#> promises 1.2.1 2023-08-10 [1] CRAN (R 4.3.0)
#> purrr 1.0.2 2023-08-10 [1] CRAN (R 4.3.0)
#> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.3.0)
#> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.3.0)
#> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.3.0)
#> R.utils 2.12.3 2023-11-18 [1] CRAN (R 4.3.1)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.3.0)
#> rappdirs 0.3.3 2021-01-31 [1] CRAN (R 4.3.0)
#> RColorBrewer 1.1-3 2022-04-03 [1] CRAN (R 4.3.0)
#> Rcpp 1.0.11 2023-07-06 [1] CRAN (R 4.3.0)
#> RCurl 1.98-1.13 2023-11-02 [1] CRAN (R 4.3.1)
#> rematch2 2.1.2 2020-05-01 [1] CRAN (R 4.3.0)
#> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.3.0)
#> restfulr 0.0.15 2022-06-16 [1] CRAN (R 4.3.0)
#> rjson 0.2.21 2022-01-09 [1] CRAN (R 4.3.0)
#> rlang 1.1.2 2023-11-04 [1] CRAN (R 4.3.0)
#> rmarkdown 2.25 2023-09-18 [1] CRAN (R 4.3.1)
#> rprojroot 2.0.4 2023-11-05 [1] CRAN (R 4.3.0)
#> Rsamtools 2.18.0 2023-10-26 [1] Bioconductor
#> RSQLite 2.3.4 2023-12-08 [1] CRAN (R 4.3.1)
#> rstudioapi 0.15.0 2023-07-07 [1] CRAN (R 4.3.0)
#> rsvd 1.0.5 2021-04-16 [1] CRAN (R 4.3.0)
#> rtracklayer 1.62.0 2023-10-26 [1] Bioconductor
#> S4Arrays 1.2.0 2023-10-26 [1] Bioconductor
#> S4Vectors * 0.40.2 2023-11-25 [1] Bioconductor 3.18 (R 4.3.2)
#> sass 0.4.8 2023-12-06 [1] CRAN (R 4.3.1)
#> ScaledMatrix 1.10.0 2023-10-24 [1] Bioconductor
#> scales 1.3.0 2023-11-28 [1] CRAN (R 4.3.1)
#> scater 1.30.1 2023-11-16 [1] Bioconductor
#> scuttle 1.12.0 2023-10-24 [1] Bioconductor
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.3.0)
#> shiny 1.8.0 2023-11-17 [1] CRAN (R 4.3.1)
#> shinyWidgets 0.8.0 2023-08-30 [1] CRAN (R 4.3.0)
#> SingleCellExperiment * 1.24.0 2023-10-24 [1] Bioconductor
#> SingleR * 2.4.0 2023-10-24 [1] Bioconductor
#> spam 2.10-0 2023-10-23 [1] CRAN (R 4.3.1)
#> SparseArray 1.2.2 2023-11-08 [1] Bioconductor
#> sparseMatrixStats 1.14.0 2023-10-26 [1] Bioconductor
#> SpatialExperiment * 1.12.0 2023-10-26 [1] Bioconductor
#> spatialLIBD * 1.14.1 2023-11-30 [1] Bioconductor 3.18 (R 4.3.0)
#> statmod 1.5.0 2023-01-06 [1] CRAN (R 4.3.0)
#> stringi 1.8.3 2023-12-11 [1] CRAN (R 4.3.1)
#> stringr 1.5.1 2023-11-14 [1] CRAN (R 4.3.1)
#> styler 1.10.2 2023-08-29 [1] CRAN (R 4.3.0)
#> SummarizedExperiment * 1.32.0 2023-10-24 [1] Bioconductor
#> tibble 3.2.1 2023-03-20 [1] CRAN (R 4.3.0)
#> tidyr 1.3.0 2023-01-24 [1] CRAN (R 4.3.0)
#> tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.3.0)
#> utf8 1.2.4 2023-10-22 [1] CRAN (R 4.3.1)
#> vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.3.1)
#> vipor 0.4.7 2023-12-18 [1] CRAN (R 4.3.1)
#> viridis 0.6.4 2023-07-22 [1] CRAN (R 4.3.0)
#> viridisLite 0.4.2 2023-05-02 [1] CRAN (R 4.3.0)
#> withr 2.5.2 2023-10-30 [1] CRAN (R 4.3.1)
#> xfun 0.41 2023-11-01 [1] CRAN (R 4.3.1)
#> XML 3.99-0.16 2023-11-29 [1] CRAN (R 4.3.1)
#> xtable 1.8-4 2019-04-21 [1] CRAN (R 4.3.0)
#> XVector 0.42.0 2023-10-26 [1] Bioconductor
#> yaml 2.3.8 2023-12-11 [1] CRAN (R 4.3.1)
#> zlibbioc 1.48.0 2023-10-26 [1] Bioconductor
#>
#> [1] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library
#>
#> ──────────────────────────────────────────────────────────────────────────────