SummarizeExperiment 如 Figure 2.1 所示
具体可参考 SummarizedExperiment docs 。
构造SummarizedExperiment实例
Code
library(SummarizedExperiment)
# 计数矩阵
nrows <- 200
ncols <- 6
counts <- matrix(runif(nrows * ncols, 1, 1e4), nrows)
head(counts)
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] 7034.163 2310.578 7611.7706 7106.106 3401.240 8562.139
#> [2,] 7894.975 9408.041 9169.3042 7406.625 1774.773 3817.866
#> [3,] 8390.560 1034.159 5790.8851 1475.760 8289.487 1436.086
#> [4,] 7062.769 7342.525 8221.8233 8939.928 8079.375 7918.103
#> [5,] 6030.536 9676.907 645.9051 8289.291 7663.242 2179.272
#> [6,] 3506.712 2259.127 6284.7849 7333.359 8997.909 9233.068
# 行数据:基因
rowData <- GRanges(seqnames = rep(c("chr1", "chr2"), c(50, 150)),
ranges = IRanges(floor(runif(200, 1e5, 1e6)), width=100),
strand=sample(c("+", "-"), 200, TRUE),
gene_id=sprintf("ID%03d", 1:200))
rowData[1:6,]
#> GRanges object with 6 ranges and 1 metadata column:
#> seqnames ranges strand | gene_id
#> <Rle> <IRanges> <Rle> | <character>
#> [1] chr1 943268-943367 + | ID001
#> [2] chr1 241225-241324 - | ID002
#> [3] chr1 428423-428522 - | ID003
#> [4] chr1 798412-798511 + | ID004
#> [5] chr1 804531-804630 + | ID005
#> [6] chr1 800571-800670 - | ID006
#> -------
#> seqinfo: 2 sequences from an unspecified genome; no seqlengths
# 列数据:样本
colData <- DataFrame(Treatment=rep(c("ChIP", "Input"), 3),
row.names=LETTERS[1:6])
colData
#> DataFrame with 6 rows and 1 column
#> Treatment
#> <character>
#> A ChIP
#> B Input
#> C ChIP
#> D Input
#> E ChIP
#> F Input
# 实验元数据
metadata <- "A example of how to create an instance of SummarizedExperiment"
se <- SummarizedExperiment(assays=list(counts=counts),
rowRanges=rowData,
colData=colData,
metadata=metadata)
se
#> class: RangedSummarizedExperiment
#> dim: 200 6
#> metadata(1): ''
#> assays(1): counts
#> rownames: NULL
#> rowData names(1): gene_id
#> colnames(6): A B ... E F
#> colData names(1): Treatment
Code
dim(se)
#> [1] 200 6
SummarizedExperiment::assay(se) |> head()
#> A B C D E F
#> [1,] 7034.163 2310.578 7611.7706 7106.106 3401.240 8562.139
#> [2,] 7894.975 9408.041 9169.3042 7406.625 1774.773 3817.866
#> [3,] 8390.560 1034.159 5790.8851 1475.760 8289.487 1436.086
#> [4,] 7062.769 7342.525 8221.8233 8939.928 8079.375 7918.103
#> [5,] 6030.536 9676.907 645.9051 8289.291 7663.242 2179.272
#> [6,] 3506.712 2259.127 6284.7849 7333.359 8997.909 9233.068
SummarizedExperiment::rowData(se)
#> DataFrame with 200 rows and 1 column
#> gene_id
#> <character>
#> 1 ID001
#> 2 ID002
#> 3 ID003
#> 4 ID004
#> 5 ID005
#> ... ...
#> 196 ID196
#> 197 ID197
#> 198 ID198
#> 199 ID199
#> 200 ID200
SummarizedExperiment::rowRanges(se)
#> GRanges object with 200 ranges and 1 metadata column:
#> seqnames ranges strand | gene_id
#> <Rle> <IRanges> <Rle> | <character>
#> [1] chr1 943268-943367 + | ID001
#> [2] chr1 241225-241324 - | ID002
#> [3] chr1 428423-428522 - | ID003
#> [4] chr1 798412-798511 + | ID004
#> [5] chr1 804531-804630 + | ID005
#> ... ... ... ... . ...
#> [196] chr2 906164-906263 + | ID196
#> [197] chr2 985324-985423 - | ID197
#> [198] chr2 946656-946755 + | ID198
#> [199] chr2 634615-634714 - | ID199
#> [200] chr2 496786-496885 + | ID200
#> -------
#> seqinfo: 2 sequences from an unspecified genome; no seqlengths
SummarizedExperiment::colData(se)
#> DataFrame with 6 rows and 1 column
#> Treatment
#> <character>
#> A ChIP
#> B Input
#> C ChIP
#> D Input
#> E ChIP
#> F Input