1简介

RaggedExperiment软件包为基因组位置数据的拷贝数、突变和其他不规则阵列模式提供了灵活的数据表示。它的目的是为一组具有不同数量基因组范围的样本提供一个框架。

RaggedExperiment类派生自GRangesList表示,并提供了一个矩形数据集的外观。的行和列尺寸RaggedExperiment分别对应于整个数据集中范围的数量和数据中表示的样本的数量。

2安装

if (!require("BiocManager")) install.packages("BiocManager") BiocManager::install(" raggeexperiment ")

加载包:

库(RaggedExperiment)库(GenomicRanges)

3.RaggedExperiment类概述

类的几何形状和受支持的转换的示意图RaggedExperiment类如下所示。转换的主要操作有三种RaggedExperiment表示:

  1. sparseAssay
  2. compactAssay
  3. qreduceAssay
RaggedExperiment对象示意图。行和列分别代表基因组范围和样本。分析操作可以执行(从左到右)compactAssay, qreduceAssay和sparseAssay。

图1:RaggedExperiment对象示意图
行和列分别代表基因组范围和样本。分析操作可以执行(从左到右)compactAssay, qreduceAssay和sparseAssay。

4构建一个RaggedExperiment对象

我们从几个开始农庄对象,每个对象代表一个单独的样本:

sample1 < -农庄(c(=“chr1:1-10: B =“chr1:8-14: +”,c =“chr2:15-18: +”),得分= 3:5)sample2 < -农庄(c (D =“chr1:1-10: E =“chr2:11-18: +”),得分= 1:2)

包括列数据colData描述样本:

colDat <- DataFrame(id = 1:2)

4.1使用农庄对象

ragexp <- raggeexperiment (sample1 = sample1, sample2 = sample2, colData = colDat
## class: raggeexperiment ## dim: 5 2 ## assays(1): score ## rownames(5): A B C D e# # colnames(2): sample1 sample2 ## colData names(1): id

4.2使用一个GRangesList实例

raggeexperiment (grl, colData = colDat)
## class: raggeexperiment ## dim: 5 2 ## assays(1): score ## rownames(5): A B C D e# # colnames(2): sample1 sample2 ## colData names(1): id

4.3使用一个列表农庄

raggeexperiment (rangple1 = sample1, sample2 = sample2)
## class: raggeexperiment ## dim: 5 2 ## assays(1): score ## rownames(5): A B C D e# # colnames(2): sample1 sample2 ## colData names(1): id

4.4使用一个列表农庄与元数据

请注意:当aSimpleGenomicRangesList与附带的元数据一起提供(由mcols),元数据作为colDataRaggedExperiment

grList <- List(sample1 = sample1, sample2 = sample2) mcols(grList) <- colDat raggeexperiment (grList)
## class: raggeexperiment ## dim: 5 2 ## assays(1): score ## rownames(5): A B C D e# # colnames(2): sample1 sample2 ## colData names(1): id

5访问器

5.1范围的数据

rowRanges (ragexp)
## GRanges对象,5个范围和0个元数据列:## seqnames ranges strand ##    ## A chr1 1-10 - ## B chr1 8-14 + ## C chr2 15-18 + ## D chr1 1-10 - ## E chr2 11-18 + ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengths

5.2维度名称

dimnames (ragexp)
# # # #[1]([1])“A”“B”“C”“D”“E " ## ## [[ 2]] # #[1]“sample1”“sample2”

5.3colData

colData (ragexp)
2行1列数据帧## id ##  ## sample1 1 ## sample2 2

6构造子集

6.1通过维度

构造子集的一个RaggedExperiment类似于将矩阵对象。行对应基因组范围,列对应样本或标本。它是可能的子集使用整数字符,逻辑指数。

6.2通过基因组范围

overlapsAny而且subsetByOverlaps功能可用于RaggedExperiment.相关文件见RaggedExperiment而且GenomicRanges

7*分析功能

RaggedExperiment控件提供了几个不同的函数来表示矩形矩阵中的远程数据*分析方法。

7.1sparseAssay

a的最直接的矩阵表示RaggedExperiment将返回一个维度矩阵,其大小等于范围数和样本数的乘积。

暗(ragexp)
## [1] 5 2
减少(‘*’,暗(ragexp))
# # 10 [1]
sparseAssay (ragexp)
sample1 sample2 ## A 3 NA ## B 4 NA ## C 5 NA ## D NA 1 ## E NA 2
长度(sparseAssay (ragexp))
# # 10 [1]

安装7.1.1支持稀疏矩阵输出

的帮助下,我们提供稀疏矩阵表示矩阵包中。要获得稀疏表示,用户可以使用稀疏= TRUE论点。

sparseAssay(ragexp, sparse = TRUE)
## 5 × 2稀疏矩阵类“dgCMatrix”## sample1 sample2 ## A 3。## b## c# # D。1 ## e。2

这种表现是有水准的dgCMatrix看到矩阵文档以获取更多详细信息。

7.2compactAssay

具有相同范围的样本被放在同一行中。Non-disjoint范围是崩溃了。

compactAssay (ragexp)
## sample1 sample2 ## chr1:8-14:+ 4 NA ## chr1:1-10:- 3 1 ## chr2:11-18:+ NA 2 ## chr2:15-18:+ 5 NA

类似地,为了sparseAssaycompactAssay函数提供了使用方法获得稀疏矩阵表示的选项稀疏= TRUE论点。这将返回一个dgCMatrix类的矩阵包中。

compactAssay(ragexp, sparse = TRUE)
## 4 × 2稀疏矩阵类“dgCMatrix”## sample1 sample2 ## chr1:1-10:- 3 1 ## chr1:8-14:+ 4。## chr2:15-18:+ 5。# # chr2:11-18: +。2

7.3disjoinAssay

这个函数返回所有样本的不相交范围的矩阵。通过应用矩阵中的元素来总结矩阵的元素simplifyDisjoin用于测定重叠范围值的函数参数。

disjoinAssay(ragexp, simplifyDisjoin = mean)
## sample1 sample2 ## chr1:8-14:+ 4 NA ## chr1:1-10:- 3 1 ## chr2:11-14:+ NA 2 ## chr2:15-18:+ 5 2

7.4qreduceAssay

qreduceAssay函数与查询参数,该参数突出显示结果矩阵的范围窗口。返回的矩阵将有维数长度(查询)通过ncol (x).元素包含的化验值查询范围和j本样,总结按simplifyReduce功能参数。

为了演示的目的,我们可以看看原文GRangesList和相关的分数,从电流ragexp对象导出:

unlist(grl, use.names = FALSE)
## GRanges对象,5个范围和1个元数据列:## seqnames ranges strand | score ##    |  ## A chr1 1-10 - | 3 ## B chr1 8-14 + | 4 ## C chr2 15-18 + | 5 ## D chr1 1-10 - | 1 ## E chr2 11-18 + | 2 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengths

该数据表示为rowRanges而且化验RaggedExperiment

rowRanges (ragexp)
## GRanges对象,5个范围和0个元数据列:## seqnames ranges strand ##    ## A chr1 1-10 - ## B chr1 8-14 + ## C chr2 15-18 + ## D chr1 1-10 - ## E chr2 11-18 + ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengths
试验(ragexp,“分数”)
sample1 sample2 ## A 3 NA ## B 4 NA ## C 5 NA ## D NA 1 ## E NA 2

这里我们提供了感兴趣的“查询”区域:

(查询< -农庄(c(“chr1:1-14:”、“chr2:11-18: +”)))
## GRanges对象有2个范围和0个元数据列:## seqnames ranges strand ##    ## [1] chr1 1-14 - ## [2] chr2 11-18 + ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengths

simplifyReduce论点qreduceAssay允许用户对感兴趣的给定“查询”区域使用自定义方法总结重叠的区域。我们提供一个用于计算每个查询范围的加权平均分,其中权重与重叠范围和查询范围之间的重叠宽度成正比。

请注意这个函数有三个参数。有关其他详细信息,请参阅文档。

加权平均值<- function(scores, ranges, qranges) {isects <- pintersect(ranges, qranges) sum(scores * width(isects)) / sum(width(isects))}

调用qreduceAssay涉及到RaggedExperiment,农庄查询和simplifyReduce功能参数。

qreduceAssay(ragexp, query, simplifyReduce =加权平均值)
## sample1:1-14:- 3 1 ## chr2:11-18:+ 5
请参阅示意图以获得可视化表示。

回到顶部

8强迫

RaggedExperiment对象的强制转换提供一系列并行函数SummarizedExperiment类。通过选择特定的化验指数(),可实现并行分析强制方法。

下面是函数名列表:

  • sparseSummarizedExperiment
  • compactSummarizedExperiment
  • disjoinSummarizedExperiment
  • qreduceSummarizedExperiment

详细信息请参见文档。

8.1从dgCMatrix到raggeexperiment

在特殊情况下,a的行名sparseMatrix也可强迫的农庄RaggedExperiment提供将稀疏矩阵转换为RaggedExperiment.可以使用作为强制方法。下面的示例首先创建一个示例稀疏dgCMatrix类,然后显示作为方法的使用为此目的。

库(矩阵)
## ##附加包:“矩阵”
下面的对象从“package:S4Vectors”:## ## expand中被屏蔽
sm <- Matrix::sparseMatrix(i = c(2,3,4,3,4,3,4), j = c(1,1,1,3,3,3,4,4), x = c(2L, 4L, 2L, 2L, 2L, 2L, 2L, 4L, 2L), dims = c(4,4), dimnames = list(c("chr2:1-10", "chr2:3-10", "chr2:4-10"), LETTERS[1:4]) as(sm, " raggeexperiment ")
## class: raggeexperiment ## dim: 7 3 # assays(1): counts ## rownames: NULL ## colnames(3): A C d# # colData names(0):

9会话信息

sessionInfo ()
## R版本4.2.1(22-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 20.04.4 LTS ## ##矩阵产品:default ## BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas. #因此## LAPACK: /home/biocbuild/bbs-3.15-bio /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_TELEPHONE= c# [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ## [8] base ## ##其他附加的包:## [1]Matrix_1.4-1 RaggedExperiment_1.20.1 genomic icranges_1 .48.0 ## [4] GenomeInfoDb_1.32.3 IRanges_2.30.1 S4Vectors_0.34.0 ## [7] BiocGenerics_0.42.0 BiocStyle_2.24.0 ## ##通过命名空间加载(并没有附加):## [5] jquerylib_0.2.1 BiocManager_1.30.18 ## [5] jquerylib_0.1.4 XVector_0.36.0 ## [9] MatrixGenerics_1.8.1 bitops_1.0-7 ## [9] tools_4.2.1 zlibbioc_1.42.0 ## [11] digest_0.6.29 lattice_0.20-45 ## [13] jsonlite_1.8.0 evaluate_0.16 ## [15] rlang_1.0.5 DelayedArray_0.22.0 ## [17] cli_3.3.0 yaml_2.3.5 ## [15] xfun_0.3.0 fastmap_1.1.0 ## [23] GenomeInfoDbData_1.2.8 stringgr_1 .4.1 ## [25] grid_4.2.1 Biobase_2.56.0 ## [27] R6_2.5.1rmarkdown_2.16 ## [29] bookdown_0.28 magrittr_2.0.3 ## [31] htmltools_0.5.3 matrixStats_0.62.0 ## [33] SummarizedExperiment_1.26.1 stringi_1.7.8 ## [35] RCurl_1.98-1.8 cachem_1.0.6