我有一個包含 50M 行的間隔值的檔案:
>data
start_pos end_pos
1 1 10
2 3 6
3 5 9
4 6 11
而且我想要一個位置出現表,以便我可以計算間隔檔案中每個位置的覆寫率,例如:
>occurence
position coverage
1 1
2 1
3 2
4 2
5 3
6 4
7 3
8 3
9 3
10 2
11 1
有沒有什么快速和最好的方法可以在 R 中完成這項任務?
我的計劃是遍歷資料并將每個區間中的序列連接成一個向量,并將最終的向量轉換成一個表。
count<-c()
for (row in 1:nrow(data)){
count<-c(count,(data[row,]$start_pos:data[row,]$end_pos))
}
occurence <- table(count)
問題是我的檔案很大,這樣做需要花費大量時間和記憶體。
uj5u.com熱心網友回復:
Bioconductor IRanges軟體包可以快速有效地完成此任務
library(IRanges)
ir = IRanges(start = c(1, 3, 5, 6), end = c(10, 6, 9, 11))
coverage(ir)
和
> coverage(ir) |> as.data.frame()
value
1 1
2 1
3 2
4 2
5 3
6 4
7 3
8 3
9 3
10 2
11 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529887.html
標籤:r数据框
上一篇:從字串中洗掉最后一個字符
