我需要把下面的字母序列分成不同的块
SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC
我使用了前一个用户提供的以下代码来实现我最初想要的功能,即在每个C之后分割序列.
library(dplyr)
TestSequence <- "SCDKSFNRGECSCDKSFNRGECSCDKSFNRGEC"
Test <- strsplit(TestSequence, "(?<=[C])", perl = TRUE) %>% unlist
df <- data.frame(Fragment = Test) %>%
mutate("position" = cumsum(nchar(Test)))
这使我能够在每个C之后分割序列,并保留其在序列中的位置,例如位置2、11等处的C.
现在我需要在不同的位置拆分相同的序列,我可以使用以下方法在P、A、G或S之后拆分:
Test2 <- strsplit(TestSequence, "(?<=[P,A,G,S])", perl = TRUE) %>% unlist
如果我想在一个给定的字符之后分割它,这是可以的,但是如果我试图在一个字符之前分割它,例如D,我似乎无法在片段中保留D.只有在D之后拆分,我才能保留它.
我try 了我能想到的每一种"向后看"或"向前看"的组合,在每一个D之前和之后,下面的剪辑都不是很有用.
Test3 <- strsplit(TestSequence, "(?=[D])", perl = TRUE) %>% unlist
还有没有办法保持每个C在原始序列中的准确位置?
因此,如果我在初始K之后分割测试序列,我会得到一个片段,它是SCDK,我可以有一个单独的列,告诉我C在原始序列中的位置.正如第二个例子,下一个片段是SFNRGECSCDK,在另一列中,它会说C最初位于位置11.