On 01/18/2012 07:25 AM, rantree wrote:
I've got two tables....
first one(table1):
ID chrom start end
Ex1 2 152 180
Ex2 10 2000 2220
Ex3 15 3000 4000
second one ( table2):
chrom location name
2 160 Alv
2 190 GNN
2 100 ARg
10 210 GGG
15 3200 ADSA
What I have to do is to put name column in table1 when the location of
the name is between the start and end ....and chrom must be the same....it
will be this the result:
ID chrom start end name
Ex1 2 152 180 Alv
Ex2 10 2000 2220 GGG
Ex3 15 3000 4000 ADSA
How can i do this ????
Install the Bioconductor package GenomicRanges
source("http://bioconductor.org/biocLite.R")
biocLite("GenomicRanges")
then
library(GenomicRanges)
t1 <- GRanges(c("2", "10", "15"),
IRanges(c(152, 2000, 3000),
c(180, 2220, 4000)),
Id=c("Ex1", "Ex2", "Ex3"))
t2 <- GRanges(c("2", "2", "2", "10", "15"),
IRanges(c(160, 190, 100, 2010, 3200),
width=1),
Name=c("Alv", "GNN", "ARg", "GGG", "ADSA"))
idx <- match(t1, t2)
values(t1)$Name <- values(t2)$Name[idx]
leading to
> t1
GRanges with 3 ranges and 2 elementMetadata values:
seqnames ranges strand | Id Name
<Rle> <IRanges> <Rle> | <character> <character>
[1] 2 [ 152, 180] * | Ex1 Alv
[2] 10 [2000, 2220] * | Ex2 GGG
[3] 15 [3000, 4000] * | Ex3 ADSA
---
seqlengths:
10 15 2
NA NA NA
> as.data.frame(t1)
seqnames start end width strand Id Name
1 2 152 180 29 * Ex1 Alv
2 10 2000 2220 221 * Ex2 GGG
3 15 3000 4000 1001 * Ex3 ADSA
and many other sequence-related operations.
Hope that helps,
Martin
--
View this message in context:
http://r.789695.n4.nabble.com/Table-Intersection-tp4306968p4306968.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109
Location: M1-B861
Telephone: 206 667-2793
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.