1. Escuela T´ecnica Superior de
Ingenier´ıa Inform´atica
Master Universitario en L´ogica, Computaci´on
e Inteligencia Artificial
Trabajo fin de Master:
An´alisis gen´omico a trav´es de herramientas
inform´aticas aplicadas a datos de secuenciaci´on de
nueva generaci´on
Autor:
Alejandro Alem´an Ramos
Tutor:
D. Francisco Romero Campero
Sevilla, Viernes 1 de Julio de 2011
3. El proyecto que aqu´ı presentamos hace una revisi´on exhaustiva de una serie de
herramientas que han surgido en el contexto de la secuenciaci´on de nueva generaci´on.
Para ello se ha dividido dicho proyecto en dos partes claramente diferenciadas.
La primera parte trata sobre una revisi´on del software usado. Dentro del software usado
podemos destacar herramientas para indexar genomas, b´usqueda de alineamientos en
genomas, herramientas para realizar an´alisis transcript´omicos cualitativos y
herramientas para realizar an´alisis transcript´omicos cuantitativos.
La segunda parte del proyecto se basa en la realizaci´on de una serie de experimentos
donde se muestra la utilizaci´on de dichas aplicaciones anteriormente mencionadas en la
parte primera, as´ı como de los resultados devueltos por dichas aplicaciones
3
15. Cap´ıtulo 1
Bowtie
1.1. ¿Qu´e es Bowtie?
Bowtie[13] es un sistema para alinear cadenas cortas que es extremadamente r´apido y que tiene una
gesti´on de memoria eficiente. Est´a dirigido a alinear r´apidamente grandes conjuntos de cadenas cortas de
DNA de grandes genomas. En el caso de tener un ordenador de caracter´ısticas t´ıpicas, Bowtie es capaz
de alinear cadenas de 35 pares de bases a un ritmo de 35 millones de lecturas por hora. Bowtie a la hora
de indexar el genoma se basa en la transformada de Burrows-Wheeler[3] para mantener en memoria una
peque˜na huella del mismo: para el caso del genoma humano, el ´ındice suele ocupar unos 2,2 GB (para
la alineaci´on sin parejas) o 2,9 GB (para la alineaci´on de parejas finales o una alineaci´on por espacio de
colores1
).
Para conseguir una mayor velocidad en la alineaci´on se pueden usar m´ultiples procesadores para que
trabajen simult´aneamente. Bowtie, adem´as, produce las alineaciones en formato est´andar de SAM 2
. , lo
que permite que Bowtie pueda trabajar con otras herramientas externas que soportan SAM, incluyendo
SAMtools consensus, SNP y Indel Callers. Bowtie se ejecuta a trav´es de la l´ınea de comandos y es
multiplataforma. Los sistemas operativos soportados son: Windows, Linux, Mac OS X, Linux y Solaris.
Bowtie tambi´en se usa como base para otras herramientas, entre las cuales podemos incluir TopHat 3
; Cufflinks 4
; Crossbow, una herramienta de computaci´on en la nube para resecuenciaci´on de datos a gran
escala; y Myrna, otra herramienta de computaci´on en la nube para el c´alculo de expresiones diferenciales
de genes en grandes conjuntos de secuencias de RNA.
1.2. ¿Qu´e no es Bowtie?
Bowtie no es una herramienta de alineaci´on de prop´osito general como pueden ser MUMmer 5
,
BLAST6
o Vmatch7
. Bowtie tiene un funcionamiento m´as ´optimo cuando se alinean lecturas cortas en
genomas de gran tama˜no, aunque admite tambi´en secuencias de referencia arbitrariamente peque˜nas
(por ejemplo amplicones 8
) y lee cadenas de como m´aximo 1024 bases. Bowtie est´a dise˜nado para ser
extremadamente r´apido con conjuntos de lecturas cortas donde:
a) muchas de las lecturas cortas tienen al menos una alineaci´on, que es v´alida.
1V´ease la secci´on 1.4.6 en la p´agina 22 para m´as informaci´on
2V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on acerca del formato SAM
3V´ease el cap´ıtulo 2 en la p´agina 37 para m´as informaci´on sobre TopHat
4V´ease el cap´ıtulo 3 en la p´agina 45 para m´as informaci´on sobre Cufflinks
5Para m´as informaci´on acceda a la Web de MUMmmer http://mummer.sourceforge.net/
6Para m´as informacci´on acceda a la Web de BLAST http://blast.ncbi.nlm.nih.gov/Blast.cgi
7Para m´as informacci´on acceda a la Web de Vmatch http://www.vmatch.de/
8Un amplic´on es un fragmento de DNA formado como producto de eventos de amplificaci´on natural o artificial
15
16. b) muchas de las lecturas son de una calidad relativamente alta.
c) el n´umero de alineaciones reportadas por cada lectura es peque˜no (cercano a 1).
Bowtie a´un no informa de alineaciones con huecos; es un trabajo futuro.
1.3. Obtener Bowtie
En la p´agina oficial de Bowtie podr´as descargar tanto los ficheros fuente de Bowtie como los binarios
ejecutables para su plataforma. Hay que comentar que Bowtie es multiplataforma. Las plataformas sopor-
tadas son Linux, Windows y Mac OS X; en el caso de los binarios. Adem´as tenemos a nuestra disposici´on
versiones para arquitecturas Intel i386 y x86 64 (para procesadores de 32 y 64 bits respectivamente).
1.3.1. Compilando desde los fuentes
Para compilar Bowtie desde los ficheros fuentes deberemos tener un entorno similar a GNU el cual
contenga GCC, GNU Make y otras herramientas b´asicas para compilar c´odigo. En las plataformas Linux
y Mac es posible instalar f´acilmente Bowtie siguiendo las instrucciones que est´an en la documentaci´on del
proyecto. Para el caso de Windows deberemos usar Cygwin o MinGW que nos emulan un sistema GNU.
Desde el proyecto Bowtie se recomienda usar MinGW. En dicho caso tendremos que tener instalado
MSYS.
Para compilar Bowtie deberemos seguir los siguientes pasos:
1. Extraer los ficheros fuente.
2. Introducirnos dentro del directorio extra´ıdo.
3. Ejecutar el comando GNU make sin ning´un argumento. Dependiendo del sistema ser´a make o gmake.
En caso de usar MinGW, deberemos usar make desde la linea de comandos MSYS.
Si queremos que Bowtie soporte multithreading (opci´on “-p”), deberemos tener en el sistema instalada
la librer´ıa “pthreads”. Para compilar Bowtie sin pthreads (es decir, desactivar “-p”) deberemos usar make
BOWTIE PTHREADS=0.
1.4. El alineador bowtie
El comando bowtie recibe como entrada un ´ındice y un conjunto de lecturas cortas y como salida
muestra una lista de alineamientos. Los alineamientos son seleccionados de acuerdo a la combinaci´on
elegida de las opciones -v/-n/-e/-l (incluyendo adem´as las opciones -I/-X/–fr/–rf/ –ff para especificar el
alineamiento de extremos emparejados ), los cuales definen cuales de los alineamientos son legales, y las
opciones -k/-a/-m/-M/–best/–strata definen cu´ales y cu´antos alineamientos deber´an ser reportados al
usuario.
Por defecto, Bowtie aplica una pol´ıtica de alineamiento similar a la pol´ıtica que lleva a cabo Maq9
(las
opciones por defecto ser´ıan (-n 2 -l 28 -e 70)10
). Pero Bowtie tambi´en puede cumplir una sencilla
pol´ıtica “end-to-end” con “k-diferencia” (por ejemplo con -v 2)11
. . Debemos de tener en cuenta que los
modos de alineamiento -v y -n son mutuamente excluyentes, es decir, no podremos usar los 2 a la vez.
Bowtie funciona mucho mejor cuando alinea lecturas cortas en genomas largos (por ejemplo, el genoma
del ser humano o del rat´on), aunque soporta secuencias de referencia arbitrariamente peque˜nas y lecturas
de un m´aximo de 1020 bases. Bowtie est´a dise˜nado para ser extremadamente r´apido con conjuntos de
lecturas cortas donde:
9Para m´as informaci´on v´ease la Web http://maq.sourceforge.net/
10 V´ease la secci´on 1.4.1 en la p´agina siguiente para m´as informaci´on sobre este modo
11V´ease la secci´on 1.4.2 en la p´agina 18 para obtener m´as informaci´on sobre este modo
16
17. 1. muchas de las lecturas cortas tienen al menos una alineaci´on, que es v´alida.
2. muchas de las lecturas son de una calidad relativamente alta.
3. el n´umero de alineaciones reportadas por cada lectura es peque˜no (cercano a 1).
Estos criterios est´an generalmente satisfechos en el contexto del an´alisis de lecturas cortas por ejemplo
de RNA-seq, ChIP-seq, otros tipos de secuenciaci´on, y otros tipos de resecuenciaci´on de mam´ıferos. Para
otros contextos de investigaci´on se deber´a comprobar los tiempos de ejecuci´on del mismo.
Si Bowtie es demasiado lento para su aplicaci´on, deber´a probar alguna de las sugerencias para opti-
mizaci´on del rendimiento que se describen en la secci´on 1.4.7 en la p´agina 24.
Los alineamientos en los cuales aparezcan uno o m´as caracteres ambiguos de referencia (N, -, R,
Y, etc.) ser´an considerados inv´alidos por Bowtie. Esto es cierto s´olo para caracteres ambiguos en la
referencia; alineaciones que tienen caracteres ambiguos en la lectura ser´an legales, sujetos a la pol´ıtica
de alineaci´on. Los caracteres ambiguos en la lectura ser´an diferentes al resto de caracteres de la lectura.
Las alineaciones que contenga a la secuencia de referencia no ser´an considerados v´alidos.
El proceso por el cual bowtie elige una alineaci´on para informar se realiza al azar con el fin de evitar
el “sesgo de asignaci´on”. bowtie siempre reporta un subconjunto de las alineaciones v´alidas que existen,
haciendo todo lo posible para mostrarlas al azar. Esta aleatoriedad se deriva de un generador de n´umeros
simples pseudoaleatorios llamados semillas de forma determinista en el sentido de que Bowtie siempre
produce los mismos resultados para la misma lectura cuando es ejecutado con el mismo valor de la
semilla12
.
En el modo por defecto, bowtie puede exhibir un sesgo en la hebra. El sesgo en la hebra se produce
cuando la entrada de referencia y las lecturas son tales que
1. algunas lecturas se alinean en el sentido normal y en el inverso de la hebra.
2. el n´umero de esos sitios son diferentes en ambos sentidos.
Cuando esto sucede para una lectura dada, bowtie opta por una hebra o la otra con una probabilidad
del 50 %, a continuaci´on, reporta un alineamiento seleccionado al azar para dicha lectura de uno de los
sitios en la hebra seleccionada. Esto tiende a asignar m´as alineamientos en hebras con pocos sitios y
menos alineamientos en hebras con muchos sitios. El efecto se mitiga, aunque puede no ser eliminado,
cuando las lecturas son m´as largas o cuando se usan los extremos emparejados. Ejecutando Bowtie con
el modo --best se elimina el sesgo de la hebra forzando a Bowtie a seleccionar una hebra o la otra con
una probabilidad que es proporcional al n´umero de “mejores sitios” de la hebra.
Alineamientos con huecos no est´a soportado actualmente por bowtie, pero lo ser´a en futuras versiones.
1.4.1. El modo de alineaci´on -n
Cuando hacemos uso de la opci´on -n (la cual es la opci´on por defecto en el sistema), Bowtie determina
cuales de los alineamientos son v´alidos de acuerdo con la siguiente pol´ıtica, la cual es muy similar a la
pol´ıtica por defecto en Maq13
.
1. Las alineaciones no pueden tener m´as de N desajustes (donde N es un n´umero entre 0 − 3, y se
establece con la opci´on -n) en las primeras L bases (donde L es un n´umero mayor o igual a 5,
establecido con la opci´on -l). A las primeras L bases se las denomina la “semilla”.
2. La suma de los valores de “Phred quality” 14
de todas las posiciones no coincidentes (y no ´uni-
camente en la semilla) no debe de sobrepasar el valor E (establecido con la opci´on -e). Cuando
las calidades no est´an disponibles (por ejemplo, si las lecturas son de un archivo FASTA 15
)), los
valores por defecto de la calidad Phred se establecen a 40.
12V´ease la secci´on 1.4.8.9 en la p´agina 29 para m´as informaci´on acerca de la opci´on --seed
13 Acceda a la web de Maq para m´as informaci´on http://maq.sourceforge.net/
14Para m´as informaci´on acceda a la web http://www.phrap.com/phred/
15V´ease la secci´on A.4 en la p´agina 115 para m´as informaci´on
17
18. La opci´on -n es mutuamente excluyente con la opci´on -v, es decir, no podremos usar las dos a la vez.
Si se da el caso de que existan m´ultiples alineaciones que cumplan los criterios anteriormente definidos,
Bowtie dar´a preferencia a las alineaciones que contengan menos desajustes y donde la suma establecida
en el criterio 2 sea menor. Cuando la opci´on --best est´e especificada, Bowtie nos garantiza que la/s
alineaci´on/es devuelta/s son las “mejores” en los t´erminos de estos criterios (el criterio 1 tiene prioridad
con respecto al 2), y adem´as las alineaciones se mostrar´an de mejor a peor. En el caso de usar la opci´on
--best Bowtie es m´as lento que si no se usa dicha opci´on.
Tenga en cuenta que Maq internamente redondea las calidades menores a 10 y las mayores de 30 a
30. Para mantener la compatibilidad, Bowtie hace lo mismo. El redondeo puede ser suprimido usando la
opci´on --nomaqround.
Por defecto en los modos -n 2 y -n 3 Bowtie no es totalmente exhaustivo. En estos modos Bowtie
impone un “limite de rastreo” para limitar el esfuerzo gastado a la hora de encontrar una alineaci´on
v´alida entre lecturas de baja calidad que muy posiblemente no tengan alineaciones v´alidas. Esto puede
causar que Bowtie pase por alto algunas alineaciones con 2 ´o 3 desajustes como legales. El l´ımite se
establece a un valor predeterminado, pero razonable, (125 para el caso de no tener establecido --best y
800 para el caso de tener establecido --best); claro est´a, que el usuario puede cambiar estos valores si
as´ı lo desea. Para modificar este l´ımite deber´a usar las opciones --maxbts y/o -y. La opci´on -y hace que
Bowtie sea relativamente lento pero nos garantiza exhaustividad completa.
1.4.2. El modo de alineaci´on -v
En el modo -v, las alineaciones no pueden tener m´as de V desajustes, donde V es un n´umero entre
0 − 3, establecido mediante la opci´on -v. Los valores de calidad no se tienen en cuenta. Recordamos que
la opci´on -v es mutuamente excluyente con la opci´on -n.
Si se da el caso de haber muchas alineaciones legales, Bowtie da preferencia a las alineaciones con
menos desajustes. Cuando usamos la opci´on --best, Bowtie garantiza que la alineaci´on/es reportada es
la mejor en t´erminos del n´umero de desajustes, y los resultados son mostrados en un orden de mejor a
peor. Hay que mencionar que Bowtie es m´as lento si usamos la opci´on --best.
1.4.3. Estratos
En el modo de alineamiento -n, una alineaci´on mediante “estratos” se define como el n´umero de
desajustes en la regi´on “semilla”, es decir, las L bases en el extremo m´as a la izquierda (donde L se
define mediante la opci´on -l). En el modo de alineamiento -v, una alineaci´on mediante “estratos” se
define como el n´umero total de desajustes existentes en toda la alineaci´on. Algunas de las opciones
de Bowtie (como --strata y -m) usan el concepto de “estrato” para limitar o ampliar el alcance de las
alineaciones reportadas al usuario.
1.4.4. Modos de representaci´on de informes
Con los modos -k, -a, -m, -M, --best y --strata, el usuario puede seleccionar con cierta flexibilidad
qu´e alineaciones se van a mostrar. A continuaci´on veremos una serie de ejemplos en los cuales veremos
diferentes maneras de combinar estas opciones. Todos los ejemplos se basan en el uso del ´ındice de e coli
empaquetado con Bowtie. La opci´on --suppress se utiliza para mantener la salida concisa y adem´as se
han eliminado algunos elementos por claridad.
1.4.4.1. Ejemplo: -a
$ ./bowtie -a -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
18
19. - gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G
- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T
+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 5 alignments to 1 output stream(s)
El uso de la opci´on -a le indica a Bowtie que reporte todas las alineaciones v´alidas, sujetas, en este
caso, a la pol´ıtica de alineamiento: -v 2. En el ejemplo, bowtie ha encontrado 5 resultados inexactos
dentro del genoma de la E. Coli; uno de los resultados (el 2o
en la lista) tiene un ´unico desajuste, y
los otros cuatro resultados tienen 2 desajustes. Hay que indicar que 4 de los resultados siguen la linea
inversa de referencia y otro la linea a seguir (s´ımbolo ‘-’ para el caso inverso y ‘+’ para el normal). Hay
que indicar que no est´an listados seg´un un orden de mejor a peor.
1.4.4.2. Ejemplo: -k 3
$ ./bowtie -k 3 -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 3 alignments to 1 output stream(s)
El uso de la opci´on -k 3 le indica a bowtie que reporte hasta 3 alineamientos v´alidos. En este ejemplo,
existen un total de 5 alineamientos v´alidos (V´ease el punto 1.4.4.2 ); bowtie nos muestra 3 alineaciones
de un total de 5. El valor que recibe -k tiene que ser un valor mayor que 0.
1.4.4.3. Ejemplo: -k 6
$ ./bowtie -k 6 -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G
- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T
+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 5 alignments to 1 output stream(s)
El uso de la opci´on -k 6 le indica a bowtie que nos muestre 6 alineaciones v´alidas. En este caso,
´unicamente existen 5 alineamientos v´alidos, por lo que bowtie nos las muestra todos.
1.4.4.4. Ejemplo: por defecto (-k 1)
$ ./bowtie -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 1 alignments to 1 output stream(s)
19
20. En este caso dejamos el valor por defecto a la opci´on -k (en este caso 1), esto nos hace que bowtie
nos muestre la primera alineaci´on devuelta. Como no se ha especificado la opci´on --best no podemos
asegurar que la alineaci´on devuelta sea la ´optima, en este caso concreto no lo es (la alineaci´on con un
´unico desajuste del caso anterior ser´ıa mejor). No poner la opci´on -k ser´ıa igual a poner -k 1.
1.4.4.5. Ejemplo: -a --best
$ ./bowtie -a --best -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T
- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T
- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 5 alignments to 1 output stream(s)
Si hacemos uso de la opci´on -a mostramos todas las alineaciones v´alidas que existan. Adem´as, como
hacemos uso de la opci´on --best nos aseguramos que nos las muestra de la mejor a la peor.
1.4.4.6. Ejemplo: -a --best --strata
$ ./bowtie -a --best --strata -v 2 --suppress 1,5,6,7 e_coli -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 1 alignments to 1 output stream(s)
Incluir la opci´on --strata junto con -a y --best hace que bowtie nos muestre s´olo las alineaciones que
son las mejores con respecto a la alineaci´on por “estratos” (V´ease el punto 1.4.3 en la p´agina 18 para
m´as informaci´on sobre estratos). Las mejores alineaciones en este caso (con estratos) son las que tienen
el menor n´umero de desajustes (o desajustes ´unicamente en la “semilla” si usamos la opci´on -n). Hay
que tener en cuenta que si usamos la opci´on --strata tambi´en deberemos usar la opci´on --best.
1.4.4.7. Ejemplo: -a -m 3
$ ./bowtie -a -m 3 -v 2 e_coli -c ATGCATCATGCGCCAT
# reads processed: 1
# reads with at least one reported alignment: 0 (0.00%)
# reads that failed to align: 0 (0.00%)
# reads with alignments suppressed due to -m: 1 (100.00%)
No alignments
Al usar la opci´on -m le estamos indicando a bowtie que se abstenga de informar cualquier alineaci´on
para lecturas cortas que contengan m´as de “m” resultados, es decir, si incluimos -m 3 estamos diciendo
que si tiene m´as de 3 alineaciones v´alidas que no nos muestre nada. La opci´on -m es ´util cuando se
quiere garantizar que las alineaciones que se han reportado son “´unicas”, nosotros tendremos que definir
el significado concreto de “´unico” para cada caso.
20
21. 1.4.4.8. Ejemplo: -a -m 5
$ ./bowtie -a -m 5 -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 148810 10:A>G,13:C>G
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
- gi|110640213|ref|NC_008253.1| 4930433 4:G>T,6:C>G
- gi|110640213|ref|NC_008253.1| 905664 6:A>G,7:G>T
+ gi|110640213|ref|NC_008253.1| 1093035 2:T>G,15:A>T
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 5 alignments to 1 output stream(s)
Ahora especificamos -m 5. En este caso si muestra lecturas, y adem´as nos asegura que hay exactamente
5 alineaciones v´alidas. Como hay exactamente 5 alineaciones posibles, el l´ımite -m 5 hace que bowtie
imprima la salida de la manera usual.
1.4.4.9. Ejemplo: -a -m -3 --best --strata
$ ./bowtie -a -m 3 --best --strata -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
- gi|110640213|ref|NC_008253.1| 2852852 8:T>A
# reads processed: 1
# reads with at least one reported alignment: 1 (100.00%)
# reads that failed to align: 0 (0.00%)
Reported 1 alignments to 1 output stream(s)
En este caso especificamos la opci´on -m 3 para decirle a bowtie que se abstenga de mostrar en el
caso de tener m´as de 3 alineaciones v´alidas. Pero como vimos en el ejemplo 6 la lectura s´olo devuelve
una ´unica alineaci´on v´alida cuando especificamos las opciones -a, --best y --strata, por eso la opci´on -m
3 hace que bowtie funcione de la manera habitual.
De una forma intuitiva, la opci´on -m cuando se combina con las opciones --best y --strata, garantiza,
de una forma d´ebil,un principio de “unicidad”. Para tener una unicidad m´as fuerte deberemos usar la
opci´on -m pero no las opciones --best y --strata.
1.4.5. Alineamiento de Extremos emparejados
Bowtie puede alinear lecturas con extremos emparejados cuando la propiedad de lecturas “empa-
rejadas” est´a especificada mediante las opciones -1 y -2 (para parejas sin tratar, FASTA16
, o ficheros
de lecturas FASTQ17
), o usando la opci´on --12 (para leer archivos delimitados por tabuladores). Una
alineaci´on de extremos emparejados v´alida debe cumplir los siguientes criterios:
1. Ambos compa˜neros tienen una alineaci´on v´alida de acuerdo con la pol´ıtica de alineaci´on que se ha
definido mediante alguna de las opciones -v/-n/-e/-l.
2. La orientaci´on y la posici´on relativa de los compa˜neros satisface las restricciones que se han definido
mediante alguna de las opciones -l/-X/–fr/–rf/–ff.
Para una determinada lectura corta podemos determinar la pol´ıtica que gobernar´a las alineaciones
de extremos emparejados mediante las opciones -k, -a y -m. Por otro lado, tenemos que comentar que
no podremos usar las opciones --strata y --best en el modo de extremos emparejados.
Un alineamiento de extremos emparejados se reporta como un par de alineamientos compa˜neros, cada
uno en una l´ınea, donde se formatea el alineamiento para cada compa˜nero como si fueran alineamientos
simples independientes. La alineaci´on para el compa˜nero que aparece m´as cerca del comienzo de la
16V´ease el ap´endice A.4 en la p´agina 115 para m´as informaci´on acerca del formato FASTA
17V´ease el ap´endice A.5 en la p´agina 117 para m´as informaci´on acerca del formato FASTQ
21
22. secuencia de referencia se imprime siempre antes que el compa˜nero que aparece despu´es. Los ficheros
de lecturas que contienen lecturas de extremos emparejados a veces nombran las lecturas de acuerdo al
compa˜nero al que “pertenecen”, a˜nadiendo el sufijo /1 o /2 respectivamente. Si no se le indica sufijo
en la entrada de Bowtie, el sufijo se le a˜nadir´a cuando se generan los nombres de las lecturas en los
alineamientos (excepto en el modo -S “SAM”, que la informaci´on de los compa˜neros se codifica en los
‘‘FLAGS’’).
Encontrar un alineamiento de extremos emparejados v´alido donde ambos compa˜neros se alinean en
m´ultiples regiones puede consumir mucho tiempo. Por defecto, Bowtie evita gran parte de este coste
mediante la imposici´on de un l´ımite en el n´umero de “intentos” haciendo que se ajuste un alineamiento
para un compa˜nero cerca de un alineamiento para el el otro compa˜nero. El l´ımite por defecto es 100. Esto
hace que bowtie pase por alto algunos alineamientos v´alidos, pero se puede hacer uso de las opciones
--pairtries o -y para incrementar la sensibilidad de Bowtie como se desee.
Un alineamiento de extremos emparejados donde el alineamiento de uno de los compa˜neros contiene
al otro se considera inv´alido.
Cuando la alineaci´on por espacio de colores se activa mediante -C, la configuraci´on predeterminada
para la orientaci´on de los extremos emparejados es --ff. Esto es debido a que la mayor´ıa de los conjuntos
de datos de SOLiD llevan esta orientaci´on. Cuando la alineaci´on por espacio de colores no est´a activa
(por defecto), la configuraci´on predeterminada para la orientaci´on es --fr, ya que la mayor´ıa de los datos
de Illumina llevan esta orientaci´on. El valor por defecto se puede cambiar en cualquier caso.
Debido a que Bowtie usa una representaci´on en memoria de la cadena de referencia origial couando
busca alineamientos de extremos emparejados, su consumo de memoria es mayor cuando alinea lecturas
de extremos emparejados.
1.4.6. Alineacion por Espacio de Colores
Desde la versi´on 0.12.0, bowtie puede alinear lecturas en espacio de colores mediante un ´ındice de
espacio de colores cuando hacemos uso de la opci´on -C. El espacio de colores es el formato de salida
caracter´ıstico del sistema SOLiD de Applied Biosystems18
. En una lectura de espacio de colores, cada
car´acter es un color en lugar de un nucle´otido, donde un color codifica una clase de dinucle´otidos. Por
ejemplo el color azul codifica cualquiera de los dinucle´otidos AA, CC, GG, TT. El espacio de colores tiene la
ventaja de ser capaz de encontrar errores de secuenciaci´on de SNPs una vez que la lectura se ha alineado.
1.4.6.1. Lecturas en Espacio de Colores
Todos los formatos de entrada (FASTA -f, FASTQ -q, brutos -r, separados por tabuladores --12, l´ınea
de comandos -c) son compatibles con un espacio de colores (-C). Cuando hacemos uso de la opci´on -C, las
secuencias de lecturas son tratadas como colores. Los colores se podr´an codificar como n´umeros (0=azul,
2=naranja, 3=rojo) o como caracteres A/C/G/T (A=azul, C=verde, G=naranja, T=rojo).
Algunas lecturas incluyen una base de imprimaci´on como primer car´acter, por ejemplo:
>1_53_33_F3
T2213120002010301233221223311331
>1_53_70_F3
T2302111203131231130300111123220
...
Aqu´ı, T es la base de imprimaci´on. bowtie detecta y gestiona de manera adecuada la base de im-
primaci´on (es decir, la base de imprimaci´on y los colores adyacentes se recortan antes de la alineaci´on)
siempre y cuando el resto de la lectura se codifique como un n´umero.
bowtie adem´as gestiona la entrada en formato de ficheros .csfasta y QV.qual. Deberemos usar la
opci´on -f para especificar el fichero .csfasta y -Q o --Q/--Q2 (para lecturas con extremos emparejados)
18Para m´as informaci´on acceda a la web de SOLiD
22
23. para especificar el correspondiente fichero QV.qual. No es necesario convertirlo antes a FASTQ, aunque
bowtie tambi´en gestiona lecturas en espacio de colores formateadas en FASTQ (con la opci´on -q).
1.4.6.2. Construir un ´ındice de Espacio de Colores
Un ´ındice de espacio de colores se construye de la misma forma que un ´ındice normal excepto que
hemos de usar la opci´on -C cuando ejecutamos bowtie-build19
. Si un usuario intenta usar bowtie sin
la opci´on -C para alinear con un ´ındice que ha sido creado con -C ( y viceversa), bowtie imprimir´a un
mensaje de error y terminar´a.
1.4.6.3. Decodificar alineamientos en Espacio de Colores
Una vez que una lectura en espacio de colores ha sido alineada, Bowtie decodifica el alineamiento en
nucle´otidos y reporta la secuencia de nucle´otidos decodificada. Es necesario un esquema de decodifica-
ci´on ya que es posible m´ultiples formas diferentes de decodificar. encontrar la decodificaci´on “perfecta”
requiere el conocimiento de todas las posibles variantes (por ejemplo SNPs) en el genoma del sujeto de
antemano, lo cual suele ser bastante complicado. En su lugar, bowtie emplea un esquema de decodi-
ficaci´on aproximada descrito en [15]. Este esquema intenta distinguir las variantes de la secuencia de
acuerdo con su probabilidad relativa bajo un modelo que considera los valores de calidad de los colores
y la probabilidad global de un SNP.
Los valores de calidad tambi´en son “decodificados”, de modo que cada valor de la calidad es una
funci´on de las 2 calidades de color superpuestas. Bowtie de nuevo adopta un esquema descrito en [15], es
decir, la calidad de los nucle´otidos decodificados es la suma de las calidades de color superpuestas (cuando
los dos colores superpuestos corresponden a las bases que coinciden en la alineaci´on) o la calidad de la
igualaci´on de color menos la calidad de no coincidencia de color o 0 (cuando los dos colores superpuestos
corresponden a desajustes).
Para una decodificaci´on correcta, --snpphred/--snpfrac deben establecerse de acuerdo a la mejor es-
timaci´on de la frecuencia de SNPs en el sujeto. El par´ametro --snpphred establece la penalizaci´on SNP
directamente (en la escala Phred), mientras que --snpfrac permite al usuario especificar una fracci´on; la
fracci´on es convertida posteriormente a Phred quality internamente.
Tenga en cuenta, que en el modo -S/--sam-mode, la secuencia de nucle´otidos decodificada es imprimida
por alineamientos, pero la secuencia de color original (con A=azul, C=verde, G=naranja y T=rojo) es
imprimida para lecturas no alineadas sin ninguna alineaci´on reportada. Como es habitual, los par´ametros
--un, --max y --al imprimen las lecturas tal y cual aparecen en el fichero de entrada.
1.4.6.4. Alineamientos de extremos apareados en Espacio de Colores
Al igual que en otras plataformas, SOLiD soporta la generaci´on lecturas de extremos emparejados.
Cuando tenemos activada la alineaci´on mediante espacio de colores, la orientaci´on por defecto de los
extremos emparejados es --ff. Esto es debido a que la mayor´ıa de los conjuntos de datos de SOLiD tienen
esta orientaci´on.
Tenga en cuenta que las lecturas generadas por SOLiD pueden tener compa˜neros “hu´erfanos”, es decir,
sin pareja correspondiente en el otro fichero. Para evitar problemas debidos a compa˜neros hu´erfanos, la
salida de extremos emparejados de SOLiD ha de ser convertida primero a un fichero .csfastq omitiendo
las lecturas desemparejadas. Esto se puede lograr utilizando, por ejemplo, la herramienta de conversi´on
Galaxy20
.
19V´ease la secci´on 1.5 en la p´agina 31 para m´as informaci´on acerca de bowtie-build
20Para m´as informaci´on acceda a la web http://main.g2.bx.psu.edu/ para m´as informaci´on acerca de Galaxy
23
24. 1.4.7. Optimizaci´on del rendimiento
A continuaci´on veremos una serie de consejos para optimizar el rendimiento de bowtie en su sistema:
1. Use la versi´on de bowtie de 64 bits si es posible.
La versi´on de 64 bits de Bowtie es sustancialmente (por lo general m´as del 50 %) m´as r´apida que
la versi´on de 32 bits, debido a la aritm´etica de 64 bits.
2. Si su sistema tiene m´ultiples procesadores/n´ucleos, use la opci´on -p21
.
3. Si se reportan muchos alineamientos por lectura, intente ajustar bowtie-build --offrate.
4. Si bowtie se vuelve lento, intente incrementar bowtie --offrate.
1.4.8. L´ınea de Comandos
Uso de bowtie en la l´ınea de comandos:
bowtie [opciones]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<aciertos>]
1.4.8.1. Argumentos principales
<ebwt> El nombre base del ´ındice que se debe buscar. El nombre base es el nombre de los
ficheros del´ındice pero sin incluir la terminaci´on .1.ebwt/, .rev.1.ebwt etc. bowtie
busca el ´ındice especificado primero en el directorio actual, despu´es en el subdirecto-
rio /indexes dentro del directorio donde bowtie est´a instalado, y finalmente en el
directorio especificado en la variable de entorno BOWTIE_INDEXES.
<m1> Lista separada por comas de archivos que contienen los primeros compa˜neros (el
nombre del archivo por lo general incluye 1), o, si hacemos uso de la opci´on -c, las
secuencias de compa˜neros directamente.
<m2> Lista separada por comas de archivos que contienen los segundos compa˜neros (el
nombre del archivo por lo general incluye 2), o, si hacemos uso de la opci´on -c, las
secuencias de compa˜neros directamente.
<r> Lista separada por comas de archivos que contienen un conjunto de lecturas desem-
parejadas y lecturas con extremos emparejados.
<s> Lista separada por comas de archivos que contienen lecturas desemparejadas que
van a ser alineadas, o , si hacemos uso de la opci´on -c, las lecturas desemparejadas
directamente.
<aciertos> Fichero en el cual se van a escribir los alineamientos. Por defecto, se muestran en la
salida est´andar (en este caso la consola).
1.4.8.2. Opciones de entrada
-q Los ficheros de entrada de consultas (especificados como <m1> y <m2>, o
como <s>) son ficheros FASTQ (normalmente con extensi´on .fq o .fastq)
-f Los ficheros de entrada de consultas (especificados como <m1> y <m2>, o
como <s>) son ficheros FASTA (normalmente con extensi´on .fa, .mfa,fna o
similares). Todos los valores de las calidades se suponen 40 en la escala Phred
quality.
21V´ease la opci´on -p en la secci´on 1.4.8.8 en la p´agina 29
24
25. -r Los ficheros de entrada de consultas (especificados como <m1> y <m2>, o
como <s>) son ficheros Raw (en bruto): una secuencia por l´ınea, sin valores
de calidad o nombres. Todos los valores de las calidades se suponen 40 en la
escala Phred quality.
-c Las sentencias de b´usqueda ser´an recogidas mediante la l´ınea de comandos
-C/--quals <ficheros> Lista separada por comas de archivos que contienen los valores de calidad
para las lecturas CSFASTA no emparejadas. Se usa en combinaci´on con -C y
-f. La opci´on --integer-quals se activa autom´aticamente cuando -Q/--quals es
especifica.
--Q1 <ficheros> Lista, separada por comas, de ficheros que contienen los valores de los corres-
pondientes CSFASTA #1 compa˜neros.
--Q2 <ficheros> Lista, separada por comas, de ficheros que contienen los valores de los corres-
pondientes CSFASTA #2 compa˜neros.
-s/--skip <int> Descarta (no alinea) las primeras <int> lecturas o pares de la entrada.
-u/--qupto <int> S´olo alinea las primeras <int> lecturas de la entrada (despu´es que -s/--skip
haya descartado las correspondientes lecturas). Por defecto no hay l´ımite.
-5/--trim5 <int> Recorta <int> bases de alta calidad (izquierda) de cada lectura antes de alinear
(por defecto: 0).
-3/--trim3 <int> Recorta <int> bases de baja calidad (derecha) de cada lectura antes de alinear
(por defecto: 0).
--phred33-quals Las calidades son caracteres ASCII iguales a la Phred quality m´as 33. Esta
opci´on est´a activada por defecto.
--phred64-quals Las calidades son caracteres ASCII iguales a la Phred quality m´as 64. Esta
opci´on est´a desactivada por defecto.
--solexa-quals Convierte las calidades de entrada de Solexa (que pueden ser negativas) a
Phred (que no pueden ser negativas). Esta opci´on es la m´as adecuada cuando
usamos lecturas que provienen de versiones de GA Pipeline anteriores a la 1.3.
Por defecto est´a desactivada.
--solexa1.3-quals Igual que --phread64-quals. Es la opci´on m´as adecuada para usar con lecturas
emitidas por GA Pipeline version 1.3 o posteriores. Por defecto est´a desacti-
vada.
--integer-quals Los valores de las calidades est´an representados en el fichero de entrada como
enteros ASCII (por ejemplo 40 40 30 40. . . ) en vez de caracteres ASCII (por
ejemplo II?I. . . ).
1.4.8.3. Opciones de Alineamientos
-v <int> Reportar alineamientos con un m´aximo de <int> desajustes. Las opciones
-e y -l son ignoradas y los valores de las calidades no tienen efecto en los
alineamientos v´alidos. La opci´on -v es mutuamente excluyente con la opci´on
-n.
-n/--seedmms <int> N´umero m´aximo de desajustes permitidos en la “semilla”. Se permiten los
valores 0, 1, 2 ´o 3; siendo el valor por defecto 2. Esta opci´on es mutuamente
excluyente con la opci´on -v.
-e/--maqerr <int> M´aximo total permitido de los valores de calidad de todos los desajustes
de una lectura a trav´es de toda la alineaci´on, no s´olo en la semilla. El valor
por defecto es 70. Al igual que Maq, bowtie redondea los valores de calidad
25
26. al 10 m´as cercano y satura al 30; el redondeo puede ser deshabilitado con
la opci´on --nomaqround.
-l/--seedlen <int> La “longitud de la semilla”, es decir, el n´umero de bases en el extremo de
alta calidad de la lectura en el cual se aplica el l´ımite -n. El valor m´as
bajo permitido es 5 y el valor por defecto es 28. bowtie es m´as r´apido para
valores altos de -l.
--nomaqround Maq acepta valores de calidad en la escala Phred quality, pero internamente
redondea los valores con una precisi´on de 10, con un m´aximo de 30. Por
defecto, bowtie redondea de esta forma. --nomaqround indica que no se
use esta forma de redondeo.
-I/--minins <int> El tama˜no m´ınimo de inserci´on para un alineamiento de extremos empare-
jados v´alido. Por ejemplo, si se especifica -I 60 y tenemos dos alineamiento
de extremos emparejados de 20 pares de pases (en la orientaci´on apropiada)
con un hueco de 20 pares de bases entre ellos, este alineamiento se considera
v´alido ( partiendo de la base que --X tambi´en se satisface). Un hueco de 19
pb no ser´ıa v´alido en este caso porque no llegar´ıa al m´ınimo establecido de
60 pb. Si se usan las opciones de recorte -3 o -5, la restricci´on -I se aplica
con respecto a los compa˜neros “sin recortes”. El valor por defecto es 0.
-X/--maxins <int> El tama˜no m´aximo de inserci´on para un alineamiento de extremos empa-
rejados v´alido. Por ejemplo, si se especifica -X 100 y tenemos dos alinea-
mientos de extremos emparejados de 20 pb (en la orientaci´on apropiada)
con un hueco de 60 pb entre ellos, este alineamiento se considera v´alido
(partiendo de la base que --I tambi´en se satisface). Un hueco de 61 pb no
ser´ıa v´alido en este caso porque sobrepasar´ıa el m´aximo permitido de 100.
Si se usan las opciones de recorte -3 o -5, la restricci´on -X se aplica con
respecto a los compa˜neros “sin recortes”. El valor por defecto es 250.
--fr/--rf/--ff Las diferentes orientaciones en las que podemos encontrarnos los com-
pa˜neros en un alineamiento de extremos emparejados. Si hacemos uso de
--fr y hay un alineamiento de extremos emparejados v´alido donde el com-
pa˜nero 1 aparece antes que el inverso complementario del compa˜nero 2 y
se cumplen las limitaciones de loingitud, ese alineamiento es v´alido. Si el
compa˜nero 2 aparece antes que el inverso complementario del compa˜nero 1
y todas las restricciones se cumplen, tambi´en es v´alido. --rf tambi´en exige
que el compa˜nero 1 (en la orientaci´on normal) sea inverso complementado
y el compa˜nero 2 (en la orientaci´on inversa) est´e en un sentido normal. --ff
requiere que el compa˜nero 1 est´e en el sentido normal y el 2 en el sentido
inverso.
--nofw/--norc Si hacemos uso de --nofw, bowtie no intentar´a alinear con la cadena en el
sentido normal. Si usamos --norc, bowtie no intentar´a alinear con la cadena
inversa complementada.
--maxbts N´umero m´aximo de “vueltas atr´as” permitidas cuando se alinea una lectura
en el modo -n 2 o -n 3 (por defecto: 125 sin --best, 800 con --best). Una
“vuelta atr´as” es la introducci´on de un cambio especulativo en la alineaci´on.
Sin este l´ımite, los par´ametros por defecto hacen que bowtie intente 100
o 1000 vueltas atr´as para alinear una lectura, especialmente si la lectura
contiene muchas bases con baja calidad y/o no tiene alineamientos v´alidos;
haciendo que bowtie baje su rendimiento significativamente. Sin embargo,
este l´ımite puede causar que algunas alineaciones v´alidas se pierdan.
--pairtries <int> Para alineaciones de extremos emparejados, este es el n´umero m´aximo de
intentos que bowtie har´a para que un alineamiento para un compa˜nero
coincida con un alineamiento para el otro compa˜nero. La mayor´ıa necesita
unos pocos intentos, pero es posible que algunas parejas requieran muchos
26
27. intentos, bajando el rendimiento se bowtie significativamente. El valor por
defecto es 100 intentos.
-y/--tryhard Intenta , como sea posible, encontrar alineamientos v´alidos cuando existen,
incluyendo alineamientos con extremos emparejados. Esto es equivalente al
uso de --maxbts y --pairtries con valores muy altos. Esta opci´on hace que
bowtie sea generalmente mucho m´as lento que el modo normal por defecto.
--chunkmbs <int> N´umero de MegaBytes de memoria que se le asigna a cada hilo para al-
macenar los descriptores en el modo --best. Bowtie intenta minimizar la
memoria usada por los descriptores, pero en muchos casos esta memoria
puede crecer demasiado. Si se recibe alg´un mensaje indicando que la me-
moria se ha agotado en el modo --best, deberemos ajustar la memoria con
este par´ametro dedicando m´as memoria a los descriptores. El valor por
defecto son 64 MB.
1.4.8.4. Opciones de informes
-k <int> Reporta <int> alineamientos v´alidos por lectura o par (por defecto 1). La
validez de las alineaciones se determinada por la pol´ıtica de alineamiento
(efectos combinados de -n, -v, -l y -e). Bowtie est´a dise˜nado para ser muy
r´apido para valores peque˜nos de -k, y puede llegar a volverse muy lento
para valores grandes de -k. Si le interesa usar Bowtie con valores altos de
-k considere la creaci´on de un ´ındice22
.
-a/--all Informa de todas las alineaciones v´alidas por lectura o par (por defec-
to est´a desactivado). La validez de las alineaciones se determinada por la
pol´ıtica de alineamiento (efectos combinados de -n, -v, -l y -e). Bowtie
est´a dise˜nado para ser muy r´apido para valores peque˜nos de -k, y puede
llegar a volverse muy lento si usamos -a/--all. Si le interesa usar Bowtie con
-a/--all considere la creaci´on de un ´ındice.
-m <int> Suprimir todos los alineamientos de una lectura o par si para esa lectura
existen m´as de <int> alineamientos. Cuentan como alineamientos aquellos
que son reportados por -n, -v, -l, -e, -k, -a y/o --strata. Por defecto no tiene
l´ımite.
-M <int> Se comporta como -m salvo que si una lectura tiene m´as de <int> alinea-
mientos se reporta uno aleatoriamente.
--best Garantiza que Bowtie reporta alineamientos que son los “mejores” en t´ermi-
nos de estratos (por ejemplo, n´umero de desajustes, o desajustes en la se-
milla en el caso de el modo -n) y en t´erminos de calidad en las posiciones
con desajustes. Cuando no especificamos --best Bowtie reportar´a alinea-
mientos que no tienen por qu´e ser ´optimos en t´erminos de estratos/calidad.
Tenga en cuenta que --best no afecta a cuales alineamientos son conside-
rados “v´alidos” por bowtie, si no cu´ales de esos alineamientos v´alidos son
reportados por bowtie.
--strata Si existen muchas alineaciones v´alidas y son “reportables” y caen en muchos
estratos, se reportan ´unicamente aquellas alineaciones que caen en el mejor
estrato. Cuando hacemos uso de --strata tambi´en deberemos usar --best.
1.4.8.5. Opciones de salida
-t/--time Imprime el tiempo empleado en cada una de las fases.
22V´ease la secci´on 1.5 en la p´agina 31 para m´as detalles acerca de los ´ındices
27
28. -B/--offbase <int> Cuando muestra los alineamientos, la posici´on de la primera base ser´a <int>.
Por defecto es 0.
--quiet No se muestra nada aparte de las alineaciones.
--refout Escribe la salida en un conjunto de ficheros de la forma refXXXXX.map,
donde XXXXX es el ´ındice de la secuencia de referencia alineada. Esto puede
ser ´util para grandes vol´umenes de lecturas, por ejemplo para alinear con
el genoma humano.
--refidx Cuando una secuencia de referencia se refiere a un alineamiento reportado,
se refiere a el mediante su ´ındice en vez de su nombre.
--al <fichero> Escribe todas las lecturas con al menos un alineamiento en un archivo de
nombre <fichero>.
--un <fichero> Escribe todas las lecturas que no han podido ser alineadas en un archivo
de nombre <fichero>.
--max <fichero> Escribe todas las lecturas con un n´umero de alineamientos v´alidos superior
al l´ımite establecido con la opci´on -m en un archivo de nombre <fichero>.
--suppress <columnas> Suprime una serie de columnas de salida en el formato de salida por defec-
to. Por ejemplo si usamos --suppress 1,5,6, las columnas 1,5,6 no se
mostrar´an en la salida. Esta opci´on es ignorada si estamos en el modo de
salida -S/--sam.
--fullref Imprime el nombre de referencia completo de una secuencia. Por defecto
bowtie imprime hasta llegar al primer espacio en blanco.
1.4.8.6. Opciones del Espacio de colores
--snpphred <int> En la decodificaci´on de alineamientos con espacio de colores, se usa <int>
como la penalizaci´on SNP. Se debe establecer al mejor valor en relaci´on de
SNPs por base del genoma sujeto, convertido a la escala de calidad Phred.
Por ejemplo, si el usuario espera 1 SNP cada 1000 posiciones, --snpphred
deber´a ser 30 (que es el valor por defecto. Para especificar una fracci´on
directamente deber´a usar --snpfrac.
--snpfrac <dec> En la decodificaci´on de alineamientos con espacio de colores, se usa <dec>
como la relaci´on SNPs por base. bowtie convierte el valor al formato de
calidad Phred, y se comporta como si se hubiera usado la opci´on --snpphred.
El valor por defecto es 0,0001
--col-cseq Si las lecturas est´an en espacio de colores y el modo por defecto de salida23
est´a activado, --col-cseq hace que el color de la secuencia aparezca en la
columna de la secuencia de la lectura (columna 5) en lugar de la secuencia
de nucle´otidos. Esta opci´on es ignorada en el modo -S/--sam.
--col-cqual Si las lecturas est´an en espacio de colores y el modo por defecto de salida
est´a activado, --col-cseq hace que la calidad (color) original de la lectura
aparezca en la columna de la calidad en vez de la calidad decodificada. Esta
opci´on es ignorada en el modo -S/--sam.
--col-keepends Cuando se decodifican alineamientos con espacio de colores, bowtie corta
un nucle´otido y una calidad de la izquierda y de la derecha del alineamien-
to. Esto se debe a que los nucle´otidos son compatibles con un s´olo color,
en contraste con los nucle´otidos del medio que son soportados por dos.
Especificar --col-keepends mantiene los nucle´otidos y sus calidades en los
extremos.
23V´ease la secci´on 1.4.9 en la p´agina 30 para m´as informaci´on acerca de este modo
28
29. 1.4.8.7. Opciones de SAM
-S/--sam Imprime los alineamientos en formato SAM. Vaya a la secci´on 1.4.10 en
la p´agina siguiente para m´as detalles. Para suprimir todas las cabeceras
SAM use la opci´on --sam-nohead adem´as de -S/--sam. Para suprimir s´olo
las cabeceras @SQ use la opci´on --sam-nosq junto con -S/--sam. bowtie no
crea archivos BAM directamente, pero la salida en formato SAM puede
ser convertida en formato BAM directamente haciendo uso de tuber´ıas y
el comando samtools view24
. La opci´on -S/--sam no es compatible con
--refout.
--mapq <int> Si el alineamiento es no repetitivo (de acuerdo con -m, --strata y otras
opciones) se establecer´a el campo MAPQ25
(Calidad del mapeo/asignaci´on)
con el valor que recibe por par´ametro (<int>). El valor por defecto es 255.
--sam-nohead Suprime las l´ıneas de cabecera (que comienzan por @) cuando la salida es
-S/--sam. Debe usarse en conjunto con -S/--sam. --sam-nohead se ignora a
no ser que se use con -S/--sam.
--sam-nosq Suprime las l´ıneas de cabecera @SQ cuando la salida es -S/--sam. Debe
usarse en conjunto con -S/--sam. --sam-nosq se ignora a no ser que se use
con -S/--sam.
--sam-RG <texto> A˜nade <texto> (generalmente de la forma TAG:VAL, por ejemplo ID:IL7LANE2)
como un campo en la l´ınea de cabecera @RG. Para especificar m´ultiples cam-
pos deberemos usar m´ultiples veces la opci´on --sam-RG. --sam-RG se ignora
a no ser que se use con -S/--sam.
1.4.8.8. Opciones de rendimiento
-o/--offrate <int> Reemplaza el “offrate” del´ındice con <int>. Si <int> es mayor que el offra-
te usado para construir el ´ındice26
, algunas filas ser´an descartadas cuando
el ´ındice se cargue en memoria. Esto reduce el consumo de memoria del ali-
neador, pero requiere m´as tiempo para calcular los desplazamientos. <int>
debe ser mayor que el valor usado para la creaci´on del ´ındice.
-p/--threads <int> Lanza <int> hilos en paralelo. Los hilos pueden ser ejecutados en diferentes
procesadores/n´ucleos y sincronizarse luego para analizar las lecturas y los
alineamientos resultantes.
--mm Usa la asignaci´on de memoria de E/S para cargar el ´ındice, en vez de los
ficheros C normales de E/S. Esto facilita la eficiencia de la memoria a la
hora de paralelizar bowtie en situaciones donde -p no es posible.
--shmem Usa la memoria compartida para cargar el ´ındice. El uso de la memoria
compartida permite que muchos procesos concurrentes de bowtie compar-
tan el mismo ´ındice. Esto facilita la eficiencia de la memoria a la hora de
paralelizar bowtie en situaciones donde -p no es posible.
1.4.8.9. Otras opciones
--seed <int> Usa <int> como semilla para generar n´umeros pseudoaleatorios.
--verbose Muestra toda la salida generada (se usa para debug).
--version Muestra la versi´on de bowtie instalada en el sistema.
24V´ease el cap´ıtulo 4 en la p´agina 69 para m´as informaci´on acerca de SAMtools
25V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on acerca del campo MAPQ
26V´ease la secci´on 1.5 en la p´agina 31 para m´as informaci´on acerca de la creaci´on de ´ındices
29
30. -h/--help Muestra la ayuda de bowtie.
1.4.9. Salida por defecto de bowtie
bowtie imprime en la salida un alineamiento por l´ınea. Cada l´ınea es una colecci´on de 8 campos
separados por tabuladores; de izquierda a derecha, los campos son los siguientes:
1. Nombre de la lectura alineada.
2. Sentido de la hebra, ‘+’ sentido normal, ‘-’ sentido opuesto.
3. Nombre de la secuencia de referencia donde aparece el alineamiento, o un ID num´erico si no se
proporcion´o ning´un nombre.
4. Desplazamiento en la hebra de referencia.
5. Secuencia de la lectura (o inversa complementaria si la orientaci´on es ‘-’).
Si la lectura estaba en espacio de colores, entonces la secuencia mostrada en esta columna es la
secuencia de nucle´otidos, no los colores originales. V´ease la secci´on 1.4.6 en la p´agina 22 para m´as
detalles. Para mostrar los colores hemos de usar la opci´on --col-cseq.
6. Calidades de la lectura codificadas en formato ASCII.
Si la lectura estaba en espacio de colores, entonces las calidades mostradas en esta columna son
las calidades decodificadas, no las calidades originales. Para mostrar los colores hemos de usar la
opci´on --col-cseq.
7. Si hemos hecho uso de la opci´on -M y el l´ımite establecido se ha superado con esta lectura, esta
columna contendr´a el valor del l´ımite, indicando que se encontraron al menos esas alineaciones,
pudiendo ser muchas m´as.
8. Lista, separada por comas, de descriptores de desajustes. Si no hay desajustes en el alineamiento
este campo estar´a vac´ıo. Un descriptor tiene el formato
desplazamiento:base-de-referencia>lectura-base.
1.4.10. Salida en formato SAM de bowtie
A continuaci´on presentamos una breve descripci´on de la salida que genera bowtie en formato SAM
cuando hacemos uso de la opci´on -S/--sam. Para m´as detalles, vea el formato SAM en el ap´endice A.1
en la p´agina 107.
Cuando hacemos uso de la opci´on -S/--sam, bowtie imprime una cabecera SAM con las l´ıneas @HD, @SQ
y @PG. Adem´as, cuando especificamos argumentos RG de SAM mediante --sam-RG, bowtie imprimir´a una
l´ınea @RG que los incluye separados por tabuladores.
Cada l´ınea de subsecuencia corresponde a una lectura corta o a un alineamiento. Cada l´ınea es una
colecci´on de al menos 12 campos separados por tabuladores; veamos cuales de ellos podemos encontrarnos
(de izquierda a derecha):
1. Nombre de la lectura alineada
2. Suma de todos los flags aplicables. Los Flags m´as relevantes de Bowtie son:
1 La lectura es una de una pareja.
2 El alineamiento es un extremo de una correcta alineaci´on de pares finales.
4 La lectura no reporta alineamiento alguno.
8 La lectura es una de una pareja y no repa orta alineamientos.
16 La alineaci´on pertenece a la orientaci´on inversa de la cadena.
30
31. 32 El otro compa˜nero del alineamiento de extremos emparejados pertenece a la orientaci´on
inversa de la cadena.
64 La lectura es el primer compa˜nero dentro de la pareja.
128 La lectura es el segundo compa˜nero dentro de la pareja.
Por lo tanto, una lectura sin pareja que se alinea en la orientaci´on inversa tendr´a como flag 16.
Una lectura de extremos emparejados que se alinee y adem´as sea el primero de los compa˜neros
tendr´a bandera 83 (= 64 + 16 + 2 + 1).
3. Nombre de la secuencia de referencia donde se produce la alineaci´on, o ID ordinal si no se propor-
cion´o el nombre.
4. Desplazamiento en la hebra de referencia donde aparece el car´acter m´as a la izquierda del alinea-
miento.
5. Calidad del mapeo.
6. Cadena CIGAR de la alineaci´on.
7. Nombre de la secuencia de referencia donde se alinea el compa˜nero. Se establece a “=” si la secuencia
de referencia del compa˜nero es la misma, o “*” si no hay compa˜nero.
8. Desplazamiento en la hebra de referencia donde aparece el car´acter m´as a la izquierda del alinea-
miento del compa˜nero. El desplazamiento ser´a 0 si no hay compa˜nero.
9. Tama˜no de inserci´on inferido. El tama˜no es negativo si la alineaci´on de la pareja se produce antes
en la cadena que este alineamiento. El tama˜no es 0 si no existe pareja.
10. Secuencia (inversa complementada si se alinea en la cadena inversa).
11. Cualidades de las lecturas en codificaci´on ASCII.
12. Campos opcionales. Los campos est´an separados por tabuladores. Para una descripci´on m´as deta-
llada vea el ap´endice A.1 en la p´agina 107. Bowtie imprimir´a algunos de estos campos opcionales
en cada alineamiento, dependiendo del tipo de alineamiento:
NM:i:<N> Lectura alineada tiene una distancia de <N>.
CM:i:<N> Lectura alineada tiene una distancia de <N> en espacio de colores. Este campo est´a pre-
sente junto con el campo NM en el modo -C/--color, y es omitido en caso contrario.
MD:Z:<S> Para las lecturas alineadas, <S> es una cadena que representa las bases de referen-
cia que no coinciden en la alineaci´on. Para alineamientos en espacio de colores, <S>
describe los nucle´otidos de la alineaci´on, no los colores.
XA:i:<N Los alineamientos pertenecen al estrato <N>. V´ease el punto 1.4.3 en la p´agina 18 para
m´as informaci´on acerca de los estratos.
XM:i:<N> Para lecturas que no reportan alineamientos. <N> es 0 si la lectura no tiene alinea-
mientos.
1.5. El indexador bowtie-build
bowtie-build construye un ´ındice “Bowtie” a partir de un conjunto de secuencias de DNA. La
salida generada por bowtie-build son 6 ficheros con extensiones .1.ebwt, .2.ebwt, .3.ebwt, .4.ebwt,
.rev.1.ebwt y .rev.2.ebwt27
. Estos ficheros constituyen el´ındice: son todo lo que se necesita para poder
alinear lecturas cortas. Los ficheros originales con las secuencias de DNA no son usados por Bowtie una
vez que el ´ındice ha sido creado.
27V´ease [3] para m´as informaci´on sobre la transformada de Burrows-Wheeler
31
32. Bowtie usa el algoritmo por bloques de Karkkainen [11] para compensar el tiempo de ejecuci´on y
la memoria usada. bowtie-build tiene tres opciones para gestionar esta compensaci´on: -p/--packed,
--bmax/--bmaxdivn y --dcv. Por defecto, bowtie-build buscar´a la configuraci´on que produzca los me-
jores tiempos de ejecuci´on sin agotar la memoria disponible. Este comportamiento por defecto puede
deshabilitarse mediante la opci´on -a/--noauto.
El indexador ofrece una serie de opciones relacionadas con la “forma” que tendr´a el´ındice, por ejemplo
--offrate se encarga de gestionar qu´e fracci´on de las filas de la transformada de Burrows-Wheeler[3] son
“marcadas”. Todas estas opciones son potencialmente provechosas dependiendo de la aplicaci´on concreta.
Se han establecido los valores predeterminados (que son razonables para la mayor´ıa de los casos) de
acuerdo con nuestros experimentos. V´ease la secci´on 1.4.7 en la p´agina 24 para m´as informaci´on.
Debido a que bowtie-build usa internamente punteros de 32-bit, puede manejar hasta un m´aximo
te´orico de 232
− 1 caracteres en un ´ındice, sin embargo, debido a otras limitaciones, el techo real es algo
menor que eso. Si nuestra referencia sobrepasa los 232
−1 caracteres, bowtie-build mostrar´a un mensaje
de error y abortar´a el proceso. Para resolver este problema, deberemos dividir la secuencia de referencia
en lotes m´as peque˜nos y/o trozos y construir un ´ındice independiente para cada uno.
Si su equipo tiene m´as de 3-4 GB de memoria RAM y quiere aprovechar este hecho para hacer m´as
r´apida la construcci´on del ´ındice, deber´a usar la versi´on de bowtie-build de 64 bits. La versi´on de 32
bits est´a restringida para usar menos de 4 GB de memoria. Si en la zona de descarga de Bowtie no existe
un binario “pre-compilado” deber´a descargar el c´odigo fuente y compilarlo usted mismo.
El indexador de Bowtie se basa en el “´Indice FM” de Ferragina y Manzini[7], que a su vez se basa
en la transformada de Burrows-Wheeler[3]. El algoritmo usado para construir el ´ındice est´a basado en el
algoritmo por bloques de Karkkainen[11].
1.5.1. L´ınea de Comandos
Uso de bowtie-build en la l´ınea de comandos:
bowtie-build [opciones]* <referencia> <ebwt_base>
1.5.1.1. Argumentos Principales
<referencia> Lista de ficheros FASTA que contienen las secuencias de referencia que van a ser ali-
neadas, o, si -c est´a especificada, las propias secuencias. Por ejemplo <referencia>
puede ser chr1.fa, chr2.fa, chrX.fa, o, si -c est´a especificada, GGTCATCCT, ACGGGTCGT,
CCGTTCTATGCGGCTTA.
<ebwt base> El nombre base que se va a usar para nombrar los ficheros del ´ındice. Por defecto,
bowtie-build nombra los ficheros de la siguiente forma NOMBRE.1.ebwt, NOMBRE.2.ebwt,
NOMBRE.3.ebwt, NOMBRE.4.ebwt, NOMBRE.rev.1.ebwt y NOMBRE.rev.2.ebwt, donde
NOMBRE es <ebwt base>.
1.5.1.2. Opciones
-f Los ficheros referencia de entrada (especificados como <referencia>) son fi-
cheros FASTA (usualmente con extensi´on .fa, mfa, fna o similar).
-c Las secuencias de referencia son tomadas por la l´ınea de comandos. Es decir,
<referencia> es una lista separada por comas de secuencias de DNA en lugar
de una lista de ficheros FASTA.
-C/--color Construye un ´ındice basado en espacio de colores, que se va a consultar ha-
ciendo uso de bowtie -C.
32
33. -a/--noauto Desactiva el comportamiento por defecto por el cual bowtie-build selecciona
autom´aticamente los valores para los par´ametros --bmak, --dcv y --packed de
acuerdo con la memoria disponible. En su lugar, el usuario puede especificar
los valores de estos par´ametros. Si la memoria se agota durante la indexaci´on
se mostrar´a un error indicando dicho evento; en dicho caso es responsabilidad
del usuario buscar nuevos par´ametros para evitar dicho error.
-p/--packed Usa una representaci´on empaquetada ( 2 bits por nucle´otido) para las cadenas
de DNA. Esto hace que se ahorre memoria pero hace que la indexaci´on se
vuelva 2-3 veces m´as lenta. Por defecto esta opci´on est´a deshabilitada y se
puede configurar manualmente haciendo uso de la opci´on -a/--noauto.
--bmax <int> El n´umero m´aximo de sufijos permitidos en un bloque. Permitiendo m´as sufijos
por bloque hace que la indexaci´on sea m´as r´apida, pero aumenta el uso de la
memoria. Al usar esta opci´on se reemplaza cualquier valor anterior de --bmax
o --bmaxdivn. Por defecto (en t´erminos el par´ametro --bmaxdivn) el valor es
--bmaxdivn 4. Esto se configura autom´aticamente por defecto; usaremos -a/--
noauto para configurarlo manualmente.
--bmaxdivn <int> El n´umero m´aximo de sufijos permitidos en un bloque, expresado como fracci´on
de la longitud de la secuencia de referencia. Al usar esta opci´on se reemplaza
cualquier valor anterior de --bmax o --bmaxdivn. Por defecto (en t´erminos el
par´ametro –bmaxdivn) el valor es --bmaxdivn 4. Esto se configura autom´ati-
camente por defecto; usaremos -a/--noauto para configurarlo manualmente.
--dcv <int> Usa <int> como per´ıodo de la muestra. Un per´ıodo largo produce menos
sobrecarga de memoria, pero hace la ordenaci´on de sufijos m´as lenta, especial-
mente si hay repeticiones. Debe ser una potencia de 2 menor que 4096. El valor
por defecto es 1024. Esto se configura autom´aticamente por defecto; usaremos
-a/--noauto para configurarlo manualmente.
--nodc Deshabilita el uso de --dcv. La ordenaci´on de sufijos pasa a ser de tiempo
cuadr´atico en el peor caso. Por defecto esta opci´on est´a deshabilitada.
-r/--noref No construye las partes NOMBRE.3.ebwt y NOMBRE.4.EBWT del´ındice, las cuales
contienen una versi´on empaquetada de la secuencia de referencia y es usada
para alineamientos de extremos emparejados.
-3/--justref Construye s´olo las partes NOMBRE.3.ebwt y NOMBRE.4.EBWT, las cuales contie-
nen una versi´on empaquetada de la secuencia de referencia y es usada para
alineamientos de extremos emparejados.
-o/--offrate <int> Para asignar las alineaciones a las posiciones en las secuencias de referen-
cia, es necesario anotar (marcar) algunas o todas las filas de la transformada
de Burrows-Wheeler[3] con su correspondiente ubicaci´on en el genoma. -o-/--
offrate se encarga de cu´antas filas van a ser marcadas: el indexador marcar´a ca-
da 2<int>
filas. Marcar m´as filas produce que las b´usquedas de referencia-
posici´on sean m´as r´apidas, pero requiere de m´as memoria para mantener todas
las anotaciones en tiempo de ejecuci´on. El valor por defecto es 5 (anota 1 fila
cada 32); para el caso del genoma humano las anotaciones ocupan 340 MB.
-t/--ftabchars <int> Ftab es una tabla de b´usqueda utilizada para calcular el rango inicial de la
transformada de Burrows-Wheeler[3] con respecto a los primeros <int> carac-
teres de la consulta. Un <int> m´as grande produce una tabla de b´usqueda
m´as grande, pero tambi´en produce tiempos m´as r´apidos en las consultas. la
ftab tiene un tama˜no de 4<int>+1
bytes. Por defecto, est´a establecido a 10 (la
ftab tiene un tama˜no de 4MB).
--ntoa Convierte Ns en la secuencia de referencia en As antes de construir el ´ındice.
Por defecto, Ns se excluyen del ´ındice y bowtie no informa alineamientos que
las incluyan.
33
34. --big --little Se usar´a el bit menos significativo cuando se serializan enteros en el ´ındice.
Por defecto: little-endian (recomendado para arquitecturas Intel y AMD).
--seed <int> Usa <int> como semilla para el generador de n´umeros pseudo-aleatorios.
--cutoff <int> Indexar´a ´unicamente las primeras <int> bases de la secuencia de referencia e
ignorar´a el resto.
-q/--quiet bowtie-build por defecto est´a en modo “verbose”. Con esta opci´on bowtie-build
s´olo imprimir´a los mensajes de error.
-h/--help Muestra la ayuda de bowtie-build.
--version Muestra la versi´on de bowtie-build instalada en el sistema.
1.6. El inspector de ´ındices bowtie-inspect
bowtie-inspect extrae informaci´on de un ´ındice de Bowtie sobre qu´e tipo de ´ındice y sobre las se-
cuencias de referencia se usaron para construirlo. Cuando se ejecuta sin ninguna opci´on, bowtie-inspect
mostrar´a en la salida un fichero FASTA que contiene las secuencias de referencia originales (con todos los
caracteres que no son A/C/G/T convertidos en Ns). Tambi´en puede ser utilizado para extraer los nombres
de las secuencias de referencia usando la opci´on -n/--names o un resumen m´as detallado mediante la
opci´on -s/--summary.
1.6.1. L´ınea de Comandos
Uso de bowtie-inspect en la l´ınea de comandos:
bowtie-inspect [opciones]* <ebwt_base>
1.6.1.1. Argumentos principales
<ebwt base> El nombre base del ´ındice que va a ser inspeccionado. El nombre base es el nombre
de los ficheros del ´ındice pero sin incluir la terminaci´on .X.ebwt/.rev.X.ebwt etc.
bowtie busca el ´ındice especificado primero en el directorio actual, despu´es en el
subdirectorio indexes dentro del directorio donde bowtie est´a instalado, y finalmente
en el directorio especificado en la variable de entorno BOWTIE_INDEXES.
1.6.1.2. Opciones
-a/--across <int> Al imprimir la salida en formato FASTA, imprime un car´acter de “nueva linea”
cada <int> bases (por defecto: 60).
-n/--names Imprime los nombres de las secuencias de referencia, uno por l´ınea.
-s/--summary Imprime un resumen que incluye informaci´on sobre la configuraci´on del ´ındice,
as´ı como los nombres y longitudes de las secuencias de entrada. El resumen tiene
el siguiente formato:
Colorspace <0 or 1>
SA-Sample 1 in <sample>
FTab-Chars <chars>
Sequence-1 <nombre> <longitud>
Sequence-2 <nombre> <longitud>
34
35. ...
Sequence-N <nombre> <longitud>
Los campos se separan mediante tabuladores.
-e/--ebwt-ref Por defecto, cuando ejecutamos bowtie-inspect sin la opci´on -s o la opci´on -n,
´este recrea las secuencias de nucle´otidos usando los nucle´otidos codificados que
se encuentran en los ficheros .3.ebwt y .4.ebwt del ´ındice. Cuando hacemos
uso de la opci´on -e/--ebwt-ref bowtie-inspect recrea la secuencia de referencia
a partir del fichero .1.ebwt que contiene la secuencia de referencia basada en la
transformada de Burrows-Wheeler[3]. El proceso de recreaci´on es mucho m´as lento
cuando hacemos uso de -e/--ebwt-ref. Adem´as, cuando usamos -e/--ebwt-ref y el
´ındice se basa en espacio de colores, la referencia es imprimida en colores (A=azul,
C=verde, G=naranja,T=rojo).
--verbose Muestra toda la salida generada (se usa para debug).
--version Muestra la versi´on de bowtie-inspect instalada en el sistema.
-h/--help Muestra la ayuda de bowtie-inspect.
35
37. Cap´ıtulo 2
TopHat
2.1. ¿Qu´e es TopHat?
TopHat [20] es un programa que trata de alinear secuencias cortas de RNA dentro de un genoma para
identificar las uniones de empalme exon-exon. Se basa en la alineaci´on ultra r´apida de lecturas cortas de
Bowtie1
para su funcionamiento. TopHat corre ´unicamente en Linux y OS X, para hacerlo funcionar en
Windows deberemos usar alg´un tipo de emulador.
2.2. ¿Qu´e tipo de lecturas podemos usar con TopHat?
En un principio, TopHat fue dise˜nado para trabajar con lecturas producidas por Illumina Genome
Analyzer 2
, aunque muchos usuarios han tenido ´exito al usar TopHat con lecturas provenientes de otras
tecnolog´ıas. En la versi´on 1.1.0 de TopHat se comenz´o a soportar el formato de Espacio de Colores de
Applied Biosystems. Hay que remarcar que TopHat est´a optimizado para lecturas de 75 pares de bases
o m´as.
Actualmente, TopHat no permite hacer inserciones o deleciones peque˜nas (menos de unas pocos
nucle´otidos) dentro de las alineaciones reportadas. El soporte para dicha funcionalidad se pretente a˜nadir
en futuras versiones.
La mezcla de lecturas emparejadas y lecturas simples juntas no est´a permitida en TopHat.
2.3. ¿C´omo encuentra TopHat las uniones?
A la hora de encontrar uniones, Tophat lo hace sin anotaciones de referencia. Primero lo que hace es
mapear las secuencias cortas de RNA en el genoma; acto seguido, Tophat, identifica exones potenciales,
ya que muchas secuencias cortas de RNA se alinear´an de manera continua en el genoma. Usando este
mapeo inicial, TopHat construye una base de datos con todas las uniones posibles, y a continuaci´on,
mapea cada una de las lecturas con su posible uni´on para confirmarlas.
Las m´aquinas de secuenciaci´on en la actualidad producen lecturas cortas de un tama˜no de 100 pares
de bases o superior. Algunos exones son m´as cortos de 100 pares de bases, esto produce que muchos
exones se puedan “perder” en el mapeo inicial. TopHat para solucionar este problema fracciona todas
las lecturas de entrada en fragmentos m´as peque˜nos, y los mapea de forma independiente. En la etapa
final TopHat vuelve a “pegar” los segmentos para as´ı poder producir las alineaciones.
1V´ease el cap´ıtulo 1 en la p´agina 15 para m´as informaci´on
2Illumina Genoma Analyzer es un secuenciador de DNA de la empresa Illumina
37
38. Tophat, a la hora de generar la base de datos de la uniones, hace uso de tres posibles fuentes de
evidencias:
La primera fuente son los emparejamientos de “islas de cobertura”, que se localizan en distintas
regiones de la pila de lecturas de la asignaci´on inicial. Las “islas” vecinas son, a menudo, colocadas
juntas en el transcriptoma; as´ı, TopHat, busca la forma de unirlas con un intr´on.
La segunda fuente s´olo es utilizada cuando TopHat se ejecuta con lecturas de extremos emparejados.
Cuando se lee un par proveniente de diferentes exones de una transcripci´on, por lo general, se
asignan bastante separados en el genoma. Cuando nos encontramos frente a una situaci´on de este
tipo, TopHat trata de “cerrar” la brecha entre ambos mediante la b´usqueda de subsecuencias del
genoma que sean “compa˜neras” de una longitud total igual a la distancia de la brecha. Despu´es de
esto, los intrones de la subsecuencia se a˜nadir´an a la base de datos que genera TopHat.
La tercera, y m´as fuerte fuente de evidencias, se produce cuando dos segmentos de la misma lectura
se asignan lejos uno de otro, o cuando falla el mapeo de un segmento interno. Con lecturas largas (de
m´as de 75 pares de bases), los intrones “GT-AG”, “GC-AG” y “A-AC” se encuentran al principio.
Con cadenas cortas, TopHat s´olo informa alineamientos con los intrones “GT-AG”.
2.4. Prerrequisitos
Como dijimos en la secci´on 2.1 en la p´agina anterior, TopHat est´a basado en Bowtie. Por ello para
poder ejecutar TopHat en nuestro sistema deberemos tener los siguientes ejecutables de Bowtie dentro
de nuestra variable PATH.
bowtie
bowtie-inspect
bowtie-build
Por otro lado, las alineaciones de salida de TopHat usan el formato BAM, por lo que necesitaremos
descargar e instalar SAM tools. Si necesita m´as informaci´on sobre SAM tools puede leer el cap´ıtulo 4 en
la p´agina 69 que habla sobre dicho sistema.
El ´ultimo requisito necesario para hacer funcionar correctamente TopHat en nuestro sistema es que
debe de tener la versi´on 2.4, o superior, de Python.
2.5. Obtener e instalar TopHat
Para obtener TopHat puede ir directamente a la p´agina web de TopHat y descargar los ficheros fuente.
Para compilar los ficheros fuente deberemos seguir lo siguentes pasos:
1. Extraer los ficheros fuente del paquete comprimido.
2. Acceder al directorio extra´ıdo.
3. Ejecutar el comando ./configure para que nos prepare el entorno antes de compilar.
4. Ejecutar el comando make que nos generar´a los ficheros ejecutables.
5. Finalmente para instalar TopHat en nuestro sistema deberemos de ejecutar sudo make install.
De esta forma TopHat quedar´a correctamente instalado y los ejecutables estar´an listos para ser
usados.
En la secci´on 2.6 en la p´agina siguiente podr´a tener informaci´on relevante y de una forma detallada
de todas las opciones que puede usar con TopHat.
38
39. 2.6. Usando el mapeador de uniones TopHat
Veamos una descripci´on detallada del formato que ha de seguir para poder invocar correctamente a
TopHat:
tophat [opciones]* <indice_de_bases> <lecturas1_1 [,... lecturasN_1]>
<lecturas1_2,... lecturasN_2>
Cuando ejecutamos TopHat con extremos emparejados, hay que tener en cuenta que es muy impor-
tante que los ficheros * 1 y * 2 (es decir, los conjuntos de lecturas 1 y 2), tienen que aparecer separados
por comas en listas separadas. Y el orden de estos ficheros tiene que ser el mismo en ambas listas.
2.6.1. Argumentos
indice de bases El nombre base del ´ındice que se debe buscar. El nombre base es
el nombre de los ficheros del ´ındice pero sin incluir la terminaci´on
.1.ebwt/, .rev.1.ebwt etc. bowtie busca el ´ındice especifica-
do primero en el directorio actual, despu´es en el subdirectorio
indexes dentro del directorio donde bowtie est´a instalado, y fi-
nalmente en el directorio especificado en la variable de entorno
BOWTIE_INDEXES.
lecturas1 1 ,. . . lecturasN 1 Lista separada por comas de ficheros que contienen lecturas en
formato FASTA o FASTQ. Cuando ejecutamos TopHat con lec-
turas de finales emparejados, estos deben ser el conjunto * 1.
lecturas1 2,. . . lecturasN 2 Lista separada por comas de ficheros que contienen lecturas en
formato FASTA o FASTQ. S´olo es usado cuando usamos TopHat
con lecturas de finales emparejados, y contiene el conjunto de
ficheros * 2. Los ficheros * 2 deben aparecer en el mismo orden
que los ficheros * 1.
2.6.2. Opciones
-h/--help Muestra la ayuda de TopHat.
-v/--version Muestra la versi´on de TopHat instalada en el sistema.
-o/--output-dir <string> Establece el directorio en el cual TopHat guardar´a las sa-
lidas generadas. Por defecto es el directorio “.tophat out”.
-r/--mate-inner-dist <int> Esta es la distancia (media) esperada entre compa˜neros.
Por ejemplo, para extremos emparejados si ejecutamos con
fragmentos de 300 pares de bases, en los que cada final tiene
50 pares de bases, entonces deberemos establecer -r a 200.
No existe valor por defecto, y es necesario para ejecuciones
con extremos emparejados.
--mate-std-dev <int> La desviaci´on est´andar para la distribuci´on de las distan-
cias internas entre pares compa˜neros. El valor por defecto
es 20 pares de bases.
-a/--min-anchor-length <int> La “longitud del ancla”. TopHat informar´a de uniones ge-
neradas por lecturas con al menos <int> bases en cada
lado de la uni´on. Como m´ınimo debe ser 3 y por defecto
est´a establecido a 8.
39
40. -m/--splice-mismatches <int> El n´umero m´aximo de desajustes que pueden aparecer en
la regi´on “ancla” de una alineaci´on emparejada. El valor
por defecto es 0.
-i/--min-intron-length <int> La longitud m´ınima del intr´on. Tophat ignorar´a pares do-
nante/receptor que est´en m´as cerca de la distancia m´ınima
establecida. El valor por defecto son 70 pares de bases.
-I/--max-intron-length <int> La longitud m´axima del intr´on.
--allow-indels Establece el motor de b´usqueda “indel”3
. La b´usqueda “in-
del” est´a deshabilitada por defecto.
--max-insertion-length <int> Podemos cambiar la longitud m´axima de inserci´on, que por
defecto est´a establecida a 3.
--max-deletion-length <int> Podemos cambiar la longitud m´axima de deleci´on, que por
defecto est´a establecida a 3.
--solexa-quals Usa la escala “Solexa” para los valores de calidad en los
ficheros FASTQ4
.
--solexa1.3-quals En la versi´on 1.3 del “pipeline” Illumina GA, las calidades
Phred van codificadas en base 64. Usaremos esta opci´on
para los ficheros FASTQ dentro del “pipeline” 1.3 o ante-
rior.
-Q/--quals Usaremos esta opci´on para indicarle que las calidades vie-
nen en ficheros separados. Los ficheros con lecturas en es-
pacio de colores (CSFASTA) vienen con las calidades en
ficheros separados.
--integer-quals Los valores de las calidades vienen delimitados por valores
enteros, esto viene por defecto cuando usamos la opci´on
-C/--color.
-C/--color Lecturas en espacio de colores. Hay que tener en cuen-
ta que debemos usar un indexado por espacio de colores
en Bowtie 0.12.6 o superior. El uso t´ıpico es el siguiente
tophat --color --quals
[otras opciones]*
<indice_espacio_de_colores> <lecturas>
<calidades>
-F/--min-isoform-fraction < 0, 0 − 1,0 > TopHat ignora uniones que est´an basadas en pocos alinea-
mientos. Supongamos que tenemos una uni´on que abarca 2
exones, formada por S lecturas. Definamos la profundidad
promedio de cobertura del ex´on A como D, y asumimos
que es mayor que B. Si S/D es menor que “min-isoform-
fraction”, la uni´on no ser´a reportada. El valor 0 deshabilita
el filtro. Por defecto es 0,15.
-p/--num-threads <int> Podemos especificar cu´antos threads se van a usar para
alinear las lecturas. Por defecto ´unicamente usamos un th-
read.
-g/--max-multihits <int> Permite a TopHat que muestre un n´umero m´aximo de ali-
neamientos para una lectura dada, el resto de alineamientos
los descarta. El valor por defecto es 20.
3indel es una contracci´on de “insert-delete”, inserci´on y borrado
4V´ease la seccion A.5 en la p´agina 117 para m´as informaci´on del formato FASTQ
40
41. --no-closure-search Desactiva la b´usqueda de compa˜neros basada en cierres
para uniones. Est´a desactivado por defecto.
--closure-search Activa la b´usqueda de compa˜neros basada en cierres para
los cruces. Hay que tener en cuenta que se debe habilitar
cuando la distancia entre compa˜neros es peque˜na (≤ 50pb)
--no-coverage-search Desactiva la b´usqueda de cobertura para cruces.
--coverage-search Activa la b´usqueda de cobertura para cruces.
--microexon-search Con esta opci´on, tophat intentar´a buscar alineamientos
incidentes en microexones. S´olo funciona para lecturas de
50 pb o mayores.
--butterfly-search TopHat utilizar´a un algoritmo m´as lento, pero potencial-
mente m´as sensible para encontrar uniones, adem´as de
la b´usqueda est´andar. Considere el uso de esta opci´on si
prev´e que su experimento va a producir muchas lecturas
cortas a partir del pre-mRNA, que caer´an dentro de los
intrones de sus transcritos.
--library-type TopHat tratar´a las lecturas de una hebra espec´ıfica. Cada
alineamiento de una lectura tendr´a una etiqueta de atribu-
to XS. Se considera la posibilidad de aportar una librer´ıa
de tipos para seleccionar el correcto protocolo de secuen-
ciaci´on de RNA.
Tipo de la Librer´ıa Ejemplo Descripci´on
fr-unstranded Standard
Illumina
Las lecturas del principio (parte m´as a la izquierda)
del fragmento se alinean en el normal de la hebra, y
las lecturas del final (parte m´as a la derecha) en la
hebra opuesta.
fr-firststrand dUTP, NSR,
NNSR
Igual que en el caso anterior, pero se debe cumplir
la regla de que el extremo m´as a la derecha del frag-
mento es lo primero en ser secuenciado. .
fr-secondstrand Ligation,
Standard
SOLiD
Igual que en el caso anterior, pero se debe cumplir
la regla de que el extremo m´as a la izquierda del
fragmento es lo primero en ser secuenciado.
2.6.3. Opciones Avanzadas
--initial-read-mismatches Las lecturas est´an inicialmente mapeadas, permitiendo m´as des-
ajustes en cada alineamiento. El valor por defecto es 2.
--bowtie-n Tophat usa el modo -v para mapear (el modo por defecto). Con
la opci´on --bowtie-n usamos el modo -n.
--segment-mismatches Los segmentos de lecturas son mapeados independientemente,
permitiendo m´as desajustes en cada alineamiento. El valor por
defecto es 2.
--segment-length Cada lectura se corta en segmentos, y cada uno de ellos tiene el
tama˜no que se le defina en --segment-length. Estos segmentos se
asignan de forma independiente. El valor por defecto es 25.
--min-closure-exon Longitud m´axima entre exones al hacer uso de la b´usqueda de
cierre.
41