我正在努力想出 R 中的正则表达式来区分以下三个字段
[C/T]GA, A[T/C]G, GA[G/A]
基本上我想看看有多少 SNP 属于上述每个密码子类别(第 1 位、第 2 位和第 3 位)。
在此先感谢您的帮助。
乌彭德拉
找到开盘的索引就够了[
吗?然后
> x = c("[C/T]GA", "A[T/C]G", "GA[G/A]", "GAG")
> regexpr("[", x, fixed=TRUE)
返回 1、2、3 或 -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