chuiqin / irGSEA

The integration of single cell rank-based gene set enrichment analysis
Other
106 stars 17 forks source link

irGSEA.integrate error and failed to debug #34

Open randystyle21 opened 6 months ago

randystyle21 commented 6 months ago

Dear. Drs,

I am having trouble with the irGSEA.integrate for DEG calculation. The irGSEA.integrate function suddenly spit out
Error in UseMethod("filter") : no applicable method for 'filter' applied to an object of class "NULL" even if I didn't change anything on my working environment. Would you kindly help me get through this issue?

I have checked

  1. I have group.by element in the Seurat@meta.data
  2. I increased the memory option in the global ( options(future.globals.maxSize=51200000*1024^2)
  3. I reinstalled the tidyverse & dplyr
  4. I reinstalled irGSEA package along with the all the required attachments according to the tutorial
  5. as suggested in other Q&A, I have tried FindAllMarkers function and it gaves DEG result without errors.

a <- Seurat::FindAllMarkers(object = seurat_integrated, assay = "AUCell", slot = "scale.data", test.use = "wilcox", min.pct = -Inf, logfc.threshold = 0, min.cells.group = 0, min.diff.pct = -Inf, verbose = F, min.cells.feature = 0)

Here is my sessionInfo() R version 4.3.2 (2023-10-31) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 22.04.4 LTS

Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3 LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3; LAPACK version 3.10.0

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

time zone: America/Los_Angeles tzcode source: system (glibc)

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

other attached packages: [1] lubridate_1.9.3 forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4 purrr_1.0.2 readr_2.1.5 tidyr_1.3.1 tibble_3.2.1 ggplot2_3.5.0
[10] tidyverse_2.0.0 irGSEA_3.2.3 Biobase_2.62.0 BiocGenerics_0.48.1

loaded via a namespace (and not attached): [1] ProtGenerics_1.34.0 matrixStats_1.2.0 spatstat.sparse_3.0-3 bitops_1.0-7 httr_1.4.7 RColorBrewer_1.1-3
[7] doParallel_1.0.17 tools_4.3.2 sctransform_0.4.1 backports_1.4.1 utf8_1.2.4 R6_2.5.1
[13] rgdal_1.6-7 uwot_0.1.16 lazyeval_0.2.2 GetoptLong_1.0.5 withr_3.0.0 sp_2.1-3
[19] prettyunits_1.2.0 gridExtra_2.3 progressr_0.14.0 cli_3.6.2 spatstat.explore_3.2-6 fastDummies_1.7.3
[25] network_1.18.2 Seurat_5.0.2 spatstat.data_3.0-4 ggridges_0.5.6 pbapply_1.7-2 Rsamtools_2.18.0
[31] systemfonts_1.0.6 svglite_2.1.3 parallelly_1.37.1 limma_3.58.1 rstudioapi_0.15.0 RSQLite_2.3.5
[37] FNN_1.1.4 generics_0.1.3 shape_1.4.6.1 BiocIO_1.12.0 spatstat.random_3.2-3 ica_1.0-3
[43] car_3.1-2 Matrix_1.6-5 fansi_1.0.6 S4Vectors_0.40.2 abind_1.4-5 terra_1.7-71
[49] lifecycle_1.0.4 yaml_2.3.8 carData_3.0-5 SummarizedExperiment_1.32.0 SparseArray_1.2.4 BiocFileCache_2.10.1
[55] Rtsne_0.17 grid_4.3.2 blob_1.2.4 promises_1.2.1 crayon_1.5.2 miniUI_0.1.1.1
[61] lattice_0.22-5 cowplot_1.1.3 GenomicFeatures_1.54.3 KEGGREST_1.42.0 sna_2.7-2 pillar_1.9.0
[67] ComplexHeatmap_2.18.0 GenomicRanges_1.54.1 rjson_0.2.21 CellChat_1.6.1 future.apply_1.11.1 codetools_0.2-19
[73] leiden_0.4.3.1 glue_1.7.0 data.table_1.15.2 vctrs_0.6.5 png_0.1-8 spam_2.10-0
[79] gtable_0.3.4 cachem_1.0.8 S4Arrays_1.2.1 mime_0.12 coda_0.19-4.1 survival_3.5-8
[85] SingleCellExperiment_1.24.0 iterators_1.0.14 statmod_1.5.0 ellipsis_0.3.2 fitdistrplus_1.1-11 ROCR_1.0-11
[91] nlme_3.1-164 bit64_4.0.5 progress_1.2.3 filelock_1.0.3 RcppAnnoy_0.0.22 GenomeInfoDb_1.38.7
[97] irlba_2.3.5.1 KernSmooth_2.23-22 colorspace_2.1-0 DBI_1.2.2 raster_3.6-26 tidyselect_1.2.0
[103] bit_4.0.5 compiler_4.3.2 curl_5.2.1 BiocNeighbors_1.20.2 xml2_1.3.6 DelayedArray_0.28.0
[109] plotly_4.10.4 rtracklayer_1.62.0 checkmate_2.3.1 scales_1.3.0 lmtest_0.9-40 NMF_0.27
[115] rappdirs_0.3.3 goftest_1.2-3 digest_0.6.34 presto_1.0.0 spatstat.utils_3.0-4 XVector_0.42.0
[121] htmltools_0.5.7 pkgconfig_2.0.3 MatrixGenerics_1.14.0 dbplyr_2.4.0 fastmap_1.1.1 ensembldb_2.26.0
[127] rlang_1.1.3 GlobalOptions_0.1.2 htmlwidgets_1.6.4 shiny_1.8.0 zoo_1.8-12 jsonlite_1.8.8
[133] BiocParallel_1.36.0 statnet.common_4.9.0 RCurl_1.98-1.14 magrittr_2.0.3 GenomeInfoDbData_1.2.11 ggnetwork_0.5.13
[139] dotCall64_1.1-1 patchwork_1.2.0 munsell_0.5.0 Rcpp_1.0.12 reticulate_1.35.0 stringi_1.8.3
[145] ggalluvial_0.12.5 zlibbioc_1.48.0 MASS_7.3-60.0.1 plyr_1.8.9 parallel_4.3.2 listenv_0.9.1
[151] ggrepel_0.9.5 deldir_2.0-4 Biostrings_2.70.2 splines_4.3.2 tensor_1.5 hms_1.1.3
[157] circlize_0.4.16 locfit_1.5-9.9 igraph_2.0.2 ggpubr_0.6.0 spatstat.geom_3.2-9 ggsignif_0.6.4
[163] RcppHNSW_0.6.0 rngtools_1.5.2 reshape2_1.4.4 biomaRt_2.58.2 stats4_4.3.2 XML_3.99-0.16.1
[169] SeuratObject_5.0.1 tzdb_0.4.0 foreach_1.5.2 httpuv_1.6.14 polyclip_1.10-6 RANN_2.6.1
[175] future_1.33.1 clue_0.3-65 scattermore_1.2 gridBase_0.4-7 broom_1.0.5 xtable_1.8-4
[181] restfulr_0.0.15 AnnotationFilter_1.26.0 RSpectra_0.16-1 splatter_1.26.0 rstatix_0.7.2 later_1.3.2
[187] viridisLite_0.4.2 memoise_2.0.1 AnnotationDbi_1.64.1 registry_0.5-1 GenomicAlignments_1.38.2 IRanges_2.36.0
[193] cluster_2.1.6 timechange_0.3.0 globals_0.16.3

and traceback()

4: dplyr::filter(., p_val_adj <= 0.05) 3: dplyr::select(., c("avg_diff", "cluster", "gene", "methods")) 2: deg.geneset %>% dplyr::filter(p_val_adj <= 0.05) %>% dplyr::select(c("avg_diff", "cluster", "gene", "methods")) 1: irGSEA.integrate(seurat_integrated, group.by = "diet", metadata = NULL, col.name = NULL, method = c("AUCell", "UCell", "singscore"))

chuiqin commented 6 months ago

Can you give me your running code and your data (you can use the subset function to generate a small sample data from seurat_integrated, the sample data should include the different groups you want to test) so I can test it? Of course, for data confidentiality, you can add my WeChat account fcq065837, and it is also acceptable to send it to me privately for testing. Looking forward to your reply.

chuiqin commented 6 months ago

The error occurs because Seurat has added a fc.slot parameter starting from 5.02. If you want to calculate the difference of scale.data, whether it is FindAllMarkers or FindMarkers function, if fc.slot is not specified, errors will occur. I have fixed this error in the new version of irGSEA (Version 3.2.4). image

randystyle21 commented 5 months ago

Dr. Fan,

Sorry for the late reply, I was away from work during the weekend! Anyhow, it seems like it works like a magic after the update! Thank you so much for your work for everyone!

For others: Actually, if you only run the irGSEA.integrate with newer version, it won't work. You should begin from the irGSEA.score then move on to the irGSEA.integrate if you are using the Seurat 5.0.2 version.