Alterando cabeçalho de arquivos FASTA - lmigueel/Bioinformatica GitHub Wiki
Em bioinformática e bioquímica, o formato FASTA é um formato baseado em texto para representar sequências de nucleotídeos ou sequências de aminoácidos (proteínas), em que nucleotídeos ou aminoácidos são representados usando códigos de uma letra. O formato também permite que nomes de sequência e comentários precedam as sequências. Por exemplo:
>Seq1
ATAGCGACTCATACGCGACTACTACGGACGACGACTACTACAGCGAGCAACTCATGCGACGACTACTACGACG
ACTCATACTATATCGCGCGAGCCTAACTCATGACGAGC
>Seq2
ATCTTTTTTTCAGCGATCTATACGACGACGCGCACAAAAAACTATCTCGCGACGCAGCAATCTACTACGATTT
CGACGGCGGGGCATCTAGCGACTCTACTACGCCCCCACGCATTACTACCGCG
>Seq3
ATCAGCGAGCGCAGACTCTCTCTCCGGCGACACACTACTACTCTACGGCGACACTATCATCTACTTTCTTCTC
CATCTACTCATACTACGCCGGCGACGAAACTTTTTTTTTCTAGCGCGCAGCGACGAGCAG
Nesse caso temos duas sequencias (Seq1 - assembled e Seq2 - assembled), e suas respectivas sequencia de nucletídeos. E se por acaso desejássemos trocar esses nomes?!
Modo 1: pacote phylotools do R
O pacote phylotools possui uma funcionalidade muito interessante em arquivos fasta, e utilizaremos a função rename.fasta(). A ideia é carregar um arquivo com duas colunas: uma representando o nome antigo e uma com o novo nome. Posteriormente, nós executamos a função rename.fasta sobre o arquivo sequencias.fasta com o output renamed.fasta.
#Instalando
install.packages("phylotools")
#carregando
library(phylotools)
#dado de conversao (headers: old_name new_name)
data <- read.table(file="conversao.txt",sep="\t",header=TRUE)
#rename
rename.fasta(infile = "sequencias.fasta", ref_table = data,
outfile = "renamed.fasta")
Caso você esteja utilizando uma versão Linux, você pode gerar o nome antigos (coluna old_name) através do comando:
grep ">" sequencias.fasta | sed 's/>//g' > old_names.txt
Modo 2: seqkit
Como já havia comentado, o pacote seqkit possui diversas funcionalidades. Uma delas é o seqkit replace. Nela existe a possibilidade de trocar o cabeçalho de uma arquivo FASTA. Para mais informações da postagem sobre o seqkit, acesse: aqui. Única diferença é que você precisa passar um padrão para ele ou o arquivo delimitado.
Vamos tomar como exemplo o arquivo FASTA mencionado no começo. Iremos trocar o cabeçalho SeqX por SEQUENCIA_X, sendo X um número ordenado. O valor {nr} repersenta uma contagem numérica começando no 1.
seqkit replace -p '.+' -r 'SEQUENCIA_{nr}' sequencias.fasta > sequencias.rename.fa
Você também pode passar um arquivo delimitado para ele (conversao.txt), do mesmo modo que para o phylotools. Esse arquivo NÂO TEM CABEÇALHO.
seqkit replace -p '(.+)' -r "{kv}" -k conversao.txt teste.fasta
Vejam mais sobre manipulações de arquivos FASTA aqui.