Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III:...

18
Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx © Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 1 Biología Genómica y Evolución IV - Inferencia Filogenética y Evolución Molecular Semestre 2008-2 Pablo Vinuesa ([email protected] ) Progama de Ingeniera Genmica, CCG-UNAM, MØxico http://www.ccg.unam.mx/~vinuesa/ Todo el material del curso (presentaciones, lecturas, ejercicios, tutoriales, URLs ...) lo encontrarÆs en: http://cursos.lcg.unam.mx/claroline/course/index.php?cid=BGE_IV_2008 Tema 3: Alineamientos múltiples 1. Alineamientos mœltiples y el problema de las repeticiones, sustituciones e indeles 2. Alineamientos mœltiples progresivos usando programas de la familia Clustal 3. Scripts de Perl para automatizar procesos: alinear muchos archivos y hacer interconversiones de formatos de secuencia sobre mœltiples archivos. 4. Formatos de secuencia 5. Alineamiento de secuencias codificadoras de protenas usando RevTrans 6. Alineamiento de genes ribosomales usando RDP-II y GreenGenes 7. Aln. mœltiples usando el algoritmo T-Coffee Tema 3 : alineamientos mœltiples de secuencias Protocolo básico para un análisis filogenético de secuencias moleculares Interpretación evolutiva y aplicación de las filogenias Colección de secuencias homólogas BLAST y FASTA Alineamiento múltiple de secuencias Clustal, T-Coffee ... Estima filogenética NJ, ME, MP, ML, Bayes ... Análisis evolutivo del alineamiento y selección del modelo de sustitución más ajustado tests de saturación, modeltest, ... Pruebas de confiabilidad de la topología inferida proporciones de bootstrap probabilidad posterior ... Tema III: alineamientos múltiples Cualquier estudio de filogenØtico o de evolucin molecular basado en secuencias necesita de un alineamiento múltiple para determinar las correspondencias de homología a nivel de los resíduos individuales o caracteres. 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 La mejor manera de representar un alineamiento mœltiple es escribiendo las secuencias a comparar en filas una encima de la otra, generÆndose una matriz de m x n (secs. x posic) caracteres, en la que cada columna contiene a resduos homlogos Comparar los aln. mœltiples en el contexto de una filogenia nos puede revelar mucho acerca de los patrones y tasas de sustitucin. Tema III: alineamientos múltiples – El problema de las repeticiones Muchas proteínas multidominio pueden presentar diverso grado de repetición de domi- nios particulares. Puede llegar a ser muy complejo o prÆcticamente imposible hacer el alineamiento correcto de estos repeats. ? A nivel de DNA se dan tambiØn regiones repetidas, muchas veces involucrando a unos poco nts. como es el caso de los microsatélites y otras regiones repetidas. Con frecuencia estas regiones son imposibles de alinear objetivamente. Suelen acumularse en regiones no codificantes del genoma, o en regiones codificantes hipervariables como espaciadores intergØnicos transcritos o regiones reguladoras (UTRs). Este tipo de repeats cortos son poco frecuentes a nivel de aminoÆcidos, si bien a este nivel es comœn encontrar regiones o dominios “de gran escala” repetidos. Un ejemplo clÆsico de este fenmeno son las calmodulinas.

Transcript of Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III:...

Page 1: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 1

Biología Genómica y Evolución IV -Inferencia Filogenética y Evolución Molecular

Semestre 2008-2

Pablo Vinuesa ([email protected])

Progama de Ingeniería Genómica, CCG-UNAM, México http://www.ccg.unam.mx/~vinuesa/

Todo el material del curso (presentaciones, lecturas, ejercicios, tutoriales, URLs ...) lo encontrarás en:http://cursos.lcg.unam.mx/claroline/course/index.php?cid=BGE_IV_2008

� Tema 3: Alineamientos múltiples

1. Alineamientos múltiples y el problema de las repeticiones, sustituciones e indeles2. Alineamientos múltiples progresivos usando programas de la familia Clustal3. Scripts de Perl para automatizar procesos: alinear muchos archivos y hacer

interconversiones de formatos de secuencia sobre múltiples archivos.4. Formatos de secuencia5. Alineamiento de secuencias codificadoras de proteínas usando RevTrans6. Alineamiento de genes ribosomales usando RDP-II y GreenGenes7. Aln. múltiples usando el algoritmo T-Coffee

Tema 3: alineamientosmúltiples de secuencias

Protocolo básico para un análisis filogenético de secuencias moleculares

Interpretación evolutiva y aplicación de las filogenias

Colección de secuencias homólogas

� BLAST y FASTA

Alineamiento múltiple de secuencias

� Clustal, T-Coffee ...

Estima filogenética

� NJ, ME, MP, ML, Bayes ...

Análisis evolutivo del alineamiento y selección del modelo de sustitución más ajustado

� tests de saturación, modeltest, ...

Pruebas de confiabilidad de la topología inferida

� proporciones de bootstrap probabilidad posterior ...

Tema III: alineamientos múltiples

� Cualquier estudio de filogenético o de evolución molecular basado en secuencias necesitade un alineamiento múltiple para determinar las correspondencias de homologíaa nivel de los resíduos individuales o caracteres.

3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 33

� La mejor manera de representar un alineamiento múltiple es escribiendo las secuenciasa comparar en filas una encima de la otra, generándose una matriz de m x n (secs. x posic)caracteres, en la que cada columna contiene a resíduos homólogos

� Comparar los aln. múltiples en el contexto de una filogenia nos puede revelar mucho acercade los patrones y tasas de sustitución.

Tema III: alineamientos múltiples –

� El problema de las repeticiones

Muchas proteínas multidominio pueden presentar diverso grado de repetición de domi-nios particulares. Puede llegar a ser muy complejo o prácticamente imposible hacer elalineamiento correcto de estos �repeats�.

?

A nivel de DNA se dan también regiones repetidas, muchas veces involucrando a unospoco nts. como es el caso de los microsatélites y otras regiones repetidas. Con frecuenciaestas regiones son imposibles de alinear objetivamente. Suelen acumularse en regiones nocodificantes del genoma, o en regiones codificantes hipervariables como espaciadoresintergénicos transcritos o regiones reguladoras (UTRs).

Este tipo de �repeats� cortos son poco frecuentes a nivel de aminoácidos, si bien a este niveles común encontrar regiones o dominios “de gran escala” repetidos. Un ejemplo clásico deeste fenómeno son las calmodulinas.

Page 2: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 2

� Al examinar alns. múltiples de proteínas se obaservan dos patrones de sustitución:1.- Existen bloques de 5 a 20 resíduos con alto nivel de identitad y similitud dispersos

entre regiones de menor similitud. Estos bloques corresponden típicamente a elementosestructurales como αααα-hélices y pliegues beta que evolucionan más lentamente que losloops o bucles que los interconectan

Tema III: alineamientos múltiples –

� El problema de las sustituciones

2.- Las columnas alineadas con múltiples estados de caracter tienden a presentar resíduosde características bioquímicas similares (I, A, V, L; S, T; R, K; etc.). Esta conserva-

ción de resíduos similares es particularmente patente en los bloques correspondientesa elementos de estructura secundaria, sitios activos o de unión a ligandos. La propiedad bioquímica más conservada es la de polaridad/hidrofobicidad.

αααα-hélice

� Es importante recordar que por debajo del 20% de identidad a nivel de sec. de AA esya imposible que se pueda obtener un alineamiento múlitiple (o pareado) confiable si nosbasamos para obtenerlo sólo en la secuencia primaria, puesto que entramos en la zonade penumbra.

Tema III: alineamientos múltiples –

� El problema de las sustituciones

� Un par de secuencias de nts al azar presentarán en promedio un 25 % de dentidad.

� Por tanto, siempre que sea posible, hay que realizar los alineamientos múltiples en basea las secuencias traducidas, es decir, sobre AAs (igual que al hacer búsquedas en basesde datos de secuencia)

� Cuando por eventos de inserción o deleción (indeles) las secuencias homólogas presentandistintas longitudes, es necesario introducir �gaps� en el alineamiento para mantener la correspondencia entre sitios homólogos situados antes y después de las regiones afectadaspor indeles. Estas regiones se identifican mediante guiones (-).

Tema III: alineamientos múltiples –

� El problema de los indeles (inserciones/deleciones)

Los indeles no se distribuyen aleatoriamente en las secuencias codificadoras. Casi siempre aparecen ubicados entre dominios funcionales o estructurales, preferentemente en bucles (loops) que conectan a dichos dominios. Esto vale tanto para RNAs estructurales (tRNAs y rRNAs) como para proteínas. No suelen interrumpir el marco de lectura.

� Generalmente se usan sistemas de penalización de gaps afines (GP = gap + (ext. x long.) )

� A mayor distancia genética (evolutiva) entre un par de secuencias, mayor será el número demutaciones acumuladas. Dependiendo del tiempo de separación de los linajes y la tasaevolutiva del locus, puede llegar a ser imposible alinear ciertas regiones debido a fenómenosde saturación mutacional. En loci de evolución muy rápida como intrones o espaciadoresintergénicos, los fenómenos de saturación mutacional se observan incluso cuando se compa-ran secuencias de organismos evolutivamente próximos (mismo género o familia).

Tema III: alineamientos múltiples –

¡Las regiones de homología dudosa deben de ser excluídas de un análisis filogenético!Debemos de procurar maximizar la relación entre señal/ruido

Page 3: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 3

Alineamientos múltiples (AM)� Existen diversos algoritmos (además de matrices de sustitución y esquemas de �gap penalty�)

para la generación de AMs. Unos son exahaustivos (garantizan encontrar el alineamientoóptimo) y otros son heurísticos (no lo garantizan)

� No existe un algoritmo ideal para todas las situaciones. Para búsquedas en bases de datosse emplean algoritmos heurísticos para encontrar alineamientos locales (FastA y BLAST). Para análisis filogenéticos necesitamos métodos que produzcan alineamientos globales.

� Algoritmos basados en programación dinámica (PD) aseguran encontrar la solución óptimao el mejor alineamiento global para 2 secuencias. Se trata de un algoritmo O(N2), ya queel tiempo y memoria que demandan es proporcional al producto de las long. de ambassecuencias (N1 X N2). Se puede generalizar el proceso para la comparación de múltiplessecuencias, usando la función de objetividad llamada suma ponderada de pares (WSP):

ΣΣ Wij Dij

Donde Di j es la puntuación de cada posible par de secuencias y Wij es un factor de pondera-ción arbitrario que permite dar más o menos peso a ciertas comparaciones (por ej. en funciónde su score Dij. Algoritmos de PD se pueden emplear para encontrar el AM que da el mejor valor posible de la función WSP. El problema radica en que la complejidad crece exponen-cialmente con cada nueva secuencia que se añade (complejidad O(NM)), donde N=long. secM= no. secs. Ello implica que se alcanza rápidamente un límite computacional

Alineamientos múltiples (AM)

Existen diversas estrategias computacionales para obtener alineamientos múltiples de ma-nera (semi)automática.

1.- Implementación de algoritmos de alineamiento progresivo.

Así como los alns. múltiples son indispensables para reconstruir filogenias a partir de secs,un árbol de relaciones filogenéticas representa información muy valiosa para guiar la gene-ración de un aln. múltiple.

La mayor parte de los alineadores automáticos modernos se basan en este tipo de algorit-mos. Construyen un árbol guía aproximado a partir de distancias calculadas entre todoslos pares posibles de secuencias. De la matriz de distancias resultantes se construye unárbol usando un método algorítmico (NJ o UPGMA). El árbol guía resultante se emplea paraconstruir el alineamiento de manera progresiva. Las dos secuencias más similares se alineanprimero usando DP y una matriz o esquema de ponderación particular. Una vez alineado el primer par, los gaps generados ya no se mueven. Este par es tratado como una sola secuenciay es alineada contra la siguiente secuencia o grupo de secuencias más próximas en el árbol. Se repite el proceso hasta que todas las secs. están alineadas. El proceso es suficientementerápido como para alinear varios cientos de secuencias. Son menos precisos que los métodosbasados en la WSPs, pero muchísimo más rápidos.

Pasos en la generación de un alineamiento múltiplesiguiendo la estrategia de alineamiento progresivo

puntuación 1-2

puntuación 1-3...

puntuación 4-5

.

.

.

1. Se generan todos losposibles alineamientos pa-reados, usando métodosheurísticos o exhausivos(PD), y se calcula su score(puntuación) en base a lamatriz de sustitución y gappenalties elegida

12

43

5

0.02

3. Se estima un árbol guíausando un método de distancias (NJ o UPGMA),el cual representa de maneraaproximada las relaciones entrelas secuencias

4. Se hace el alineamientoriguroso (PD) y global entrepares de secuenciassiguiendo el orden de simi-litud indicado por el árbol guía

2. Se calcula una matrizde distancias en base a laspuntuaciones de los alinea-mientos pareados del pasoanterior

5X5

Pasos en la generación de un alineamiento múltiplesiguiendo la estrategia de alineamiento progresivo

- y su uso para estimar una filogenia

12345

métodos algorítmicos(NJ y UPGMA)

búsquedas exhaustivas o heurísticasbajo un criterio de optimización

(ME, MP y ML)

12

43

5

0.02

12

43

5

0.02

matriz de dist.5 X 5

alineamiento múltiple (global) final

Page 4: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 4

Alineamientos múltiples progresivos usando Clustal

� La familia Clustal es posiblemente la más popular para hacer AMs de nt y aa

� La primera versión (Clustal) salió en 1988, la última, ClustalX, en 1997 (última Vers. = 2.0)

� ClustalX (X-windows Clustal) lee secuencias en diversos formatos, calcula un árbol guíaNJ, usando algoritmos heurísticos o exhausivos sobre aln. locales basado en distintasmatrices de pesado y de penalización de gaps afines y sitio-específicos. Puede haceralineamientos de perfiles y existen diversas herramientas de control de calidad del AM.Permite incluir criterios estructurales para guiar el AM, usando máscaras estructurales.Partes del alineamiento o secuencias particulares pueden ser realineadas para ir obteniendoun aln global cada vez mejor. Es decir, ClustalX no sólo genera alineamientos (comoClustalW), sino que éstos pueden ser editados y mejorados interactivamente por el usuario.Además, ClustalX (y ClustalW) permite la reconstrucción y visualización de árboles NJy hacer análisis de bootstrap sobre los alineamientos. Finalmente, los AMs pueden ser escritos en diversos formatos de salida (CLUSTAL, FASTA, NEXUS, PHYLIP ...)

� Existen versiones para todas las plataformas y en red (http://www.ebi.ac.uk.clustalw)

Alineamientos múltiples progresivos usando Clustal-aspectos prácticos

� Para obtener un AM con Clustal tenemos que tener todas las secuencias homólogas enun solo archivo. Estas secs. pueden estar escritas en diversos formatos (FASTA, EMBLSWISS-PROT ...)

� Sobre este archivo se puede correr un primer análisis usando las opciones por defecto deClustal

� Según el grado de divergencia de las secuencias a analizar, puede ser muy útil probardistintas series de matrices y valores de gap penalty. Existen scripts de Perl que pruebansistemáticamente una gran cantidad de combinaciones de parámetros para encontraraquellos que maximizan el score del alinemiento (MULTICLUSTAL). Yuan et al., 1999BioInformatics 15:862-863.

� Clustal está diseñado para alinear sets de secuencias totalmente colineares (no usar paraensamblar contigs!) y que presentan el mismo órden de dominios estructurales

� Condiciones en las que Clustal no puede operar de manera óptima

1. Si tenemos unas pocas secuencias muy divergentes de una superfamilia; ajustar �delayparámeter� y/o usar modo de alineamiento de perfiles, preferentemente con máscaraestructural

2. Sesgo composicional en AAs hidrofílicos (G, P, S, N, D, Q, E, K, R) pueden introducirdemasiados gaps (penalidades de indel sitio-específico)

Alineamientos múltiples progresivos usando Clustal-un ejemplo: alineamiento de GDPs dependientes de NAD

1.- Seleccional modo de aln y fichero a alinear(en este caso las secs. están escritas en for-mato FASTA)

...

Alineamientos múltiples progresivos usando Clustal-un ejemplo: alineamiento de GDPs dependientes de NAD

Page 5: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 5

Alineamientos múltiples progresivos usando Clustal-un ejemplo: alineamiento de GDPs dependientes de NAD

Alineamientos múltiples progresivos usando Clustal-un ejemplo: alineamiento de GDPs dependientes de NAD

1.

2. 3.

Alineamientos múltiples progresivos usando Clustal-reconstrucción de una filogenia (NJ) mediante NJplot

http://bioweb.pasteur.fr/seqanal/interfaces/protal2dna.html

Servidores para alinear nts. en base a un alineamiento de proteínas¡¡¡ Siempre que quieras alinear secs. de DNA codificadoras (CDSs) alinea primero susproductos y usa el alineamiento múltiple de proteínas para guiar el de los genes correspondientes !!! Usa para ello servidores como protal2dna o RevTrans, o tus propiosscripts de Perl

Page 6: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 6

http://www.cbs.dtu.dk/services/RevTrans/

Servidores para alinear nts. en base a un alineamiento de proteínas Servidores para alinear secuencias de rRNAs o rDNAs

� Los genes ribosomales representan un problema muy particular en el contexto de alineamientos múltiples. Deben de guiarse usando máscaras de información estructural.

� Servidores como GreenGenes y RDP-II proveenherramientas muy útiles en este contexto. Si quieres ver unos tutoriales sobre el uso de estos servidores, visita mi sito web y buscabajo phylogeny tutorials:

http://www.ccg.unam.mx/~vinuesa/Using_the_GreenGenes_and_RDPII_servers.html

Formatos de secuenciasI) FASTA

� Existen una gran cantidad de estilos o formatos de presentación de secuencias. Muchosprogramas de análisis filogenético usan su propio formato (Phylip, Nexus, Mega ...)

� El formato más sencillo es el FASTA, en el que cada secuencia se identifica mediante unrenglón descriptor que comienza con > en el siguiente renglón comienza la secuencia

>R._galegaeCCGCTGGTCACCTCCGGCAAGCGCGCCATCCACCAGGAAGCGCCTTCCTACGTCGATCAGTCGACCGAAGGCCAGATCCTGGTCACCGGCATCAAGGTCG

>M._plurifariumCCGGTCGACGCCGTCGAGCTGCGTGCCATCCACCAGCCGGCTCCGGCCTATGTCGACCAGTCGACGGAAGCGCAGATCCTGGTTACCGGCATCAAGGTTC

>B._japonicumCCGGTCAAGTCGGAAGGCCTGCGCGCCATCCACCAGGAAGCGCCGACCTACACCGACCAGTCCACCGAAGCTGAAATTCTCGTCACCGGCATCAAGGTCG

3 100 R._galegae CCGCUGGUCA CCUCCGGCAA GCGCGCCAUC CACCAGGAAG CGCCUUCCUA M._plurifa ...G.C.A.G ..GU..AGCU ...U...... ......CCG. .U..GG.... B._japonic ...G.CAAGU .GGAA...CU .......... .......... ....GA....

CGUCGAUCAG UCGACCGAAG GCCAGAUCCU GGUCACCGGC AUCAAGGUCG U.....C... .....G.... CG........ ...U...... ........UC .AC...C... ..C....... CUG.A..U.. C......... ..........

� Phylip (interleaved): no. seqs, no. caracteresnombre secuencias (máx 10 caracteres) espacio, secuencia ...

3 100R._galegae CCGCTGGTCA CCTCCGGCAA GCGCGCCATC CACCAGGAAG CGCCTTCCTA

CGTCGATCAG TCGACCGAAG GCCAGATCCT GGTCACCGGC ATCAAGGTCGM._plurifa CCGGTCGACG CCGTCGAGCT GCGTGCCATC CACCAGCCGG CTCCGGCCTA

TGTCGACCAG TCGACGGAAG CGCAGATCCT GGTTACCGGC ATCAAGGTTCB._japonic CCGGTCAAGT CGGAAGGCCT GCGCGCCATC CACCAGGAAG CGCCGACCTA

CACCGACCAG TCCACCGAAG CTGAAATTCT CGTCACCGGC ATCAAGGTCG

� Phylip (sequential or non-interleaved)

Formatos de secuenciasII) PHYLIP

Page 7: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 7

#NEXUS[OJO!!!, no usar guiones- (reservado para gaps!), sólo guiones bajos_]

BEGIN TAXA; [taxa block]DIMENSIONS NTAX=3;TAXLABELSR._galegae;M._plurifarium;B._japonicum;END;

BEGIN CHARACTERS; [character block]DIMENSIONS NCHAR=100;FORMAT DATATYPE=DNA MISSING=? GAP=- MATCHCHAR=. INTERLEAVE=yes ;MATRIX[ 10 20 30 40 50][ * * * * *]R._galegae CCGCTGGTCACCTCCGGCAAGCGCGCCATCCACCAGGAAGCGCCTTCCTAM._plurifarium ...G.C.A.G..GT..AGCT...T............CCG..T..GG....B._japonicum ...G.CAAGT.GGAA...CT........................GA....

[ 60 70 80 90 100][ * * * * *]R._galegae CGTCGATCAGTCGACCGAAGGCCAGATCCTGGTCACCGGCATCAAGGTCGM._plurifarium T.....C........G....CG...........T..............TCB._japonicum .AC...C.....C.......CTG.A..T..C...................;END;

Formatos de secuenciasIII) NEXUS

Formatos de secuencias:su interconversión

� Cuando preparamos un fichero con nuestras propias secuencias generalmente lo más

adecuado es hacerlo en formato FASTA

� Si necesitamos pasarlo a otro formato, una buena posibilidad es hacerlo con ReadSeq

http://iubio.bio.indiana.edu/cgi-bin/readseq.cgi

ReadSeq reconoce automáticamente el formato de entrada y si se trata de aas o nts

� Otra alternativa es escribir un sencillo script de Perl que haga uso de los objetos y

métodos del módulo Bio::AlignIO de BioPerl (http://www.bioperl.org) para interconvertir

Formatos � veremos un ejemplo más adelante.

Alineamientos múltiples progresivos usando Clustalw

Desde el directorio en el que están las secuencias llamar a ClustalW

vinuesa@teide:~/cd Cursos/BGEIV-06/vinuesa@teide:~/Cursos/BGEIV-06> lsClustalW_cmmds.txt myoglobins.fastavinuesa@teide:~/Cursos/BGEIV-06> clustalw

********************************************************************** CLUSTAL W (1.83) Multiple Sequence Alignments **********************************************************************

1. Sequence Input From Disc2. Multiple Alignments3. Profile / Structure Alignments4. Phylogenetic trees

S. Execute a system commandH. HELPX. EXIT (leave program)

Your choice:1

Alineamientos múltiples progresivos usando Clustalw

********************************************************************** CLUSTAL W (1.83) Multiple Sequence Alignments **********************************************************************

1. Sequence Input From Disc2. Multiple Alignments3. Profile / Structure Alignments4. Phylogenetic trees

S. Execute a system commandH. HELPX. EXIT (leave program)

Your choice: 2

Page 8: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 8

Alineamientos múltiples progresivos usando Clustalw

****** MULTIPLE ALIGNMENT MENU ******

1. Do complete multiple alignment now (Slow/Accurate)2. Produce guide tree file only3. Do alignment using old guide tree file

4. Toggle Slow/Fast pairwise alignments = SLOW

5. Pairwise alignment parameters6. Multiple alignment parameters

7. Reset gaps before alignment? = OFF8. Toggle screen display = ON9. Output format options

S. Execute a system commandH. HELPor press [RETURN] to go back to main menu

Your choice: 1

Enter a name for the CLUSTAL output file [myoglobins.aln]: myoglobins_aln1

Enter name for new GUIDE TREE file [myoglobins.dnd]: myoglobins_aln1

Alineamientos múltiples progresivos usando Clustalw

gi|127693|sp|P02155|MYG_SAISC -GLSDGEWQLVLNIWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLgi|127665|sp|P02154|MYG_LAGLA -GLSDGEWQLVLNIWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLgi|127639|sp|P02152|MYG_CALJA -GLSDGEWQLVLNVWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLgi|44955888|ref|NP_976312.1| MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLgi|127688|sp|P02189|MYG_PIG MGLSDGEWQLVLNVWGKVEADVAGHGQEVLIRLFKGHPETLEKFDKFKHLgi|21359820|ref|NP_038621.2| MGLSDGEWQLVLNVWGKVEADLAGHGQEVLIGLFKTHPETLDKFDKFKNLgi|11024650|ref|NP_067599.1| MGLSDGEWQMVLNIWGKVEGDLAGHGQEVLISLFKAHPETLEKFDKFKNL

**:***: **: *.*** *:..***::** **. *****:***:**:*...

Alineamiento producido por CLUSTALW (2.0.2) en formato clustal (terminación aln)

Alineamientos múltiples progresivos usando Clustalw********* Format of Alignment Output *********

F. Toggle FASTA format output = OFF

1. Toggle CLUSTAL format output = ON2. Toggle NBRF/PIR format output = OFF3. Toggle GCG/MSF format output = OFF4. Toggle PHYLIP format output = OFF5. Toggle NEXUS format output = OFF6. Toggle GDE format output = OFF

7. Toggle GDE output case = LOWER8. Toggle CLUSTALW sequence numbers = OFF9. Toggle output order = ALIGNED

0. Create alignment output file(s) now?

T. Toggle parameter output = OFFR. Toggle sequence range numbers = OFF

H. HELP

Enter number (or [RETURN] to exit): 4

Alineamientos múltiples progresivos usando Clustalw

¿No es demasiado excitante, verdad?

¿pero qué tal ésto?:

clustalw -infile=myoglobins.fasta -align -pwmatrix=blosum -pwgapopen=12

-pwgapext=0.2 -matrix=blosum -gapopen=12 -gapext=0.2 -outorder=aligned

-convert -outfile=myoglobins_aln1.phy -output=phylip

Las opciones de clustal en línea de comando se ven así:

clustalw -options

y la ayuda así:

clustalw -help # puede no funcionar si el documento de ayuda no está en el path

Page 9: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 9

Alineamientos múltiples (AM) – algoritmos genéticosExisten otras estrategias computacionales para obtener alineamientos múltiples de ma-nera (semi)automática.

Destacan los algoritmos genéticos. Se trata de técnicas de simulación estocásticaen la que se evoluciona a una población de alineamientos, seleccionando y cruzando a aquellos con mayores valores de la función WSP. Las versiones más modernas de estetipo de algoritmos están implementadas en los programas

T-Coffee: C. Notredame, D. Higgins, J. Heringa 2000. JMB, 302:205-217y

3DCoffee: O. O'Sullivan, K Suhre, C. Abergel, D.G. Higgins, C. Notredame 2004. JMB, 340:385-395

T-Coffee permite la combinación de una colección de alineamientos múltiples y/o pareados,globales y locales, en un sólo modelo. Además permite estimar el nivel de consistencia de cadaposición en el alineamiento global final con respecto al resto de ellos.

http://www.igs.cnrs-mrs.fr/Tcoffee/tcoffee_cgi/index.cgi

3DCoffee permite combinar alineamientos pareados y estructuras pareadas super-puestas para la generación del modelo. Obviamente sólo trabaja con proteínas.

Alineamientos múltiples con T-Coffee

� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Tiene dos características principales:

1.- Provee de un método simple y flexible de generar alns. múltiples usando fuentes hete-

rogeneas de datos: alns. globales y locales generados mediante distintos programas,

estructuras, etc. Los datos de estas fuentes son pasados a T-Coffee mediante una

librería de alineamientos pareados.

2.- El método de optimización usado para generar el alineamiento múltiple que mejor se

ajusta a los almacenados en la librería primaria de alineamientos pareados.

Se trata de una estrategia de alineamiento progresivo en la que se considera la infor-

mación contenida en la totalidad de la librería de alns. pareados en cada paso del

aln. progresivo. Ello permite la generación de alns. múltiples de manera rápida (algo

más lentamente que con ClustalW), pero con una tendencia mucho menor a cometer

errores debidos a mínimos locales durante los primeros pasos del aln. progresivo.

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

ABACAD

Alns. pareados globales ClustalW Alns. pareados locales Lalign

ABACAD

Esquema de ponderación(adición de la señal)

LIBRERÍA PRIMARIA

EXTENSIÓN

LIBRERÍA Extendida

ALINEAMIENTO PROGRESIVO Alineamiento múltiple

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Pasos del algoritmo:

1.- Generación de una librería primaria de alineamientos pareados.

La librería contiene un set de alns. pareados entre todas las secs. a alinear.

Estos alns. no necesitan ser consistentes (pueden existir dos o más alns. distintos para

el mismo par de secs.). Por defecto el programa utiliza un aln. global (ClustalW) y otro local (

alns. locales no solapantes) para cada par de secs. a alinear.

En la librería cada aln. es representado por una lista de “matches” entre pares de

resíduos. Cada uno de estos pares representa una constricción. A cada constricción se le

da una puntuación que será tanto más alta cuanto más propable sea que los resíduos

están alineados correctamente. En base al análisis de la librería de alns. pareados se

calcula un esquema de ponderación que integra la información de las librerías primarias.

Page 10: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 10

Alineamientos múltiples con T-Coffee

� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Pasos del algoritmo:

2.- Derivación del esquema de ponderación de la librería primaria de alineamientos.

T-Coffee asigna una puntuación a cada par de resíduos alineados en la librería basado en laidentidad de secuencia. Las librerías así generadas contienen listas de constriccionespareadas ponderadas. Cada constricción obtiene un peso o puntuación igual al % de identidad correspondiente al aln. pareado (global y local) del que proviene

Librería primaria. Pares de secs. alineadas con ClustalW. Cada par de resíduosalineados obtiene una puntuación igual al porcentaje de identidad del aln. completo.

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Pasos del algoritmo:

3.- Combinación de las librerías primarias de alns. globales y locales

T-Coffee combina la información presente en las librerías de alns. globales y locales.Simplemente se suman las librerías derivadas de los alns. generados por ClustalW y Lalign.

Si un aln. pareado se encuentra duplicado en las dos librerías, se juntan en una sola entrada

que tiene un peso igual a la suma de las puntuaciones de cada librería. Si no coinciden, se

generan dos entradas. Pares de resíduos no presentes en ambas librerías para un mismo par

de secs. no son considerados en la librería combinada (tienen una puntuación = 0). De esta

manera se van adicionado o apilando las puntuaciones de las distintas librerías para cada par

de resíduos.

Para cada par de resíduos alineados en la librería final, las puntuaciones reflejan el grado

de consistencia en la que dichos resíduos alinean con resíduos de todas las demás

secuencias. Este es el proceso de extensión de la librería

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Se trata de ajustar una librería de constricciones ponderadas a un alineamiento múltiple.T-Coffee utiliza para ello un algoritmo genético. Se trata de un algoritmo heurísticoconocido como extensión de la librería. Se basa en combinar la información de tal maneraque la puntuación final para cada par de resíduos refleje la información contenida en toda lalibrería. Para ello se emplea la aprox. de tríadas de secuencias mostrada arriba. Se tomacada par de res. alineados de la librería y se checa su alineamiento con res. de los demás alns.

Pasos del algoritmo:4.- Extensión de la librería para cada par de secuencias

16/18

17/22

9/9

----

-------- ----

----

---

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

En I cada res. alineado recibe una puntuación de 88 (= % identidad global del aln.). En la tríadaII se observa que A(G)-C(G) y A(G)-B(G) alinean, por lo que existe un alineamiento de A(G)-B(G) a través de la sec. C. A este aln. se le asigna un peso igual al mínimo de las compara-ciones pareadas involucradas en II: W1 = W(A(G), C(G)) y W2 = W(A(G), B(G)). Como W1 = 77y W2 = 100, el peso resultante es de 77. En la librería extendida, este nuevo valor (77) esañadido al obtenido previamente (88), de manera que el aln. entre las Gs de A-B vale 165.

Pasos del algoritmo:4.- Extensión de la librería para cada par de secuencias

I

II

III

16/18

17/22

9/9-------- ----

----

----

---

Page 11: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 11

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

En resumen, el peso asociado con un par de resíduos corresponde a la suma de todas laspuntuaciones obtenidas del análisis de todas las tríadas posibles de secs. que involucran adicho par. Cuantas más secuencias intermedias sean consistentes con el alineamiento del par,mayor será su peso. La extensión se realiza para cada par de resíduos de A y B. Una vez ter-minado el proceso, el par de secs. A-B habrá recopilado información de todas las demássecs. en el set a alinear. El set completo de pares conforma la librería extendida.

Pasos del algoritmo:4.- Extensión de la librería para cada par de secuencias

I

II

III

16/18

17/22

9/9-------- ----

----

---

----

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

Pares de resíduos que nunca alinean en una posición particular reciben un peso = 0. El pesode los demás resíduos refleja una combinación de la similitud entre el par de secuencias (osegmentos de secs.) del cual proviene un par de resíduos y la consistencia de dicho par conrespecto a su presencia en el resto de la librería. Estos scores pueden entonces ser usadospara alinear cualquier par de secuencias usando PD. En vez de usar una matriz empírica comoBLOSUM, se emplea la matriz de ponderación sitio-específica para cada par de resíduos delpar de secs. a alinear. Los alns. globales pareados resultantes se usan para AMs progresivos

Pasos del algoritmo:4.- Extensión de la librería para cada par de secuencias

I

II

III

16/18

17/22

9/9-------- ----

----

---

----

Alineamientos múltiples con T-Coffee� Algoritmo T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)Pasos del algoritmo:5.- Alineamiento múltiple progresivoDe los alns. globales pareados obtenidos en el paso anterior se calcula una matriz de dist.la cual es usada para reconstruir un árbol guía (NJ). La topología resultante se usa para guiarel agrupamiento de secs. durante el proceso de aln. múltiple. Las secs. más próx. en el árbolse alinean globalmente usando PD y los pesos de la matriz extendida calculada previamente.

Este par de secs. alineadas se fija, no pudiéndose alterar en ciclos posteriores los gapsintroducidos en este primer aln. global. Sigue en este sentido un algoritmo progresivo de aln.

A continuación se alinea de igual manera el siguiente par de secs. más próximas, o bien se añade una tercera sec. al aln. pareado pre-existente, dependiendo de las relaciones indicadaspor el árbol guía.

Para alinear dos grupos de secuencias pre-alineadas se usan los scores de la librería exten-dida, pero se toman los pesos promediados de la librería para cada columna del alineamiento.

Esta fase del alineamiento múltiple no demanda de parámetros adicionales como gap penalties.Las librerías de pesos se calcularon tomando en cuenta estas penalizaciones.

Alineamientos múltiples con T-Coffee� T-Coffee (Tree-based Consistency Objective Function for alignment Evaluation)

T-Coffee es por tanto un método de aln. múltiple progresivo que combina las señales evolu-tivas de fuentes heterogéneas (diversos programas de alineamiento, alineamientos estructu-rales, motivos, alineamientos manuales ... cualquier constricción específica deseada) en unsólo alineamiento múltiple consensuado con todas estas fuentes de información.

La principal diferencia con métodos tradicionales de alineamiento progresivo tales comoClustal es que en vez de usar una matriz de sustitución empírica para alinear las secs, empleauna matriz de ponderación sitio-específica. Mediante el proceso de extensión se consigueque los valores contenidos en la librería para un par de secuencias dependa de la informaciónde otras secuencias o constricciones incluidas en el set. Ello reduce mucho el problema de los mínimos locales que presenta Clustal, manifestado particularmente en introducir gapsdonde no les corresponden. Aunque se sigue manteniendo la premisa de que �una vez gap, para siempre gap�, el riesgo de abrir gaps no adecuados disminuye.

El algoritmo genético implementado en T-Coffee se basa por defecto en combinar la infor-mación de alns. globales y locales. Como se indica arriba, el proceso es generalizable paraincluir otras fuentes de información. De hecho la última generación de la saga Coffe es3D-Coffee, que combina secuencias de proteínas y estructuras para generar AMs.

Page 12: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 12

Alineamientos múltiples con 3D-Coffee� Algoritmo 3DCoffee

� Incorporación de información estructural en una librería T-CoffeeSe incorpora la info. estruct. a la lib. mediante alineamientos pareados entre secuenciasy estructuras y/o estructura-estructura.

La versión actual de T-Coffee puede emplear tres paquetes externos para generar dichosalns. pareados entre secuencias y estructuras:

1. Fugue (Shi et al., 2001. JMB 310:243-257)2. SAP (Taylor & Orengo, 1989. JMB 208:1-22)3. LSQman (Jones & Kleywegt, 1999. Struct. Funct. Genet. Suppl. 3:30-46)

� Fugue es un método de threading que alinea una sec. de prot. con una estructura 3D.3D-Coffee directamente envía pares sec./estructura al servidor de Fugue y recoge los alineamientos pareados resultantes, los cuales son integrados a la librería primariausando el esquema de ponderación estándar de T-Coffee. Se usa la opción de Fugue cuandosólo se dispone de una estructura 3D

� Cuando se disponen de estructuras 3D para 2 o más secs. a alinear, se calcula un aln. pareado usando SAP y otro con LSQman. Todos estos alns. se añaden a la librería

Servidores para T-Coffee y 3D-Coffee

http://www.igs.cnrs-mrs.fr/Tcoffee/tcoffee_cgi/index.cgi

T-Coffee en la línea de comandos: una breve introducción

� se alinean secuencias de un archivo (Swiss-prot, Fasta o Pir) simplemente así:

t_coffee 6_GDP_eucar_UALN.fas -output=fasta_aln

� se pueden alinear de una vez varios sets de secs. no alineadas :t_coffee 6_GDP_eucar_UALN.fas 4_GDP_procar_UALN.fas -outfile=10GDPs_com_aln.aln

� o mezclar alineamientos y secs. no alineadas. Utilizar el prefijo “S”t_coffee S6_GDP_eucar_aln1.fas,4_GDP_procar_UALN.fas -output=fasta_aln

� un alineamiento de perfiles se especifica así: (Utilizar el prefijo “A”)t_coffee -in A6_GDP_eucar_aln1.fas,A4_GDP_procar_aln1.fas -output=fasta_aln

� T-Coffee está diseñado para alinear proteinas. Se puden alinear nts.pero el resultado no es siempre de calidad. Utilizar el flag –special_mode dna

t_coffee -dnaseq1.fas -special_mode dna -outfile=dnaseq1_aln.fastaMejor alinear a nivel de proteínas siempre que se pueda y luego alinear lassecs. de nts en base al aln. de AAs. utilizando algún programa adecuado !!!

T-Coffee ofrece muchísimo más. Para aprovecharlo a fondo hay que estudiar el manual http://www.igs.cnrs-mrs.fr/Tcoffee/tcoffee_cgi/index.cgi

Y ahora unos tutoriales sobre:

1. Descarga de secuencias de GenBank usando el sistema ENTREZ

2. Uso de utilidades de UNIX para explorar los archivos fasta bajados del GB

3. Uso de Perl 1-liners para editar archivos

4. Uso de scripts de perl para automatizar procesos, en concreto para correr

Clustalw en batch

Page 13: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 13

Descarga de secuencias de GenBank usando el sistema Entrez

¿ Cómo recuperar todas las secuencias de rpoB de Bradyrhizobium spp. de una longitud entre 550 y 3000 nts. presentes en GenBank?

Bradyrhizobium[ORGN] AND rpoB[GENE] AND 550[SLEN]:3000[SLEN]ó

Bradyrhizobium[orgn] AND recA[gene] NOT vinuesa[auth] AND 2007[date] NOT genome[titl]

(Ver el Entrez FAQ para una lista de �keywords� usados en estas �queries� en :http://www.ncbi.nlm.nih.gov/entrez/query/static/nucprotfaq.html#B)

Descarga de secuencias de GenBank usando el sistema Entrez

No olvides de incrementar el númerode entradas mostradas (por defectosólo despliega 20) para obtener lalista completa de �hits�

Descarga de secuencias de GenBank usando el sistema Entrez

Cambia el formato a FASTA y despliega todas las secuencias, enviando el resultado a un archivo

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for \RNA polymerase beta subunit, strain LMG 6138

TCCTATGACCAGTTCCTGATGGTCGACGAACCCGCGGGCGGGCGTCTCGACGAGGGCCTGCAGGCGGTGTTCCGCTCGGTGTTCCCGATCTCCGACTTCTCGGGCACCTCGATGCTGGAATTCGTCCGCTACGAATTCGAGCAGCCGAAATACGACGTCGACGAGTGCCGCCAGCGCGGCATGACCTTCGCGGCACCGCTCAAGGTGACGCTGCGCCTCATCGTGTTCGATATCGACGAGGAAACCGGCGCGAAGTCGGTGAAGGACATCAAGGAGCAGG

Formato de las secuencias descargadas:

Uso de comandos de UNIX para inspeccionar el archivo de secuencias descargadomediante el sistema ENTREZ

� ¿ Cuantas secuencias se encuentran realmente en el archivo descargado ?

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna |wc –l # la salida de grep la filtramos con wc41

o mejor todavía:

$ grep -c '>' rpoB_Bradyrhizobium_550-3000.fna # la opción �c de grep cuenta los hits de �>�41

(teclea �man grep� y �man wc� para abrir las correspondientes �manpages�; sin comillas)

� ¿ Cómo obtengo una lista de los GI�s de los hits obtenidos ?

Primero inspeccionamos la estructura de los fastaheaders con un simple grep

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for RNA polymerase beta subunit, strain LMG 6138>gi|133918592|emb|AM295348.1| Bradyrhizobium elkanii partial rpoB gene for RNA polymerase beta subunit, strain LMG 6134>gi|145926563|gb|EF190191.1| Bradyrhizobium japonicum strain X6-9 RNA polymerase beta subunit (rpoB) gene, partial cds>gi|145926561|gb|EF190190.1| Bradyrhizobium japonicum strain X3-1 RNA polymerase beta subunit (rpoB) gene, partial cds

…grep ‘>’ my_downloaded_file.fasta | less # si queremos pasar la salida de grep por un

# paginador

Page 14: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 14

Uso de comandos de UNIX para inspeccionar el archivo de secuencias descargadomediante el sistema ENTREZ

� ¿ Cómo obtengo una lista de los GI�s de los hits obtenidos ? � cont.

Primero inspeccionamos la estructura de los fastaheaders con un simple grep

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for RNA polymerase beta subunit, strain LMG 6138>gi|133918592|emb|AM295348.1| Bradyrhizobium elkanii partial rpoB gene for RNA polymerase beta subunit, strain LMG 6134>gi|145926563|gb|EF190191.1| Bradyrhizobium japonicum strain X6-9 RNA polymerase beta subunit (rpoB) gene, partial cds>gi|145926561|gb|EF190190.1| Bradyrhizobium japonicum strain X3-1 RNA polymerase beta subunit (rpoB) gene, partial cds…

Y vemos que el gi está después del primer pipe (|) � Por tanto podemos extractarlo fácil-mente con el comando cut de la siguiente manera:

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d'|' -f2

133918594133918592145926563145926561145926559

grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d'|' -f2 > GI_list.txtY redirigir la salida a un archivo es trivial �:

Uso de comandos de UNIX para inspeccionar el archivo de secuencias descargadomediante el sistema ENTREZ

� ¿ Cómo obtengo una lista no redundante de los distintos taxa (Género y especie) presentes en el archivo FASTA descargado ?

grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d' ' -f2,3 | sort | uniq

Y contarlos es trivial, sólo le añadimos un wc (wordcount �l que cuenta las líneas) �:

g r e p ' > ' r p o B _ B r a d y r h i z o b i u m _ 5 5 0 - 3 0 0 0

grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d' ' -f2,3 | sort | uniq | wc -l

Y vemos que el nombre del género (Bradyrhizobium) y del epíteto específico (japonicum)para este primer fasta header (y las demás líneas) vienen justo después del 1er. y 2do.campos blancos (espacios sencillos). Por tanto usamos cut con el delimitador puesto a Espacio en blanco ( -d' �) quedándonos con el 2º y 3er campo, respectivamente -f2,3. Luego los ordenamos con sort y nos quedamos con los nombres únicos (uniq)

Primero inspeccionamos la estructura de los fastaheaders con un simple grep

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for RNA polymerase beta subunit, strain LMG 6138>gi|133918592|emb|AM295348.1| Bradyrhizobium elkanii partial rpoB gene for RNA polymerase beta subunit, strain LMG 6134>gi|145926563|gb|EF190191.1| Bradyrhizobium japonicum strain X6-9 RNA polymerase beta subunit (rpoB) gene, partial cds>gi|145926561|gb|EF190190.1| Bradyrhizobium japonicum strain X3-1 RNA polymerase beta subunit (rpoB) gene, partial cds

Uso de comandos de UNIX para inspeccionar el archivo de secuencias descargadomediante el sistema ENTREZ

� ¿ Cómo obtengo una lista no redundante de los distintos taxa (Género y especie) presentes en el archivo FASTA descargado ?

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d' ' -f2,3 | sort | uniqBradyrhizobium canarienseBradyrhizobium elkaniiBradyrhizobium genosp.Bradyrhizobium japonicumBradyrhizobium liaoningenseBradyrhizobium sp.Bradyrhizobium yuanmingense

Y contarlos es trivial, sólo le añadimos un wc (wordcount �l que cuenta las líneas) �:

g r e p ' > ' r p o B _ B r a d y r h i z o b i u m _ 5 5 0 - 3 0 0 0

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna | cut -d' ' -f2,3 | sort | uniq | wc –l7

Usa Perl para facilitar el trabajo rutinario

Para una introducción muy corta al poderoso lenguaje de programación (scripting) Perl(Practical Extraction and Report Language or Pathologically Ecclectic Rubish Lister)pueden consultar los siguientes tutoriales disponibles desde perl.org y perl.com:

http://perldoc.perl.org/perlintro.htmlyhttp://www.perl.com/pub/a/2000/10/begperl1.htmlhttp://www.perl.com/pub/a/2000/11/begperl2.htmlhttp://www.perl.com/pub/a/2000/11/begperl3.html

� Estos tutoriales los puedes descargar también desde el sito web de nuestro curso

En perl.org y perl.com pueden encontrar tutoriales más avanzados sobre tópicos específicosde gran importancia como expresiones regulares, subrutinas, referencias, estructursa de datos, paquetes, módulos, objetos, programación de bases de datos a través de DBI, Perl e internet ...Una vez instalado Perl, tienes toda la documentación, incluyendo FAQs instalados. Explóralosusando los comandos perldoc perl; ó perldoc perlintro ... etc. Para consultar la ayudasobre una función específica teclea por ejemplo perldoc –f split

Page 15: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 15

Usa Perl para facilitar el trabajo rutinario

Escribe tus scripts de Perl usando tu editor favorito com vi, emacs o nedit.

Los scripts de Perl suelen nombrarse con la terminación .pl (miscript.pl) ó .plx

Para ejecutar miscript.pl puedes hacerlo de varias maneras:

desde el directorio en el que está el script teclea por ejemplo perl miscript.pl ARG1 ... > output

Generalmente los scripts de Perl (o de otros lenguajes de scripting) llevan como primeralínea la �shebang line� que en el caso de un script de Perl sería algo como:

#!/usr/bin/perl –w # (usa ‘which perl’ para saber la ruta a perl de tu máquina)

Para hacer miscript.pl ejecutable tienes que usar el comando chmod +x miscript.pl(si prefieres usa chmod 755 miscript.pl). Si haces ahora un ls –l verás que miscript.pl¡ya es ejecutable! Entonces lo puedes correr así: ./miscript.pl

Si pones miscript.pl en un directorio que esté en el search path (ruta de búsqueda) entonces puedes invocar el script directamente como miscript.pl desde la línea de comandos, es decir, como cualquier otro comando Unix

$ perl -e 'print �hola tronco!\n"� # perl �e �el código va entre comillas sencillas�

Usa Perl para facilitar el trabajo rutinario: Perl one-liners

$ perl -e 'print �hola �� -e �print �tronco!\n"� # puedes usar múltiples -e

� Para muchos trabajos puntuales como edición y parseo de archivos de texto es muy práctico saber usar Perl desde la línea de comandos.ver http://www.perl.com/lpt/a/857 (Perl command-line options; un sencillo tutorial)

� -n switch$ perl -n -e ‘tu código' archivo1 # ojo, -e siempre junto a la línea de códigoPerl interpreta esta línea como:LINE: while (<>) { # lee desde STDIN y se porcesa el input línea por línea

# tu código }

� -p switch$ perl -p -e ‘tu código' archivo1LINE: while (<>) {

# tu código va aquí} continue {

print or die "-p destination: $!\n"; }

Usa Perl para facilitar el trabajo rutinario: Perl one-liners

$ perl -pe ‘tu código' < input.txt > output.txt

� Usa perl �pe para editar a tus archivos

� Usa perl –i.ext –pe ‘tu código’ archivo.txt para obtener un archivo editado y una copiadel original con la extensión dada a �i (OJO, NO OLVIDES PONER LA EXTENSION O

NO SE GENERA EL BACKUP!!!!)

� Veamos unos one-liners en acción. Vamos a modificar el �fastaheader� del archivorpoB_Bradyrhizobium_550-3000.fna que descargamos mediante el sistema ENTREZ.Recuerda que puedes ver su estructura con el siguiente comando:

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for RNA polymerase beta subunit, strain LMG 6138>gi|133918592|emb|AM295348.1| Bradyrhizobium elkanii partial rpoB gene for RNA polymerase beta subunit, strain LMG 6134>gi|145926563|gb|EF190191.1| Bradyrhizobium japonicum strain X6-9 RNA polymerase beta subunit (rpoB) gene, partial cds>gi|145926561|gb|EF190190.1| Bradyrhizobium japonicum strain X3-1 RNA polymerase beta subunit (rpoB) gene, partial cds

…Queremos que las líneas queden de la siguente manera:

>NO_GI [ Bradyrhizobium japonicum LMG6138 ]

Usa Perl para facilitar el trabajo rutinario: Perl one-liners

$ grep '>' rpoB_Bradyrhizobium_550-3000.fna

>gi|133918594|emb|AM295349.1| Bradyrhizobium japonicum partial rpoB gene for RNA polymerase beta subunit, strain LMG 6138>gi|133918592|emb|AM295348.1| Bradyrhizobium elkanii partial rpoB gene for RNA polymerase beta subunit, strain LMG 6134>gi|145926563|gb|EF190191.1| Bradyrhizobium japonicum strain X6-9 RNA polymerase beta subunit (rpoB) gene, partial cds>gi|145926561|gb|EF190190.1| Bradyrhizobium japonicum strain X3-1 RNA polymerase beta subunit (rpoB) gene, partial cds

…Queremos que las líneas queden de la siguente manera:

>NO_GI [ Bradyrhizobium japonicum LMG6138 ]

� Una solución es la siguiente (escríbelo todo en una sola línea o usa \ para saltos de línea):

>133918594 [Bradyrhizobium japonicum LMG 6138]>133918592 [Bradyrhizobium elkanii LMG 6134]>145926563 [Bradyrhizobium japonicum X6-9]>145926561 [Bradyrhizobium japonicum X3-1]>145926559 [Bradyrhizobium elkanii USDA 94]>145926557 [Bradyrhizobium elkanii USDA 76]>145926555 [Bradyrhizobium elkanii USDA 46]>145926553 [Bradyrhizobium japonicum USDA 122]>145926551 [Bradyrhizobium yuanmingense TAL760]�

cat rpoB_Bradyrhizobium_550-3000.fna | perl -p -e 's/^>gi\|/>/; s/\|\w+\|.*\|//; s/RNA|RpoB.*//; s/^>(\d+)\s+(.*)/>$1 \[$2\]/g; s/partial rpoB gene for polymerase beta subunit,//g; s/polymerase beta subunit \(rpoB\) gene, partial cds//g; s/\s+\]/\]/g; s/strain //' | grep '>

Page 16: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 16

Usa Perl para facilitar el trabajo rutinario: Perl one-liners

� Hay que ir probando pedazo a pedazo el resultado del código. Filtra la salida con grep �>�para ver el efecto sobre las líneas del �fastaheader� de cada sentencia (separadas por ;). Una vez que estés satisfecho con el resultado lo rediriges a un archivo ( > ed_output_file)

perl -p -e 's/^>gi\|/>/; s/\|\w+\|.*\|//; s/RNA|RpoB.*//; s/^>(\d+)\s+(.*)/>$1 \[$2\]/g; s/partial rpoB gene for polymerase beta subunit,//g; s/polymerase beta subunit \(rpoB\) gene, partial cds//g; s/\s+\]/\]/g; s/strain //' rpoB_Bradyrhizobium_550-3000.fna > rpoB_Bradyrhizobium_550-3000_ed.fna

Fíjate que es equivalente escribir:cat mi_archivo.fas | perl �pe �mi_código� | grep �>�

óperl �pe �mi_código� mi_archivo.fas | grep �>�

Con un poco de práctica verás lo útiles que son estos 1-liners �

Practical Extraction and Report Language(� Pathologically Ecclectic Rubish Lister�)

� Beginning Perl programming:

O´Reily:Learning Perl 4th ed.Beginning Perl for Bioinformatics

� Advanced Perl programming:

O´Reily:Programming Perl 3rd ed.Perl Cookbook 2cnd ed.Perl Best PracticesMastering Perl for Bioinformatics

Libros de referencia recomendados

Uno de los aspectos más importantes de Perl esla impresionante cantidad de código disponibleen forma de módulos en CPAN y específicamentepara bioinformática en el sitio del proyectoBioPerl (busca estos términos en google)

#!/usr/bin/perl -w

#-----------------------------------------------------------------------------------------------------------------## run_clustalw_V01.pl written by P. Vinuesa 26-04-2006# [email protected]; http://www.ccg.unam.mx/~vinuesa# Centro de Ciencias Genomicas-UNAM, Mexico#-----------------------------------------------------------------------------------------------------------------#

# This is a heavily commented script intended to teach you some basic Perl functions and idioms

# The script will align all files of a particular type specified as an argument at the command line# (like fas or txt ...), present in the working or current directory, using default parameters.# The output will be converted to the selecte output format, provided as a second argument at the# command line.# After performing these multiple alignments, the program will ask you whether you want to perform# a profile alignment of a pair of selected aligned files, again providing the option of specifying a particular # output format.

# The script assumes that clustalw 1.83 or higher is found in the search path!

# run from within the directory containing the sequence files to align

# usage: perl run_clustalw_V01.pl <[fas|fasta]> and <[clustal|fasta|phylip|nexus]>

#-----------------------------------------------------------------------------------------------------------------#

my $version = '0.0.3'; # March 08, minor revision of comment texts; # progress reports and directory cleanup added.

use strict; # always be strict. Well, in short scripts as this one it may be a bit overkill... but use it anyway!use File::Basename; # calls a standard Perl module

my $progname = basename($0); # $0 is a SHELL variable that holds the program name; we get rid of the# path to $0 by processing it with the basename() subroutine of the# File::Basename module.

#---------------------------------------- MAIN PROGRAM CODE-----------------------------------------------#

# 0) die program and print an error message if the proper arguments are not provided at the cmmd line

die "\n\tusage: $progname V:$version needs two args: [fas|fasta|txt] and [clustal|fasta|phylip|nexus], which define the extension of the input files to align

and the desired output format for the multiple sequence alignments\n\n\n" unless $ARGV[1];

# 1) declare lexical (my) variables;

my(@files, $file, @parts, $basename, $file_ext, $short_ext, $output_format, $processed_alignments_counter, $cwd, @trash, $no_of_seqs,);

my($answer, $profile1, $profile2, $basename1, $ext1, $basename2, $ext2,);

Page 17: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 17

# 2) copy the (positional) cmmd line args saved in the special array @ARGV into named variables

$cwd = `pwd`; # backticks read the output of shell commands, assigining the result to to a scalar variablechomp $cwd; # chomp() removes trailing "\n" (newline characters).($file_ext, $output_format) = @ARGV;$short_ext = substr($output_format, 0, 3); # the substr() function will extract chuncks of text from a string:

# substr(TARGET, OFFSET, LENGTH, REPLACEMENT)# in our example only TARGET, OFFSET and LENGTH are specified. # If $output_format contains fasta -> $short_ext will contain fas.

# 3) Iterate over the specified input files. They enter one by one into the while loop carried in the $file scalar# and are then passed to clustalw, which is called with Perl's system function. Perl passes the job# to the shell and sleeps until the clustalw process has finished.

while(defined($file=glob("*.$file_ext"))){ # here we use the glob() function to "expand" all filenames with the# supplied file_ext in the cwd, passing them one by one to $file

$no_of_seqs = `grep -c '>' $file`; # determine the no. of seqs. in file $file using grep -c enclosed in backtickschomp $no_of_seqs; # remove the trailing new line character.@parts=split(/\./,$file); # here we split the file names at the dot character. (e.g. myfile.fas gets split into

# myfile and fas)$basename=$parts[0]; # the first element of the @parts array contains the file's "basename" (i.e. myfile)# $basename= (split(/\./,$file))[0]; # This is a more perlish and succint way of writing the above two lines

# ... or even ($basename, $ext) = (split(/\./,$file))[0,1];if($output_format ne 'clustal'){

print "\n\t# $progname is aligning $no_of_seqs sequences from the input file $file ...";system ("clustalw -infile=$basename\.$parts[1] -align -outorder=aligned -outfile=$basename\_aln1.$short_ext

-convert -output=$output_format >&n"); # ojo, toda la sentencia debe de ir escrita en una sola línea!$processed_alignments_counter++;

}else{

print "\n\t# $progname is aligning $no_of_seqs sequences from the input file $file ...";system ("clustalw -infile=$basename\.$parts[1] -align -outorder=aligned -outfile=$basename\_aln1.aln >&n");$processed_alignments_counter++;

}}

print "\n\n\t# $progname finished generating $processed_alignments_counter multiple sequence alignmentsavailable in $output_format format\n\t\tthe results are found in DIR $cwd\n\n";

# 4) and now we can add an option to do pairwise profile alignments. We use the STDIN filehandle to get# the user input to the script directly from the cmmd line. We chomp the cmmd line args to get rid of# the newline ("\n") character introduced after hitting the return button. We also use a regular expression ~/y/i# (matches Y or y; the 'i' modifier stands for ignore case) and the match operator =~ (read the if ($answer =~ /y/i){} line# as: if the answer provided by the user matches y or Y, then execute the block {}, otherwise (else) exit the program.# The system() function returns control of the program to the shell. Just type regular shell commands within double quotes# you want the program to execute. Perl sleeps until the shell has finished the jobs.

print "\t\t~ Do you want to perform a profile alignment? type: Y or N\n\n";chomp($answer= <STDIN>);if ($answer =~ /y/i){

print "\t\t\t~ provide the name of the first profile alignment\n";chomp($profile1=<STDIN>);

print "\t\t\t~ provide the name of the second profile alignment\n";chomp($profile2=<STDIN>);

print "\t\t\t~ provide the output format for the multiple aln [clustal|fasta|phylip|nexus]\n";chomp($output_format=<STDIN>);

$short_ext = substr($output_format, 0, 3);($basename1, $ext1)=split(/\./,$profile1);($basename2, $ext2)=split(/\./,$profile2);if($output_format ne 'clustal'){

print "\n\t# $progname is making the profile alignment of files $profile1 and $profile2 ...";system ("clustalw -profile1=$basename1\.$ext1 -profile2=$basename2\.$ext2 -profile

-outfile=combined_profiles.$short_ext -convert -output=$output_format >&n");}else{

print "\n\t# $progname is making the profile alignment of files $profile1 and $profile2 ...";system ("clustalw -profile1=$basename1\.$ext1 -profile2=$basename2\.$ext2 -profile

-outfile=combined_profiles.aln >&n");}print "\n\t# $progname finished the profile alignment of files $profile1 and $profile2 available

in $output_format format\n\t\tthe results are found in DIR $cwd\n\n";}

# 5) and finally make a directory cleanup, reporting which files were removed

# opendir() opens a directory filehandle 'DIR' to read from# readdir() allows to read from the DIR filehandle, filtering with grep the files n and *.dnd, which are saved# in @trash. Unlink is the perlish way to remove (delete) files. # (be careful, the delete builtin function deletes a key and its value from a %hash, # but not files from a directory!

opendir(DIR, $cwd);

@trash = grep { /\.dnd$|^n$/ } readdir(DIR);

if( @trash ) { print "\n\t# $progname has removed ", scalar(@trash), " temporary files:\n\t\t", join("\n\t\t", @trash),

"\n\n\t\t ... and is exiting now!\n\n";unlink @trash

}

Page 18: Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México ...vinuesa/Cursos_PDFs/Tema3...Tema III: alineamientos múltiples Ł Cualquier estudio de filogenØtico o de evolución molecular

Tema 3: Alineamientos múltiples BGE-IV, LCG-UNAM, México. http://cursos.lcg.unam.mx

© Pablo Vinuesa 2008, [email protected], http://www.ccg.unam.mx/~vinuesa/ 18

#!/usr/bin/perl -wuse strict;use Bio::AlignIO;# convert_aln_format_batch_bp.pl, por P. Vinuesa, CCG-UNAM; http://www.ccg.unam.mx/~vinuesa# requires that the Bio::AlignIO module from the BioPerl core distribution is installed on your system

# 1) Declare variable, get input arguments from the command line and print help if needed

if ($#ARGV < 3){

print �\nUsage: $0 inputformat infile_ext outputformat outputfile_ext\nSupported formats include:

bl2seq Bl2seq Blast outputclustalw clustalw (.aln) formatemboss EMBOSS water and needle formatfasta FASTA formatmaf Multiple Alignment Formatmase mase (seaview) formatmega MEGA formatmeme MEME formatmsf msf (GCG) formatnexus Swofford et al NEXUS formatpfam Pfam sequence alignment formatphylip Felsenstein PHYLIP formatprodom prodom (protein domain) formatpsi PSI?BLAST formatselex selex (hmmer) formatstockholm stockholm format\n\n\n";

exit;}

Y ahora un ejemplo de cómo usar el módulo Bio::AlignIO de BioPerl para hacer la interconversión entre formatos para múltiples archivos de secuencia en batch:

# 1) Declare variable, get input arguments from the command line and print help if needed � continuation

my($inputformat, $infile_ext, $outputformat, $outputfile_ext)=@ARGV;my @infiles = <*$infile_ext>;my($basename,$counter);

# 2) Process all files in cwd having infile_ext, converting them from inputformat to outputformat# with the outputfile_ext provided at the command line

foreach my $infile ( @infiles ){

$basename = (split(/\./, $infile))[0];

my $in = Bio::AlignIO->new(-file => $basename . ".$infile_ext", -format => $inputformat);my $out = Bio::AlignIO->new(-file => ">$basename.$outputfile_ext", -format => $outputformat);

while ( my $aln = $in->next_aln() ){

$out->write_aln($aln);}$counter++;

}

# 3) Print a final summary reportprint "\n\t# $0 is done: $counter $inputformat input files with $infile_ext extension were convertedto $outputformat format with $outputfile_ext extension\n\n";

# � viene de la página anterior