ca の座標 ( start
、 )を持つテーブルが 1 つあります。end
500000 個のフラグメントと、前のフラグメントと一致させたい 60000 個の単一座標を持つ別のテーブル。つまり、テーブルの各レコードについて、同じおよび<= <=を持つテーブルdtCoords
内のレコードを検索する必要があります (そして、このレコードからを取得します)。これにRを使用するのはまったく良い考えですか、それとも他の言語に目を向けるべきですか?dtFrags
chr
start
coord
end
type
dtFrags
これが私の例です:
require(data.table)
dtFrags <- fread(
"id,chr,start,end,type
1,1,100,200,exon
2,2,300,500,intron
3,X,400,600,intron
4,2,250,600,exon
")
dtCoords <- fread(
"id,chr,coord
10,1,150
20,2,300
30,Y,500
")
最後に、私はこのようなものを持ちたいと思います:
"idC,chr,coord,idF,type
10, 1, 150, 1, exon
20, 2, 300, 2, intron
20, 2, 300, 4, exon
30, Y, 500, NA, NA
"
でテーブルをサブテーブルに分割することで、タスクを少し簡素化できるchr
ので、座標だけに集中します
setkey(dtCoords, 'chr')
setkey(dtFrags, 'chr')
for (chr in unique(dtCoords$chr)) {
dtCoordsSub <- dtCoords[chr];
dtFragsSub <- dtFrags[chr];
dtCoordsSub[, {
# ????
}, by=id]
}
しかし、内部でどのように作業すればよいかはまだ明確ではありません...ヒントをいただければ幸いです。
アップデート。念のため、実際のテーブルをここのアーカイブに入れました。作業ディレクトリに解凍した後、次のコードでテーブルをロードできます。
dtCoords <- fread("dtCoords.txt", sep="\t", header=TRUE)
dtFrags <- fread("dtFrags.txt", sep="\t", header=TRUE)