2

我有两个文件:

安诺

  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

胡韦克

    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$position 应该落在 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$function 分配给 anno。所以在我的例子中,anno$position 中的每个位置都与 huvec 的第一个开始和结束值重叠,所以我想将关联的 huvec$function 即“R”分配给 anno.xml 中的新列。有什么建议么?

4

2 回答 2

1

我想出了另一种方法,认为它也可以对其他人有所帮助:

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

我检查了解决方案,结果是正确的。但老实说,我不确定这个是如何工作的,即它如何找到相应的命中?

于 2013-10-02T20:43:59.477 回答
0

您的示例数据anno都在第一个间隔中,但我认为这应该是诀窍:

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

一个问题是这将返回NA最后一个间隔,所以你可以替换huvec$startunique(huvec$start, huvec$end)

于 2013-10-02T20:33:32.603 回答