Hi, I'm fairly new bioinformatics and don't overly have anyone to ask for advice, so sorry if I'm making a very obvious mistake!
Background for context: I have a sce with 10 samples from 5 patients for a case control study. My disease is unilateral, so I have one left and one right sample from each of the 5 patients, creating an n=10.
I can run differential expression between case vs control and left vs right across all 10 samples without hitch - however, I'm now trying to look at left vs right within each patient.
I've currently done this by pulling out each patient from the main sce to make smaller objects for each patient (total of 5 separate sce's, containing the left sample and the right sample of each patient).
I'm now trying to run my differential expression code (that seemingly worked ok for the large object, although did not yield many differentially expressed genes between left and right), on these smaller objects to compare left vs right for each patient and while the code seemingly runs, the output has List of length 0.
I've tried all sorts to try to get this to work, but haven't been able to crack it - time to ask for help from the experts! What am I doing wrong? Is there an alternative way to do this?
Thanks so much for your help!
summed <- aggregateAcrossCells(scePatient1,
ids = colData(scePatient1)[, c("label", "SampleName")])
Side <- pseudoBulkDGE(summed,
label = summed$label,
design = ~ Side,
coef = "SideRight")
Side
List of length 0
sessionInfo( )
R version 4.3.1 (2023-06-16)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Sonoma 14.5
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] batchelor_1.16.0 edgeR_3.42.4 limma_3.56.2
[4] lubridate_1.9.3 forcats_1.0.0 stringr_1.5.1
[7] dplyr_1.1.4 purrr_1.0.2 readr_2.1.5
[10] tidyr_1.3.0 tibble_3.2.1 tidyverse_2.0.0
[13] scran_1.28.2 scater_1.30.1 ggplot2_3.4.4
[16] scuttle_1.10.3 SingleCellExperiment_1.22.0 SummarizedExperiment_1.30.2
[19] Biobase_2.60.0 GenomicRanges_1.52.1 GenomeInfoDb_1.36.4
[22] IRanges_2.34.1 S4Vectors_0.38.2 BiocGenerics_0.46.0
[25] MatrixGenerics_1.12.3 matrixStats_1.2.0
loaded via a namespace (and not attached):
[1] ResidualMatrix_1.10.0 tidyselect_1.2.0 viridisLite_0.4.2
[4] vipor_0.4.7 viridis_0.6.4 bitops_1.0-7
[7] RCurl_1.98-1.14 bluster_1.10.0 rsvd_1.0.5
[10] timechange_0.2.0 lifecycle_1.0.4 cluster_2.1.6
[13] statmod_1.5.0 magrittr_2.0.3 compiler_4.3.1
[16] rlang_1.1.3 tools_4.3.1 igraph_1.6.0
[19] utf8_1.2.4 S4Arrays_1.2.1 dqrng_0.3.2
[22] DelayedArray_0.26.7 abind_1.4-5 BiocParallel_1.34.2
[25] withr_3.0.0 grid_4.3.1 fansi_1.0.6
[28] beachmat_2.16.0 colorspace_2.1-0 scales_1.3.0
[31] cli_3.6.2 crayon_1.5.2 generics_0.1.3
[34] metapod_1.8.0 rstudioapi_0.15.0 tzdb_0.4.0
[37] DelayedMatrixStats_1.22.6 ggbeeswarm_0.7.2 zlibbioc_1.46.0
[40] parallel_4.3.1 XVector_0.40.0 vctrs_0.6.5
[43] Matrix_1.6-1 BiocSingular_1.16.0 hms_1.1.3
[46] BiocNeighbors_1.18.0 ggrepel_0.9.5 irlba_2.3.5.1
[49] beeswarm_0.4.0 locfit_1.5-9.8 glue_1.7.0
[52] codetools_0.2-19 stringi_1.8.3 gtable_0.3.4
[55] ScaledMatrix_1.8.1 munsell_0.5.0 pillar_1.9.0
[58] GenomeInfoDbData_1.2.10 R6_2.5.1 sparseMatrixStats_1.12.2
[61] lattice_0.22-5 Rcpp_1.0.12 gridExtra_2.3
[64] pkgconfig_2.0.3
My guess is that
Side
did not make it into the summed object. You aggregate the SCE to summed with label and SampleName. How would the function know whatSide
is`?Thank you so much for your response. I've just tried adding Side to the summed object in both of the following manners, but I still get a "List of length = 0". When I use the above code without including Side in the summed object on my larger data set (n=10 vs the n=2 I'm currently stuck on), I can still run Side analysis and get differential expression from it.
and
What is the relationship between side and label?
"label" refers to my clusters, so there shouldn't be one. Both samples have cells in every cluster