Заданы строки в формате:
string_1 <- "s homo_sapiens.1 11858 281 + 248956422 TTTTCTTTTCGTTAACTTGCCGTCAGCCTTTTCTTTGACCTCTTCTTTCTGTTCATGTGTATTTGCTGTCTCTTAGCCCAGACTTCCCGTGTCCTTTCCACCGGGCCTTTGAGAGGTCACAGGGTCTTGATGCTGTGGTCTTCATCTGCAGGTGTCTGACTTCCAGCAACTGCTGGCCTGTGCCAGGGTGCAAGCTGAGCACTGGAGTGGAGTTTTCCTGTGGAGAGGAGCCATGCCTAGAGTGGGATGGGCCAT-TGTTCATCTTCTGGCCCCTGTTGTCT"
string_2 <- "s mus_musculus.6 28206485 223 - 149736546 TTTTCTGTCTGCTAATTTGCCACCAGTCATTTCCTA----------------TTACGTGTGTCTGCTGCCTCCTAGCCCAGGCT-----TGCCCTTCCTCCC--TCTTCTGAGGTGTCATAGGGTCGTGAC--------------------TTACCTGGTTTGGGGGAGTAGTTGG---------------AAGCTGAGTGA-GTGGTGGGGTTTTCTTATGCTAAAGACCTGCGTCCAGTATAGGAAGAGCCATGTGCCTCCACTCTGGCCCTTGTGGTCT"
Мне нужно извлечь следующие элементы: целое число, следующее за "." (т. е. «1» и «6»; первое целое число (т. е. «11858» и «28206485»); второе целое число (т. е. «281» и «223»); «+» или «-»; третье целое число (то есть «248956422» и «149736546») и конечная последовательность символов.
Я могу извлечь целое число после ".":
library(stringr)
chr <- str_split(string_1, "[.]")[[1]][2]
chr <- substr(chr, start = 1, stop = 2)
chr <- gsub(" ", "", chr)
Я могу извлечь первое целое число:
start <- str_extract(string_1, "(?<=\\s)\\d+(?=\\s)")
Я могу извлечь "+" или "-":
strand <- str_extract(string_1, "(?<=\\s)[+-](?=\\s)")
И я могу извлечь окончательную последовательность символов:
seq <- str_extract(string_1, "[\\w\\-]+(?=\\s*)$")
Однако я не могу понять, как извлечь других. Любая помощь будет оценена!