Допустим, ваш файл выглядит следующим образом:
test = c(">sp|Q9DFI0|DMT3B_DANRE Doublesex- and mab-3-related transcription factor 3b (Fragment) OS=Danio rerio OX=7955 GN=dmrt3b PE=3 SV=1",
"MLSWLKGHKRYCRFKDCTCEKCILIIERQRV", ">sp|P83238|OSTCN_DANRE Osteocalcin (Fragment) OS=Danio rerio OX=7955 GN=bglap PE=1 SV=1",
"AGTAXGDLTPFQLESLREVCEVNLACEHMADTXGIVAAYTAYYGY", ">sp|Q9W7M8|TYB_DANRE Thymosin beta OS=Danio rerio OX=7955 GN=tmsb PE=3 SV=3",
"MADKPNMTEITSFDKTKLRKTETQEKNPLPTKETIEQERQGESTP")
writeLines(test,"./test.fasta")
Вы можете сделать:
library(Biostrings)
fa = readAAStringSet("test.fasta")
want_names = sapply(strsplit(names(fa),"\\|"),"[[",2)
want_names
writeLines(want_names,"names.txt")
Или, если вы не хотите устанавливать пакет:
fa = readLines("test.fasta")
fa = fa[grepl(">",fa)]
want_names = sapply(strsplit(fa,"\\|"),"[[",2)
want_names
[1] "Q9DFI0" "P83238" "Q9W7M8"