import.bw() (rtracklayer パッケージから) を使用して UCSC アラインビリティ トラックを R にインポートしましたが、必要な値にアクセスするのに問題があります。
例: 染色体と塩基を提供し、その位置の値を返したいとします。
私のオブジェクトは 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
染色体と位置を指定してスコアを返す機能が欲しい。1 つまたは 2 つの値が必要な場合、これは簡単ですが、ルックアップする値が 700 万ある場合、ループは機能しません。クエリあたり 4/5 秒の場合、これは約 10 か月であり、これはオプションではありません。
たとえば、chr1、位置 10011 は値 0.002777778 を返します (x は染色体と位置のリストを含む別のオブジェクトです)
これまでに見つけた唯一の方法は、自分の位置が範囲の開始点以上かどうか、および/または範囲の終了点以下かどうかを尋ねることです。あまりよくない。
score(al100["chr1"])[ which( start(al100["chr1"]<=x$POS[1])) & end(al100["chr1"]<=x$POS[1])) ]