私は、rtracklayerパッケージのimport.bw()を使用してUにUCSCアライナビリティトラックをインポートしましたが、必要な値にアクセスできません。例えばR/BioconductorのIRangesオブジェクトから値を抽出する
:私は、染色体とベースを提供して、その位置にある値を返すようにしたいです。
私のオブジェクトがAL100と呼ばれている:私はchrosomeと位置を指定し、スコアを取り戻す機能をしたい
> 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万を持っているとき、ループは仕事に行くのではありません。 1つのクエリにつき4/5秒で、それはオプションではない約10ヶ月です。
は例えば、CHR 1、位置10011が(xは染色体と位置のリストを含む別のオブジェクトである)値0.002777778を返します
私がこれまでに見つけた唯一の方法は、私の立場ならば依頼することです同等以上の開始よりも、および/または同等またはそれに等しい、または範囲の端よりも小さいです。あまりよくない。
再現例えばscore(al100["chr1"])[ which(start(al100["chr1"]<=x$POS[1])) & end(al100["chr1"]<=x$POS[1])) ]
あるテーマ一致を問い合わせるかについての情報を含んでいます実行する秒の?そのクエリにバグがありますか?あなたはxのあなたの指定した位置( '終わり... <= xで...')未満の終わりを探しているように見えます。かっこは消えていますか?あるいは、 'start'関数は本当にブールベクトルを受け入れますか? –