内容

1LoomExperiment

1.1定义

LoomExperiment类族继承自主类LoomExperiment以及以它们命名的实验班。例如,SingleCellLoomExperiment类从两者继承LoomExperiment而且SingleCellExperiment

的目的LoomExperiment班是Bioconductor的实验班和Linnarson实验室的织机文件格式(http://linnarssonlab.org/loompy/index.html).织机文件格式使用HDF5存储实验数据。

LoomExperiment类族包含以下插槽。

  • colGraphs
  • rowGraphs

这两个槽都是LoomGraphs对象,用于描述col_graph而且row_graph属性指定的织机文件格式。

1.2创建LoomExperiment实例

类型的实例有几种创建方法LoomExperiment对象的类。可以将现有的summarizeexperiment类型类插入适当的构造函数中:

library(LoomExperiment) counts <- matrix(rpois(100, lambda =10), ncol=10, nrow=10) sce <- SingleCellLoomExperiment(assays = list(counts = counts)) scale <- SingleCellLoomExperiment(sce) ## OR scale <- LoomExperiment(sce)

也可以简单地将参数插入到适当的构造函数中,因为所有LoomExperiment构造函数调用适用类的构造函数

- SingleCellLoomExperiment(assays = list(counts = counts))

此外,还可以创建一个LoomExperiment通过强制扩展类:

量表<- as(sce, "SingleCellLoomExperiment")量表
##类:SingleCellLoomExperiment ## dim: 10 10 ##元数据(0):## assays(1):计数## rownames: NULL ## rowData names(0): ## colnames: NULL ## colData names(0): ## reducedDimNames(0): ## mainExpName: NULL ## altExpNames(0): ## rowGraphs(0): NULL ## colGraphs(0): NULL

最后,我们可以创建一个LoomExperiment对象从导入织机文件。

1.3举个简单的例子

我们将使用以下方法SingleCellLoomExperiment剩下的部分。

L1_file <- system。文件(“extdata”、“L1_DRG_20_example。- import(l1_file, type="SingleCellLoomExperiment")规模
##类:SingleCellLoomExperiment ## dim: 20 20 ##元数据(4):CreatedWith LOOM_SPEC_VERSION LoomExperiment-class ## MatrixName ## assays(1):矩阵## rownames: NULL ## rowData names(7):接入基因…X_Total X_Valid ## colnames: NULL ## colData names(103): Age AnalysisPool…cDNA_Lib_Ok ngperul_cDNA ## reducedDimNames(0): ## mainExpName: NULL ## altExpNames(0): ## rowGraphs(0): NULL ## colGraphs(2): KNN MKNN

以下所有方法都适用于所有LoomExperiment类。

2LoomGraph

colGraphs而且rowGraphsLoomExperiments的槽对应于col_graphs而且row_graphs字段的织机文件格式。这两个槽都需要LoomGraphs对象。

一个LoomGraph类扩展了SelfHits类的S4Vectors包装的要求是aLoomGraph对象必须:

而且对应于任何一个上校的索引LoomExperiment对象而w是指定权重的可选列。

LoomGraph可以用两种方式构造:

a <- c(1,2,3) b <- c(3,2,1) w <- c(100,10,1) df <- DataFrame(a, b, w) lg <- as(df, "LoomGraph") ## OR lg <- LoomGraph(a, b, weight = w) lg
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 2 2 | 10 ## [3] 3 1 | 1 ## ------- ## nnode: 3

LoomGraph对象可以是' row ' / ' col '索引的子集。

lg (c(1、2))
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 2 2 | 10 ## ------- ## nnode: 3
lg (- c (2))
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 3 1 | 1 ## ------- ## nnode: 3

3.LoomGraphs

一个LoomGraphs对象扩展了S4Vectors: SimpleList对象。它包含多个LoomGraph对象,其唯一要求是必须包含LoomGraph对象。

它可以通过使用简单地创建LoomGraph对象中的LoomGraphs构造函数

lgs <- LoomGraphs(lg, lg) names(lgs) <- c('lg1', 'lg2') lgs
长度为2的LoomGraphs名称(2):lg1 lg2

4的可用方法LoomExperiment

LoomGraphs分配给这些人colGraphs而且rowGraphs槽位的获取方法如下:

colGraphs (scle)
长度为2的LoomGraphs (2): KNN MKNN
rowGraphs (scle)
长度为0的LoomGraphs

同样的符号也可以用来代替各自的LoomGraphs

colGraphs(scale) <- lgs rowGraphs(scale) <- lgs colGraphs(scale)
长度为2的LoomGraphs名称(2):lg1 lg2
rowGraphs (scle)
长度为2的LoomGraphs名称(2):lg1 lg2
colGraphs (scle) [[1]]
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 2 2 | 10 ## [3] 3 1 | 1 ## ------- ## nnode: 20
rowGraphs (scle) [[1]]
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 2 2 | 10 ## [3] 3 1 | 1 ## ------- ## nnode: 20

LoomExperiment对象可以以这样一种方式进行子集设置化验colGraphs,rowGraphs都将被细分。化验Will Will会被归类为any矩阵会。的元素将对rowGraphs槽和j元素将对colGraphs槽,就像我们从subset方法中看到的LoomGraphs

scle2 <- scale [c(1,3), 1:2] colGraphs(scle2)[[1]]
## from to | w# #   |  ## [1] 2 2 | 10 ## ------- ## nnode: 2
rowGraphs (scle2) [[1]]
## from to | w# #   |  ## [1] 1 2 | 100 ## [2] 2 1 | 1 ## ------- ## nnode: 2
Scle3 <- rbind(scale, scale) Scle3
##类:SingleCellLoomExperiment ## dim: 40 20 ##元数据(8):CreatedWith LOOM_SPEC_VERSION…LoomExperiment-class ## MatrixName ## assays(1):矩阵## rownames: NULL ## rowData names(7):接入基因…X_Total X_Valid ## colnames: NULL ## colData names(103): Age AnalysisPool…cDNA_Lib_Ok ngperul_cDNA ## reducedDimNames(0): ## mainExpName: NULL ## altExpNames(0): ## rowGraphs(2): lg1 lg2 ## colGraphs(4): lg1 lg2 lg1 lg2
colGraphs (scle3)
长度为4的LoomGraphs名称(4):lg1 lg2 lg1 lg2
rowGraphs (scle3)
长度为2的LoomGraphs名称(2):lg1 lg2
colGraphs (scle3) [[1]]
## from to | w# #   |  ## [1] 1 3 | 100 ## [2] 2 2 | 10 ## [3] 3 1 | 1 ## ------- ## nnode: 20
rowGraphs (scle3) [[1]]
## from to | w ##   |  ## [1] 1 3 | 100 ## [2] 22 b| 10 ## [3] 3 1 | 1 ## [4] 21 23 | 100 ## [5] 22 22 | 10 ## [6] 23 21 | 1 ## ------- ## nnode: 40

最后,LoomExperiment对象可以导出。

Temp <- tempfile(fileext='.loom') export(scle2, Temp)

5会话信息

sessionInfo ()
## R版本4.2.0 RC (2022-04-19 r82224) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.15-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] LoomExperiment_1.14.0 BiocIO_1.6.0 ## [3] rhdf5_2.40.0 SingleCellExperiment_1.18.0 ## [5] SummarizedExperiment_1.26.0 Biobase_2.56.0 ## [7] GenomicRanges_1.48.0 GenomeInfoDb_1.32.0 ## [9] IRanges_2.30.0 MatrixGenerics_1.8.0 ## [11] matrixStats_0.62.0 S4Vectors_0.34.0 ## [13] BiocGenerics_0.42.0 BiocStyle_2.24.0 ## ##通过命名空间加载(并且没有附加):## [1] bslib_string_1 .4.0 knitrr_1 . 1.5.1 hdf5filters_1.8.0 ## [7] bitops_1.0-7 tools_4.2.0 zlibbioc_1.42.0 ## [10] digest_0.6.29 jsonlite_1.8.0 evaluate_0.15 ## [13] lattice_0.20-45 rlang_1.0.2 Matrix_1.4-1 ## [13] DelayedArray_0.22.0 cli_3.3.0 yaml_2.3.5 ## [19] xfun_0.30 fastmap_1.1.0 GenomeInfoDbData_1.2.8 ## [25] grid_4.2.0 R6_2.5.1 HDF5Array_1.24.0 ## [28] rmarkdown_2.14 bookdown_0.26Rhdf5lib_1.18.0 ## [31] magrittr_2.0.3 htmltools_0.5.2 stringi_1.7.6 ## [34] RCurl_1.98-1.6