satijalab / seurat

R toolkit for single cell genomics
http://www.satijalab.org/seurat
Other
2.29k stars 915 forks source link

Need guidance on switching to Seurat5 with multimodal data from multiple samples. #7187

Closed mossconfuse closed 1 year ago

mossconfuse commented 1 year ago

I have multimodal (RNA and ATAC seq) data. I want to make use of the tools offered in seurat v5, but just recreating or converting my data in the new v5 format is not straightforward.

Trying to recreate my merged object using the same code I used previously runs into an error:

  |======================================================================| 100%
Binding matrix rows
Error in validObject(object = .Object) : 
  invalid class "Seurat" object: all assays must have a key
Calls: merge ... new -> initialize -> initialize -> .local -> validObject
Execution halted

Here is the code to create and merge the seurats (This worked with previous seurat versions):

#######################################################
#  Create Seurat Object
#######################################################
#
experiment = c("W_T00","W_T06","W_T12","S_T00","S_T06","S_T12")
inputdata <-Read10X_h5
ppsn <- CreateSeuratObject

for(sample in experiment){

    print(paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/filtered_feature_bc_matrix.h5"))

  inputdata <- Read10X_h5(paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/filtered_feature_bc_matrix.h5"))

  # extract RNA and ATAC data
  rna_counts <- inputdata$`Gene Expression`
  atac_counts <- inputdata$Peaks

  # Create Seurat object (P. patens single nuclei)
  sample_seurat <- CreateSeuratObject(counts = rna_counts, project = sample)
  sample_seurat[["percent.mt"]] <- PercentageFeatureSet(sample_seurat, pattern = "^MT-")

  # Add the ATAC-seq data
  # we'll only use peaks in standard chromosomes
  grange.counts <- StringToGRanges(rownames(atac_counts), sep = c(":", "-"))
  grange.use <- seqnames(grange.counts) %in% standardChromosomes(grange.counts)
  atac_counts <- atac_counts[as.vector(grange.use), ]

  frag.file <- paste0("/myPath/runCellRanger-arc_Count_2022_12_26",sample,"/outs/atac_fragments.tsv.gz")

sample_seurat[["ATAC"]] <- CreateChromatinAssay(
   counts = atac_counts,
   sep = c(":", "-"),
   fragments = frag.file,
   min.cells = 10,
   annotation = annotation
 )

  assign(paste0(sample,"_seurat"), sample_seurat)
  rm(rna_counts, atac_counts, grange.counts, grange.use, frag.file, inputdata, sample_seurat)
}

 ppsn <- merge(Wt_T00_seurat, y = c(W_T06_seurat, W_T12_seurat, S_T00_seurat, S_T06_seurat, S_T12_seurat), add.cell.ids = experiment, project = "ppsn")

   rm(list=ls(pattern = '_seurat$'))

I have also considered switching my current seurat object to the v5 format using split:

> ppsnV5 <- split(ppsn, f = ppsn@meta.data$orig.ident)
Warning: Assay peaks changing from ChromatinAssay to Assay5
Warning message:
In split.Assay(x = x[[assay]], f = f, drop = drop, layers = layers,  :
  Input is a v3 assay and split only works for v5 assay.
It is converted to v5 assay

But it does the split with just the current active assay? How do I ensure splitting of all four assays present in my object? Or am I misunderstanding something? Do I have to run split reiteratively for each assay in the object?

yuhanH commented 1 year ago

hi @mossconfuse ChromatinAssay is still a v3 assay which cannot be split. V5 specific functions will not work on current ChromatinAssay. You can split assay individually.

ppsn[['RNA']] <- split(ppsn[['RNA']], f = ppsn@meta.data$orig.ident)
mossconfuse commented 1 year ago

Thank you @yuhanH . I am not entirely sure how to reconcile these issues, and because I keep stumbling into new problems with V5, I am trying to revert back to the older Seurat version.

I made a problem for myself though. Previously I had part of my R analysis as a script on our campus server. I used this to load the matrices, build the initial seurat objects with multimodal data (ATAC and RNA), merge objects for 6 samples and to do the linkPeaks assay. It all worked well and I could produce a RData object that I could download to my computer and play with on my PC's R studio. With the latest v5 release, I installed the v5 to my conda environment and tried to build a v5 merged Seurat object but it kept failing.

As I showed in my original example, I still get the error:

Error in validObject(object = .Object) : 
  invalid class "Seurat" object: all assays must have a key
Calls: merge ... new -> initialize -> initialize -> .local -> validObject
Execution halted

during the merge. I have checked my individual objects. They have @assays

> Wt_T00_seurat@assays
$RNA
Assay (v5) data with 33328 features for 2648 cells
First 10 features:
 3' rps12, 3' rps12.1, rps7, rps7.1, ndhB, ndhB.1, rps12, rps12.1, trnL, trnL.1 
Layers:
 counts 

$ATAC
ChromatinAssay data with 17333 features for 2648 cells
Variable features: 0 
Genome: 
Annotation present: TRUE 
Motifs present: FALSE 
Fragment files: 1 

and keys

> Keys(Wt_T00_seurat)
meta.data       RNA      ATAC 
    "md_"    "rna_"   "atac_" 

I have tried to switch back to the old Seurat:

> options(Seurat.object.assay.version = 'v4')
> remotes::install_version("Seurat", "4.3.0")
Downloading package from url: https://cran.ism.ac.jp/src/contrib/Seurat_4.3.0.tar.gz

* installing *source* package ‘Seurat’ ...

~~~

** testing if installed package keeps a record of temporary installation path
* DONE (Seurat)

> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS/LAPACK: /mnt/gpfsA/home/devil/miniconda3/envs/single_cell/lib/libopenblasp-r0.3.21.so

locale:
 [1] LC_CTYPE=C                 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] remotes_2.4.2               presto_1.0.0               
 [3] data.table_1.14.8           devtools_2.4.5             
 [5] usethis_2.1.6               qlcMatrix_0.9.7            
 [7] sparsesvd_0.2-1             slam_0.1-50                
 [9] Matrix_1.5-1                R.utils_2.12.1             
[11] R.oo_1.25.0                 R.methodsS3_1.8.2          
[13] motifmatchr_1.16.0          ggbio_1.42.0               
[15] TFBSTools_1.32.0            Rsamtools_2.10.0           
[17] GenomicFeatures_1.46.1      AnnotationDbi_1.56.2       
[19] Biobase_2.54.0              harmony_1.0                
[21] Rcpp_1.0.10                 AnnotationFilter_1.18.0    
[23] hdf5r_1.3.7                 Signac_1.8.0               
[25] SeuratObject_4.9.9.9084     Seurat_4.3.0               
[27] forcats_0.5.2               stringr_1.5.0              
[29] dplyr_1.1.2                 purrr_1.0.1                
[31] readr_2.1.3                 tidyr_1.3.0                
[33] tibble_3.2.1                ggplot2_3.4.2              
[35] tidyverse_1.3.2             BSgenome.Ppatens.v3.3_1.0.0
[37] BSgenome_1.62.0             rtracklayer_1.54.0         
[39] Biostrings_2.62.0           XVector_0.34.0             
[41] GenomicRanges_1.46.1        GenomeInfoDb_1.30.1        
[43] IRanges_2.28.0              S4Vectors_0.32.4           
[45] BiocGenerics_0.40.0        

loaded via a namespace (and not attached):
  [1] rappdirs_0.3.3              scattermore_0.8            
  [3] GGally_2.1.2                knitr_1.42                 
  [5] bit64_4.0.5                 irlba_2.3.5.1              
  [7] DelayedArray_0.20.0         rpart_4.1.19               
  [9] KEGGREST_1.34.0             RCurl_1.98-1.9             
 [11] generics_0.1.3              callr_3.7.3                
 [13] cowplot_1.1.1               RSQLite_2.2.18             
 [15] RANN_2.6.1                  future_1.32.0              
 [17] bit_4.0.4                   tzdb_0.3.0                 
 [19] spatstat.data_3.0-1         xml2_1.3.3                 
 [21] lubridate_1.9.0             httpuv_1.6.9               
 [23] SummarizedExperiment_1.24.0 assertthat_0.2.1           
 [25] DirichletMultinomial_1.36.0 gargle_1.2.1               
 [27] xfun_0.39                   hms_1.1.2                  
 [29] promises_1.2.0.1            fansi_1.0.4                
 [31] restfulr_0.0.15             progress_1.2.2             
 [33] caTools_1.18.2              dbplyr_2.2.1               
 [35] readxl_1.4.1                igraph_1.4.2               
 [37] DBI_1.1.3                   htmlwidgets_1.6.2          
 [39] reshape_0.8.9               spatstat.geom_3.1-0        
 [41] googledrive_2.0.0           ellipsis_0.3.2             
 [43] backports_1.4.1             annotate_1.72.0            
 [45] biomaRt_2.50.0              deldir_1.0-6               
 [47] MatrixGenerics_1.6.0        vctrs_0.6.2                
 [49] ensembldb_2.18.4            ROCR_1.0-11                
 [51] abind_1.4-5                 cachem_1.0.7               
 [53] withr_2.5.0                 progressr_0.13.0           
 [55] checkmate_2.1.0             sctransform_0.3.5          
 [57] GenomicAlignments_1.30.0    prettyunits_1.1.1          
 [59] goftest_1.2-3               cluster_2.1.4              
 [61] dotCall64_1.0-2             lazyeval_0.2.2             
 [63] seqLogo_1.60.0              crayon_1.5.2               
 [65] spatstat.explore_3.1-0      pkgconfig_2.0.3            
 [67] pkgload_1.3.1               ProtGenerics_1.26.0        
 [69] nlme_3.1-160                nnet_7.3-18                
 [71] rlang_1.1.0                 globals_0.16.2             
 [73] lifecycle_1.0.3             miniUI_0.1.1.1             
 [75] filelock_1.0.2              BiocFileCache_2.2.1        
 [77] modelr_0.1.9                dichromat_2.0-0.1          
 [79] cellranger_1.1.0            polyclip_1.10-4            
 [81] matrixStats_0.63.0          lmtest_0.9-40              
 [83] graph_1.72.0                zoo_1.8-12                 
 [85] reprex_2.0.2                base64enc_0.1-3            
 [87] processx_3.8.0              ggridges_0.5.4             
 [89] googlesheets4_1.0.1         png_0.1-8                  
 [91] viridisLite_0.4.1           rjson_0.2.21               
 [93] bitops_1.0-7                KernSmooth_2.23-20         
 [95] spam_2.9-1                  blob_1.2.3                 
 [97] parallelly_1.35.0           spatstat.random_3.1-4      
 [99] jpeg_0.1-9                  CNEr_1.30.0                
[101] scales_1.2.1                memoise_2.0.1              
[103] magrittr_2.0.3              plyr_1.8.8                 
[105] ica_1.0-3                   zlibbioc_1.40.0            
[107] compiler_4.1.3              BiocIO_1.4.0               
[109] RColorBrewer_1.1-3          fitdistrplus_1.1-8         
[111] cli_3.6.1                   urlchecker_1.0.1           
[113] listenv_0.9.0               ps_1.7.2                   
[115] patchwork_1.1.2             pbapply_1.7-0              
[117] htmlTable_2.4.1             Formula_1.2-4              
[119] MASS_7.3-58.1               tidyselect_1.2.0           
[121] stringi_1.7.12              yaml_2.3.7                 
[123] latticeExtra_0.6-30         ggrepel_0.9.3              
[125] grid_4.1.3                  VariantAnnotation_1.40.0   
[127] fastmatch_1.1-3             tools_4.1.3                
[129] timechange_0.1.1            future.apply_1.10.0        
[131] parallel_4.1.3              rstudioapi_0.14            
[133] TFMPvalue_0.0.9             foreign_0.8-83             
[135] gridExtra_2.3               Rtsne_0.16                 
[137] BiocManager_1.30.19         digest_0.6.31              
[139] rgeos_0.5-9                 shiny_1.7.4                
[141] pracma_2.4.2                broom_1.0.1                
[143] later_1.3.0                 OrganismDbi_1.36.0         
[145] RcppAnnoy_0.0.20            httr_1.4.5                 
[147] biovizBase_1.42.0           colorspace_2.1-0           
[149] rvest_1.0.3                 XML_3.99-0.10              
[151] fs_1.6.1                    tensor_1.5                 
[153] reticulate_1.28             splines_4.1.3              
[155] RBGL_1.70.0                 uwot_0.1.14                
[157] RcppRoll_0.3.0              spatstat.utils_3.0-2       
[159] sp_1.6-0                    sessioninfo_1.2.2          
[161] plotly_4.10.1               xtable_1.8-4               
[163] jsonlite_1.8.4              poweRlaw_0.70.6            
[165] R6_2.5.1                    profvis_0.3.7              
[167] Hmisc_4.7-1                 pillar_1.9.0               
[169] htmltools_0.5.5             mime_0.12                  
[171] glue_1.6.2                  fastmap_1.1.1              
[173] BiocParallel_1.28.3         codetools_0.2-18           
[175] pkgbuild_1.4.0              utf8_1.2.3                 
[177] lattice_0.20-45             spatstat.sparse_3.0-1      
[179] curl_5.0.0                  leiden_0.4.3               
[181] gtools_3.9.4                interp_1.1-3               
[183] GO.db_3.14.0                survival_3.4-0             
[185] docopt_0.7.1                munsell_0.5.0              
[187] GenomeInfoDbData_1.2.7      haven_2.5.1                
[189] reshape2_1.4.4              gtable_0.3.3       

I can't figure out why I am stuck with this new issue during the merge or how to overcome/circumvent it. I either have to avoid the new version altogether, or find a way to make my current samples compatible with it. Any help would be appreciated.

UPDATE: I didn't quite make my merged object SeuratV5 compatible yet, but I did figure out why merge didn't work: two packages, Seurat and SeuratObject needed to be downgraded:

remotes::install_version("Seurat", "4.3.0")
remotes::install_version("SeuratObject", "4.1.3")

The Seurat V5 vignettes page has a section dedicated to working with multimodal data (Streamlined and multimodal integration), but a better description is needed for users on how to generate and merge objects of multimodal data. The data used in those vignettes are loaded from premade seurat objects.

Gesmira commented 1 year ago

Hi, just adding here that in Seuratv5 you should be able to merge, and do other ChromatinAssay functionalities, if you also update Signac to the v5 version. remotes::install_github("stuart-lab/signac", "seurat5", quiet = TRUE)

ahoffrichter commented 1 year ago

I encountered a similar problem. I just updated Seurat to version 5 for a different project. But now I apparently can't work with this Seurat object (version 4.1.3.) with gene expression and ATAC data anymore. I also updated Signac as suggested above, but I still get an error message for example when I try subset the object:

Error in checkSlotAssignment(object, name, value) : 
  assignment of an object of class “S4” is not valid for slot ‘version’ in an object of class “Seurat”; is(value, "package_version") is not TRUE

This is my sessionInfo()

R version 4.2.2 (2022-10-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Ventura 13.5.2

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
 [1] presto_1.0.0                      data.table_1.14.8                 Rcpp_1.0.11                       GO.db_3.16.0                     
 [5] clusterProfiler_4.6.2             org.Hs.eg.db_3.16.0               AnnotationDbi_1.60.2              Biobase_2.58.0                   
 [9] DT_0.29                           openxlsx_4.2.5.2                  lubridate_1.9.2                   forcats_1.0.0                    
[13] stringr_1.5.0                     dplyr_1.1.3                       purrr_1.0.2                       readr_2.1.4                      
[17] tidyr_1.3.0                       tibble_3.2.1                      ggplot2_3.4.3                     tidyverse_2.0.0                  
[21] simspec_0.0.0.9000                BSgenome.Hsapiens.UCSC.hg38_1.4.5 BSgenome_1.66.3                   rtracklayer_1.58.0               
[25] Biostrings_2.66.0                 XVector_0.38.0                    GenomicRanges_1.50.2              GenomeInfoDb_1.34.9              
[29] IRanges_2.32.0                    S4Vectors_0.36.2                  AnnotationHub_3.6.0               BiocFileCache_2.6.1              
[33] dbplyr_2.3.3                      BiocGenerics_0.44.0               Signac_1.11.9000                  Seurat_4.9.9.9060                
[37] SeuratObject_4.9.9.9091           sp_2.1-0                          patchwork_1.1.3                  

loaded via a namespace (and not attached):
  [1] rappdirs_0.3.3                scattermore_1.2               bit64_4.0.5                   knitr_1.44                    irlba_2.3.5.1                
  [6] DelayedArray_0.24.0           KEGGREST_1.38.0               RCurl_1.98-1.12               generics_0.1.3                cowplot_1.1.1                
 [11] RSQLite_2.3.1                 shadowtext_0.1.2              RANN_2.6.1                    future_1.33.0                 bit_4.0.5                    
 [16] tzdb_0.4.0                    enrichplot_1.18.4             spatstat.data_3.0-1           httpuv_1.6.11                 SummarizedExperiment_1.28.0  
 [21] viridis_0.6.4                 xfun_0.40                     hms_1.1.3                     evaluate_0.21                 promises_1.2.1               
 [26] fansi_1.0.4                   restfulr_0.0.15               igraph_1.5.1                  DBI_1.1.3                     htmlwidgets_1.6.2            
 [31] spatstat.geom_3.2-5           ellipsis_0.3.2                RSpectra_0.16-1               deldir_1.0-9                  MatrixGenerics_1.10.0        
 [36] vctrs_0.6.3                   ROCR_1.0-11                   abind_1.4-5                   cachem_1.0.8                  withr_2.5.1                  
 [41] ggforce_0.4.1                 HDO.db_0.99.1                 progressr_0.14.0              sctransform_0.4.0             GenomicAlignments_1.34.1     
 [46] treeio_1.22.0                 goftest_1.2-3                 cluster_2.1.4                 DOSE_3.24.2                   ape_5.7-1                    
 [51] dotCall64_1.0-2               lazyeval_0.2.2                crayon_1.5.2                  spatstat.explore_3.2-3        pkgconfig_2.0.3              
 [56] tweenr_2.0.2                  nlme_3.1-163                  rlang_1.1.1                   globals_0.16.2                lifecycle_1.0.3              
 [61] miniUI_0.1.1.1                downloader_0.4                filelock_1.0.2                fastDummies_1.7.3             polyclip_1.10-4              
 [66] RcppHNSW_0.5.0                matrixStats_1.0.0             lmtest_0.9-40                 Matrix_1.5-4.1                aplot_0.2.0                  
 [71] zoo_1.8-12                    ggridges_0.5.4                png_0.1-8                     viridisLite_0.4.2             rjson_0.2.21                 
 [76] bitops_1.0-7                  gson_0.1.0                    KernSmooth_2.23-22            spam_2.9-1                    blob_1.2.4                   
 [81] qvalue_2.30.0                 parallelly_1.36.0             spatstat.random_3.1-6         gridGraphics_0.5-1            scales_1.2.1                 
 [86] memoise_2.0.1                 magrittr_2.0.3                plyr_1.8.8                    ica_1.0-3                     zlibbioc_1.44.0              
 [91] compiler_4.2.2                scatterpie_0.2.1              BiocIO_1.8.0                  RColorBrewer_1.1-3            fitdistrplus_1.1-11          
 [96] Rsamtools_2.14.0              cli_3.6.1                     listenv_0.9.0                 pbapply_1.7-2                 MASS_7.3-60                  
[101] tidyselect_1.2.0              stringi_1.7.12                yaml_2.3.7                    GOSemSim_2.24.0               ggrepel_0.9.3                
[106] grid_4.2.2                    fastmatch_1.1-4               tools_4.2.2                   timechange_0.2.0              future.apply_1.11.0          
[111] parallel_4.2.2                rstudioapi_0.15.0             gridExtra_2.3                 farver_2.1.1                  Rtsne_0.16                   
[116] ggraph_2.1.0                  digest_0.6.33                 BiocManager_1.30.22           shiny_1.7.5                   BiocVersion_3.16.0           
[121] later_1.3.1                   RcppAnnoy_0.0.21              httr_1.4.7                    colorspace_2.1-0              XML_3.99-0.14                
[126] tensor_1.5                    reticulate_1.32.0             splines_4.2.2                 uwot_0.1.16                   yulab.utils_0.0.8            
[131] RcppRoll_0.3.0                tidytree_0.4.5                spatstat.utils_3.0-3          graphlayouts_1.0.0            ggplotify_0.1.2              
[136] plotly_4.10.2                 xtable_1.8-4                  jsonlite_1.8.7                ggtree_3.6.2                  tidygraph_1.2.3              
[141] ggfun_0.1.2                   R6_2.5.1                      pillar_1.9.0                  htmltools_0.5.6               mime_0.12                    
[146] glue_1.6.2                    fastmap_1.1.1                 BiocParallel_1.32.6           interactiveDisplayBase_1.36.0 codetools_0.2-19             
[151] fgsea_1.24.0                  utf8_1.2.3                    lattice_0.21-8                spatstat.sparse_3.0-2         curl_5.0.2                   
[156] leiden_0.4.3                  zip_2.3.0                     survival_3.5-7                rmarkdown_2.25                munsell_0.5.0                
[161] GenomeInfoDbData_1.2.9        reshape2_1.4.4                gtable_0.3.4 
bjstewart1 commented 12 months ago

I encountered a similar problem. I just updated Seurat to version 5 for a different project. But now I apparently can't work with this Seurat object (version 4.1.3.) with gene expression and ATAC data anymore. I also updated Signac as suggested above, but I still get an error message for example when I try subset the object:

Error in checkSlotAssignment(object, name, value) : 
  assignment of an object of class “S4” is not valid for slot ‘version’ in an object of class “Seurat”; is(value, "package_version") is not TRUE

This is my sessionInfo()

R version 4.2.2 (2022-10-31)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Ventura 13.5.2

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
 [1] presto_1.0.0                      data.table_1.14.8                 Rcpp_1.0.11                       GO.db_3.16.0                     
 [5] clusterProfiler_4.6.2             org.Hs.eg.db_3.16.0               AnnotationDbi_1.60.2              Biobase_2.58.0                   
 [9] DT_0.29                           openxlsx_4.2.5.2                  lubridate_1.9.2                   forcats_1.0.0                    
[13] stringr_1.5.0                     dplyr_1.1.3                       purrr_1.0.2                       readr_2.1.4                      
[17] tidyr_1.3.0                       tibble_3.2.1                      ggplot2_3.4.3                     tidyverse_2.0.0                  
[21] simspec_0.0.0.9000                BSgenome.Hsapiens.UCSC.hg38_1.4.5 BSgenome_1.66.3                   rtracklayer_1.58.0               
[25] Biostrings_2.66.0                 XVector_0.38.0                    GenomicRanges_1.50.2              GenomeInfoDb_1.34.9              
[29] IRanges_2.32.0                    S4Vectors_0.36.2                  AnnotationHub_3.6.0               BiocFileCache_2.6.1              
[33] dbplyr_2.3.3                      BiocGenerics_0.44.0               Signac_1.11.9000                  Seurat_4.9.9.9060                
[37] SeuratObject_4.9.9.9091           sp_2.1-0                          patchwork_1.1.3                  

loaded via a namespace (and not attached):
  [1] rappdirs_0.3.3                scattermore_1.2               bit64_4.0.5                   knitr_1.44                    irlba_2.3.5.1                
  [6] DelayedArray_0.24.0           KEGGREST_1.38.0               RCurl_1.98-1.12               generics_0.1.3                cowplot_1.1.1                
 [11] RSQLite_2.3.1                 shadowtext_0.1.2              RANN_2.6.1                    future_1.33.0                 bit_4.0.5                    
 [16] tzdb_0.4.0                    enrichplot_1.18.4             spatstat.data_3.0-1           httpuv_1.6.11                 SummarizedExperiment_1.28.0  
 [21] viridis_0.6.4                 xfun_0.40                     hms_1.1.3                     evaluate_0.21                 promises_1.2.1               
 [26] fansi_1.0.4                   restfulr_0.0.15               igraph_1.5.1                  DBI_1.1.3                     htmlwidgets_1.6.2            
 [31] spatstat.geom_3.2-5           ellipsis_0.3.2                RSpectra_0.16-1               deldir_1.0-9                  MatrixGenerics_1.10.0        
 [36] vctrs_0.6.3                   ROCR_1.0-11                   abind_1.4-5                   cachem_1.0.8                  withr_2.5.1                  
 [41] ggforce_0.4.1                 HDO.db_0.99.1                 progressr_0.14.0              sctransform_0.4.0             GenomicAlignments_1.34.1     
 [46] treeio_1.22.0                 goftest_1.2-3                 cluster_2.1.4                 DOSE_3.24.2                   ape_5.7-1                    
 [51] dotCall64_1.0-2               lazyeval_0.2.2                crayon_1.5.2                  spatstat.explore_3.2-3        pkgconfig_2.0.3              
 [56] tweenr_2.0.2                  nlme_3.1-163                  rlang_1.1.1                   globals_0.16.2                lifecycle_1.0.3              
 [61] miniUI_0.1.1.1                downloader_0.4                filelock_1.0.2                fastDummies_1.7.3             polyclip_1.10-4              
 [66] RcppHNSW_0.5.0                matrixStats_1.0.0             lmtest_0.9-40                 Matrix_1.5-4.1                aplot_0.2.0                  
 [71] zoo_1.8-12                    ggridges_0.5.4                png_0.1-8                     viridisLite_0.4.2             rjson_0.2.21                 
 [76] bitops_1.0-7                  gson_0.1.0                    KernSmooth_2.23-22            spam_2.9-1                    blob_1.2.4                   
 [81] qvalue_2.30.0                 parallelly_1.36.0             spatstat.random_3.1-6         gridGraphics_0.5-1            scales_1.2.1                 
 [86] memoise_2.0.1                 magrittr_2.0.3                plyr_1.8.8                    ica_1.0-3                     zlibbioc_1.44.0              
 [91] compiler_4.2.2                scatterpie_0.2.1              BiocIO_1.8.0                  RColorBrewer_1.1-3            fitdistrplus_1.1-11          
 [96] Rsamtools_2.14.0              cli_3.6.1                     listenv_0.9.0                 pbapply_1.7-2                 MASS_7.3-60                  
[101] tidyselect_1.2.0              stringi_1.7.12                yaml_2.3.7                    GOSemSim_2.24.0               ggrepel_0.9.3                
[106] grid_4.2.2                    fastmatch_1.1-4               tools_4.2.2                   timechange_0.2.0              future.apply_1.11.0          
[111] parallel_4.2.2                rstudioapi_0.15.0             gridExtra_2.3                 farver_2.1.1                  Rtsne_0.16                   
[116] ggraph_2.1.0                  digest_0.6.33                 BiocManager_1.30.22           shiny_1.7.5                   BiocVersion_3.16.0           
[121] later_1.3.1                   RcppAnnoy_0.0.21              httr_1.4.7                    colorspace_2.1-0              XML_3.99-0.14                
[126] tensor_1.5                    reticulate_1.32.0             splines_4.2.2                 uwot_0.1.16                   yulab.utils_0.0.8            
[131] RcppRoll_0.3.0                tidytree_0.4.5                spatstat.utils_3.0-3          graphlayouts_1.0.0            ggplotify_0.1.2              
[136] plotly_4.10.2                 xtable_1.8-4                  jsonlite_1.8.7                ggtree_3.6.2                  tidygraph_1.2.3              
[141] ggfun_0.1.2                   R6_2.5.1                      pillar_1.9.0                  htmltools_0.5.6               mime_0.12                    
[146] glue_1.6.2                    fastmap_1.1.1                 BiocParallel_1.32.6           interactiveDisplayBase_1.36.0 codetools_0.2-19             
[151] fgsea_1.24.0                  utf8_1.2.3                    lattice_0.21-8                spatstat.sparse_3.0-2         curl_5.0.2                   
[156] leiden_0.4.3                  zip_2.3.0                     survival_3.5-7                rmarkdown_2.25                munsell_0.5.0                
[161] GenomeInfoDbData_1.2.9        reshape2_1.4.4                gtable_0.3.4 

same problem