内容

1为MultiAssayExperiment集成HDF5后端

依赖关系

库(MultiAssayExperiment)库(HDF5Array)库(summarizeexperiment)

1.1HDF5Array和DelayedArray构造函数

HDF5Array包提供了大型数据集的磁盘表示,而不需要将它们加载到内存中。方便的惰性求值操作允许用户基于元数据操作如此大的数据文件。的DelayedMatrixDelayedArray包提供了一种连接到存储在磁盘上的大型矩阵的方法。

首先,我们创建一个用于构造的小矩阵DelayedMatrix类。

smallMatrix <- matrix(rnorm(10e5), ncol = 20)

类的行名和列名添加到矩阵对象中,以便与MultiAssayExperiment表示。

rownames(smallMatrix) <- paste0("GENE", seq_len(nrow(smallMatrix))) colnames(smallMatrix) <- paste0("SampleID", seq_len(ncol(smallMatrix))))

这里我们使用DelayedArray构造函数来创建DelayedMatrix对象。

<- DelayedArray(smallMatrix)类
## [1] "DelayedMatrix" ## attr(,"package") ## [1] "DelayedArray"
头(smallMatrix)
<6 x 20> DelayedMatrix对象类型为“double”:## SampleID1 SampleID2 SampleID3…SampleID20 ## GENE1 -0.359164557 0.006381214 0.804683509。0.09268673 -0.18194204基因2 -2.301042537 -0.179489084 1.422183406。gene3 -1.190395193 -0.918707976 0.300218562。0.76711260 -1.53001855 ## gene4 -0.672100528 -0.743413816 -1.130025666。-0.64196577 1.36263318 ## gene5 0.416523031 0.129494724 -1.500312032。-0.84616310 -1.77571720基因6 -0.312229251 0.550848399 0.430698951。-0.01452894 - -0.27588908
暗(smallMatrix)
## [1] 50000 20

1.2导入HDF5文件

方法也可以加载HDF5文件中的大型矩阵HDF5Array函数。

例如:

dataLocation <- system。文件(“extdata”、“exMatrix。h5", package = "MultiAssayExperiment", mustWork = TRUE) h5ls(dataLocation)
##组名称dclass dim ## 0 / exMatrix H5I_DATASET FLOAT 5000 * 20
hdf5Data <- HDF5ArraySeed(file = dataLocation, name = "exMatrix") <- DelayedArray(hdf5Data) class(newDelayedMatrix)
# #[1]“HDF5Matrix”# # attr(“包”)# #[1]“HDF5Array”
头(newDelayedMatrix)
## <6 x 20> DelayedMatrix对象类型为“double”:##[,1][,2][,3]…[,19] [,20] ## [1,] 0.3261516 0.4149151 0.8154378- 0.4156044 ##[2,] 0.7243018 -0.9416687 -1.1290878。-1.2820178 -0.3591841 ##[3,] 1.5073255 0.7597899 -0.2756298。-1.5666680 -0.1523462 ##[4,] 0.1668286 1.2684049 0.9082990。0.3486139 1.8019041 ##[5,] 0.5640491 -2.0222537 0.2881079。0.1210501 -1.4873598 ##[6,] -0.3504778 -0.4149494 0.9145470。0.4291890 - -0.4986399

1.2.1 "HDF5文件中的Dimnames

目前,rhdf5包不存储dimnamesh5默认文件。的维护者已收到此特性的请求rhdf5包和任何进一步的发展HDF5Array包取决于这种较低级别的维名存储。

1.3使用一个DelayedMatrixMultiAssayExperiment

一个DelayedMatrix单独符合MultiAssayExperimentAPI要求。如下所示,DelayedMatrix能不能放进一个有名字的列表然后进入MultiAssayExperiment构造函数。

HDF5MAE <- MultiAssayExperiment(实验= list(smallMatrix = smallMatrix))
##数据帧20行3列##分析主colname ## <因子> <字符> <字符> ## 1 smallMatrix SampleID1 SampleID1 ## 2 smallMatrix SampleID2 SampleID2 ## 3 smallMatrix SampleID3 SampleID3 ## 4 smallMatrix SampleID4 SampleID4 ## 5 smallMatrix SampleID5 SampleID5 ## ... ... ... ...## 17 smallMatrix SampleID17 SampleID17 ## 18 smallMatrix SampleID18 SampleID18 ## 19 smallMatrix SampleID19 SampleID19 ## 20 smallMatrix SampleID20
colData (HDF5MAE)
## 20行0列的数据框架

1.3.1SummarizedExperimentDelayedMatrix后端

更丰富的信息DelayedMatrix与?一起使用时可以创建SummarizedExperiment类,它甚至可以包含rowRanges.的灵活性MultiAssayExperimentAPI支持需求最小的类。此外,这SummarizedExperimentDelayedMatrix后端可以是更大的MultiAssayExperiment对象。下面是如何工作的一个最小示例:

HDF5SE <- summary experiment (assays = smallMatrix) assay(HDF5SE)
## <50000 x 20> DelayedMatrix对象类型为“double”:SampleID19 ## GENE1 -0.359164557 0.006381214 0.804683509。0.09268673 ## gene2 -2.301042537 -0.179489084 1.4221834062.44672692 gene3 -1.190395193 -0.918707976 0.300218562。0.76711260 ## gene4 -0.672100528 -0.743413816 -1.130025666。-0.64196577 ## gene5 0.416523031 0.129494724 -1.500312032。-0.84616310 ## ... ... ..## gene49996 3.1111549 0.3235445 0.4540421。-0.738766107 ## gene49997 1.2320915 0.9093916 1.0571306。-0.001940732 ## gene49998 -0.3506334 -0.3025980 -0.8978435。 0.052818895 ## GENE49999 1.1930148 -0.9868347 0.8147342 . -0.692181607 ## GENE50000 -0.3594167 1.1189452 -0.4782563 . 0.420406907 ## SampleID20 ## GENE1 -0.18194204 ## GENE2 -0.68703646 ## GENE3 -1.53001855 ## GENE4 1.36263318 ## GENE5 -1.77571720 ## ... . ## GENE49996 0.284079527 ## GENE49997 -1.228424834 ## GENE49998 -1.120665979 ## GENE49999 -0.715243026 ## GENE50000 -0.787983112
MultiAssayExperiment(list(HDF5SE = HDF5SE)
一个MultiAssayExperiment对象,列出了一个自定义名称和相应的类。##包含一个长度为1的实验者列表类对象:## [1]HDF5SE: summarizeexperiment with 50000行和20列##特性:## experiments() -获取实验者列表实例## colData() -主/表型数据帧## sampleMap() -样本可用性数据帧## ' $ ','[','[[' -提取colData列,子集或实验## *格式()-转换成一个长或宽的数据帧## assays() -转换实验者列表为一个矩阵的简单列表

其他场景目前正在开发中HDF5Matrix远程托管。在考虑数据的磁盘上和磁盘外表示时,存在许多机会MultiAssayExperiment