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.