Я работаю на данных Секвенирование РНК и пытается построить средние профили покрытия в зависимости от генотипа, подобно тому, как это делается здесьGenomicRanges добавить покрытие
РНК сл Расход на генотип (Источник: Pickrell и др, Nature, 2010)
Чтобы сделать этот сюжет, у меня есть шишка файлы из 100 человек, которые содержат информацию о зоне от РНК-сл данных (в конкретном регионе), и что я прочитал в R, так как GenomicRanges объектов.
Это дает мне Granges объекты, такие как те, полученное в следующем примере: игрушечной
GR1 = Granges (seqname = 1, диапазон = IRanges (Start = с (1,5,10,15,30 , 55), конец = с (4,9,14,29,39,60)))
gr1 $ COV = с (3,1,8,6,2,10)
gr2 = Границы (seqname = 1, range = IRanges (start = c (3,20,24), end = c (7,23,26)))
gr2 $ cov = c (3,5,3)
старт = (уникальные сортировки (C (диапазоны (gr1) @ начать, диапазоны (gr2) @start)))
gr1
GRanges object with 6 ranges and 1 metadata column:
seqnames ranges strand | cov
<Rle> <IRanges> <Rle> | <numeric>
1 [ 1, 4] * | 3
1 [ 5, 9] * | 1
1 [10, 14] * | 8
1 [15, 29] * | 6
1 [30, 39] * | 2
1 [55, 60] * | 10
-------
seqinfo: 1 sequence from an unspecified genome; no seqlengths
gr2
GRanges object with 3 ranges and 1 metadata column:
seqnames ranges strand | cov
<Rle> <IRanges> <Rle> | <numeric>
1 [ 3, 7] * | 3
1 [20, 23] * | 5
1 [24, 26] * | 3
-------
seqinfo: 1 sequence from an unspecified genome; no seqlengths
Проблема в том, что у меня есть эти данные для каждого человека (gr1 и gr2 были бы двумя разными людьми), и я хотел бы объединить их для создания объект геномных диапазонов, что дает мне полное покрытие в каждом положении между индивидами, 1 и 2 , которые будут выглядеть следующим образом:
gr3
GRanges object with 6 ranges and 1 metadata column:
seqnames ranges strand | cov
<Rle> <IRanges> <Rle> | <numeric>
1 [ 1, 2] * | 3
1 [ 3, 4] * | 6 (=3+3)
1 [ 5, 7] * | 4 (=1+3)
1 [ 8, 9] * | 1
1 [10, 14] * | 8
1 [15, 19] * | 6
1 [20, 23] * | 11 (=6+5)
1 [24, 26] * | 9 (=6+3)
1 [27, 29] * | 6
1 [30, 39] * | 2
1 [55, 60] * | 10
Кто-нибудь знает простой способ сделать это ? или я обречен?
Спасибо за ваши ответы.
PS: мои данные не застряли, но если у вас есть данные о мельничных данных, это еще лучше.
PPS: В идеале я также хотел бы иметь возможность умножения или применять любую функцию с двумя аргументами x и y вместо простого добавления покрытия.