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为什么不使用它?