SCArray包提供大规模单细胞RNA-seq数据操作,使用基因组数据结构(GDS)文件。它结合了存储在GDS文件中的密集/稀疏矩阵和Bioconductor基础架构框架(SingleCellExperiment而且DelayedArray),使用R编程语言提供内存不足的数据存储和操作。如图所示,SCArray提供了一个SingleCellExperiment
对象进行下游数据分析。GDS是HDF5的替代方案。与HDF5不同,GDS支持稀疏矩阵的直接存储,而无需将其转换为多个向量。
SCArray包可以使用该函数将单细胞实验对象(singlecel实验)转换为GDS文件scConvGDS ()
.例如,
suppressPackageStartupMessages(图书馆(SCArray))suppressPackageStartupMessages(图书馆(SingleCellExperiment))#加载一个singlecel实验对象fn < -执行(“extdata”,“LaMannoBrainSub.rds”,包=“SCArray”)南加州爱迪生公司< -readRDS(fn)#转换为GDS文件scConvGDS(预计,“test.gds”)
##输出:test。gds压缩:LZMA_RA尺寸:18219x25化验列表:## counts |+ counts {SparseReal32 18219x25 LZMA_RA (13.1%), 756 k} ## rowData: ## colData: ## CELL_ID ## Cell_type ## # Done。
## SCArrayFileClass类对象:/tmp/Rtmph7tRwa/Rbuild25be9a1c07479e/SCArray/vignettes/test。gds (137.9K) ## +[] * ## |—+功能。id {Str8 18219 LZMA_ra(48.6%), 60.5K} ## |- +样本。id {Str8 25 LZMA_ra(40.0%), 157B} ## |—+计数{SparseReal32 18219x25 LZMA_ra(13.1%), 756 k} ## |—+特征。Data[] ## |—+ sample。数据[]## | |--+ CELL_ID { Str8 25 LZMA_ra(40.0%), 157B } ## | \--+ Cell_type { Str8 25 LZMA_ra(64.3%), 133B } ## \--+ meta.data [ ]
的输入scConvGDS ()
计数数据可以是稠密矩阵或稀疏矩阵:
图书馆(矩阵)问< -矩阵(0,nrow =4,ncol =8)set.seed(One hundred.);问[sample.int(长度(问),8) < -rpois(8,4)(问< -作为(问,“dgCMatrix”))
## 4 x 8稀疏矩阵类“dgCMatrix”## ## [1,]. . . . . . .6 ## [2,] 3 1 . .4 . .## [3,] . . . . .3.4 . [4,]3.
##输出:test。gds ##压缩:LZMA_RA ##尺寸:4x8化验列表:##计数|+计数{SparseReal32 4x8 LZMA_RA (159.4%), 109B} ##完成。
当单单元格GDS文件可用时,用户可以使用scExperiment ()
从GDS文件中加载singlecel实验对象。singlecel实验对象中的分析数据是DelayedMatrix对象,以避免内存限制。
## [1] "/tmp/Rtmph7tRwa/Rinst25be9a33922a2c/SCArray/extdata/LaMannoBrainData.gds"
##类:singlecel实验## dim: 12000 243 ##元数据(0):## assays(1):计数## rownames(12000): Rp1 Sox17…Efhd2 Fhad1 ## rowData names(0): ## colnames(243): 1772072122_A04 1772072122_A05…1772099011_H05 ## 1772099012_E04 ## colData names(2): CELL_ID Cell_type ## reducedDimNames(0): ## mainExpName: NULL ## altExpNames(0):
## <12000 x 243>稀疏矩阵类SC_GDSMatrix和类型“double”:## 1772072122_A04 1772072122_A05…1772099011_H05 1772099012_E04 ## Rp1 0 0;0 0 ## Sox17 0 0。0 0 ## Mrpl15 1 2。2 2 ## Lypla1 0 0。0 1 ## Tcea1 1 0;6 1 ## ... ... ..Agmat 0 0。0 0 ## Dnajc16 0 0。0 0 ## Casp9 0 0 0 0 ## Efhd2 0 0 . 1 1 ## Fhad1 0 0 . 1 0
a - vta4 ## 1772072122_A05 1772072122_A06 1772072122_A06 DA-VTA3 ## 1772072122_A07 1772072122_A07 DA-SNC ## 1772072122_A08 1772072122_A08 DA-VTA4 ## ... ... ...da-vta1 ## 1772099011_f04 1772099011_f04 da-vta2 ## 1772099011_g07 1772099011_g07 da-vta4 ## 1772099011_h05 1772099011_h05 da-snc ## 1772099012_e04
数据帧有12000行,0列
SCArray提供了一个SingleCellExperiment
对象进行下游数据分析。首先,我们创建一个对数计数矩阵logcnt
从计数矩阵。请注意,logcnt
也是一个DelayedMatrix,而不实际生成整个矩阵。
## <12000 x 243>稀疏矩阵类DelayedMatrix和类型“double”:## 1772072122_A04 1772072122_A05…1772099011_H05 1772099012_E04 ## Rp1 0.000000 0.000000。0.000000 0.000000 ## Sox17 0.000000 0.000000Mrpl15 1.000000 1.584963。1.584963 1.584963 ## Lypla1 0.000000 0.000000。## Tcea1 1.000000 0.000000。2.807355 1.000000 ## ... ... ..Agmat 0 0。0 0 ## Dnajc16 0 0。0 0 ## Casp9 0 0 0 0 ## Efhd2 0 0 . 1 1 ## Fhad1 0 0 . 1 0
的DelayedMatrixStatspackage提供了操作DelayedMatrix对象的行和列的函数。例如,我们可以计算对数计数矩阵的每一列或每一行的平均值。
suppressPackageStartupMessages(图书馆(DelayedMatrixStats))col_mean < -DelayedMatrixStats::colMeans2(logcnt)str(col_mean)
## num[1:43] 0.261 0.138 0.238 0.259 0.143…
## num[1:12000] 0 0.00652 0.81827 0.47055 1.33912…
的嘘包可以执行统一流形近似和投影(UMAP)的单元格数据,基于数据在一个singlecel实验对象。
plotReducedDim ()
存储在singlecel实验对象中的单元级降维结果(UMAP):
## 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]基础## ##其他附加包:[5] SingleCellExperiment_1.20.0 SummarizedExperiment_1.28.0 ## [7] Biobase_2.58.0 GenomicRanges_1.50.0 ## [9] GenomeInfoDb_1.34.0 SCArray_1.6.0 ## [11] DelayedArray_0.24.0 IRanges_2.32.0 ## [13] S4Vectors_0.36.0 MatrixGenerics_1.10.0 ## [15] matrixStats_0.62.0 BiocGenerics_0.44.0 ## [17] Matrix_1.5-1 gdsfmt_1.34.0 ## ##通过命名空间加载(并且没有附加):## [1] viridis_0.6.2 sass_1.6.0 biocparallel_1 .14.0 ## [4] viridisLite_0.4.1 bslib_0.4.0 ## [7] assertthat_0.2.1 highr_0.9 GenomeInfoDbData_1.2.9 ## [10] vipor_0.4.5 yaml_2.3.6 ggrepel_0.9.1 ## [13] pillar_1.8.1 lattice_0.20-45 glue_1.6.2 ## [19] colorspace_2.0-3 cowplot_1.1.1 htmltools_0.5.3 ## [22] pkgconfig_2.0.3 zlibbioc_1.44.0 scales_1.2.1 ## [25] ScaledMatrix_1.6.0 BiocParallel_1.32.0 tibble_3.1.8 ## [28] farver_2.1.1[34] crayon_1.5.2 evaluate_0.17 fansi_1.0.3 ## [37] FNN_1.1.3.1 beeswarm_0.4.0 tools_4.2.1 ## [40] lifecycle_1.0.3 string_1 .4.1 munsell_0.5.0 ## [43] irlba_2.3.5.1 compiler_4.2.1 jquerylib_0.1.4 ## [46] rsvd_1.0.5 rlang_1.0.6 grid_4.2.1 ## [49] RCurl_1.98-1.9 BiocNeighbors_1.16.0 labeling_0.4.2 ## [52] bitops_1.0-7 rmarkdown_2.17 gtable_0.3.1 ## [55] codetools_0.2-18 DBI_1.1.3 R6_2.5.1 ## [58] gridExtra_2.3 knitr_1.40dplyr_1.0.10 ## [61] uwot_0.1.14 fastmap_1.1.0 utf8_1.2.2 ## [64] stringi_1.7.8 ggbeeswarm_0.6.0 parallel_4.2.1 ## [67] Rcpp_1.0.9 vctrs_0.5.0 tidyselect_1.2.0 ## [70] xfun_0.34 sparseMatrixStats_1.10.0