scDblFinder 1.12.0
的相关部分OSCA书的例子recoverDoublets ()
函数在实际数据上的作用。中还提供了一个玩具示例recoverDoublets ?
.
考虑任意两个细胞状态\ (c₁\)而且\ (c₂\)形成双重种群\ (D_ {12} \).我们将集中研究样本间和样本内双态的相对频率\ (D_ {12} \).给定一个向量vec p_X \ (\ \)包含每个样品中处于状态的细胞比例\ \ (X),假设样本对之间随机形成双峰,则样本内双峰的期望比例为\ (D_ {12} \)是\(\vec p_{C_1} \cdot \vec p_{C_2}\).从1减去这个,我们得到样本间双重态的期望比例\ (q_ {D_ {12}} \).相似地,样本间双态的期望比例\ (c₁\)只是\(q_{C_1} =1 - \| \vec p_{C_1} \|_2^2\).
现在,让我们考虑观察到的事件比例\ (r_X \)在每个州\ \ (X)这是已知的双峰。我们有\(r_{D_{12}} = q_{D_{12}}\)因为没有其他的活动\ (D_ {12} \)超越实际的双份。另一方面,我们也希望如此\(r_{C_1} \ll q_{C_1}\)由于存在大量的非双态细胞\ (c₁\)(相同\ (c₂\)).如果我们假设\(q_{D_{12}} \ge q_{C_1}\)而且\ (q_{₂}\),观测比例\ (r_ {D_ {12}} \)应该大于\ (r_ {c₁}\)而且\ (r_{₂}\).(最后一个假设并不总是正确的,但是\ \ (ll \)应该会给我们足够的回旋空间来应对违规行为。)
上述推理促使使用已知双态邻居的比例作为“双态分数”来识别最有可能本身就是双态的事件。recoverDoublets ()
为每个单元格计算已知双态邻居的比例\ (k \)-最近邻搜索数据集中的所有其他单元格。然后直接计算标记为已知双态的相邻单元的比例,表示我们的估计\ (r_X \)对于每个单元格。
虽然比例是有信息的,但有时我们需要将它们转换为显式的双重调用。这是通过vec年代\ (\ \),每个样本在整个数据集上的细胞比例的向量(即,样品
).我们假设所有对双态有贡献的单元态的比例向量等于vec年代\ (\ \),使得来自同一样本的细胞之间出现双态的期望比例为\(\| \vec S\|_2^2\).然后我们解
\[\压裂{N_{内部}}{(N_{}内+ N_{国米}}= vec年代\ | \ \ | _2 ^ 2 \]
为\ (N_{内部}\),在那里\ (N_{国米}\)是观察到的样本间双重态的数目。顶部\ (N_{内部}\)得分最高的事件(显然不是样本间双态)被标记为假定的样本内双态。
双态形成的速率和方式(大部分)是不相关的,因为我们以事件的数量为条件\ (D_ {12} \).这意味着我们不必对成对细胞类型之间形成双态的相对可能性做任何假设,特别是当细胞类型具有不同程度的“粘性”时(或者更糟的是,专门粘附于某些其他细胞类型)。这样的便利是可能的,因为已知的双态调用允许我们专注于样本间与样本内的比率。
最有问题的假设是需要得到\ (N_{内部}\)从vec年代\ (\ \).要获得更好的估计,至少需要了解每个双态总体的两个父态。这可以通过一些基于模拟的启发式方法来确定,但这可能会带来更多的麻烦。
在这个理论框架中,我们可以很容易地发现我们的方法失败的情况。如果两个\ (c₁\)而且\ (c₂\)是唯一的一个给定的样本,所有的事件\ (D_ {12} \)将是样本内的double。这意味着没有事件\ (D_ {12} \)将被检测为样本间双态,这就排除了它们作为样本内双态的检测recoverDoublets
.计算补救方法是用基于模拟的方法来增强预测(例如,scDblFinder ()
),而实验补救措施是确保多重样本包括技术或生物复制。
sessionInfo ()
## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:# # # # [1] bluster_1.8.0 scDblFinder_1.12.0 [3] scater_1.26.0 ggplot2_3.3.6 # # [5] scran_1.26.0 scuttle_1.8.0 # # [7] ensembldb_2.22.0 AnnotationFilter_1.22.0 # # [9] GenomicFeatures_1.50.0 AnnotationDbi_1.60.0 # # [11] scRNAseq_2.11.0 SingleCellExperiment_1.20.0 # # [13] SummarizedExperiment_1.28.0 Biobase_2.58.0 # # [15] GenomicRanges_1.50.0 GenomeInfoDb_1.34.0 # # [17] IRanges_2.32.0 S4Vectors_0.36.0 # # [19] BiocGenerics_0.44.0 MatrixGenerics_1.10.0 # # [21] matrixStats_0.62.0 BiocStyle_2.26.0 # # # #通过命名空间加载(并且没有附加):# # # # [1] AnnotationHub_3.6.0 BiocFileCache_2.6.0 [3] igraph_1.3.5 lazyeval_0.2.2 # # [5] BiocParallel_1.32.0 digest_0.6.30 # # [7] htmltools_0.5.3 magick_2.7.3 # # [9] viridis_0.6.2 fansi_1.0.3 # # [11] magrittr_2.0.3 memoise_2.0.1 # # [13] ScaledMatrix_1.6.0 cluster_2.1.4 # # [15] limma_3.54.0 Biostrings_2.66.0 # # [17] prettyunits_1.1.1 colorspace_2.0-3 # # [19] ggrepel_0.9.1 blob_1.2.3 # # [21] rappdirs_0.3.3 xfun_0.34 # # [23] dplyr_1.0.10 crayon_1.5.2 # # [25] rcurl_1.98 - 1.9 jsonlite_1.8.3 # # [27][31] DelayedArray_0.24.0 BiocSingular_1.14.0 ## [33] scales_1.2.1 DBI_1.1.3 ## [35] edgeR_3.40.0 Rcpp_1.0.9 ## [37] viridisLite_0.4.1 xtable_1.8-4 ## [39] progress_1.2.2 dqrng_0.3.0 ## [43] metapod_1.6.0 httr_1.4.4 ## [45] ellipsis_0.3.2 farver_2.1.1 ## [47] pkgconfig_2.0.3 XML_3.99-0.12 ## [49] sass_0.4.2 dbplyr_2.2.1 ## [51] locfit_1.5-9.6 utf8_1.2.2 ## [53] labeling_0.4.2 tidyselect_1.2.0 ## [55][63] generics_0.1.3 RSQLite_2.2.18 ## [67] experimenthub_1 .4.1 fastmap_1.1.0 ## [69] yaml_2.3.6 knitr_1.40 ## [71] bit64_4.0.5 purrr_0.3.5 ## [73] KEGGREST_1.38.0 sparseMatrixStats_1.10.0 ## [75] mime_0.12 xml2_1.3.3 ## [77] biomaRt_2.54.0 compiler_4.2.1 ## [79] beeswarm_0.4.0 filelock_1.0.2 ## [81] curl_4.3.3 png_0.1-7 ## [83] interactiveDisplayBase_1.36.0 tibble_3.1.8 ## [85] statmod_1.4.37 bslib_0.4.0 ## [87] stringi_1.7.8 highr_0.9 ## [89] lattice_0.20-45 ProtGenerics_1.30.0 ## [91] Matrix_1.5-1 vctrs_0.5.0 ## [93] pillar_1.8.1 lifecycle_1.0.3 ## [95] BiocManager_1.30.19 jquerylib_0.1.4 ## [97] BiocNeighbors_1.16.0 cowplot_1.1.1 ## [99] data.table_1.14.4 bitops_1.0-7 ## [101] irlba_2.3.5.1 httpuv_1.6.6 ## [103] rtracklayer_1.58.0 R6_2.5.1 ## [105] BiocIO_1.8.0 bookdown_0.29 ## [107] promises_1.2.0.1 gridExtra_2.3 ## [109] vipor_0.4.5 codetools_0.2-18 ## [111] MASS_7.3-58.1 assertthat_0.2.1 ## [113] rjson_0.2.21 withr_2.5.0 ## [115] GenomicAlignments_1.34.0 Rsamtools_2.14.0 ## [117] GenomeInfoDbData_1.2.9 parallel_4.2.1 ## [119] hms_1.1.2 grid_4.2.1 ## [121] beachmat_2.14.0 rmarkdown_2.17 ## [123] DelayedMatrixStats_1.20.0 Rtsne_0.16 ## [125] shiny_1.7.3 ggbeeswarm_0.6.0 ## [127] restfulr_0.0.15