BLAST - lmigueel/Bioinformatica GitHub Wiki
1. Sobre
BLAST é uma ferramenta de busca de alinhamentos locais. O BLAST encontra regiões de similaridade entre sequências biológicas. O programa compara sequências de nucleotídeos ou proteínas com bancos de dados de sequências e calcula a significância estatística. Ele possui acesso e execução online, e pode ser acessado AQUI. Mas, caso queira executar para centenas de sequências, precisará em linha de comando.
Existem vários tipos de BLAST, ou seja, comparações entre as sequências. Isso vai depender do tipo de sequência (DNA ou proteína). Vide abaixo seu resumo retirado do livro “Bioinformatic for Dummies”, Claverie and Notredame, 2007 , com um pequeno complemento de minha parte:
Program | Query | Database | Usage | Choosing the BLAST |
---|---|---|---|---|
blastn | DNA | DNA | Very similar DNA sequences (more than 70%) | I'm interested in non-coding and coding DNA |
blastp | Protein | Protein | Similar protein sequences | I want to find similar proteins |
blastx | TDNA | Protein | Analysis of the query DNA sequences | I want to discover proteins encoded in my query DNA sequence |
tblastx | TDNA | TDNA | protein discovery and EST | I want to discovery new proteins |
tblastn | Protein | TDNA | compare a protein sequence to a nucleotide DB | I want associate proteins with chromosomes or with mRNAs |
No tblastn, você sabe como a proteína deve ser e deseja pesquisar as sequências de nucleotídeos em que essa proteína pode ser semelhante. Para o blastx, você não tem ideia de onde ou qual proteína pode estar presente nele, então você faz a triagem para um banco de dados de proteína para procurar possíveis correspondências de proteínas conhecidas. Lembrando que não podemos comparar nucleotídeos e proteínas entre si diretamente, então a sequência de nucleotídeos é traduzida (em todos os 6 frames, isso é importante!) e, em seguida, uma comparação de aminoácidos vs aminoácidos é feita. Essa tradução nos 6 frames é realizada tanto pelo blastx como o tblastn.
2. Instalação
Via conda:
conda install -c bioconda blast
Download dos executáveis pode ser feito AQUI.
3. Exemplos
Vamos baixar o dataset das proteínas de vaca e de humano, e extraímos:
wget ftp://ftp.ncbi.nih.gov/refseq/B_taurus/mRNA_Prot/cow.1.protein.faa.gz
wget ftp://ftp.ncbi.nih.gov/refseq/H_sapiens/mRNA_Prot/human.1.protein.faa.gz
gunzip *gz
Agora podemos BLASTAR (não utilize esse verbo em textos acadêmicos) essas duas sequências de vaca contra o conjunto de sequências humanas. O BLAST precisa indexar o arquivo de banco de dados antes de pesquisar. Isso ajuda a fazer o software funcionar muito mais rápido. Como você instalou sua própria versão do sotware, é necessário informar ao shell onde o software está localizado. Use o caminho completo e o comando makeblastdb:
Neste caso, iremos procurar as sequencias de vaca nas de humano, então indexamos as de humano. O tipo do database (-dbtype) é proteína.
makeblastdb -in human.1.protein.faa -dbtype prot
Agora podemos executar o trabalho de detonação. Usaremos blastp, que é apropriado para comparações de proteína para proteína.
blastp -query cow.small.faa -db human.1.protein.faa
Mas vamos aprimorar os parâmetros do BLAST. Neste caso podemos adicionar o e-value (-evalue), o número máximo de best hits por query (-max_target_seqs), número de processadores (-num_threads) e output no formato tabular (-outfmt 6), que não possui resultados dos alinhamentos. Segue:
blastp -query cow.medium.faa -db human.1.protein.faa -out cow_vs_human_blast_results.tab -evalue 1e-5 -outfmt 6 -max_target_seqs 1 -num_threads 10
Você pode alterar o tamanho da palavra que o BLAST procura (-word_size). A diminuição deste valor aumenta o tempo de execução.
O header do arquivo tabular de saída é composto por:
número coluna | header | descrição |
---|---|---|
1 | qseqid | query (e.g., unknown gene) sequence id |
2 | sseqid | subject (e.g., reference genome) sequence id |
3 | pident | percentage of identical matches |
4 | length | alignment length (sequence overlap) |
5 | mismatch | number of mismatches |
6 | gapopen | number of gap openings |
7 | qstart | start of alignment in query |
8 | qend | end of alignment in query |
9 | sstart | start of alignment in subject |
10 | send | end of alignment in subject |
11 | evalue | expect value |
12 | bitscore | bit score |
Lembrando que a ideia é sempre a mesma:
- Criar o database indexado
- Executar o blast correto (Vide Seção 1. Sobre)
Citação:
Altschul, S.F., Gish, W., Miller, W., Myers, E.W. & Lipman, D.J. (1990) "Basic local alignment search tool." J. Mol. Biol. 215:403-410.