Manipuando arquivos FASTA - lmigueel/Bioinformatica GitHub Wiki

Uma das principais atividades de um bioinformata é manipular arquivos FASTA. Vou lhes apresentar inúmeras funcionalidades sobre manipualações de arquivos FASTA de forma rápida no BASH.

Lembrando que um arquivo FASTA é do tipo:

>Seq1
ATAGCGACTCATACGCGACTACTACGGACGACGACTACTACAGCGAGCAACTCATGCGACGACTACTACGACG
ACTCATACTATATCGCGCGAGCCTAACTCATGACGAGC
>Seq2
ATCTTTTTTTCAGCGATCTATACGACGACGCGCACAAAAAACTATCTCGCGACGCAGCAATCTACTACGATTT
CGACGGCGGGGCATCTAGCGACTCTACTACGCCCCCACGCATTACTACCGCG
>Seq3
ATCAGCGAGCGCAGACTCTCTCTCCGGCGACACACTACTACTCTACGGCGACACTATCATCTACTTTCTTCTC
CATCTACTCATACTACGCCGGCGACGAAACTTTTTTTTTCTAGCGCGCAGCGACGAGCAG

1. Contando as sequências

Para contar quantas sequências existem, contando as sequencias que começam com ">", basta executar:

grep -c "^>" sequencias.fasta

2. Adicionar algo ao cabeçalho

Caso você queira adicionar alguma palavra ao cabeçalho, não se esquecendo do "&", execute:

sed 's/>.*/&OQUEQUISER/' sequencias.fasta > sequencias_renamed.fasta

3. Renomeando nomes de contig em uma montagem de novo usando uma contagem simples

Caso você tenha executado uma montagem de novo e deseje renomear as sequencias numericamente, execute:

awk '/^>/{print ">" ++i; next}{print}' < sequencias.fasta > sequencias_renamed.fasta

4. Deixando a sequência em uma única linha

As vezes notamos que a sequência FASTA está dividida em várias linhas. Isso é ruim para manipular o arquivo posteriormente, caso esteja fazendo um script que percorre os arquivos FASTA. A maneira mais rápida de fazer isso é com o pacote fasta_formatter do FASTX-TOOLKIT.

Ele transforma isso:

>MY-ID
   AAAAAGGGGG
   CCCCCTTTTT
   AGCTN

Nisso:

>MY-ID
   AAAAAGGGGGCCCCCTTTTTAGCTN

Para instalá-lo pelo conda, basta executar:

conda install -c bioconda fastx_toolkit 

Ou você pode baixar direto do site do desenvolvedor e adicionar ao PATH ou /bin/. Acesse: http://hannonlab.cshl.edu/fastx_toolkit/download.html

Para executar é simples:

fasta_formatter -i sequencias.fasta -o sequencias_line.fasta

5. Número de bases por sequência

Para você acessar o número de bases de cada sequência do arquivo FASTA, execute:

awk '/^>/{if (l!="") print l; print; l=0; next}{l+=length($0)}END{print l}' sequencias.fasta

6. Converter FASTQ para FASTA

Caso você queira converter seus arquivos FASTQ para FASTA basta executar:

cat file.fastq | awk '{if(NR%4==1) {printf(">%s\n",substr($0,2));} else if(NR%4==2) print;}' > file.fasta

ou utilizando o sed:

sed '/^@/!d;s//>/;N' sample1.fq > sample1.fa

7. Alterar cabeçalho do FASTA

Acesse a página exclusiva sobre troca de cabeçalhos do FASTA: aqui.

8. Buscando sequencias pelo ID

Caso você queira extrair a sequência de um ID específico, basta rodar: Nesse caso quero a sequência do ID "Seq1" e "Seq2".

perl -ne 'if(/^>(\S+)/){$c=grep{/^$1$/}qw(Seq1 Seq2)}print if $c' teste.fasta

Exitem inúmeras outras manipulações, mas ao longo do tempo vou as adicionando aqui!