1
我使用import.bw()(從rtracklayer包中)導入了UCSC對齊性軌跡到R中,但無法訪問我需要的值。從R/Bioconductor中的IRanges對象提取值
例如:我想提供一個染色體和一個鹼基並返回該位置的值。
我的對象稱爲AL100:
> al100
RangedData with 21591667 rows and 1 value column across 25 spaces
space ranges | score
<factor> <IRanges> | <numeric>
1 chr1 [10001, 10014] | 0.002777778
2 chr1 [10015, 10015] | 0.333333343
3 chr1 [10016, 10026] | 0.500000000
4 chr1 [10027, 10031] | 1.000000000
我想,我指定chrosome和位置,並找回得分的功能。如果我想要一個或兩個值,這是微不足道的,但是當我有700萬個查詢時,循環不起作用;每查詢4/5秒,大概10個月,這不是一個選項。
例如,CHR 1,位置10011將返回值0.002777778(其中x是染色體和位置的列表單獨的對象)
我到目前爲止發現的唯一方法是問如果我的位置等於或大於開始和/或等於或小於範圍的結束。不太好。
score(al100["chr1"])[ which(start(al100["chr1"]<=x$POS[1])) & end(al100["chr1"]<=x$POS[1])) ]
是在底部的代碼塊中的一個這需要4/5一秒鐘跑?該查詢中是否存在錯誤?看起來你正在尋找一個小於你在x('end ... <= x ...')中指定位置的結束。那麼括號是否被刪除?或者,'start'函數是否真的接受布爾向量? – 2012-03-28 15:33:50