Я полагаюсь на stringr для манипуляций со строками, поэтому я использовал его, я не уверен, имел ли вы в виду отсутствие пакетов, как в пакетах, изменяющих fasta, но вот для l oop в соответствии с запросом.
library(stringr)
#read in fasta
fa <- readLines("./test.fa")
#initialize empty data frame
df <- data.frame()
for (line in fa) {
if (startsWith(line, ">")) {
lin <- str_extract(line, "(\".+)(\")")
df[nrow(df)+1,c(1,2)] <- c(substr(lin, 2, nchar(lin)-1), str_extract(line, "[0-9]+-[0-9]+"))
}
}
#change col names
colnames(df) <- c("ORF", "SEQloc")
Если вас интересуют только строки заголовков фаста, вы можете внести некоторые предварительные изменения в файл перед его загрузкой в R с помощью:
grep "^>" test.fa > header_only_test.fa