官网
完整的单细胞分析流程——理解你的单细胞分析之数据结构
【包】SummarizedExperiment
GDAS006-深入理解SummarizedExperiment类
Bioconductor数据结构简介之SummarizedExperiment
1、SummarizedExperiment
可以理解是一个类似矩阵的容器。该类常被用来储存表达矩阵,比如TCGAbiolinks下载的TCGA表达矩阵。
该类数据将原始信息(metadata)和表达矩阵(assays)联合到了一起,可同步对他们取子集。
其实和bioconductor中的ExpreesionSet很接近,只是行信息比较灵活,允许使用GRanges或
1.1、基本结构
如下图所示,每个对象可以存储多个表达矩阵(assays),行一般是基因或引物,列一般是样本编号。每个表达矩阵都有两个关联的表(Row data, Column data),分别通过基因名和样本名与表达矩阵相关联,存储着基因以及样本的相关信息。此外,还有单独的一个文件(meta data)描述整个实验的相关信息。

1.2、操作汇总
test<-SummarizedExperiment(assays= list(counts), rowData= DataFrame(),
colData= DataFrame(Treatment= rep(c("flame","non_flame"),3)))
# 创建一个对象,有无rowData都行
assays(test) # 取出表达矩阵,取出的是元素为列表的列表
assay(test,1) # 取出的是列表
#assays(test)[[1]][1:5,1:5] == assay(test)[1:5,1:5]==assay(test,1)[1:5,1:5]
assays(test)$counts # 取出特定表达矩阵
rowData(test) # 取出行信息
colData(test) # 取出列信息
metadata(test) # 取出实验信息
test[,]可以像数据框一样取子集
test[,test$Treatment=="flame"] # 可用这种形式根据列信息对表达矩阵取子集,同样可以用在行信息取子集
2、SingleCellExperiment
Bioconductor项目的主要优势之一在于使用通用数据基础结构,该数据基础结构可实现跨越R包的相互操作性。 用户应该能够使用来自不同Bioconductor软件包的功能来分析其数据,而无需在格式之间进行转换。 为此,SingleCellExperiment类(来自SingleCellExperiment包)数据结构可以当做在70多个单细胞相关的Bioconductor包进行数据分析的“通用货币”。 此类实现了一个数据结构,该数据结构存储了我们单细胞数据的各个方面-逐个基因表达数据,每个细胞meta数据和每个基因注释(图1),并以同步方式对其进行操作。

网友评论