了解 RLE 覆盖值

Understanding an RLE coverage value

使用 R 和生物导体。

我不确定如何理解您从诸如 coverage() 之类的函数中获得的整数 rle

integer-Rle of length 3312 with 246 runs
  Lengths:  25  34 249  16   7  11  16 ...   2  32   2  26  34  49
  Values :   0   1   0   1   2   3   2 ...   1   2   1   0   1   0

好的,我知道它代表一个范围与其他范围的覆盖范围。在这种情况下,读取给定范围内的实验。 'runs' 是什么意思? 'Lengths' 和 'Values' 呢?我想也许 Lengths 代表一个位置,而 values 代表它被覆盖的次数,但是为什么会有相同位置的倍数,例如上面的 2?为什么他们会出问题?

我问是因为我正在使用

sum(coverage)

将一个范围的覆盖范围与另一个不同长度的范围进行比较,我想知道这是否合适。

可能最好在 Bioconductor 上询问 Bioconductor 包 support site

解释是有一个 运行 的 25 个核苷酸的覆盖度为 0,然后是一个 运行 的 24 个核苷酸的覆盖度为 1(即单个读取),然后是另一个 运行 的 249 个核苷酸没有覆盖,然后随着多个读取重叠位置,事情开始变得有趣。从输出顶部的摘要行来看,您的阅读涵盖了 3312 个核苷酸,可能来自单个转录本?如果你

plot(as.integer(coverage))

您将快速了解覆盖率随转录长度的变化情况。

也许sum(coverage)是合适的;一个更常用的指标是计算读取数而不是覆盖率,例如,在 RNA-seq 的上下文中 DESeq2 work flow 中说明了 GenomicRanges::summarizeOverlaps()

这可能有助于理解 RLE 的概念:https://www.youtube.com/watch?v=ypdNscvym_E

这是一个简单的例子:

> x <- IRanges(start=c(-2L, 1L, 3L),
+              width=c( 5L, 4L, 6L))
> x
IRanges of length 3
    start end width
[1]    -2   2     5
[2]     1   4     4
[3]     3   8     6
> coverage(x)
integer-Rle of length 8 with 2 runs
  Lengths: 4 4
  Values : 2 1

输出表示前 4 个地方是 2 个一包,接下来的四个地方是单个包装。包括0和0以下的所有地方都被忽略了! 长度意味着我们正在查看的完整范围,也就是说所有的地方加起来是 8。 运行是发生的包的类型。在这里,我们只有包含两个范围的重叠(两个一组)和不真正重叠的重叠(单个包)。