簡體   English   中英

使用 R 查找 DNA 序列中的所有出現

[英]Finding all occurrences in a DNA sequence with R

我需要找到以“AAA”或“GAA”開頭並以“AGT”結尾並且至少有 2 個其他三聯體(1 個三聯體)的給定樣本的所有可能出現的 DNA 序列(無論是否重疊、部分重疊) = 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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM