Добавьте столбцы, которые суммируют результаты в диапазоне

У меня есть файл парика, который я прочитал в подобный granges объект, используя функцию, которую я написал, которая вызывает rtracklayer пакет:

read_wig <- function(x, format='wig', genome='mm9') {
  suppressMessages(library(rtracklayer))  
  merged_wig <- import.wig(x, format=format, genome=genome)
  merged_wig <- keepSeqlevels(merged_wig, paste0('chr', c(seq(1,19), 'X', 'Y')), pruning.mode="coarse")
  return(merged_wig)
}

wig <- read_wig('~/path/to/wig')

Код выше возвращает:

> wig
UCSC track 'MEFES_K27AC.downsampled.sorted'
UCSCData object with 13274466 ranges and 1 metadata column:
             seqnames               ranges strand |     score
                <Rle>            <IRanges>  <Rle> | <numeric>
         [1]     chr1          [  1,  200]      * |         1
         [2]     chr1          [201,  400]      * |         2
         [3]     chr1          [401,  600]      * |         3
         [4]     chr1          [601,  800]      * |         4
         [5]     chr1          [801, 1000]      * |         0
         ...      ...                  ...    ... .       ...
  [13274462]     chrY [15901401, 15901600]      * |         0
  [13274463]     chrY [15901601, 15901800]      * |         0
  [13274464]     chrY [15901801, 15902000]      * |         0
  [13274465]     chrY [15902001, 15902200]      * |         0
  [13274466]     chrY [15902201, 15902400]      * |         0
  -------
  seqinfo: 21 sequences from mm9 genome

Теперь с этим объектом я бы хотел вычислить сумму баллов в окне вокруг каждого диапазона для каждой строки в объекте. Например, я хотел бы вычислить сумму баллов между диапазонами 1-10000 (123 для этого примера) и добавить эту запись в виде столбца рядом с баллом. Я хотел бы сделать это для каждого ряда.

> expected_output
UCSC track 'MEFES_K27AC.downsampled.sorted'
UCSCData object with 13274466 ranges and 1 metadata column:
             seqnames               ranges strand |     score  score_10000
                <Rle>            <IRanges>  <Rle> | <numeric>    <numeric>
         [1]     chr1          [  1,  200]      * |         1          123
         [2]     chr1          [201,  400]      * |         2          ...
         [3]     chr1          [401,  600]      * |         3          ...
         [4]     chr1          [601,  800]      * |         4          ...
         [5]     chr1          [801, 1000]      * |         0          ...
         ...      ...                  ...    ... .       ...
  [13274462]     chrY [15901401, 15901600]      * |         0          ...
  [13274463]     chrY [15901601, 15901800]      * |         0          ...
  [13274464]     chrY [15901801, 15902000]      * |         0          ...
  [13274465]     chrY [15902001, 15902200]      * |         0          ...
  [13274466]     chrY [15902201, 15902400]      * |         0          ...
  -------
  seqinfo: 21 sequences from mm9 genome

В идеале я хотел бы добавить столбцы, которые вычисляют диапазоны оценок от 1-10000, 1-20000, 1-30000 и т. Д. До 100000.

Любая помощь приветствуется!

РЕДАКТИРОВАТЬ:

Файл парика можно найти здесь.

0 ответов

Другие вопросы по тегам