Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在序列中定位不同的模式_R_Regex_Bioinformatics - Fatal编程技术网

R 在序列中定位不同的模式

R 在序列中定位不同的模式,r,regex,bioinformatics,R,Regex,Bioinformatics,如果我想在一个序列中找到两种不同的模式,我该怎么做 例如: 模式是 pattern=c("ATGC","AAGG") 我该如何在序列中同时找到这两种模式 我还想找到这些模式的位置,例如模式位置是1,4和5,8 有人能帮我吗?您可以尝试使用stringr库执行以下操作: seq = "ATGCAAAGGT" library(stringr) str_extract_all(seq, 'ATGC|AAGG') [[1]] [1] "ATGC" "AAGG" 在不知道您需要什么输出的情况下,这是我

如果我想在一个序列中找到两种不同的模式,我该怎么做 例如:

模式是

pattern=c("ATGC","AAGG")
我该如何在序列中同时找到这两种模式

我还想找到这些模式的位置,例如模式位置是1,4和5,8


有人能帮我吗?

您可以尝试使用
stringr
库执行以下操作:

seq = "ATGCAAAGGT"
library(stringr)
str_extract_all(seq, 'ATGC|AAGG')
[[1]]
[1] "ATGC" "AAGG"

在不知道您需要什么输出的情况下,这是我目前所能提供的最好的输出。

您可以尝试使用
stringr
库执行以下操作:

seq = "ATGCAAAGGT"
library(stringr)
str_extract_all(seq, 'ATGC|AAGG')
[[1]]
[1] "ATGC" "AAGG"

在不知道您需要什么输出的情况下,这是我目前所能提供的最好结果。

假设您的序列文件只是序列向量:

seq.file <- c('ATGCAAAGGT','ATGCTAAGGT','NOTINTHISONE')
假设序列向量是数据帧
d
中的一列,它还包含一列ID值:

id <- c('s1','s2','s3')
d <- data.frame(id,seq.file)
colnames(d) <- c('id','sequence')
以下for循环可以返回序列中每个模式的位置列表:

require(stringr)

for(i in 1: length(d$sequence)){
    out <- str_locate_all(d$sequence[i], pattern)
    first    <- c(out[[1]])
    first.o  <- paste(first[1],first[2],sep=',')
    second   <- c(out[[2]])
    second.o <- paste(second[1],second[2], sep=',')
    print(c(first.o, second.o))
}
[1] "1,4" "6,9"
[1] "1,4" "6,9"
[1] "NA,NA" "NA,NA"
require(stringr)
用于(1中的i:长度(d$序列)){

out假设序列文件只是序列向量:

seq.file <- c('ATGCAAAGGT','ATGCTAAGGT','NOTINTHISONE')
假设序列向量是数据帧
d
中的一列,它还包含一列ID值:

id <- c('s1','s2','s3')
d <- data.frame(id,seq.file)
colnames(d) <- c('id','sequence')
以下for循环可以返回序列中每个模式的位置列表:

require(stringr)

for(i in 1: length(d$sequence)){
    out <- str_locate_all(d$sequence[i], pattern)
    first    <- c(out[[1]])
    first.o  <- paste(first[1],first[2],sep=',')
    second   <- c(out[[2]])
    second.o <- paste(second[1],second[2], sep=',')
    print(c(first.o, second.o))
}
[1] "1,4" "6,9"
[1] "1,4" "6,9"
[1] "NA,NA" "NA,NA"
require(stringr)
用于(1中的i:长度(d$序列)){

out使用
stringr
查找起始和结束位置如何:

library(stringr)
seq <- "ATGCAAAGGT"
pattern <- c("ATGC","AAGG")
str_locate_all(seq, pattern)

#[[1]]
#     start end
#[1,]     1   4
#
#[[2]]
#     start end
#[1,]     6   9
库(stringr)

seq使用
stringr
查找起始和结束位置如何:

library(stringr)
seq <- "ATGCAAAGGT"
pattern <- c("ATGC","AAGG")
str_locate_all(seq, pattern)

#[[1]]
#     start end
#[1,]     1   4
#
#[[2]]
#     start end
#[1,]     6   9
库(stringr)

你想提取它们,或者确定它们的存在,或者确定它们在序列中的位置?你说的“找到这些模式的位置”是什么意思?你的意思是,哪些行号有这些模式?等等,位置1,4和6,9不是吗?在“ATGC”和“AAGG”之间有一个A你想提取它们,或者确定它们的存在,或者确定它们在序列中的位置?你说的“找到这些模式的位置”是什么意思?你的意思是,哪些行号有这些模式?等等,位置1,4和6,9不是吗?在“ATGC”和“AAGG”之间有一个A除了str_locate_all,还有其他方法识别模式吗?@shrinirajesh为什么不使用它?除了str_locate_all,还有其他方法识别模式吗?@shrinirajesh为什么不使用它?