78
Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamentos e Busca de Similaridade Ariane Machado Lima

Embed Size (px)

Citation preview

Page 1: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamentos e Busca de Similaridade

Ariane Machado Lima

Page 2: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Busca de identidade

• Identificar o que é determinada seqüência •Ex.acabou de seqüenciar, seria contaminante?

• Outras fases de um projeto de seqüenciamento

Page 3: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Seqüenciamento shot-gun

Page 4: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Mascaramento de vetor

Page 5: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Montagem

Page 6: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Inferência de função a partir de similaridade

Page 7: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Nem sempre funciona...

Page 8: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Estrutura 3D de proteínas

Page 9: Alinhamentos e Busca de Similaridade Ariane Machado Lima

2 seqüências

cacttttaactctctttccaaagtccttttcatctttccttcacagtacttgttcactat cacttttaactctctttccaaagaacttttcatctttccctcacggtacttgtttgctat

Page 10: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Processo evolutivo

Page 11: Alinhamentos e Busca de Similaridade Ariane Machado Lima
Page 12: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Similaridade (e não identidade) entre os aminoácidos

Page 13: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Evolução convergente

• CUIDADO: Duas seqüências similares e com a mesma função podem não ter o mesmo ancestral...

Page 14: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Homologia, paralogia e ortologia

• Homologia: 2 seqüências são homólogas se elas possuem uma seqüência ancestral comum

• Paralogia: homologia por duplicação

• Ortologia: homologia por especiação

Page 15: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Homologia, paralogia e ortologia

Paralogia

Ortologia

Page 16: Alinhamentos e Busca de Similaridade Ariane Machado Lima

• Se duas (ou mais) seqüências são parecidas:– elas podem ser homólogas– elas podem ter funções similares– elas podem ter a mesma estrutura

Identidade, similaridade e homologia

Page 17: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Busca de similaridade

• Predição de genes

• Predição de função

• Predição de estrutura

• Inferência de árvores filogenéticas

Page 18: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamentos

• Pairwise: 2 seqüências

• Múltiplo: mais de 2 seqüências

Page 19: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamentos de 2 seqüências(pairwise)

• “Deixar 2 seqüências o mais parecidas possível”

ROSAVERMELHAAMOROSOVERME

---ROSAVERMELHAAMOROSOVERME---

• Ajustando as posições de suas letras, se necessário usando espaços:

Page 20: Alinhamentos e Busca de Similaridade Ariane Machado Lima

ROSAVERMELHA | AMOROSOVERME

Identidade: 8% (1/12)

---ROSAVERMELHA ||| ||||| AMOROSOVERME---

Identidade: 53% (8/15)

Page 21: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Sistema de scores

• Pontos para match (ex: +2)

• Penalidades para mismatch (ex: -1)

• Penalidades para gap– abertura (ex: -3)– extensão (ex: -1)

Page 22: Alinhamentos e Busca de Similaridade Ariane Machado Lima

ROSAVERMELHA | AMOROSOVERME

Identidade: 8% (1/12)

SCORE: ???

---ROSAVERMELHA ||| ||||| AMOROSOVERME---

Identidade: 53% (8/15)

SCORE: ???

Page 23: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Identidade, similaridade e homologia

Identidade

Similaridade

Homologia

Tipo de Medida

Quantitativa

Quantitativa

QUALITATIVA

Sentido

quantos idênticos

quantos parecidos

TEM ou NÃO TEMum ancestral comum

Page 24: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Tipos de alinhamentos

• Global

• Local

• Semi-global

Page 25: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento global

QUERIDA---ROSAVERMELHA|||| ||| ||||| QUEROUMAMOROSOVERME---

Page 26: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento global

• Aplicação:– comparar 2 proteínas (ex. para inferir

estrutura secundária)

Page 27: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento global

• Algoritmo Needleman-Wunsch

• Programas:– needle (EMBOSS)– stretcher (EMBOSS) (demora mais, mas

economiza memória)– FASTA

Page 28: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento local

QUERIDA---ROSAVERMELHA|||| ||| ||||| QUEROUMAMOROSOVERME---

QUER|||| QUER

ROSAVERME||| ||||| ROSOVERME

Page 29: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento local

• Aplicações:– Encontrar um gene em um genoma

– Identificar éxons

– Identificar domínios proteicos

– Identificar possíveis homólogos em um banco de dados

Page 30: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento Local

• Algoritmo Smith-Waterman

• Programas– water (EMBOSS)– matcher (demora mais, mas economiza memória)– cross_match (swat) – bom para mascaramento– FASTA– BLAST– BLAT

Page 31: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento semi-global

---ROSAVERMELHA ||| ||||| AMOROSOVERME---

Page 32: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento semi-global• Aplicação: montagem de genomas!

Page 33: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento múltiplo

Page 34: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Resumindo

• Alinhamento pairwise– global– local– semi-global

• Alinhamento múltiplo (sempre global)

Page 35: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Voltando ao sistema de score...

• Match/mismatch pode ser substituído por

– uma matriz 4x4 (nucleotídeos)

– uma matriz 20x20 (aminoácidos)

Page 36: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Similaridade entre os aminoácidos

Page 37: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Matrizes de score(matrizes de substituição)

• qij: probabilidade do aa i ser substituído pelo aa j

• pi: probabilidade do aa i

mij = log (qij / pi pj) = mij

Mij = 1/ log (qij / pi pj) = Mij

Page 38: Alinhamentos e Busca de Similaridade Ariane Machado Lima

• Como achar qij, pi e pj?

• Algumas matrizes:

– PAMs

– BLOSUMs

Matrizes de score(matrizes de substitição)

Page 39: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Matrizes PAM de aminoácidos – Point Accepted Mutation

• Dayhoff, 1978• Processo:

– Alinhamento de conjuntos de seqüências relacionadas (85% id)

– Construção de árvores filogenéticas

– Cálculo da freqüência de substituição de cada par de aa

– Normalização das freqüências: 1% de mudança ~ 50 milhões de anos (PAM1)

Page 40: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Matrizes PAM de aminoácidos – Point Accepted Mutation

• Em um período de 2 PAMs, pode ter havido A ?, e então ? D

• Extrapolação: PAM2 = PAM1 x PAM1

PAMy = PAM1 x PAM1 x .... x PAM1

• PAM120: 40% de identidade

• PAM250: 20% de identidade

Page 41: Alinhamentos e Busca de Similaridade Ariane Machado Lima

PAM250Diagonal Hidrofóbicos

Hidrofílicos

Page 42: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Problemas das PAMs

• Inferida por um conjunto restrito de proteínas

• Extrapolação

• Muitas novas proteínas foram seqüênciadas desde 78...

Page 43: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Matrizes BLOSUM de aminoácidos

• Henikoff & Henikoff, 1992

• Alinhamentos de blocos de vários grupos de proteínas relacionadas (banco de dados BLOCKS)

• Cálculo de freqüência de substituição de cada par de aa

• BLOSUMx: blocos de seqüências com no máximo x% de identidade

• Ex: BLOSUM62 e BLOSUM85

Page 44: Alinhamentos e Busca de Similaridade Ariane Machado Lima

BLOSUM62Reference: Henikoff, S. and Henikoff, J. G. (1992). Amino acid substitution matrices from protein blocks. Proc. Natl. Acad. Sci. USA 89: 10915-10919.

A R N D C Q E G H I L K M F P S T W Y V B Z X *A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 0 -4 R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 0 -1 -4 N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 3 0 -1 -4 D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 1 -1 -4 C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 3 -1 -4 E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -4 H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 0 -1 -4 I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 -3 -1 -4 L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 -3 -1 -4 K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 1 -1 -4 M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 -1 -1 -4 F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 -3 -1 -4 P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -1 -2 -4 S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 0 0 -4 T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 0 -4 W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -3 -2 -4 Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -2 -1 -4 V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 -2 -1 -4 B -2 -1 3 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 1 -1 -4 Z -1 0 0 1 -3 3 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 X 0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 0 0 -2 -1 -1 -1 -1 -1 -4 * -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1

Page 45: Alinhamentos e Busca de Similaridade Ariane Machado Lima

PAMs e BLOSUMs• Para encontrar alinhamentos mais curtos e

com maior similaridade:

– PAMs

– BLOSUMs

• Para encontrar alinhamentos mais longos e com menor similaridade:

– PAMs

– BLOSUMs

mais baixas

mais baixas

mais altas

mais altas

Page 46: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Papel dos gaps

• Veremos na aula prática....

Page 47: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Significância de scores

• Scores e a distribuição de Gumbel

• P-value (s): probabilidade de obter um score tão bom ou melhor que s puramente por chance em um banco de dados aleatório, do mesmo tamanho e com a mesma composição de bases

• E-value (s): número de hits com score tão bom ou melhor que s puramente por chance em um banco de dados aleatório, do mesmo tamanho e com a mesma composição de bases

Page 48: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Significância de scores

• E-value é um número real não negativo

• Quanto menor... ... melhor!!!!

• E-value depende de...

E(S) = Kmne-S

... por isso não existe número mágico

Page 49: Alinhamentos e Busca de Similaridade Ariane Machado Lima

BLAST

Basic Local Alignment Search Tool

• NCBI BLAST ou WU-BLAST

• Heurísticas

Page 50: Alinhamentos e Busca de Similaridade Ariane Machado Lima

“Palavras” do BLAST (W)

MLILII

MLIIKRDELVISWASHERE seqüência query

IIKIKRKRDRDEDELELVLVIVISISWSWAWASASHSHEHERERE

todas as palavras de tamanho 3 com sobreposição

Page 51: Alinhamentos e Busca de Similaridade Ariane Machado Lima
Page 52: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Outros programas BLAST

• PSI-BLAST – Position-Specific Iterated BLAST:– busca iterativa a partir de seqüências encontradas

• PHI-BLAST – Pattern-Hit Initiated BLAST: – expressões regulares + alinhamento local nos

matches

• MEGABLAST:– algoritmo guloso para acelerar buscas de seqüências

altamente similares (até 10x)

Page 53: Alinhamentos e Busca de Similaridade Ariane Machado Lima

BLAT – Blast Like Alignment Tool

• Mais rápido e mais preciso (para seqüências altamente similares)

• Aplicação: mapeamento de seqüências (ex: transcritos)

• Mantém um índice de todo o banco em memória (non-overlapping k-mers)

Page 54: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Formato FASTA

>Identificador da seqüência

GCCCCCGGCCCCGCCCCGGCCCCGCCCCCGGCCCCGCCCCGCAAGGGTCACAGGTCACGGGGCGGGGCCGAGGCGGAAGCGCCCGCAGCCCGGTACCGGCTCCTCCTGGGCTCCCTCTAGCGCCTTCCCCCCGGCCCGACTCCGCTGGTCAGCGCCAAGTGACTTACGCCCCCGACCTCTGAGCCCGGACCGCTAG

Page 55: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Programas standalone

• Programas como Blast, BLAT e muuuuitos outros:– via web server– standalone (linha de comando) – Perl

scripts!!!!

• netblast: linha de comando, mas executa remotamente

Page 56: Alinhamentos e Busca de Similaridade Ariane Machado Lima
Page 57: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Similaridade de seqüências

Aula Prática

Page 58: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.1: Identidade e similaridade

• Qual é o melhor alinhamento?

a) 100% (10/10)b) 91% (95/104)c) 74% (80/108)d) 53% (59/111)

Page 59: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento global

• Needleman-Wunsch• Programas:

– needle (EMBOSS)– stretcher (EMBOSS) (demora mais, mas

economiza memória)– FASTA

• Alinhamento múltiplo:– ClustalW– T-Coffee

Page 60: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Alinhamento local

• Smith-Waterman• Programas

– water (EMBOSS)– matcher (demora mais, mas economiza memória)– cross_match (swat)– FASTA– BLAST

Page 61: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.2: needle• Vamos alinhar as seqüências de uma hemoglobina

humana e outra de camundongo

Page 62: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.2: needle

• Vamos alinhar as seqüências de uma hemoglobina humana e outra de cavalo

http://www.vision.ime.usp.br/~ariane/inverno2008/ex2

Page 63: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.2: needle• http://www.ebi.ac.uk/Tools/emboss/align/

http://www.vision.ime.usp.br/~ariane/inverno2008/ex2

– Gaps default (10.0 ; 0.5)– Conservador (100.0 ; 10.0)– Flexível (1.0 ; 0.1)

Page 64: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.3: water• http://www.ebi.ac.uk/emboss• Vamos alinhar as seqüências do ex. 2

http://www.vision.ime.usp.br/~ariane/inverno2008/ex2

– Gaps default (10.0 ; 0.5)– Homework:

• Conservador (100.0 ; 10.0)• Flexível (1.0 ; 0.1)

Page 65: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.4: needle• http://www.ebi.ac.uk/emboss• Vamos alinhar as seqüências de um mRNA de

hemoglobina de camundongo com seu locus genômico

http://www.vision.ime.usp.br/~ariane/inverno2008/ex4

– Gaps default (10.0 ; 0.5)– Conservador (100.0 ; 10.0)– Flexível (1.0 ; 0.1)

Page 66: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.5: water

• http://www.ebi.ac.uk/emboss• Vamos alinhar as seqüências do exercício 4

http://www.vision.ime.usp.br/~ariane/inverno2008/ex4

– Gaps default (10.0 ; 0.5)– Conservador (100.0 ; 10.0)– Flexível (1.0 ; 0.1)

Page 67: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.6 - Matrizes BLOSUM

• Usando a matriz de escore default BLOSUM62, você encontrou duas proteínas que divergiram bem recentemente.

• Se você quiser refinar seu alinhamento, que matriz você deveria usar (com número mais alto ou mais baixo)?

Page 68: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 7 - Score e E-value

• Ordene por relevância:a) Score = 155 bits (393), Expect = 4e-37 Identities = 79/150 (52%), Positives = 101/150 (67%), Gaps = 1/150 (0%)b) Score = 74.3 bits (181), Expect = 2e-12 Identities = 36/105 (34%), Positives = 57/105 (54%), Gaps = 0/105 (0%)c) Score = 347 bits (889), Expect = 1e-94 Identities = 167/167 (100%), Positives = 167/167 (100%), Gaps = 0/167

(0%)d) Score = 189 bits (480), Expect = 3e-47 Identities = 88/151 (58%), Positives = 114/151 (75%), Gaps = 1/151 (0%)e) Score = 89.7 bits (221), Expect = 4e-17 Identities = 52/127 (40%), Positives = 68/127 (53%), Gaps = 5/127 (3%)

Page 69: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 8 - BLAST e filtros

• Vamos buscar seqüências similares a http://www.vision.ime.usp.br/~ariane/inverno2008/ex8

• Qual um programa apropriado?

1) Ligue os filtros2) Desligue os filtros

Page 70: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 9 - BLASTP

• Busque no SWISSPROT seqüências similares à hemoglobina de camundongo

http://www.vision.ime.usp.br/~ariane/inverno2008/ex2

Page 71: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 10 - ?

• Você seqüenciou uma seqüência de DNA– Agora você quer encontrar seqüências

similares com alta qualidade de anotação– Assim, você quer começar fazendo uma

busca no SWISSPROT

• Que programa usar?

http://www.vision.ime.usp.br/~ariane/inverno2008/ex10

Page 72: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 11 - ?

• Você tem uma seqüência de proteína (hemoglobina de camundongo) e quer saber em qual chromossomo está o gene desta proteína.

• Qual programa usar?

http://www.vision.ime.usp.br/~ariane/inverno2008/ex9

Page 73: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex: 12 - Seqüências de proteína x DNA

• Seqüências de DNA são menos conservadas que seqüências de aminoácidos, que por sua vez são menos conservadas que a estrutura de uma proteína

• Se você quer inferir função, qual das duas usar?

• Se você quer detalhes mais finos (ex: distância evolutiva), qual usar?

Page 74: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.13 - BLAT

• Útil para buscar seqüências altamente similares (de forma mais rápida)

• Utilize a seqüência de hemoglobina de camundongo para fazer seu mapeamento no genoma de camundongo

http://www.vision.ime.usp.br/~ariane/inverno2008/ex4

Page 75: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex.14 - BLAT

• Dá para fazer o mesmo com seqüência de proteína?

• Utilize a seqüência de hemoglobina de proteína de camundongo para fazer seu mapeamento no genoma de camundongo

http://www.vision.ime.usp.br/~ariane/inverno2008/ex2

Page 76: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 14 - PSI-BLAST• Você se pergunta se há parentes próximos da

família de antígenos de membrana no SWISSPROT.

• Para buscá-las, você decide usar o PSI-BLAST que usa seqüências similares à sua seqüência query (antígeno de membrana) para obter uma descrição mais flexível dessa família.

http://www.vision.ime.usp.br/~ariane/inverno2008/ex14

Page 77: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Ex. 15 - PHI-BLAST

• Além das vantagens do PSI-BLAST, você também quer definir um “padrão” que as seqüências devem ter

http://www.vision.ime.usp.br/~ariane/inverno2008/ex15

Page 78: Alinhamentos e Busca de Similaridade Ariane Machado Lima

Referências

Caprichado:

Mount - http://www.bioinformaticsonline.org/

Básico:

O'Reilly - http://www.oreilly.com/catalog/bioskills/

BLAST:

http://www.oreilly.com/catalog/blast/