查找包含r的所有DNA序列

  • 本文关键字:DNA 序列 包含 查找 r
  • 更新时间 :
  • 英文 :


我需要找到以"AAA"或"GAA"开始并以"AGT"结束的给定样本的所有可能发生的DNA序列(是否重叠,部分重叠),并且在开始和结束之间至少有2个其他三胞胎(1三胞胎= 3个字母的组合)。

下面的代码只给出了一个由序列中最大数目的三元组组成的序列。我想要从至少2个三元组开始的所有序列的结果。我没有最大值的限制,所以它必须给出从2个三元组开始的所有可能的组合。

有人能帮忙做这部分吗?

library( stringr )
dna <- c("GAACCCACTAGTATAAAATTTGGGAGTCCCAAACCCTTTGGGAGT")
#set constants
start <- c("AAA", "GAA")
end <- "AGT"
#build regex
regex <- paste0( "(", paste0( start, collapse = "|" ), ")", paste0( "([A-Z]{3}){2,}" ), end )
str_extract_all( dna, regex )

我将使用这个正则表达式模式:

^[AG]AA[ACGT]{6,}AGT$

示例脚本:

sequences = c("GAACCCACTAGTATAAAATTTGGGAGTCCCAAACCCTTTGGGAGT",  # a match
"CGACCCACTAGTATAAAATTTGGGAGTCCCAAACCCTTTGGGCCC")  # not a match
matches <- sequences[grepl("^[AG]AA[ACGT]{6,}AGT$", sequences)]
matches
[1] "GAACCCACTAGTATAAAATTTGGGAGTCCCAAACCCTTTGGGAGT"

最新更新