Open sepehrgolriz opened 2 weeks ago
Hi,
Even with smaller dataset I get the same error:
small_traj_milo <- traj_milo[1:1000, ]
small_traj_milo <- buildNhoodGraph(small_traj_milo) Error in if (any(i < 0L)) { : missing value where TRUE/FALSE needed In addition: Warning message: In int2i(as.integer(i), n) : NAs introduced by coercion to integer range
Any help would be appreciated!
Always provide the output of sessionInfo() and the code leading up to the point of the error.
Yes Sir. Sorry for my bad!
Here is the the code:
combined_seurat_obj <- NormalizeData(combined_seurat_obj) combined_seurat_obj <- FindVariableFeatures(combined_seurat_obj) combined_seurat_obj <- ScaleData(combined_seurat_obj) combined_seurat_obj <- RunPCA(combined_seurat_obj)
thy.sce <- as.SingleCellExperiment(combined_seurat_obj) thy.sce <- logNormCounts(thy.sce) thy.sce <- runUMAP(thy.sce) traj_milo <- Milo(thy.sce) reducedDim(traj_milo, "UMAP") <- reducedDim(thy.sce, "UMAP")
traj_milo <- buildGraph(traj_milo, k = 4, d = 40) traj_milo <- makeNhoods(traj_milo, prop = 0.2, k = 11, d=40, refined = TRUE, refinement_scheme="graph") # make nhoods using graph-only as this is faster traj_milo <- countCells(traj_milo, meta.data = data.frame(colData(traj_milo)), samples="orig.ident") plotNhoodSizeHist(traj_milo)
thy.design <- data.frame(colData(traj_milo))[,c("orig.ident", "disease_status")] thy.design <- distinct(thy.design) rownames(thy.design) <- thy.design$orig.ident
thy.design <- thy.design[colnames(nhoodCounts(traj_milo)), , drop=FALSE] table(thy.design$disease_status)
contrast.1 <- "disease_statusYes"
thy.design$disease_status <- factor(thy.design$disease_status, levels = c("No", "Yes"))
da_results <- testNhoods(traj_milo, design = ~ disease_status, design.df = thy.design, model.contrasts = contrast.1, fdr.weighting = "graph-overlap", norm.method = "TMM")
small_traj_milo <- traj_milo[1:1000, ] small_traj_milo <- buildNhoodGraph(small_traj_milo)
traj_milo <- buildNhoodGraph(traj_milo)
##################### anyNA(traj_milo@nhoods) [1] FALSE
is.null(traj_milo@nhoodGraph) [1] FALSE head(which(is.na(as.integer(rownames(traj_milo@nhoods))))) [1] 1 2 3 4 5 6 Warning message: In which(is.na(as.integer(rownames(traj_milo@nhoods)))) : NAs introduced by coercion head(which(is.na(as.integer(colnames(traj_milo@nhoods))))) integer(0) head(rownames(traj_milo@nhoods)) [1] "AAACAAGCAAGCGAAGACTTTAGG-1_1" "AAACAAGCACATTGTCACTTTAGG-1_1" "AAACAAGCACCTGGTCACTTTAGG-1_1" [4] "AAACAAGCAGGAATAAACTTTAGG-1_1" "AAACAAGCATCAAGTGACTTTAGG-1_1" "AAACAAGCATTACTCAACTTTAGG-1_1" is.null(traj_milo@nhoodGraph) [1] FALSE str(traj_milo@nhoodGraph) list() dim(traj_milo@nhoods) [1] 732835 99589
#######################
Here is the sessionInfo
sessionInfo() R version 4.4.0 (2024-04-24) Platform: x86_64-pc-linux-gnu Running under: Ubuntu 22.04.4 LTS
Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; 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
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
time zone: Etc/UTC tzcode source: system (glibc)
attached base packages: [1] parallel stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] miloR_2.0.0 edgeR_4.2.2 scater_1.32.1 scran_1.32.0
[5] scuttle_1.14.0 BiocParallel_1.38.0 SingleCellExperiment_1.26.0 RColorBrewer_1.1-3
[9] DESeq2_1.44.0 SummarizedExperiment_1.34.0 Biobase_2.64.0 MatrixGenerics_1.16.0
[13] matrixStats_1.4.1 GenomicRanges_1.56.2 GenomeInfoDb_1.40.1 IRanges_2.38.1
[17] S4Vectors_0.42.1 BiocGenerics_0.50.0 sctransform_0.4.1 purrr_1.0.2
[21] muscat_1.18.0 limma_3.60.6 ggplot2_3.5.1 dplyr_1.1.4
[25] Azimuth_0.5.0 shinyBS_0.61.1 SeuratWrappers_0.3.5 Seurat_5.1.0
[29] SeuratObject_5.0.2 sp_2.1-4
loaded via a namespace (and not attached):
[1] R.methodsS3_1.8.2 progress_1.2.3 poweRlaw_0.80.0
[4] goftest_1.2-3 DT_0.33 Biostrings_2.72.1
[7] vctrs_0.6.5 spatstat.random_3.3-2 pbmcref.SeuratData_1.0.0
[10] corpcor_1.6.10 digest_0.6.37 png_0.1-8
[13] shape_1.4.6.1 ggrepel_0.9.6 deldir_2.0-4
[16] parallelly_1.38.0 MASS_7.3-60.2 Signac_1.14.0
[19] reshape2_1.4.4 httpuv_1.6.15 foreach_1.5.2
[22] withr_3.0.1 survival_3.6-4 EnsDb.Hsapiens.v86_2.99.0
[25] memoise_2.0.1 ggbeeswarm_0.7.2 zoo_1.8-12
[28] GlobalOptions_0.1.2 gtools_3.9.5 pbapply_1.7-2
[31] R.oo_1.26.0 prettyunits_1.2.0 KEGGREST_1.44.1
[34] promises_1.3.0 httr_1.4.7 restfulr_0.0.15
[37] globals_0.16.3 fitdistrplus_1.2-1 rhdf5filters_1.16.0
[40] rhdf5_2.48.0 rstudioapi_0.16.0 UCSC.utils_1.0.0
[43] miniUI_0.1.1.1 generics_0.1.3 curl_5.2.3
[46] zlibbioc_1.50.0 ggraph_2.2.1 ScaledMatrix_1.12.0
[49] polyclip_1.10-7 GenomeInfoDbData_1.2.12 SparseArray_1.4.8
[52] xtable_1.8-4 stringr_1.5.1 pracma_2.4.4
[55] doParallel_1.0.17 S4Arrays_1.4.1 hms_1.1.3
[58] irlba_2.3.5.1 colorspace_2.1-1 hdf5r_1.3.11
[61] ROCR_1.0-11 reticulate_1.39.0 spatstat.data_3.1-2
[64] magrittr_2.0.3 lmtest_0.9-40 readr_2.1.5
[67] viridis_0.6.5 later_1.3.2 lattice_0.22-6
[70] spatstat.geom_3.3-3 future.apply_1.11.2 scattermore_1.2
[73] XML_3.99-0.17 cowplot_1.1.3 RcppAnnoy_0.0.22
[76] pillar_1.9.0 nlme_3.1-164 iterators_1.0.14
[79] pwalign_1.0.0 beachmat_2.20.0 caTools_1.18.3
[82] compiler_4.4.0 RSpectra_0.16-2 stringi_1.8.4
[85] tensor_1.5 minqa_1.2.8 GenomicAlignments_1.40.0
[88] plyr_1.8.9 crayon_1.5.3 abind_1.4-8
[91] BiocIO_1.14.0 blme_1.0-6 googledrive_2.1.1
[94] locfit_1.5-9.10 graphlayouts_1.2.0 bit_4.5.0
[97] fastmatch_1.1-4 codetools_0.2-20 BiocSingular_1.20.0
[100] SeuratData_0.2.2.9001 GetoptLong_1.0.5 plotly_4.10.4
[103] remaCor_0.0.18 mime_0.12 splines_4.4.0
[106] circlize_0.4.16 Rcpp_1.0.13 fastDummies_1.7.4
[109] sparseMatrixStats_1.16.0 cellranger_1.1.0 blob_1.2.4
[112] utf8_1.2.4 clue_0.3-65 seqLogo_1.70.0
[115] AnnotationFilter_1.28.0 lme4_1.1-35.5 fs_1.6.4
[118] listenv_0.9.1 DelayedMatrixStats_1.26.0 Rdpack_2.6.1
[121] tibble_3.2.1 Matrix_1.7-0 statmod_1.5.0
[124] tzdb_0.4.0 tweenr_2.0.3 fANCOVA_0.6-1
[127] pkgconfig_2.0.3 tools_4.4.0 cachem_1.1.0
[130] RhpcBLASctl_0.23-42 rbibutils_2.3 RSQLite_2.3.7
[133] viridisLite_0.4.2 DBI_1.2.3 numDeriv_2016.8-1.1
[136] fastmap_1.2.0 scales_1.3.0 grid_4.4.0
[139] ica_1.0-3 shinydashboard_0.7.2 Rsamtools_2.20.0
[142] broom_1.0.7 patchwork_1.3.0 BiocManager_1.30.25
[145] dotCall64_1.2 RANN_2.6.2 farver_2.1.2
[148] reformulas_0.3.0 tidygraph_1.3.1 aod_1.3.3
[151] mgcv_1.9-1 yaml_2.3.10 rtracklayer_1.64.0
[154] cli_3.6.3 leiden_0.4.3.1 lifecycle_1.0.4
[157] uwot_0.2.2 glmmTMB_1.1.10 mvtnorm_1.3-1
[160] bluster_1.14.0 backports_1.5.0 presto_1.0.0
[163] BSgenome.Hsapiens.UCSC.hg38_1.4.5 annotate_1.82.0 gtable_0.3.5
[166] rjson_0.2.23 ggridges_0.5.6 progressr_0.14.0
[169] jsonlite_1.8.8 RcppHNSW_0.6.0 TFBSTools_1.42.0
[172] bitops_1.0-9 bit64_4.5.2 Rtsne_0.17
[175] BiocNeighbors_1.22.0 spatstat.utils_3.1-0 CNEr_1.40.0
[178] metapod_1.12.0 dqrng_0.4.1 shinyjs_2.1.0
[181] SeuratDisk_0.0.0.9021 spatstat.univar_3.0-1 R.utils_2.12.3
[184] pbkrtest_0.5.3 lazyeval_0.2.2 shiny_1.9.1
[187] htmltools_0.5.8.1 GO.db_3.19.1 rappdirs_0.3.3
[190] ensembldb_2.28.1 glue_1.7.0 TFMPvalue_0.0.9
[193] spam_2.11-0 googlesheets4_1.1.1 XVector_0.44.0
[196] RCurl_1.98-1.16 BSgenome_1.72.0 gridExtra_2.3
[199] EnvStats_3.0.0 boot_1.3-30 variancePartition_1.34.0
[202] JASPAR2020_0.99.10 igraph_2.0.3 TMB_1.9.15
[205] R6_2.5.1 gplots_3.2.0 tidyr_1.3.1
[208] RcppRoll_0.3.1 labeling_0.4.3 GenomicFeatures_1.56.0
[211] cluster_2.1.6 Rhdf5lib_1.26.0 gargle_1.5.2
[214] nloptr_2.1.1 DirichletMultinomial_1.46.0 vipor_0.4.7
[217] DelayedArray_0.30.1 tidyselect_1.2.1 ProtGenerics_1.36.0
[220] ggforce_0.4.2 AnnotationDbi_1.66.0 future_1.34.0
[223] rsvd_1.0.5 munsell_0.5.1 KernSmooth_2.23-22
[226] data.table_1.16.2 htmlwidgets_1.6.4 ComplexHeatmap_2.20.0
[229] rlang_1.1.4 spatstat.sparse_3.1-0 spatstat.explore_3.3-2
[232] lmerTest_3.1-3 remotes_2.5.0 fansi_1.0.6
[235] beeswarm_0.4.0
Firstly, a k=4 is extremely small for building a kNN-graph given you have >700k cells. You are then using a different value for k in the nhood definition, so you most likely don't have many connections between your cells. Inspect your nhoodSize histogram and aim for ~5xS, where S is the number of experimental samples, OR a median nhood size of ~100 if you have lots of samples, i.e. >20.
Secondly, subsetting the Milo object on the rows, subsets on the genes, not the cells.
First of all, thanks a lot for your kind help.
Despite the changes I did in the code, I am still getting the same error:
Here is the changes:
traj_milo <- buildGraph(traj_milo, k = 40, d = 40) # Increased k Constructing kNN graph with k:40 traj_milo <- makeNhoods(traj_milo, prop = 0.12, k = 40, d = 40, refined = TRUE, refinement_scheme = "graph") Checking valid object Running refined sampling with graph traj_milo <- countCells(traj_milo, meta.data = data.frame(colData(traj_milo)), samples = "orig.ident") Checking meta.data validity Counting cells in neighbourhoods plotNhoodSizeHist(traj_milo)
Check the median neighborhood size
median_nhood_size <- median(colSums(nhoods(traj_milo))) print(paste("Median neighborhood size:", median_nhood_size)) [1] "Median neighborhood size: 106"
traj_milo <- buildNhoodGraph(traj_milo) Error in if (any(i < 0L)) { : missing value where TRUE/FALSE needed In addition: Warning message: In int2i(as.integer(i), n) : NAs introduced by coercion to integer range
Any chance to have more of your kind help?
Thanks a in advance.
Can you run the following code without error:
nh_intersect_mat <- miloR:::.build_nhood_adjacency(nhoods(traj_milo))
Unfortunately no! Got the same error as before:
nh_intersect_mat <- miloR:::.build_nhood_adjacency(nhoods(traj_milo))
Error in if (any(i < 0L)) { : missing value where TRUE/FALSE needed In addition: Warning message: In int2i(as.integer(i), n) : NAs introduced by coercion to integer range
Dear Mike, I was wondering if I can have more of your kind help?!
Thanks a lot in advance.
How many nhoods do you have in this object, and what is the provenance of the data?
Hi,
I am getting an error while using the buildNhoodGraph function. The error is
Error in if (any(i < 0L)) { : missing value where TRUE/FALSE needed In addition: Warning message: In int2i(as.integer(i), n) : NAs introduced by coercion to integer range
However, there is no NA in the object: any(is.na(reducedDim(traj_milo))) [1] FALSE
These are the properties of the object:
dim(traj_milo) [1] 12136 732835
all(colnames(nhoodCounts(traj_milo)) %in% rownames(thy.design)) [1] TRUE
Could anyone help me with this? The size of the dataset could be a problem?
Thanks a lot for your kind help in advance.