у меня есть такие цепочки аминокислот:
x <- "MEALYRAQVLVDLT*MQLPSSFAALAAQFDQL*EKEKF*SLIARSLHRPQ**LLMFSLLVASVFTPCSALPFWSIKFTLFILS*SFLISDSILFIRVIDQEIKYVVPL*DLK*LTPDYCKCD*"
и я хотел бы извлечь все непересекающиеся подстроки, начиная с M
и заканчивая *
. Итак, для приведенного выше примера мне понадобится:
#[1] "MEALYRAQVLVDLT*"
#[2] "MQLPSSFAALAAQFDQL*"
#[3] "MFSLLVASVFTPCSALPFWSIKFTLFILS*"
как выход. предсказуемо regexpr
дает мне жадное решение:
regmatches(x, regexpr("M.+\\*", x))
#[1] "MEALYRAQVLVDLT*MQLPSSFAALAAQFDQL*EKEKF*SLIARSLHRPQ**LLMFSLLVASVFTPCSALPFWSIKFTLFILS*SFLISDSILFIRVIDQEIKYVVPL*DLK*LTPDYCKCD*"
я также пробовал вещи, предложенные здесь, так как это вопрос, который больше всего напоминает мою проблему (но не совсем), но безрезультатно.
любая помощь будет оценена.
M
s - спасибо 19.10.2015