0

我正在努力想出 R 中的正则表达式来区分以下三个字段

[C/T]GA, A[T/C]G, GA[G/A] 

基本上我想看看有多少 SNP 属于上述每个密码子类别(第 1 位、第 2 位和第 3 位)。

在此先感谢您的帮助。

乌彭德拉

4

2 回答 2

2

找到开盘的索引就够了[吗?然后

> x = c("[C/T]GA", "A[T/C]G", "GA[G/A]", "GAG")
> regexpr("[", x, fixed=TRUE)

返回 1、2、3 或 -1(如果未找到)。

于 2013-06-08T00:53:35.817 回答
1

我猜你想计算三个不同的类别:

codons <- paste0( sample(c("G", "C", "T", "A"), 1000, repl=TRUE), 
                    sample(c("G", "C", "T", "A"), 1000, repl=TRUE), 
                    sample(c("G", "C", "T", "A"), 1000, repl=TRUE) )

 ev1 <- length( grep("^[CT]GA", codons) ) 
       # number matching either CGA or TGA
 ev2 <- length( grep("^A[TC]G", codons) ) 
       # number matching either ATG or ACG 
 ev3 <- length( grep("^GA[GA] ", codons) ) 
       # number matching either GAG or GAA 

head(codons)

> (ev1 <- length( grep("^[CT]GA", codons) ) )
[1] 22
>  (ev2 <- length( grep("^A[TC]G", codons) ) )
[1] 26
>  (ev3 <- length( grep("^GA[GA]", codons) ) )
[1] 43
于 2013-06-08T01:35:40.947 回答