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!