我有两个文件:
阿鲁
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
我试图找到重叠的区域,使得anno $位置应该在huvec $ start&的范围内。 HUVEC $结束。这是我的代码:
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)
我的问题是,现在,在我查询后点击&amp;主题命中,如何根据重叠区域将huvec $函数分配给anno。所以在我的情况下,anno $位置的每个位置都与第一个开始和位置重叠。 huvec的结束值,所以我想将相关的huvec $函数,即'R'分配给anno中的新列。有什么建议吗?
答案 0 :(得分:0)
anno
的样本数据都在第一个时间间隔内,但我认为这应该是诀窍:
anno$function <- huvec$function[cut(anno$position, huvec$start, labels=FALSE)]
一个问题是,这会在最后一个时间间隔内返回NA
,因此您可以将huvec$start
替换为unique(huvec$start, huvec$end)
答案 1 :(得分:0)
我想出了另一条出路,认为它对其他人也有帮助:
anno[subjectHits(hits),4]<-huvec[queryHits(hits),4]
我检查了解决方案,结果是正确的。但说实话,我不确定这个是如何工作的,即如何找到相应的命中?