1概述

BiocSingular实现了几个有用的功能DelayedMatrix处理主成分分析(PCA)的后端。本文旨在提供这些类的概述,以及如何在其他包中使用它们来提高PCA之前或之后的效率。

2DeferredMatrix

现在它已经被移到了自己的位置ScaledMatrix包中。来看看,非常酷。

3.LowRankMatrix

一旦执行PCA,有时需要通过取旋转向量和PC分数的叉积来获得输入矩阵的低秩近似值。天真地这样做会导致形成与输入相同维度的密集矩阵。对于大型数据集来说,这可能会消耗大量内存。相反,我们可以构造一个LowRankMatrix类,该类模拟交叉积的输出,但不实际计算它。

library(Matrix) a <- rsparsematrix(10000, 1000,密度=0.01)out <- runPCA(a, rank=5, BSPARAM=IrlbaParam(deferred=TRUE)) #延迟速度。recon <- LowRankMatrix(out$rotation, out$x
## <1000 × 10000>矩阵类LowRankMatrix和类型“double”:##[,1][,2][,3]…# # (9999) [1] -6.607941 e-05 -3.309660 e 03 -2.509974 e-04。0.0006029616 ## [2,] -7.794603e-04 -1.556315e-03 4.616200e-04。0.0028565633 ## [3,] -5.427039e-04 9.868561e-04 -1.863603e-03。-0.0031250885 ## [4,] -3.779873e-03 -8.401240e-05 -2.049993e-03。0.0028219708 ## [5,] 1.047063e-03 2.053309e-03 1.583250e-03。-0.0010803753 ## ... ... ..## [996,] 4.693951e-03 -1.163595e-02 6.549077e-03。-7.600833e-03 ## [997,] 2.929351e-04 -3.241344e-03 1.434765e-03。7.972958e-06 ## [998,] -2.177646e-03 -9.159261e-04 -1.859687e-03。 -1.206412e-04 ## [999,] -6.839735e-05 2.387144e-03 4.641709e-04 . 1.017343e-03 ## [1000,] 2.363621e-03 7.373208e-04 5.527227e-04 . -5.160522e-03 ## [,10000] ## [1,] 0.0049807597 ## [2,] 0.0003094826 ## [3,] 0.0045562989 ## [4,] 0.0026209457 ## [5,] -0.0034867483 ## ... . ## [996,] 9.029046e-03 ## [997,] 4.252964e-04 ## [998,] 5.170815e-03 ## [999,] -4.509402e-03 ## [1000,] 4.960680e-04

这对于方便地提取行向量或列向量是有用的,而不需要手动执行叉乘。一个LowRankMatrix因此可以直接与下游过程(例如,用于可视化)互操作,这些过程期望与输入具有相同维数的矩阵。

总结(侦察[1])
最小第一曲,中位数,平均第三曲,最大值。## -5.118e-02 -1.946e-03 -5.443e-05 -1.168e-04
总结(侦察[2])
最小第一曲,中位数,平均第三曲,最大值。## -3.090e-02 -1.191e- 05 0.000e+00 1.110e-03 5.060e-02

同样,大多数操作都会导致LowRankMatrix优雅地陷入DelayedMatrix以便进一步处理。

4ResidualMatrix

现在它已经被移到了自己的位置ResidualMatrix包中。来看看,非常酷。

5会话信息

sessionInfo ()
## R正在开发中(不稳定)(2022-10-25 r83175) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 22.04.1 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.17-bioc/R/lib/libRblas。so ## LAPACK: /usr/lib/x86_64-linux-gnu/ LAPACK /liblapack.so.3.10.0 ## ## 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]stats graphics grDevices utils datasets methods base ## ##其他附加包:## [1]Matrix_1.5-1 BiocParallel_1.33.0 BiocSingular_1.15.0 ## [4] knitr_1.40 BiocStyle_2.27.0 ## ##通过命名空间加载(且未附加):## [4] rcpp_1.8.3 compiler_4.3.0 rsvd_1.0.5 string_1 .4.1 ## [7] parallel_4.3.0 jquerylib_0.1.4 IRanges_2.33.0 ## [10] yaml_2.3.6 fastmap_1.1.0 lattice_0.20-45 ## [13] R6_2.5.1 ScaledMatrix_1.7.0 BiocGenerics_0.45.0 ## [19] DelayedArray_0.25.0 bookdown_0.29 MatrixGenerics_1.11.0 ## [19] bslib_0.4.0 rlang_1.0.6 cachem_1.0.6 ## [22] stringi_1.7.8 xfun_0.34 sass_0.4.2 ## [25] cli_4.1 magrittr_2.0.3 digest_0.6.30 ## [28] grid_4.3.0 irlba_2.3.5.1## [34] stats4_4.3.0 rmarkdown_2.17 matrixStats_0.62.0 ## [37] tools_4.3.0 htmltools_0.5.3 codetools_0.2-18 beachmat_2.15.0