TP 4. Búsqueda de secuencias por similitud
Atención
Hay tiempo hasta el Lunes 31/08 a las 23:59 para responder el parcialito
Objetivos
- Familiarizarse con el uso de programas de búsqueda de secuencias en bases de datos.
- Familiarizarse con el uso de parámetros estadísticos en relación a la búsqueda en bases de datos.
- Familiarizarse con el uso de BLAST por línea de comandos usando Google Colab.
Introducción a Bases de Datos de Proteínas
La mayor base de datos de Uniprot es UniProtKB (UniProt KnowledgeBase) que está dividida en dos secciones: TrEMBL y Swiss-Prot.
-
TrEMBL es una recolección de proteínas anotadas automáticamente que en su mayoría, aunque no de manera exclusiva, fueron obtenidas a partir de la traducción de secuencias nucleotídicas codificantes (CoDing Sequences, CDS) disponibles en GenBank.
Recordatorio
Una secuencia codificante (CDS) es una región de ADN o ARN cuya secuencia determina la secuencia de aminoácidos en una proteína. No se debe confundir con un marco abierto de lectura (Open Reading Frame, ORF) que es una región continua de codones de ADN que empiezan con un codón de inicio y termina con un codón stop. Todos los CDS son ORFs pero no todos los ORFs son CDS, por ejemplo, los ORFs incluye a los intrones.
-
Swiss-Prot es una base de datos de proteínas que fueron revisadas y anotadas manualmente por un curador/a experto/a. Por lo tanto, Swiss-Prot contiene la información de más alta calidad para secuencias de proteínas.
TrEMBL brinda los datos crudos para que los curadores de Swiss-Prot los revisen. Por lo tanto, TrEMBL tiene más entradas que Swiss-Prot, pero carece de la anotación manual de un experto. En este TP trabajaremos con Swiss-Prot.
Parte 1: Introducción a BLAST
Info
El problema de la alineación de a pares
La comparación de secuencias biológicas es fundamental en bioinformática. Métodos como Smith-Waterman ofrecen una alineación óptima, pero su costo computacional es prohibitivo. Para dos secuencias de longitudes n y m, Smith-Waterman requiere O(nm) operaciones. Por ejemplo, alinear un ARN de 1000 nucleótidos contra un cromosoma de 100 megabases implicaría cien mil millones de cálculos intermedios.
Heurísticas: sacrificar exactitud por velocidad
BLAST (Basic Local Alignment Search Tool) y otros alineadores locales populares utilizan heurísticas para reducir drásticamente el espacio de búsqueda. La idea central es identificar rápidamente "semillas" o "seeds" —regiones cortas de coincidencia exacta o casi exacta— entre la secuencia consulta (query) y la base de datos (database). Solo estas regiones prometedoras se extienden y evalúan con algoritmos más costosos.
En la práctica, BLAST encuentra alineamientos muy buenos de manera rápida pero matemáticamente no garantiza que sea el mejor. Si necesitas el alineamiento perfecto y exacto, hay que usar algoritmos como Smith-Waterman
K-tuplas o k-mers: las palabras de la secuencia
El primer paso de BLAST es dividir la secuencia consulta en todas sus subcadenas de longitud fija k. Estas subcadenas se conocen como k-tuplas, k-mers o palabras (words).
La tabla hash: indexando la consulta
Para poder verificar rápidamente si un k-mer de la base de datos está presente en la consulta, BLAST construye una tabla hash (hash table) a partir de los k-mers de la consulta.
Función hash y buckets
Idealmente, se podría usar el k-mer como clave directa en un arreglo. Sin embargo, para proteínas (20 aminoácidos) y k=10, existen 20^10 ≈ 10^13 k-mers posibles, lo que requeriría 10 terabytes de RAM solo para almacenar las posiciones.
Para solucionarlo, se usa una función hash que transforma cada k-mer en un número entero más pequeño, que sirve como índice en un arreglo de buckets o slots.
Almacenamiento de posiciones
Cada entrada de la tabla hash (cubeta) almacena una lista de las posiciones dentro de la secuencia consulta donde aparece ese k-mer (o sus vecinos).
Vecinos (neighborhood): permitiendo coincidencias inexactas
BLAST no solo busca coincidencias exactas de k-mers. Introduce un parámetro T (threshold o umbral). Para cada k-mer de la consulta, se calculan todos los "k-mers vecinos" cuya puntuación de alineación global contra el k-mer original sea al menos T. Las posiciones de estos vecinos también se almacenan en la tabla hash.
Esto permite detectar semillas incluso con sustituciones de aminoácidos o nucleótidos, mejorando la sensibilidad a costa de un mayor tiempo de búsqueda.
Búsqueda en la base de datos (scanner)
Una vez construida la tabla hash de la consulta (con k-mers y vecinos), BLAST escanea secuencialmente cada secuencia de la base de datos. En cada posición, se extrae el k-mer de la base de datos, se aplica la misma función hash, y se busca en la tabla hash.
- Si el k-mer de la base de datos no está en la tabla, se descarta.
- Si está en la tabla (en una cubeta), se obtienen las posiciones en la consulta donde aparece. Esto constituye una "semilla" (seed) o "hit".
Extensión y alineación final (seed-and-extend)
Este es el enfoque "seed-and-extend" común a todos los algoritmos basados en tablas hash.
- Semillas (seeds): Se identifican todos los pares de posiciones (una en la consulta, una en la base de datos) que comparten un k-mer (o vecino).
- Extensión: Alrededor de cada semilla, se intenta extender la alineación hacia la izquierda y hacia la derecha, permitiendo gaps (inserciones/eliminaciones).
- Puntuación: La extensión se evalúa usando una matriz de sustitución (como BLOSUM para proteínas) y se calcula una puntuación de alineación.
- Resultado: Se seleccionan y reportan las extensiones con las puntuaciones más altas.
Resumen del flujo de BLAST
- Entrada: Secuencia consulta y base de datos.
- Indexado: Se divide la consulta en k-mers. Se construye una tabla hash con los k-mers y sus vecinos (según umbral
T), almacenando las posiciones de cada uno. - Scaneo: Se recorren las secuencias de la base de datos. Para cada k-mer, se consulta la tabla hash.
- Detección de semillas: Cada coincidencia (exacta o por vecino) genera una semilla (par de posiciones).
- Extensión: Cada semilla se extiende en ambas direcciones para formar una alineación local.
- Salida: Se reportan las alineaciones con las mejores puntuaciones (estatísticamente significativas).
Ejercicio 1
Vamos a replicar manualmente una búsqueda de BLAST. En este ejercicio, vamos a construir un diccionario a partir de la siguiente secuencia:
matematica
Y luego vamos a realizar búsquedas contra el diccionario generado
Extracción de todas las k‑tuplas
El primer paso es obtener las k-tuplas que hay en la frase. Para hacerlo, recorremos la cadena desde la posición 0 hasta longitud - k. Para este ejercicio, las k-tuplas tienen una longitud de 3 (k=3)
| Posición (i) | k‑tupla |
|---|---|
| 0 | mat |
| 1 | ate |
| 2 | tem |
✏️ Paso 1:
Ahora completa vos las siguientes k‑tuplas:
| Posición (i) | k‑tupla |
|---|---|
| 3 | ___________________ |
| 4 | ___________________ |
| 5 | ___________________ |
| 6 | ___________________ |
| 7 | ___________________ |
Construcción del diccionario hash
Un diccionario (tabla hash) tendrá como clave cada k‑tupla y como valor una lista de posiciones donde aparece esa k‑tupla. Si se repite, su lista debe contener todas las posiciones donde aparece.
| Clave | Lista de posiciones |
|---|---|
mat |
[0] |
ate |
[1] |
tem |
[2] |
ema |
[3] |
La siguiente Clave es mat, asá que actualizo ese elemento en la lista de posiciones
| Clave | Lista de posiciones |
|---|---|
mat |
[0, 4] |
ate |
[1] |
tem |
[2] |
ema |
[3] |
✏️ Paso 2:
Ahora agregá el resto de las claves del diccionario:
| Clave (triplete) | Lista de posiciones |
|---|---|
mat |
[0] |
ate |
[1] |
tem |
[2] |
ema |
[3] |
Búsqueda de consultas (queries) en el diccionario
Usaremos el diccionario para responder rápidamente si una palabra query existe y en qué posiciones.
Hagamos juntos el primer ejemplo con la query "mat":
- Buscamos la clave
"mat"en el diccionario. - Encontramos que sí existe y su valor es
[0, 4].
✏️ Paso 3:
Ahora hace lo mismo con las siguientes queries:
| Query (triplete a buscar) | ¿Existe en el diccionario? (Sí / No) | Si existe, ¿en qué posición(es)? |
|---|---|---|
ate |
||
ema |
||
ati |
Parte 2: Exploración BLAST web
Info
Secciones principales de la interfaz
Encabezado común (Header)
Todas las páginas de BLAST comparten el mismo encabezado con cuatro pestañas principales:
| Pestaña | Función |
|---|---|
| Home | Enlace a la página principal de BLAST |
| Recent Results | Acceso a los resultados de búsquedas anteriores realizadas en la sesión actual del navegador |
| Saved Strategies | Estrategias de búsqueda guardadas previamente (requiere cuenta My NCBI) |
| Help | Documentación completa y ayuda sobre el uso de BLAST |
Sección "Web BLAST" (o "Basic BLAST")
Contiene los enlaces a los cinco programas BLAST más comunes:
| Programa | Secuencia consulta (Query) | Base de datos (Database) | Uso principal |
|---|---|---|---|
| blastn | Nucleótidos | Nucleótidos | Comparar ADN/ARN contra ADN/ARN |
| blastp | Proteínas | Proteínas | Comparar proteínas contra proteínas |
| blastx | Nucleótidos (traducido) | Proteínas | Traducir ADN a proteína y buscar en BD de proteínas |
| tblastn | Proteínas | Nucleótidos (traducido) | Buscar proteína contra ADN traducido en 6 marcos |
| tblastx | Nucleótidos (traducido) | Nucleótidos (traducido) | Traducir ambos y comparar a nivel proteico |
Sección "Specialized searches" (Búsquedas especializadas)
Contiene herramientas adicionales como: - CD-search: Identificación de dominios conservados - bl2seq: Alineamiento de dos secuencias (BLAST 2 Sequences) - MegaBLAST: Búsqueda rápida para secuencias muy similares - Discontiguous MegaBLAST: Para secuencias divergentes
Formulario de búsqueda
Al seleccionar un programa (ej. blastn), se despliega el formulario con varias secciones:
a) Query Input (Ingreso de la consulta)
- Área de texto "Search": se pega la secuencia en formato FASTA, secuencia "cruda" o incluso un identificador NCBI
- Formato FASTA: comienza con > seguido de una descripción, luego la secuencia
- Subrange: permite seleccionar solo un fragmento de la secuencia consulta
- Carga de archivo: se puede subir un archivo con una o varias secuencias
b) Database Selection (Selección de base de datos) - nr: base de datos no redundante (la más usada) - RefSeq Select: transcriptos seleccionados de ratón, rata y humano - Genomes: genomas completos de organismos modelo - Organism limit: restringir por grupo taxonómico - Sequence type exclusion: excluir tipos de registros no deseados
c) Program Selection (Selección del programa) - Para blastn, se puede elegir entre: - Megablast (secuencias muy similares, word size 28) - Discontiguous megablast (secuencias divergentes) - blastn (secuencias algo similares, word size 11)
d) Algorithm Parameters (Parámetros del algoritmo)
| Parámetro | Explicación | Efecto |
|---|---|---|
| Word size | Longitud de la semilla inicial | Mayor → más rápido, menos sensible; Menor → más lento, más sensible |
| Expect (E-value) | Umbral de significancia estadística | Default: 0.05. Menor → más estricto |
| Max target sequences | Número máximo de resultados mostrados | Default: 100. Aumentar para ver más resultados |
| Gap open penalty | Penalización por abrir un hueco | Afecta la cantidad y tamaño de gaps |
| Gap extend penalty | Penalización por extender un hueco | Similar al anterior |
| Filtering / Masking | Filtrado de regiones de baja complejidad | Se activa/desactiva en Algorithm Parameters |
Resultados de la búsqueda
Al finalizar la búsqueda, los resultados se organizan en varias secciones:
- Descriptions: Lista de secuencias con similitud, ordenadas por E-value
- Graphic Summary: Representación gráfica de los alineamientos
- Alignments: Alineamientos detallados entre query y cada hit
- Taxonomy: Distribución taxonómica de los resultados
Ejercicio 2
Recibieron en el laboratorio una secuencia "incógnita" y deben identificarla usando BLAST.
>secuencia_incognita
ATGGTGCACCTGACTCCTGAGGAGAAGTCTGCCGTTACTGCCCTGTGGGGCAAGGTGAACGTGGATGAAGTTGGTGGTGAGGCCCTGGGCAGGTTGGTATCAAGGTTACAAGACAGGTTTAAGGAGACCAATAGAAACTGGGCATGTGGAGACAGAGAAGACTCTTGGGTTTCTGATAGGCACTGACTCTCTCTGCCTATTGGTCTATTTTCCCACCCTTAGGCTGCTGGTGGTCTACCCTTGGACCCAGAGGTTCTTTGAGTCCTTTGGGGATCTGTCCACTCCTGATGCTGTTATGGGCAACCCTAAGGTGAAGGCTCATGGCAAGAAAGTGCTCGGTGCCTTTAGTGATGGCCTGGCTCACCTGGACAACCTCAAGGGCACCTTTGCCACACTGAGTGAGCTGCACTGTGACAAGCTGCACGTGGATCCTGAGAACTTCAGGGTGAGTCTATGGGACGCTTGATGTTTTCTTTCCCCTTCTTTTCTATGGTTAAGTTCATGTCATAGGAAGGGGATAAGTAACAGGGTACAGTTTAGAATGGGAAACAGACGAATGATTGCATCAGTGTGGAAGTCTCAGGATCGTTTTAGTTTCTTTTATTTGCTGTTCATAACAATTGTTTTCTTTTGTTTAATTCTTGCTTTCTTTTTTTTTCTTCTCCGCAATTTTTACTATTATACTTAATGCCTTAACATTGTGTATAACAAAAGGAAATATCTCTGAGATACATTAAGTAACTTAAAAAAAAACTTTACACAGTCTGCCTAGTACATTACTATTTGGAATATATGTGTGCTTATTTGCATATTCATAATCTCCCTACTTTATTTTCTTTTATTTTTAATTGATACATAATCATTATACATATTTATGGGTTAAAGTGTAATGTTTTAATATGTGTACACATATTGACCAAATCAGGGTAATTTTGCATTTGTAATTTTAAAAAATGCTTTCTTCTTTTAATATACTTTTTTGTTTATCTTATTTCTAATACTTTCCCTAATCTCTTCTTTTCAGGGCAATAATGATACAATGTATCATGCCTCTTTGCACCATTCTAAAGAATAACAGTGATAATTTCTGGGTTAAGGCAATAGCAATATCTCTGCATATAAATATTTCTGCATATAAATTGTAACTGATGTAAGAGGTTTCATATTGCTAATAGCAGCTACAATCCAGCTACCATTCTGCTTTTATTTTATGGTTGGGATAAGGCTGGATTATTCTGAGTCCAAGCTAGGCCCCTTTGCTAATCATGTTCATACCTCTTATCTTCCTCCCACAGCTCCTGGGCAACGTGCTGGTCTGTGTGCTGGCCCATCACTTTGGCAAAGAATTCACCCCACCAGTGCAGGCTGCCTATCAGAAAGTGGTGGCTGGTGTGGCTAATGCCCTGGCCCACAAGTATCACTAAGCTCGCTTTCTTGCTGTCCAATTTCTATTAAAGGTTCCTTTGTTCCCTAAGTCCAACTACTAAACTGGGGGATATTATGAAGGGCCTTGAGCATCTGGATTCTGCCTAATAAAAAACATTTATTTTCATTGC
✏️ Pasos a seguir:
- Ingresen a https://blast.ncbi.nlm.nih.gov/Blast.cgi
- Ingresen a "Nucleotide BLAST"
- En la sección "Enter accession number(s), gi(s), or FASTA sequence(s)" ingrsá la secuencia incógnita indicada al comienzo del Ejercicio 2
- Navegar hasta la sección inferior de la pantalla y apretar el botón "BLAST" para realizar la búqueda. Ejecute la búqueda sin cambiar ningún parámetro.
¿Qué estamos viendo?
Secciones principales de los resultados de BLAST
A continuación se explican las cuatro pestañas principales que aparecen en la parte superior de la página de resultados:
| Pestaña | ¿Qué contiene? | ¿Para qué sirve? |
|---|---|---|
| Descriptions | Una tabla resumen con todas las secuencias que tienen similitud con tu consulta (query). | Es la vista rápida para identificar los mejores “hits”. Te dice el organismo, el puntaje, el E‑value y el porcentaje de identidad. |
| Graphic Summary | Un gráfico de barras que muestra la posición de los alineamientos a lo largo de tu secuencia consulta. | Permite ver de un vistazo si la cobertura es completa o parcial, y si hay múltiples alineamientos en diferentes regiones. |
| Alignments | Los alineamientos detallados entre tu secuencia y cada una de las secuencias de la base de datos. | Muestra par a par las coincidencias, sustituciones, inserciones y deleciones (gaps). Es donde se puede comprobar la calidad del alineamiento. |
| Taxonomy | Un resumen de la distribución taxonómica de los resultados (dominio, filo, clase, etc.). | Ayuda a saber si los hits pertenecen a grupos relacionados o si hay contaminación con organismos de otros reinos. |
Además, en la parte superior derecha suele haber enlaces a: - Reports: para cambiar el formato de visualización. - Lineage: para ver la jerarquía taxonómica. - Organism: para filtrar por organismo. - Taxonomy: para acceder al árbol taxonómico interactivo.
Análisis de la tabla "Descriptions"
La tabla que has obtenido para la secuencia de la β‑globina tiene las siguientes columnas:
| Columna | Significado | Ejemplo de tu captura |
|---|---|---|
| Description | Nombre de la secuencia y organismo. | Homo sapiens voucher Yoruba_9_0 hemoglobin subunit beta (HBB) gene complete cds |
| Scientific Name | Nombre científico del organismo. | Homo sapiens |
| Max Score | Puntuación máxima del mejor alineamiento (contempla coincidencias y penalizaciones). | 2852 (muy alto) |
| Total Score | Suma de puntuaciones si hay varios fragmentos alineados (suele coincidir con Max Score si solo hay un alineamiento). | 2852 |
| Query Coverage | Porcentaje de tu secuencia consulta que está cubierta por el alineamiento. | 100% (toda la secuencia se alinea) |
| E‑value | Valor esperado: probabilidad de que este alineamiento se dé por azar en una base de datos del mismo tamaño. Cuanto más pequeño, mejor. | 0.0 (prácticamente cero) |
| Per. Ident | Porcentaje de identidad (bases exactamente iguales) en el alineamiento. | 99.74% (casi perfecta) |
| Acc. Len | Longitud total del registro en la base de datos (en pb). | 1824 |
| Accession | Identificador único de la secuencia en el NCBI. | MK476483_1 |
✏️ Preguntas para responder
-
¿Qué gen has identificado con BLAST? Nombra el gen completo y el organismo al que pertenece según el mejor hit (primer resultado).
-
¿Por qué el primer resultado tiene un E‑value = 0.0 y un porcentaje de identidad del 99.74%? Explica con tus palabras qué significa cada uno de estos valores.
-
¿Qué significa que el "Query Coverage" sea del 100% en todos los primeros hits? ¿Qué implicación tiene esto sobre la calidad de tu secuencia original?
-
Observá los cinco primeros resultados. Todos tienen exactamente el mismo Max Score (2852) y Per. Ident (99.74%). ¿Por qué hay múltiples entradas con los mismos valores si el organismo es el mismo (Homo sapiens)?
Ejercicio 3
Realizaron un aislamiento bacteriano y obtuvieron la siguiente secuencia. El objetivo es identificar a que organismo pertenece.
>proteina_incognita
MTMITDSLAVVLQRRDWENPGVTQLNRLAAHPPFASWRNSEEARTDRPSQQLRSLNGEWR
✏️ Pasos a seguir:
- Ingresen a https://blast.ncbi.nlm.nih.gov/Blast.cgi
- Ingresen a "Protein BLAST"
- En la sección "Enter accession number(s), gi(s), or FASTA sequence(s)" ingresá la secuencia de la proteina incógnita indicada al comienzo del Ejercicio 3
- Seleccionen la base de datos "UniProt/Swiss-Prot(swissprot)"
- Navegar hasta la sección inferior de la pantalla y apretar el botón "BLAST" para realizar la búqueda.
Graphic Summary
El Graphic Summary es una representación visual de los alineamientos entre tu secuencia consulta (query) y las secuencias de la base de datos que han mostrado similitud. Esta vista te permite comprender rápidamente:
- Cobertura: qué parte de tu secuencia está alineada.
- Calidad del alineamiento: mediante colores que indican el puntaje (score).
- Distribución de los hits: si hay múltiples alineamientos en diferentes regiones.
- Dominios conservados: si tu proteína contiene regiones funcionales conocidas.
Elementos del Graphic Summary
En la parte superior del gráfico aparece una leyenda con rangos de puntuación:
| Rango de Score | Significado |
|---|---|
| < 40 | Alineamiento muy débil |
| 40 - 50 | Alineamiento moderadamente bajo |
| 50 - 80 | Alineamiento aceptable |
| 80 - 200 | Alineamiento bueno |
| ≥ 200 | Alineamiento excelente |
Interpretación:
Cuanto más azul sea el puntaje, mayor será la coincidencia entre tu secuencia y la de la base de datos.
Alignments
La pestaña Alignments muestra el alineamiento detallado par a par entre tu secuencia consulta (query) y cada una de las secuencias de la base de datos que han mostrado similitud. Esta sección te permite:
- Ver exactamente qué aminoácidos o nucleótidos coinciden.
- Identificar sustituciones, inserciones y deleciones (gaps).
- Evaluar la calidad del alineamiento a nivel de residuo individual.
- Acceder a información complementaria como estructuras 3D o dominios.
En la parte superior de cada alineamiento aparece un recuadro con información clave sobre la secuencia de la base de datos que se está mostrando:
| Elemento | Ejemplo en tu captura | Significado |
|---|---|---|
| Nombre de la proteína | RecName: Full=Beta-galactosidase; Short=Beta-gal; AltName: Full=Lactase |
Nombre completo y sinónimos de la proteína. |
| Organismo | [Escherichia coli HS] |
Especie de la que proviene la secuencia. |
| Sequence ID | A7WZ1.1 |
Identificador único en la base de datos del NCBI. |
| Length | 1024 |
Longitud total de la proteína (en aminoácidos). |
| Number of Matches | 1 |
Número de fragmentos alineados (si es 1, el alineamiento es continuo). |
Estadísticas del alineamiento
| Estadística | Valor en tu captura | Significado |
|---|---|---|
| Score | 125 bits (313) |
Puntuación total del alineamiento. Se mide en bits (valor normalizado) y en unidades crudas. 125 bits es muy alto (normalmente > 50 bits es significativo). |
| Expect (E‑value) | 2e-34 |
Valor esperado. La probabilidad de que este alineamiento se dé por azar en una base de datos de este tamaño. 2 × 10⁻³⁴ es extremadamente bajo, lo que indica que la coincidencia es altamente significativa y no es casual. |
| Method | Compositional matrix adjust. |
BLAST ha ajustado la matriz de sustitución (BLOSUM62) en función de la composición de aminoácidos de tu secuencia para mejorar la sensibilidad. |
| Identities | 60/60 (100%) |
60 de 60 aminoácidos coinciden exactamente. 100% de identidad significa que tu fragmento es idéntico a esa región de la proteína de la base de datos. |
| Positives | 60/60 (100%) |
60 de 60 aminoácidos son similares (incluye sustituciones conservativas). Al ser 100%, indica que no hay ningún cambio, ni siquiera conservativo. |
| Gaps | 0/60 (0%) |
No hay inserciones ni deleciones en el alineamiento. Es un alineamiento perfecto, sin huecos. |
El alineamiento visual (alineamiento par a par)
El bloque central muestra la comparación directa entre tu secuencia (Query) y la secuencia de la base de datos (Sbjct).
!!! info "Taxonomy"?
La pestaña **Taxonomy** organiza los resultados de BLAST desde una perspectiva **filogenética y taxonómica**. Te presenta un **árbol jerárquico** que agrupa los hits según su clasificación biológica: desde el dominio más amplio (ej. Bacteria) hasta la especie más específica (ej. *Escherichia coli*).
Esta vista es útil para:
- **Identificar rápidamente** a qué grupo taxonómico pertenece tu secuencia.
- **Detectar posibles contaminaciones** (ej. si tu secuencia de bacteria aparece mezclada con hits de hongos o mamíferos).
- **Evaluar la diversidad** de organismos que comparten similitud con tu secuencia.
- **Confirmar la identidad** de tu secuencia viendo que todos los hits relevantes se agrupan en el mismo taxón.
✏️ Preguntas para responder
- ¿Cuál es el nombre completo de la proteína que aparece en el mejor hit (primer resultado)?
- ¿A qué organismo pertenece esa proteína?
- ¿Cuál es el número de acceso (Accession) del mejor hit?
- Visualizando la pestaña Graphic Summary, Según la escala de colores de tu captura (rojo = ≥ 200, verde = 80‑200, etc.), ¿qué colores predominan en las barras de los hits? ¿Qué te dice eso sobre la calidad de los alineamientos?
- Visualizando la pestaña "Alignments", En el primer alineamiento detallado, ¿qué porcentaje de identidad y positividad (Positives) muestra el mejor hit? ¿Hay algún gap (hueco)?
- Visualizando la pestaña "Taxonomy", Escribe la jerarquía taxonómica completa desde el nivel más general (Bacteria) hasta el más específico (cepa) que aparece en los resultados.
Parte 3: Uso de BLAST en la línea de comando
BLAST, tal como es distribuído por el NCBI, se encuentra disponible mediante el comando blastall. Este comando necesita como mínimo tres argumentos para realizar una búsqueda:
-iuna secuencia query (recordar, i = input)-duna base de datos con secuencias (recordar, d = database)-pel tipo de busqueda (p = programa: blastp, blastn, blastx, etc.)
Tip
Para ver una lista de los argumentos que acepta blastall prueben correr el comando sin argumentos. Si esto no les funciona pueden ver todos los argumentos haciendo click aquí. Para una lista detallada de los comandos que acepta cada programa, pueden consultar la página del NCBI.
Recordatorio: Estadística de los Alineamientos
¿Qué es un Expect value o E-value?
El E-value (E) es un parámetro que describe el número de hits que uno espera encontrar por azar cuando está buscando en una base de datos de un tamaño particular. Este disminuye exponencialmente a medida que el Score (S) del alineamiento aumenta. Esencialmente el E-value describe el ruido de fondo aleatorio que está presente al realizar una búsqueda en una base de datos de secuencias.
Cuanto más pequeño sea el E-value, o más cercano a 0, más significativo resulta ser nuestro hit. Sin embargo, siempre hay que tener en cuenta que los alineamientos cortos tienen E-values relativamente altos, y esto es debido a que el E-value tiene en cuenta el largo de la secuencia query. Estos E-values tienen sentido porque las secuencias cortas tienen una probabilidad más alta de estar presentes en una base de datos puramente por azar.
El E-value es un parámetro conveniente para establecer un umbral de significancia a la hora de reportar los resultados de una búsqueda en una base de datos. Uno puede cambiar el E-value umbral al listar los resultados de una búsqueda con BLAST.
Recordemos la fórmula para calcular el E-value (E) de la teórica.
Ejercicio 4
✏️ Paso 0
- Abran Google Colab desde el navegador (Google Colab)
- Agreguen una celda de código y peguen los comandos necesarios para instalar los programas que vamos a usar
!sudo apt-get install -y ncbi-blast+-legacy
- Ejecuten la celda y esperen a que se complete la instalación.
- Descarguen la base de datos de SwissProt
# 1. Instalar gdown !pip install gdown # 2. Descargar la base de datos !gdown --id 1lNHS7B3wQZvym2oTtbTEV5v4TEtFe7DL # 3. Descomprimir el archivo !tar -xzvf /content/swissprot_db.tar.gz # 4. Verificar la descarga !ls -l /content/Swissprot_db/
✏️ Paso 1
Como primer ejemplo podemos usar la secuencia xlrhodop.pep para realizar una búsqueda contra Swiss-Prot. Como estamos trabajando con una secuencia y una base de datos de proteínas, usamos blastp para realizar la busqueda:
Descargar el archivo xlrhodop.pep
!wget "https://bioinformatica-iib.github.io/introduccion_bioinformatica/practicos/TP04_Busqueda_por_similitud/data/xlrhodop.pep"
Y ejecutar la búsqueda usando BLASTp de xlrhodop.pep contra la base de datos de SwissProt
!blastall -p blastp -i xlrhodop.pep -d Swissprot_db/Swissprot.fasta
Atención
Este comando no se ejecutará correctamente si las secuencia xlrhodop y la base de datos Swiss-Prot no están en los directorios correctos. Chequeen donde está la base de datos, y si el comando no se ejecuta, especifiquen el camino o path completo.
✏️ Paso 2
En este ejemplo, el resultado de la búsqueda es volcado en la consola (stdout). Para que el resultado aparezca en un archivo, podemos redireccionar stdout (usando >, ver TP01-Linux) o usar la opcion -o (output).
!blastall -p blastp -i xlrhodop.pep -d Swissprot_db/Swissprot.fasta -o xlrhodop.blastp
✏️ Paso 3
Pueden ver el resultado del blastp, por ejemplo, revisando las n líneas del principio (head) o del final (tail):
!head -n 10 xlrhodop.blastp
O pueden acceder desde la pestaña de Archivos
✏️ Preguntas para responder
-
Inspeccionen el archivo y respondan: ¿Qué indican las últimas líneas de este archivo?
-
Si recuerdan cómo se computa el E-value, ¿cuál es la relevancia de reportar el tamaño de la base de datos (number of letters, number of sequences)?
Nota
El término neighboring words refiere a palabras "vecinas" o "cercanas", es decir con alta similitud de secuencia.
Atención
Si corren blastp sólo, es decir sin invocar primero al comando blastall, van a poder realizar las mismas búsquedas pero los nombres de los argumentos del comando blastp sólo difieren de los de blastall -p blastp. Por lo tanto, no les recomendamos correrlo de esta forma.
✏️ Paso 4
Explore las siguientes opciones del programa blastp:
-GCosto del gap open (default: 11)-ECosto del gap extend (default: 1)-WTamaño de la ktupla. (default: 3, puede variar entre 2 y 7)
Atención
Hay tuplas de valores permitidos para los argumentos -G y -E, no cualquier
combinación de costos es válida.
- Pruebe con distintas combinaciones de estos parámetros y preste atención al impacto que esto tiene en los alineamientos reportados.
✏️ Preguntas para responder
a. Si observa los primeros 20 hits de su búsqueda, ¿puede detectar alguna diferencia en los alineamientos reportados si cambia los parámetros indicados más arriba?
b. A medida que va descendiendo en la lista de los hits reportados (menor Score, mayor E-value), ¿qué patrones puede observar en los alineamientos que arroja BLAST?
c. Tome como ejemplo dos de los siguientes hits:
- OPSD_CARAU
- OPN4A_DANRE
- OPN4_RUTRU
y complete para cada uno de los alineamientos reportados la siguiente tabla, teniendo en cuenta los diferentes costos de gap open y gap extend propuestos.
| Número total de gaps | Extensión de las regiones con gaps | |
|---|---|---|
| Gap open: 6 + gap extend: 2 | ||
| Gap open: 13 + gap extend: 1 |
✏️ Paso Opcional
Evaluando el impacto del parámetro longitud de la k-tupla.
✏️ Preguntas para responder
Para una misma combinación de costos para gap open y gap extend (pueden usar los valores default):
a. ¿Qué sucede con los valores de ktupla=2 y ktupla=7 ?
b. ¿Cuál búsqueda es la que tarda más? ¿Cuál menos?
c. ¿Cuántas secuencias devuelven?
Para los más curiosos, las respuestas a estas preguntas pueden hallarlas en el siguiente link.
Bibliografía
- Tutorial de BLAST en la web del NCBI: The Statistics of Sequence Similarity Scores


