2013-10-02 121 views
2

我有兩個文件:合併dataframes

阿魯

chromosome position functionGVS 
1  chr22 16050036 intergenic 
2  chr22 16050039 intergenic 
3  chr22 16050094 intergenic 
4  chr22 16050097 intergenic 
5  chr22 16050109 intergenic 
6  chr22 16050115 intergenic 

HUVEC

chr start  end function 
1 chr22 16050000 16051244 R 
2 chr22 16051244 16051521 T 
3 chr22 16051521 16060433 R 
4 chr22 16060433 16060582 T 
5 chr22 16060582 16080564 R 
6 chr22 16080564 16082420 T 

我試圖尋找重疊區域使得阿魯$位置應該落在在huvec $ start & huvec $ end範圍內。這裏是我的代碼:

gr.huvec = with(huvec, GRanges(V1, IRanges(start=V2,end=V3))) 

gr.anno <- GRanges(seqnames=anno$chromosome, ranges=IRanges(start=anno$position, width=1)) 

hits = findOverlaps(gr.huvec,gr.anno) 

我的問題是,現在,以後我有查詢命中&主題命中,我怎麼可以指定HUVEC $函數安諾基於重疊區域。所以在我的情況下,anno $ position中的每個位置都與huvec的第一個開始&結尾值重疊,因此我想將相關的huvec $函數(即'R')分配給anno中的新列。有什麼建議麼?

回答

0

我想通另一條出路,認爲它可能是幫助他人,以及:

anno[subjectHits(hits),4]<-huvec[queryHits(hits),4] 

我檢查瞭解決方案,它出來正確。但說實話,我不知道這個如何工作,即如何找到相應的命中?

0

anno您的樣本數據都在第一時間間隔,但我認爲這應該向伎倆:

anno$function <- huvec$function[cut(anno$position, huvec$start, labels=FALSE)] 

的一個問題是,這將返回NA爲最後的時間間隔,所以你可以更換huvec$startunique(huvec$start, huvec$end)

+0

嗨,我試過你的代碼,但它沒有給出正確的解決方案。只是讓你知道。感謝您的幫助。 –