Skip to content

Index out SNP position

9 messages · JiangZhengyu, Sarah Goslee, David L Carlson +1 more

#
Assuming I understand what you want, which I'm not certain of, here's
one way; there are more (probably some more elegant).

I'm not sure how you'd put them in a vector, since there are different
numbers of values for each row of A, so instead I've made a list.
unlist(SNP) will turn it into a vector.

It's also not consistent which column of A has the higher and lower values.

SNP <- lapply(seq_len(nrow(A)), function(x)B[B >= min(A[x,]) & B <= max(A[x,])])
[[1]]
[1] 36003918 35838399 35838589

[[2]]
[1] 35838589

[[3]]
numeric(0)

[[4]]
[1] 36003918

[[5]]
numeric(0)
On Thu, Jan 3, 2013 at 4:54 PM, JiangZhengyu <zhyjiang2006 at hotmail.com> wrote:
--
Sarah Goslee
http://www.functionaldiversity.org
#
Any element of B that falls into any pair of elements of A?
[1] 36003918 35838399 35838589
On Thu, Jan 3, 2013 at 5:16 PM, JiangZhengyu <zhyjiang2006 at hotmail.com> wrote:
--
Sarah Goslee
http://www.functionaldiversity.org
#
Something like this?
[1] 36003918 35838399 35838589

----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352
#
I missed the fact that the columns are not consistently smaller/larger:
[,1]     [,2]
[1,] 35838396 36151202
[2,] 35838584 35838674
[3,] 35838674 36003908
[4,] 36003908 36004090
[5,] 36003992 36150188
[1] 36003918 35838399 35838589

-------
David
#
On Jan 3, 2013, at 1:54 PM, JiangZhengyu wrote:

            
[,1]  [,2]  [,3]  [,4]
[1,]  TRUE  TRUE  TRUE FALSE
[2,] FALSE FALSE  TRUE FALSE
[3,] FALSE FALSE FALSE FALSE
[4,]  TRUE FALSE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE

So the first and third B-locations are in the range of two of the rows, the second-B in one range and the third is in none of them. There is also a bioconductor package called `IRanges` that will undoubtedly be more efficient. (This works because the problem is of necessity dealing with integers.)
#
So given B
[,1]     [,2]    [,3]
[1,] 35838396 36151202  312806
[2,] 35838674 35838584     -90
[3,] 36003908 35838674 -165234
[4,] 36004090 36003908    -182
[5,] 36150188 36003992 -146196

Row 1 is start/end and rows 2 through 5 are end/start
so you only want to exclude nucleotides that fall
between start/end in row 1, ignoring rows 2 through 5
which are end/start? Given your sample matrix A, which
rows do you want to include/exclude?

David C

From: JiangZhengyu [mailto:zhyjiang2006 at hotmail.com] 
Sent: Thursday, January 03, 2013 6:36 PM
To: dcarlson at tamu.edu; r-help at r-project.org
Cc: sarah.goslee at gmail.com
Subject: RE: [R] Index out SNP position

Hi David,
?
Thanks for your reply! 
?
But what if I cannot change the?positions of each row pairs in A.?Sorry I
did not make it very clear.
?
The two columns?in A represent start-and-end or end-and-start positions of a
gene. The one column in B is the?single nucleotide position .? I am?trying
to?index out all the??single nucleotides that fall between the start and end
region of a gene.
?
Jiang
?
?
&g t; > > do it. Could anyone help me with the code? Thanks,Jiang----