2  SummarizedExperiment

SummarizeExperimentFigure 2.1 所示

Figure 2.1

具体可参考 SummarizedExperiment docs

2.1 构造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