内容gydF4y2Ba

1gydF4y2Ba简介gydF4y2Ba

的gydF4y2BaGenomicRangesgydF4y2Ba包作为在Bioconductor项目中表示基因组位置的基础。在Bioconductor包层次结构中,它建立在gydF4y2BaIRangesgydF4y2Ba(基础设施)包,并提供支持gydF4y2BaBSgenomegydF4y2Ba(基础设施),gydF4y2BaRsamtoolsgydF4y2Ba(I / O),gydF4y2BaShortReadgydF4y2Ba(i / o & qa),gydF4y2BartracklayergydF4y2Ba(I / O),gydF4y2BaGenomicFeaturesgydF4y2Ba(基础设施),gydF4y2BaGenomicAlignmentsgydF4y2Ba(顺序读取),gydF4y2BaVariantAnnotationgydF4y2Ba(称为变体),以及许多其他Bioconductor软件包。gydF4y2Ba

这套教材通过引入三个类别(gydF4y2Ba农庄gydF4y2Ba,gydF4y2BagpogydF4y2Ba,gydF4y2BaGRangesListgydF4y2Ba),用于表示基因组范围、基因组位置和基因组范围的组。这个小插图的重点是gydF4y2Ba农庄gydF4y2Ba而且gydF4y2BaGRangesListgydF4y2Ba类及其关联方法。gydF4y2Ba

的gydF4y2BaGenomicRangesgydF4y2Ba软件包可于gydF4y2Ba//www.anjoumacpherson.comgydF4y2Ba并可通过gydF4y2BaBiocManager:安装gydF4y2Ba:gydF4y2Ba

if (!require("BiocManager")) install.packages("BiocManager") BiocManager::install(" genome icranges ")gydF4y2Ba

一个包只需要安装一次。将包加载到R会话中gydF4y2Ba

库(GenomicRanges)gydF4y2Ba

2gydF4y2Ba农庄gydF4y2Ba:基因组范围gydF4y2Ba

的gydF4y2Ba农庄gydF4y2Ba类表示基因组范围的集合,每个基因组范围在基因组上具有单一的起始和结束位置。它可以用来存储基因组特征的位置,如连续的结合位点,转录本和外显子。方法可以创建这些对象gydF4y2Ba农庄gydF4y2Ba构造函数。例如,gydF4y2Ba

gr < -农庄(seqnames = Rle (c(“chr1”、“chr2”,“chr1”、“chr3”),c(1、3、2、4)),范围= IRanges(101:110、结束= 111:120名称=头(信件、10)),链= Rle(链(c ("-", "+", "*", "+", "-")), c(1、2、2、3、2)),得分= 1:10,GC = seq(1 0长度= 10))grgydF4y2Ba
包含10个范围和2个元数据列的GRanges对象:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # chr1 101 - 111 | 1 1 # # 0.888888888888889 b chr2 102 - 112 + | 2 # # 103 - 113 c chr2 0.777777777777778 + | 3 # # 0.666666666666667 d chr2 104 - 114 * | 4 # # 105 - 115 e chr1 * | 5 0.555555555555556 # # f chr1 106 - 116 + | 6 0.444444444444444 # # 0.333333333333333 g chr3 107 - 117 + | 7 # # 108 - 118 h chr3 + | 8 0.222222222222222 # #我chr3 109 - 119 | 9 # # 0.111111111111111 j chr3 110 - 120 | 10 0  ## ------- ## seqinfo:3个未知基因组序列;没有seqlengthsgydF4y2Ba

创建一个gydF4y2Ba农庄gydF4y2Ba具有10个基因组范围的对象。的输出gydF4y2Ba农庄gydF4y2Ba显示gydF4y2Ba方法将信息分隔为用。分隔的左右两个区域gydF4y2Ba|gydF4y2Ba符号。基因组坐标(seqnames、范围和链)位于左侧,元数据列(注释)位于右侧。对于本例,元数据由以下部分组成gydF4y2Ba分数gydF4y2Ba而且gydF4y2BaGCgydF4y2Ba的元数据部分,但几乎任何东西都可以存储在gydF4y2Ba农庄gydF4y2Ba对象。gydF4y2Ba

基因组坐标的组成部分gydF4y2Ba农庄gydF4y2Ba对象可以使用gydF4y2BaseqnamesgydF4y2Ba,gydF4y2Ba范围gydF4y2Ba,gydF4y2Ba链gydF4y2Ba访问器的功能。gydF4y2Ba

seqnames (gr)gydF4y2Ba
## factor-Rle长度为10,运行4次##长度:1 3 2 4 ##值:chr1 chr2 chr1 chr3 ##级别(3):chr1 chr2 chr3gydF4y2Ba
范围(gr)gydF4y2Ba
## IRanges具有10个范围和0个元数据列的对象:## start end width ##    ## a 101 111 11 ## b 102 112 11 ## c 103 113 11 ## d 104 114 11 ## e 105 115 11 ## f 106 116 11 ## g 107 117 11 ## h 108 118 11 ## i 109 119 11 ## j 110 120 11gydF4y2Ba
链(gr)gydF4y2Ba
##长度:1 2 2 3 2 ##值:- + * + - ##级别(3):+ - *gydF4y2Ba

基因组范围的提取不需要相应的元数据gydF4y2Ba农庄gydF4y2Ba

农庄(gr)gydF4y2Ba
## GRanges对象有10个范围和0个元数据列:## seqnames ranges strand ##    ## a chr1 101-111 - ## b chr2 102-112 + ## c chr2 103-113 + ## d chr2 104-114 * ## e chr1 105-115 * ## f chr1 106-116 + ## g chr3 107-117 + ## h chr3 108-118 + ## i chr3 109-119 - ## j chr3 110-120 - ## ------- ## seqinfo: 3个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

可以将这些坐标的注释提取为gydF4y2BaDataFramegydF4y2Ba对象使用gydF4y2BamcolsgydF4y2Ba访问器。gydF4y2Ba

mcols (gr)gydF4y2Ba
## 10行2列## score DataFrame GC ##   ## a 11 ## b 2 0.888888888888889 ## c 3 0.77777777777777777777778 ## d 4 0.6666666666666666667 ## e 5 0.555555555555555555556 ## f 6 0.4444444444444433333333333 ## h 8 0.222222222222222 ## i 9 0.11111111111111111 ## j 10 0gydF4y2Ba
美元mcols (gr)得分gydF4y2Ba
## [1] 1 2 3 4 5 6 7 8 9 10gydF4y2Ba

中与范围对齐的各种序列的长度有关的信息也可以存储在gydF4y2Ba农庄gydF4y2Ba对象。如果这是数据gydF4y2Ba智人gydF4y2Ba,我们可以将值设置为:gydF4y2Ba

seqlength (gr) <- c(249250621, 243199373, 198022430)gydF4y2Ba

然后检索为:gydF4y2Ba

seqlengths (gr)gydF4y2Ba
## chr1 chr2 chr3 ## 249250621 243199373 198022430gydF4y2Ba

访问gydF4y2Ba长度gydF4y2Ba而且gydF4y2Ba的名字gydF4y2Ba也被定义了。gydF4y2Ba

名(gr)gydF4y2Ba
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"gydF4y2Ba
长度(gr)gydF4y2Ba
## [1]gydF4y2Ba

2.1gydF4y2Ba分拆合并gydF4y2Ba农庄gydF4y2Ba对象gydF4y2Ba

农庄gydF4y2Ba对象可以使用gydF4y2Ba分裂gydF4y2Ba方法。这就产生了gydF4y2BaGRangesListgydF4y2Ba对象,这个类将在下一节中详细讨论。gydF4y2Ba

Sp <- split(gr, rep(1:2, each=5)gydF4y2Ba
# # GRangesList对象长度2:# # # # 1美元农庄对象5和2元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # chr1 101 - 111 | 1 1 # # 0.888888888888889 b chr2 102 - 112 + | 2 # # 103 - 113 c chr2 0.777777777777778 + | 3 # # 0.666666666666667 d chr2 104 - 114 * | 4 # # 105 - 115 e chr1 * | 5 0.555555555555556 # # # # $ 2与5和2 # #农庄组织对象元数据列:## seqnames ranges strand | score GC ## f chr1 106-116 + | 6 0.444444444444444 ## g chr3 107-117 + | 7 0.333333333333333333333 ## h chr3 108-118 + | 8 0.222222222222222 ## i chr3 109-119 - | 9 0.11111111111111111 ## j chr3 110-120 - | 10 0 ## ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

单独的gydF4y2Ba农庄gydF4y2Ba实例可以通过使用gydF4y2BacgydF4y2Ba而且gydF4y2Ba附加gydF4y2Ba方法。gydF4y2Ba

c (sp [[1]], sp [[2]])gydF4y2Ba
包含10个范围和2个元数据列的GRanges对象:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # chr1 101 - 111 | 1 1 # # 0.888888888888889 b chr2 102 - 112 + | 2 # # 103 - 113 c chr2 0.777777777777778 + | 3 # # 0.666666666666667 d chr2 104 - 114 * | 4 # # 105 - 115 e chr1 * | 5 0.555555555555556 # # f chr1 106 - 116 + | 6 0.444444444444444 # # 0.333333333333333 g chr3 107 - 117 + | 7 # # 108 - 118 h chr3 + | 8 0.222222222222222 # #我chr3 109 - 119 | 9 # # 0.111111111111111 j chr3 110 - 120 | 10 0  ## ------- ## seqinfo:三个未知基因组的序列gydF4y2Ba

2.2gydF4y2Ba构造子集gydF4y2Ba农庄gydF4y2Ba对象gydF4y2Ba

农庄gydF4y2Ba对象的作用类似于范围的向量,可以使用预期的类向量的子集操作gydF4y2Ba

gr [2:3]gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## b chr2 102-112 + | 2 0.888888888888889 ## c chr2 103-113 + | 3 0.777777777777778 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

第二个论点是gydF4y2Ba[gydF4y2Ba子集运算符可用于指定要从对象中提取哪些元数据列gydF4y2Ba农庄gydF4y2Ba对象。例如,gydF4y2Ba

gr(2:3,“GC”)gydF4y2Ba
## seqnames ranges strand | GC ##    |  ## b chr2 102-112 + | 0.888888888888889 ## c chr2 103-113 + | 0.7777777777778 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

元素也可以赋值给gydF4y2Ba农庄gydF4y2Ba对象。这里有个例子,a的第二行gydF4y2Ba农庄gydF4y2Ba对象的第一行替换gydF4y2BagrgydF4y2Ba.gydF4y2Ba

singles <- split(gr, names(gr)) grMod <- gr grMod[2] <- singles[[1]] head(grMod, n=3)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## a chr1 101-111 - | 11 ## b chr1 101-111 - | 11 ## c chr2 103-113 + | 3 0.77777777777777778 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

的方法可以重复、反向或选择特定的部分gydF4y2Ba农庄gydF4y2Ba对象。gydF4y2Ba

Rep (singles[[2]], times = 3)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## b chr2 102-112 + | 2 0.888888888888889 ## b chr2 102-112 + | 2 0.888888888888889 ## b chr2 102-112 + | 2 0.88888888888888889 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
牧师(gr)gydF4y2Ba
包含10个范围和2个元数据列的GRanges对象:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # j chr3 110 - 120 | 109 - 119 - 0 # #我chr3 | 9 # # 0.111111111111111 h chr3 108 - 118 + | 8 0.222222222222222 # # 0.333333333333333 g chr3 107 - 117 + | 7 # # f chr1 106 - 116 + | 6 0.444444444444444 # # 105 - 115 e chr1 * | 5 0.555555555555556 # # 0.666666666666667 d chr2 104 - 114 * | 4 # # c chr2 103 - 113 + | 3 # # 0.777777777777778 b chr2 0.888888888888889 102 - 112 + | 2 # # chr1 101 - 111 | 1 1  ## ------- ## seqinfo:三个未知基因组的序列gydF4y2Ba
头(gr, n = 2)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## a chr1 101-111 - | 11 ## b chr2 102-112 + | 2 0.888888888888889 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
尾(gr, n = 2)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## i chr3 109-119 - | 9 0.111111111111111 ## j chr3 110-120 - | 10 0 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
窗口(gr,开始= 2,结束= 4)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## b chr2 102-112 + | 2 0.888888888888889 ## c chr2 103-113 + | 3 0.777777777777777778 ## d chr2 104-114 * | 4 0.666666666666667 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
gr [IRanges(开始= c(2、7),结束= c(3、9)))gydF4y2Ba
与5和2 # #农庄对象元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # 0.888888888888889 b chr2 102 - 112 + | 2 # # 103 - 113 c chr2 0.777777777777778 + | 3 # # 0.333333333333333 g chr3 107 - 117 + | 7 # # 108 - 118 h chr3 + | 8 0.222222222222222 # #我chr3 109 - 119 | 0.111111111111111 9  ## ------- ## seqinfo: 3从一个未指明的基因组序列gydF4y2Ba

2.3gydF4y2Ba的基本区间运算gydF4y2Ba农庄gydF4y2Ba对象gydF4y2Ba

的基本区间特征gydF4y2Ba农庄gydF4y2Ba对象可以使用gydF4y2Ba开始gydF4y2Ba,gydF4y2Ba结束gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba范围gydF4y2Ba方法。gydF4y2Ba

g < - gr [1:3] g < - append (g,单打[[10]])开始(g)gydF4y2Ba
## [1] 101 102 103 110gydF4y2Ba
结束(g)gydF4y2Ba
## [1] 111 112 113 120gydF4y2Ba
宽度(g)gydF4y2Ba
## [1] 11 11 11 11gydF4y2Ba
范围(g)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr1 101-111 - ## [2] chr2 102-113 + ## [3] chr3 110-120 - ## ------- # seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba

的gydF4y2Ba农庄gydF4y2Ba类也有许多操作范围的方法。这些方法可分为gydF4y2Baintra-range方法gydF4y2Ba,gydF4y2Bainter-range方法gydF4y2Ba,gydF4y2Babetween-range方法gydF4y2Ba.gydF4y2Ba

Intra-range方法gydF4y2Ba对a的每个元素进行操作gydF4y2Ba农庄gydF4y2Ba对象独立于对象中的其他范围。例如,gydF4y2Ba侧面gydF4y2Ba方法可用于恢复所表示范围集合两侧的区域gydF4y2Ba农庄gydF4y2Ba对象。为了得到gydF4y2Ba农庄gydF4y2Ba对象,该对象包含范围上游的10个基的范围:gydF4y2Ba

侧面(g, 10)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## a chr1 112-121 - | 11 ## b chr2 92- 121- | 11 ## b chr2 92-101 + | 2 0.888888888888889 ## c chr2 93-102 + | 3 0.777777777777778 ## j chr3 121-130 - | 10 0 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

并包括下游基地:gydF4y2Ba

侧翼(g, 10, start=FALSE)gydF4y2Ba
## seqnames range strand | score GC ##    |   ## a chr1 91-100 - | 11 ## b chr2 113-122 + | 2 0.888888888888889 ## c chr2 114-123 + | 3 0.7777777777777778 ## j chr3 100-109 - | 100 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

范围内方法的其他示例包括gydF4y2Ba调整gydF4y2Ba而且gydF4y2Ba转变gydF4y2Ba.的gydF4y2Ba转变gydF4y2Ba方法将按特定数量的碱基对移动范围,而gydF4y2Ba调整gydF4y2Ba方法将把范围扩展指定的宽度。gydF4y2Ba

转变(g, 5)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## a chr1 106-116 - | 11 ## b chr2 107-117 + | 2 0.888888888888889 ## c chr2 108-118 + | 3 0.777777777777778 ## j chr3 115-125 - | 10 0 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
调整(g, 30)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## a chr1 82-111 - | 11 ## b chr2 102-131 + | 2 0.888888888888889 ## c chr2 103-132 + | 3 0.777777777777778 ## j chr3 91-120 - | 10 0 ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba

的gydF4y2BaGenomicRangesgydF4y2Ba帮助页面gydF4y2Ba" ? intra-range-methodsgydF4y2Ba总结了这些方法。gydF4y2Ba

Inter-range方法gydF4y2Ba涉及到单个范围之间的比较gydF4y2Ba农庄gydF4y2Ba对象。例如,gydF4y2Ba减少gydF4y2Ba方法将对齐范围并合并重叠的范围以生成简化的集合。gydF4y2Ba

减少(g)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr1 101-111 - ## [2] chr2 102-113 + ## [3] chr3 110-120 - ## ------- # seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba

有时人们感兴趣的差距或差距的质量之间的范围所代表的gydF4y2Ba农庄gydF4y2Ba对象。的gydF4y2Ba差距gydF4y2Ba方法提供以下信息:gydF4y2Ba

空白(g)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr1 1-249250621 + ## [2] chr1 1-100 - ## [3] chr1 112-249250621 * ## [5] chr2 1-101 + ## ... ... ... ...## [8] chr3 1-243199373 * ## [10] chr3 1-198022430 + ## [10] chr3 1-109 - ## [11] chr3 121-198022430 * ## ------- # seqinfo: 3个未知基因组序列gydF4y2Ba

的gydF4y2Ba分离gydF4y2Ba方法表示gydF4y2Ba农庄gydF4y2Ba对象作为非重叠范围的集合:gydF4y2Ba

分离(g)gydF4y2Ba
## GRanges对象,5个范围和0个元数据列:## seqnames ranges strand ##    ## [1] chr1 101-111 - ## [2] chr2 102 + ## [3] chr2 103-112 + ## [4] chr2 113 + ## [5] chr3 110-120 - ## ------- # seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba

的gydF4y2Ba报道gydF4y2Ba方法量化a中所有范围的重叠程度gydF4y2Ba农庄gydF4y2Ba对象。gydF4y2Ba

覆盖(g)gydF4y2Ba
##长度为3的RleList ## $chr1 ## integer-Rle长度为249250621,带3次运行##长度:100 11 249250510 #值:01 0 ## ## $chr2 ## integer-Rle长度为243199373,带5次运行##长度:101 1 101 243199260 #值:01 21 0 ## ## $chr3 # integer-Rle长度为198022430,带3次运行##长度:109 11 198022310 #值:01 0gydF4y2Ba

看到gydF4y2BaGenomicRangesgydF4y2Ba帮助页面gydF4y2Ba" ? inter-range-methodsgydF4y2Ba获取额外帮助。gydF4y2Ba

Between-range方法gydF4y2Ba涉及两个之间的操作gydF4y2Ba农庄gydF4y2Ba对象;其中一些将在下一节中进行总结。gydF4y2Ba

2.4gydF4y2Ba的间隔设置操作gydF4y2Ba农庄gydF4y2Ba对象gydF4y2Ba

Between-range方法gydF4y2Ba计算不同的gydF4y2Ba农庄gydF4y2Ba对象。最重要的是gydF4y2BafindOverlapsgydF4y2Ba及相关操作;下面将对此进行讨论。附加操作处理gydF4y2Ba农庄gydF4y2Ba作为数学坐标的集合;gydF4y2Ba联盟(g, g2)gydF4y2Ba坐标的并集是否在gydF4y2BaggydF4y2Ba而且gydF4y2Bag2gydF4y2Ba.下面是计算的例子gydF4y2Ba联盟gydF4y2Ba,gydF4y2Ba相交gydF4y2Ba和不对称的差异(使用gydF4y2BasetdiffgydF4y2Ba).gydF4y2Ba

G2 <- head(gr, n=2) union(g, G2)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr1 101-111 - ## [2] chr2 102-113 + ## [3] chr3 110-120 - ## ------- # seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba
相交(g, g2)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr1 101-111 - ## [2] chr2 102-112 + ## ------- ## seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba
setdiff (g, g2)gydF4y2Ba
## seqnames ranges string# #    ## [1] chr2 113 + ## [2] chr3 110-120 - ## ------- # seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba

相关方法可用时,结构gydF4y2Ba农庄gydF4y2Ba对象之间是“平行的”,也就是说,对象1的元素1与对象2的元素1相关,以此类推。这些操作都以a开头gydF4y2BapgydF4y2Ba,是“平行”的缩写。然后这些方法按元素执行,例如,将对象1的元素1与对象2的元素1合并,等等。这些操作的一个要求是每个操作中元素的数量gydF4y2Ba农庄gydF4y2Ba对象是相同的,而且两个对象始终具有相同的seqname和串赋值。gydF4y2Ba

g3 <- g[1:2] ranges(g3[1]) <- IRanges(start=105, end=112) punion(g2, g3)gydF4y2Ba
## seqnames ranges string# #    ## a chr1 101-112 - ## b chr2 102-112 + ## ------- ## seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba
pintersect (g2和g3)gydF4y2Ba
## seqnames ranges string| score GC hit ##    |    ## a chr1 105-111 - | 11 TRUE ## b chr2 102-112 + | 2 0.888888888888889 TRUE ## ------- ## seqinfo: 3个序列来自一个未指定的基因组gydF4y2Ba
psetdiff (g2和g3)gydF4y2Ba
## seqnames ranges string# #    ## a chr1 101-104 - ## b chr2 102-101 + ## ------- ## seqinfo:来自一个未指定基因组的3个序列gydF4y2Ba

有关的更多信息gydF4y2Ba农庄gydF4y2Ba类,请务必参考手册页。gydF4y2Ba

农庄?gydF4y2Ba

可以发现一个相对全面的可用方法列表gydF4y2Ba

方法(class = "农庄”)gydF4y2Ba

3.gydF4y2BaGRangesListgydF4y2Ba:基因组范围组gydF4y2Ba

一些重要的基因组特征,如由外显子组成的拼接转录本,本质上是复合结构。这样的特性在表示为复合对象时更有意义,例如gydF4y2BaGRangesListgydF4y2Ba.当基因组特征由多个由一个父特征分组的范围组成时,它们可以表示为gydF4y2BaGRangesListgydF4y2Ba对象。考虑两个文本的简单示例gydF4y2BaGRangesListgydF4y2Ba下面创建的gydF4y2BaGRangesListgydF4y2Ba构造函数。gydF4y2Ba

gr1 <- GRanges(seqnames = "chr2", ranges = IRanges(103, 106), strand = "+", score = 5L, GC = 0.45) gr2 <- GRanges(seqnames = c("chr1", "chr1"), ranges = IRanges(c(107, 113), width = 3), strand = c("+", "-"), score = 3:4, GC = c(0.3, 0.5)) grl <- GRangesList("txA" = gr1, "txB" = gr2) grlgydF4y2Ba
# # GRangesList对象长度2:# # $酸与1和2 # #农庄组织对象元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # [1]chr2 103 - 106 + | 5 txB美元0.45 # # # # # #农庄对象与范围和2元数据列:# # seqnames范围链|得分GC # # [1] chr1 0.3 107 - 109 + | 3 # # [2] chr1 113 - 115 | 4 0.5  ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba

的gydF4y2Ba显示gydF4y2Ba的方法gydF4y2BaGRangesListgydF4y2Ba对象将其显示为的命名列表gydF4y2Ba农庄gydF4y2Ba对象,其中该列表的名称被认为是分组特性的名称。在上面的例子中,单个外显子范围的组被表示为单独的gydF4y2Ba农庄gydF4y2Ba对象,这些对象被进一步组织成一个列表结构,其中每个元素名称都是一个抄本名称。许多分组和标签的其他组合gydF4y2Ba农庄gydF4y2Ba当然,对象是可能的,但是这个示例应该是一个常见的安排。gydF4y2Ba

3.1gydF4y2Ba基本gydF4y2BaGRangesListgydF4y2Ba访问器gydF4y2Ba

就像gydF4y2Ba农庄gydF4y2Ba对象中基因组坐标的组成部分gydF4y2BaGRangesListgydF4y2Ba对象可以使用简单的访问器方法提取。毫不奇怪,gydF4y2BaGRangesListgydF4y2Ba对象具有许多相同的访问器gydF4y2Ba农庄gydF4y2Ba对象。不同之处在于,这些方法中的许多返回一个列表,因为输入现在本质上是一个的列表gydF4y2Ba农庄gydF4y2Ba对象。以下是一些例子:gydF4y2Ba

seqnames (grl)gydF4y2Ba
##长度为2的RleList ## $ txa# # factor-Rle长度为1,运行##长度:1 ##值:chr2 ##级别(2):chr2 chr1 ## ## $ txb# # factor-Rle长度为2,运行##长度:2 ##值:chr1 ##级别(2):chr2 chr1gydF4y2Ba
范围(grl)gydF4y2Ba
## IRangesList长度为2 ## $ txa# # IRanges对象具有1个范围和0个元数据列:## start end width ##    ## [1] 103 106 4 ## ## $ txb# # IRanges对象具有2个范围和0个元数据列:## start end width ##    ## [1] 107 109 3 ## [2] 113 115 3gydF4y2Ba
链(grl)gydF4y2Ba
##长度为2的RleList ## $ txa# # factor-Rle长度为1,运行##长度:1 ##值:+ ##级别(3):+ - * ## ## $ txb# # factor-Rle长度为2,运行2 ##长度:1 1 #值:+ - #级别(3):+ - *gydF4y2Ba

的gydF4y2Ba长度gydF4y2Ba而且gydF4y2Ba的名字gydF4y2Ba方法将返回列表的长度或名称gydF4y2BaseqlengthsgydF4y2Ba方法将返回序列长度集。gydF4y2Ba

长度(grl)gydF4y2Ba
## [1]gydF4y2Ba
名(grl)gydF4y2Ba
##“txA”“txB”gydF4y2Ba
seqlengths (grl)gydF4y2Ba
## chr2 chr1 ## NA NAgydF4y2Ba

的gydF4y2BaelementNROWSgydF4y2Ba方法返回与调用结果对应的整数列表gydF4y2BaNROWgydF4y2Ba对每个人来说gydF4y2Ba农庄gydF4y2Ba对象包含的gydF4y2BaGRangesListgydF4y2Ba.这是呼叫的一个更快的选择gydF4y2Ba拉普兰人gydF4y2Ba在gydF4y2BaGRangesListgydF4y2Ba.gydF4y2Ba

elementNROWS (grl)gydF4y2Ba
## txA txB ## 1 2gydF4y2Ba

isEmptygydF4y2Ba测试是否gydF4y2BaGRangesListgydF4y2Ba对象包含任何内容。gydF4y2Ba

isEmpty (grl)gydF4y2Ba
##[1]错误gydF4y2Ba

在a的上下文中gydF4y2BaGRangesListgydF4y2Ba对象,gydF4y2BamcolsgydF4y2Ba方法执行与它在类上执行的操作类似的操作gydF4y2Ba农庄gydF4y2Ba对象。但是,这个元数据现在引用列表级别的信息,而不是个人级别的信息gydF4y2Ba农庄gydF4y2Ba对象。gydF4y2Ba

mcols(grl) <- c("Transcript A","Transcript B") mcols(grl)gydF4y2Ba
## 2行1列## value ##  ## txA成绩单A ## txB成绩单BgydF4y2Ba

元素级元数据可以通过取消列出gydF4y2BaGRangesListgydF4y2Ba,提取元数据gydF4y2Ba

mcols (unlist (grl))gydF4y2Ba
## 3行2列的数据帧## score GC ## #   ## txA 5 0.45 ## txB 3 0.3 ## txB 4 0.5gydF4y2Ba

3.2gydF4y2Ba结合gydF4y2BaGRangesListgydF4y2Ba对象gydF4y2Ba

GRangesListgydF4y2Ba对象可以不列出,以合并分离gydF4y2Ba农庄gydF4y2Ba对象,它们作为展开的对象包含gydF4y2Ba农庄gydF4y2Ba.gydF4y2Ba

Ul <- unlist(grl) Ul .使用实例gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## txA chr2 103-106 + | 5 0.45 ## txB chr1 107-109 + | 3 0.3 ## txB chr1 113-115 - | 4 0.5 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

使用gydF4y2Ba附加gydF4y2Ba或gydF4y2BacgydF4y2Ba.gydF4y2Ba

一个gydF4y2Ba支持网站用户gydF4y2Ba有两个gydF4y2BaGRangesListgydF4y2Ba对象具有“并行”元素,并希望将这些元素明智地组合成单个元素gydF4y2BaGRangesListgydF4y2Ba.一个解决办法是使用gydF4y2Ba电脑()gydF4y2Ba-平行(元素)gydF4y2Bac ()gydF4y2Ba.一种更通用的解决方案是将列表连接起来,然后按某种因素重新分组,在本例中是元素的名称。gydF4y2Ba

grl1 <- GRangesList(gr1 = GRanges("chr2", IRanges(3,6)), gr2 = GRanges("chr1", IRanges(c(7,13), width = 3))) grl2 <- GRangesList(gr1 = GRanges("chr2", IRanges(9,12)), gr2 = GRanges("chr1", IRanges(c(25,38), width = 3))) pc(grl1, grl2)gydF4y2Ba
# # GRangesList对象长度2:# # $ gr1一起# #农庄对象2和0元数据列:链# # # # seqnames范围< Rle > < IRanges > < Rle > # # [1] chr2 3 - 6 * # # [2] chr2 9 - 12  * ## ## $ gr2 # #农庄对象列:4和0元数据链# # # # seqnames范围[1]chr1 7 - 9 * # # [2] chr1 13 - 15 * # # [3] chr1 * # # 25日- 27日[4]chr1 38-40  * ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba
Grl3 <- c(grl1, grl2)重组(Grl3, names(Grl3))gydF4y2Ba
# # GRangesList对象长度2:# # $ gr1一起# #农庄对象2和0元数据列:链# # # # seqnames范围< Rle > < IRanges > < Rle > # # [1] chr2 3 - 6 * # # [2] chr2 9 - 12  * ## ## $ gr2 # #农庄对象列:4和0元数据链# # # # seqnames范围[1]chr1 7 - 9 * # # [2] chr1 13 - 15 * # # [3] chr1 * # # 25日- 27日[4]chr1 38-40  * ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba

3.3gydF4y2Ba的基本区间运算gydF4y2BaGRangesListgydF4y2Ba对象gydF4y2Ba

对于区间运算,存在许多相同的方法gydF4y2BaGRangesListgydF4y2Ba对象的存在gydF4y2Ba农庄gydF4y2Ba对象。gydF4y2Ba

开始(grl)gydF4y2Ba
## IntegerList长度2 ## [["txA"]] 103 ## [["txB"]] 107 113gydF4y2Ba
结束(grl)gydF4y2Ba
## IntegerList长度2 ## [["txA"]] 106 ## [["txB"]] 109 115gydF4y2Ba
宽度(grl)gydF4y2Ba
长度2 # # # # IntegerList[["酸"]]4 # #[[“txB”]]3 3gydF4y2Ba

这些操作返回一个数据结构,表示:gydF4y2BaIntegerListgydF4y2Ba,所有元素都是整数的列表;它可以方便地使用数学和其他运算gydF4y2Ba列表gydF4y2Ba作用于每个元素的对象,例如,gydF4y2Ba

Sum (width(grl)) #每个grl元素的宽度之和gydF4y2Ba
## txA txB ## 4 6gydF4y2Ba

大多数范围内、范围间和范围间方法都操作于gydF4y2BaGRangesListgydF4y2Ba对象,例如,要移动所有的gydF4y2Ba农庄gydF4y2Ba中的对象。gydF4y2BaGRangesListgydF4y2Ba对象,或计算覆盖率。这两种操作也都是跨每个节点执行的gydF4y2Ba农庄gydF4y2Ba成员列表。gydF4y2Ba

转变(grl 20)gydF4y2Ba
# # GRangesList对象长度2:# # $酸与1和2 # #农庄组织对象元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # [1]chr2 123 - 126 + | 5 txB美元0.45 # # # # # #农庄对象与范围和2元数据列:# # seqnames范围链|得分GC # # [1] chr1 0.3 127 - 129 + | 3 # # [2] chr1 133 - 135 | 4 0.5  ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba
覆盖(grl)gydF4y2Ba
##长度为2的RleList ## $chr2 ##整数rle长度为106,运行2次##长度为102 4 ##值:0 1 ## ## $chr1 #整数rle长度为115,运行4次##长度为106 3 3 3 #值:0 10 1gydF4y2Ba

3.4gydF4y2Ba构造子集gydF4y2BaGRangesListgydF4y2Ba对象gydF4y2Ba

一个gydF4y2BaGRangesListgydF4y2Ba对象的行为类似于gydF4y2Ba列表gydF4y2Ba:gydF4y2Ba[gydF4y2Ba返回一个gydF4y2BaGRangesListgydF4y2Ba包含原始对象的子集的;gydF4y2Ba[[gydF4y2Ba或gydF4y2Ba$gydF4y2Ba返回gydF4y2Ba农庄gydF4y2Ba对象在列表中的该位置。gydF4y2Ba

grl[1] grl[[1]] grl["txA"] grl$txBgydF4y2Ba

此外,子设agydF4y2BaGRangesListgydF4y2Ba还接受第二个参数,以指定您希望选择的元数据列。gydF4y2Ba

grl[1,“分数”)gydF4y2Ba
## GRangesList对象长度为1:## $ txa# GRanges对象具有1个范围和1个元数据列:## seqnames ranges strand | score ##    |  ## [1] chr2 103-106 + | 5 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
grl(“txB”、“GC”)gydF4y2Ba
## GRangesList对象长度为1:## $ txb# # GRanges对象具有2个范围和1个元数据列:## seqnames ranges strand | GC ##    | <数字> ## [1]chr1 107-109 + | 0.3 ## [2] chr1 113-115 - | 0.5 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

的gydF4y2Ba头gydF4y2Ba,gydF4y2Ba尾巴gydF4y2Ba,gydF4y2Ba代表gydF4y2Ba,gydF4y2Ba牧师gydF4y2Ba,gydF4y2Ba窗口gydF4y2Ba对于列表对象,方法的行为都与您所期望的一样。例如,引用的元素gydF4y2Ba窗口gydF4y2Ba现在是列表元素而不是gydF4y2Ba农庄gydF4y2Ba元素。gydF4y2Ba

Rep (grl[[1]], times = 3)gydF4y2Ba
## seqnames ranges strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## [2] chr2 103-106 + | 5 0.45 ## [3] chr2 103-106 + | 5 0.45 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
牧师(grl)gydF4y2Ba
# # GRangesList对象长度2:# # $ txB 2 # #农庄组织对象范围和2元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # [1]chr1 0.3 107 - 109 + | 3 # # [2] chr1 113 - 115 | 4 0.5 # # # # $酸与1和2 # #农庄组织对象元数据列:# # seqnames范围链|得分GC # # [1] chr2 0.45 103 - 106 + | 5  ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba
头(grl n = 1)gydF4y2Ba
## GRangesList对象长度为1:## $ txa# GRanges对象具有1个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
尾(grl n = 1)gydF4y2Ba
## GRangesList对象长度为1:## $ txb# # GRanges对象具有2个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr1 107-109 + | 3 0.3 ## [2] chr1 113-115 - | 4 0.5 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
窗口(grl, start=1, end=1)gydF4y2Ba
## GRangesList对象长度为1:## $ txa# GRanges对象具有1个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
grl [IRanges(开始= 2,结束= 2)gydF4y2Ba
## GRangesList对象长度为1:## $ txb# # GRanges对象具有2个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr1 107-109 + | 3 0.3 ## [2] chr1 113-115 - | 4 0.5 ## ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

3.5gydF4y2Ba循环在gydF4y2BaGRangesListgydF4y2Ba对象gydF4y2Ba

为gydF4y2BaGRangesListgydF4y2Ba对象也有家族的gydF4y2Ba应用gydF4y2Ba方法。这些包括gydF4y2Ba拉普兰人gydF4y2Ba,gydF4y2Ba酸式焦磷酸钠gydF4y2Ba,gydF4y2Ba宾州gydF4y2Ba,gydF4y2BaendoapplygydF4y2Ba,gydF4y2BamendoapplygydF4y2Ba,gydF4y2Ba地图gydF4y2Ba,gydF4y2Ba减少gydF4y2Ba.gydF4y2Ba

定义的不同循环方法gydF4y2BaGRangesListgydF4y2Ba对象对于返回不同类型的结果非常有用。标准的gydF4y2Ba拉普兰人gydF4y2Ba而且gydF4y2Ba酸式焦磷酸钠gydF4y2Ba循规蹈矩,有求必应gydF4y2Ba拉普兰人gydF4y2Ba方法返回一个列表和gydF4y2Ba酸式焦磷酸钠gydF4y2Ba返回更简化的输出。gydF4y2Ba

拉普兰人(grl、长度)gydF4y2Ba
## $ txa# # [1] 1 ## ## $ txb# # [1] 2gydF4y2Ba
酸式焦磷酸钠(grl、长度)gydF4y2Ba
## txA txB ## 1 2gydF4y2Ba

与gydF4y2BaIRangesgydF4y2Ba对象中,也有多元版本的gydF4y2Ba酸式焦磷酸钠gydF4y2Ba,被称为gydF4y2Ba宾州gydF4y2Ba,定义为gydF4y2BaGRangesListgydF4y2Ba对象。如果你不想简化结果,你可以调用gydF4y2Ba地图gydF4y2Ba方法,它的作用与gydF4y2Ba宾州gydF4y2Ba但是没有简化输出。gydF4y2Ba

grl2 <- shift(grl, 10) names(grl2) <- c("shiftTxA", "shiftTxB") mapply(c, grl, grl2)gydF4y2Ba
## $ txa# # GRanges对象有2个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## [2] chr2 113-116 + | 5 0.45 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;no seqlength## ## $ txb# # GRanges对象有4个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr1 107-109 + | 3 0.3 ## [2] chr1 113-115 - | 4 0.5 ## [3] chr1 117-119 + | 3 0.3 ## [4] chr1 123-125 - | 4 0.5 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba
Map(c, grl, grl2)gydF4y2Ba
## $ txa# # GRanges对象有2个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## [2] chr2 113-116 + | 5 0.45 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;no seqlength## ## $ txb# # GRanges对象有4个范围和2个元数据列:## seqnames ranges strand | score GC ##    |   ## [1] chr1 107-109 + | 3 0.3 ## [2] chr1 113-115 - | 4 0.5 ## [3] chr1 117-119 + | 3 0.3 ## [4] chr1 123-125 - | 4 0.5 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

的修改后的版本gydF4y2BaGRangesListgydF4y2Ba你最初传递进来的。gydF4y2Ba

自同态是将一个对象转换为同一类的另一个实例。来实现这一点gydF4y2BaendoapplygydF4y2Ba方法,该方法将返回结果作为gydF4y2BaGRangesListgydF4y2Ba对象。gydF4y2Ba

endoapply (grl牧师)gydF4y2Ba
# # GRangesList对象长度2:# # $酸与1和2 # #农庄组织对象元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # [1]chr2 103 - 106 + | 5 txB美元0.45 # # # # # #农庄对象与范围和2元数据列:# # seqnames范围链|得分GC # # [1] chr1 0.5 113 - 115 | 4 # # [2] chr1 107 - 109 + | 3 0.3  ## ## ------- ## seqinfo: 2从一个未指明的基因组序列;没有seqlengthsgydF4y2Ba
门多普(c, grl, grl2)gydF4y2Ba
# # GRangesList对象长度2:# # $酸与2和2 # #农庄组织对象元数据列:# # seqnames范围链|得分GC # # < Rle > < IRanges > < Rle > | <整数> <数字> # # [1]chr2 0.45 103 - 106 + | 5 # # [2] chr2 113 - 116 + | 5 0.45 # # # # $ txB 2与4 # #农庄组织对象范围和元数据列:# # seqnames范围链|得分GC # # [1] chr1 0.3 107 - 109 + | 3 # # [2] chr1 0.5 113 - 115 | 4 # # [3] chr1 0.3 117 - 119 + | 3 # # [4] chr1 123 - 125 | 4 0.5  ## ## ------- ## seqinfo:2个未知基因组序列;没有seqlengthsgydF4y2Ba

的gydF4y2Ba减少gydF4y2Ba方法将允许gydF4y2Ba农庄gydF4y2Ba物体要倒塌,跨越整个gydF4y2BaGRangesListgydF4y2Ba对象。再次强调,这似乎是一个次优的例子。。gydF4y2Ba

减少(c, grl)gydF4y2Ba
## seqnames range strand | score GC ##    |   ## [1] chr2 103-106 + | 5 0.45 ## [2] chr1 107-109 + | 3 0.3 ## [3] chr1 113-115 - | 4 0.5 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

显式的元素式操作(gydF4y2Ba拉普兰人()gydF4y2Ba和朋友们)gydF4y2BaGRangesListgydF4y2Ba具有许多元素的对象可能很慢。因此,探索工作的操作是有益的gydF4y2Ba列表gydF4y2Ba对象直接(例如,许多“组通用”操作符,参见gydF4y2BaS4groupGeneric ?gydF4y2Ba,以及集合和并行集合运算符(例如,gydF4y2Ba联盟gydF4y2Ba,gydF4y2BapuniongydF4y2Ba).一个有效且快速的策略是gydF4y2BaunlistgydF4y2Ba的gydF4y2BaGRangesListgydF4y2Ba到一个gydF4y2Ba农庄gydF4y2Ba对象,对gydF4y2Ba农庄gydF4y2Ba对象,然后gydF4y2Ba重新刊登gydF4y2Ba结果,例如,gydF4y2Ba

Gr <- unlist(grl) Gr $log_score <- log(Gr $score) grl <- relist(Gr, grl) grlgydF4y2Ba
# # GRangesList对象长度2:# # $酸与1 # #农庄组织对象范围和3元数据列:# # seqnames范围链|得分GC log_score # # < Rle > < IRanges > < Rle > | <整数> <数字> <数字> # #酸chr2 103 - 106 + | 5美元0.45 - 1.6094379124341 # # # # txB 2和3 # #农庄组织对象元数据列:# # seqnames范围链|得分GC log_score # # txB chr1 107 - 109 + 0.3 - 1.09861228866811 # # txB chr1 | 113 - 115 | 4 0.5 - 1.38629436111989  ## ## ------- ## seqinfo:2个未知基因组序列;没有seqlengthsgydF4y2Ba

另请参阅gydF4y2BaextractList ?gydF4y2Ba.gydF4y2Ba

有关的更多信息gydF4y2BaGRangesListgydF4y2Ba类,请务必参考手册页和可用的方法gydF4y2Ba

?GRangesList方法(class="GRangesList") # _partial_ list .gydF4y2Ba

4gydF4y2Ba区间重叠涉及gydF4y2Ba农庄gydF4y2Ba而且gydF4y2BaGRangesListgydF4y2Ba对象gydF4y2Ba

区间重叠是比较两个对象中的范围以确定它们是否重叠以及何时重叠的过程。因此,它可能是最常用的操作gydF4y2Ba农庄gydF4y2Ba而且gydF4y2BaGRangesListgydF4y2Ba对象。为此,gydF4y2BaGenomicRangesgydF4y2Ba包提供一系列间隔重叠函数。这些函数中最普遍的是gydF4y2BafindOverlapsgydF4y2Ba,它接受查询和主题作为输入,并返回一个gydF4y2Ba支安打gydF4y2Ba对象,该对象包含重叠元素的索引对。gydF4y2Ba

grl findOverlaps (gr)gydF4y2Ba
## Hits对象有3个Hits和0个元数据列:## queryHits subjectHits ##   ## [1] 1 1 ## [2] 2 2 ## [3] 3 2 # ------- ## queryLength: 3 / subjectLength: 2gydF4y2Ba

在讨论性质的章节中所建议的gydF4y2Ba农庄gydF4y2Ba而且gydF4y2BaGRangesListgydF4y2Ba类中,索引在上面gydF4y2Ba支安打gydF4y2Ba对象的gydF4y2Ba农庄gydF4y2Ba对象是单个范围,而对于gydF4y2BaGRangesListgydF4y2Ba对象是定义“特性”的一组范围。gydF4y2Ba

重叠族中的另一个函数是gydF4y2BacountOverlapsgydF4y2Ba,它列出查询中每个元素的重叠数量。gydF4y2Ba

grl countOverlaps (gr)gydF4y2Ba
## txA txB txB ## 1 1 1gydF4y2Ba

这个家族的第三个功能是gydF4y2BasubsetByOverlapsgydF4y2Ba,它提取查询中与主题中至少一个元素重叠的元素。gydF4y2Ba

grl subsetByOverlaps (gr)gydF4y2Ba
## seqnames ranges strand | score GC log_score ##    |    ## txA chr2 103-106 + | 5 0.45 1.6094379124341 ## txB chr1 107-109 + | 3 0.3 1.09861228866811 ## txB chr1 113-115 - | 4 0.5 1.38629436111989 ## ------- ## seqinfo: 2个序列来自一个未指定的基因组;没有seqlengthsgydF4y2Ba

最后,您可以使用gydF4y2Ba选择gydF4y2Ba参数获取查询中每个元素的主题中第一个重叠元素的索引。gydF4y2Ba

findOverlaps(gr, grl, select="first")gydF4y2Ba
## [1] 1 2 2gydF4y2Ba
findOverlaps(grl, gr, select="first")gydF4y2Ba
## [1] 1 2gydF4y2Ba

5gydF4y2Ba会话信息gydF4y2Ba

本插图中的所有输出都是在以下条件下产生的:gydF4y2Ba

sessionInfo ()gydF4y2Ba
## R版本3.6.1(2019-07-05)##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 18.04.3 LTS ## ##矩阵产品:default ## BLAS: /home/biocbuild/bbs-3.9-bioc/R/lib/libRblas. #因此## LAPACK: /home/biocbuild/bbs-3.9-bio /R/lib/libRlapack。因此## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_US。UTF-8 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]parallel stats4 stats graphics grDevices utils datasets ## [8] methods base ## ##其他附加的包:## [1]genome icranges_1 .36.1 GenomeInfoDb_1.20.0 IRanges_2.18.2 ## [4] S4Vectors_0.22.0 BiocGenerics_0.30.0 BiocStyle_2.12.0 ## ##通过命名空间加载(并没有附加):# [7] zlibbioc_1.30.0 stringi_1.4.3 XVector_0.24.0 ## [10] rmarkdown_1.15 tools_3.6.1 stringgr_1 .4.0 ## [13] RCurl_1.95-4.12 xfun_0.9 yaml_2.2.0 ## [16] compiler_3.6.1 BiocManager_1.30.4 htmltools_0.3.6 ## [19] knitr_1.24 GenomeInfoDbData_1.2.1gydF4y2Ba