SlideShare una empresa de Scribd logo
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
2
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
4
´Indice general
I Manuales de usuario 13
1. Bowtie 15
1.1. ¿Qu´e es Bowtie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. ¿Qu´e no es Bowtie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3. Obtener Bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1. Compilando desde los fuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4. El alineador bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.1. El modo de alineaci´on -n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.2. El modo de alineaci´on -v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.3. Estratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.4. Modos de representaci´on de informes . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.5. Alineamiento de Extremos emparejados . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.6. Alineacion por Espacio de Colores . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.7. Optimizaci´on del rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.8. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.9. Salida por defecto de bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.4.10. Salida en formato SAM de bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5. El indexador bowtie-build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.5.1. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.6. El inspector de ´ındices bowtie-inspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.1. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2. TopHat 37
2.1. ¿Qu´e es TopHat? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2. ¿Qu´e tipo de lecturas podemos usar con TopHat? . . . . . . . . . . . . . . . . . . . . . . . 37
2.3. ¿C´omo encuentra TopHat las uniones? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4. Prerrequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5. Obtener e instalar TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6. Usando el mapeador de uniones TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.3. Opciones Avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6.4. Suministrando nuestras propias uniones . . . . . . . . . . . . . . . . . . . . . . . . 42
2.6.5. Suministrando nuestas propias inserciones y deleciones . . . . . . . . . . . . . . . . 43
2.6.6. Proporcionando a TopHat un fichero de anotaciones . . . . . . . . . . . . . . . . . 43
2.7. Salida de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3. Cufflinks 45
3.1. ¿Qu´e es Cufflinks? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1. ¿C´omo ensambla los transcritos Cufflinks? . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2. ¿C´omo calcula Cufflinks la abundancia de transcritos? . . . . . . . . . . . . . . . . 46
3.1.3. ¿C´omo calcula Cufflinks la distribuci´on de la longitud de los fragmentos? . . . . . 46
3.1.4. ¿C´omo Cufflinks identifica y corrige el sesgo de las secuencias? . . . . . . . . . . . 47
3.1.5. ¿C´omo gestiona Cufflinks las lecturas con m´ultiples alineaciones? . . . . . . . . . . 47
5
3.1.6. ¿C´omo funciona la anotaci´on de referencia basada en transcritos (RABT)? . . . . 47
3.2. ¿Qu´e es Cuffdiff? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1. ¿C´omo prueba Cuffdiff la expresi´on diferencial y la regulaci´on? . . . . . . . . . . . 48
3.2.2. ¿C´omo funciona la normalizaci´on del cuartil superior? . . . . . . . . . . . . . . . . 50
3.2.3. ¿C´omo trata Cuffdiff las r´eplicas biol´ogicas? . . . . . . . . . . . . . . . . . . . . . . 50
3.3. Prerrequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4. Ejecutando Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.2. Opciones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4.3. Opciones avanzadas de estimaci´on de la abundancia . . . . . . . . . . . . . . . . . 53
3.4.4. Opciones avanzadas de ensamblaje . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.5. Opciones avanzadas de anotaciones de referencia basada en Transcritos (RABT) . 54
3.4.6. Opciones avanzadas del programa de comportamiento . . . . . . . . . . . . . . . . 55
3.4.7. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.8. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5. Ejecutando Cuffcompare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.3. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.4. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6. Uniendo ensamblajes con Cuffmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.3. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.4. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.7. Ejecutando Cuffdiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.7.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.7.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.7.3. Opciones avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7.4. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7.5. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.8. Formato de seguimiento FPKM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.9. Biblioteca de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4. SAMtools 69
4.1. ¿Qu´e es SAMtools? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2. Comandos y opciones de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
II Casos pr´acticos 75
5. Arabidopsis Thaliana 77
5.1. Genoma de la A. Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2. Indexaci´on del Genoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3. Experimento SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.4. Experimento SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.4.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.4.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.4.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.4.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.4.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6
5.5. Experimento SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.5.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.5.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.5.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.5.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.5.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Ap´endices 104
A. Formatos de ficheros 107
A.1. SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.1.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.1.2. Cabecera del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
A.1.3. Campos obligatorios de la secci´on de Alineamientos . . . . . . . . . . . . . . . . . 109
A.1.4. Campos opcionales de la secci´on de alineamientos . . . . . . . . . . . . . . . . . . . 112
A.2. BAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
A.3. BED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
A.3.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
A.3.2. Campos obligatorios en el formato BED . . . . . . . . . . . . . . . . . . . . . . . . 114
A.3.3. Campos adicionales u opcionales en el formato BED . . . . . . . . . . . . . . . . . 114
A.3.4. Ejemplo de fichero BED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
A.4. FASTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
A.4.1. L´ınea de cabecera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
A.4.2. Representaci´on de la secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
A.5. FASTQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A.5.1. Formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A.6. GFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.7. GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.7.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.7.2. Campos del formato GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.7.3. Ejemplos del formato GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Bibliograf´ıa 121
7
8
´Indice de Figuras
5.1. Detalle de la Arabidopsis Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2. Ficheros del genoma de la A. Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3. Detalle del Cromosoma 1 de la A.Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4. Ficheros del Genoma indexado de la A.Thaliana . . . . . . . . . . . . . . . . . . . . . . . 79
5.5. Grafico del tama˜no de las lecturas del exp SRP000615 . . . . . . . . . . . . . . . . . . . . 80
5.6. Detalle de las lecturas cortas del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . 81
5.7. Ficheros creados por Tophat en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 83
5.8. Detalle del fichero junctions.bed del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . 83
5.9. Porcentajes de alineamientos en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 84
5.10. Fichero accepted hits.sam del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.11. Fichero genes.fpkm tracking del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 86
5.12. Tiempos ejecuci´on exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.13. Expresi´on diferencial en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.14. Detalle de las lecturas cortas del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . 89
5.15. Ficheros creados por Tophat en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 90
5.16. Porcentajes de alineamientos en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 91
5.17. Fichero accepted hits.sam del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.18. Fichero genes.fpkm tracking del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 94
5.19. Tiempos ejecuci´on exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.20. Expresi´on diferencial en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.21. Detalle de las lecturas cortas del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . 97
5.22. Ficheros creados por Tophat en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 98
5.23. Detalle del fichero junctions.bed del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . 99
5.24. Porcentajes de alineamientos en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 99
5.25. Fichero accepted hits.sam del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.26. Fichero genes.fpkm tracking del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 101
5.27. Tiempos ejecuci´on exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.28. Expresi´on diferencial en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.1. Ejemmplo de lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.2. Ejemplo de fichero SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9
10
´Indice de Tablas
3.1. Descripci´on del fichero transcripts.gtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2. Descripci´on de un registro GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3. Descripci´on del fichero .tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4. Descripci´on del fichero .refmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5. Descripci´on del fichero .tmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6. C´odigo de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.7. Formato de los ficheros de expresi´on diferencial . . . . . . . . . . . . . . . . . . . . . . . . 64
3.8. Formato de los ficheros de uni´on diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.9. Formato de los ficheros de codificaci´on diferencial de salida . . . . . . . . . . . . . . . . . 65
3.10. Formato de los ficheros de uso diferencial del promotor . . . . . . . . . . . . . . . . . . . . 66
3.11. Formato FPKM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.12. Biblioteca de tipos de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.1. Campos obligatorios del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
A.2. Bits de la etiqueta FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
A.3. Operaciones CIGAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
A.4. Campos opcionales del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
A.5. Etiquetas predefinidas del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
A.6. C´odigos de ´acidos nucl´eicos en el formato FASTA . . . . . . . . . . . . . . . . . . . . . . . 116
A.7. C´odigos de amino´acidos en el formato FASTA . . . . . . . . . . . . . . . . . . . . . . . . . 117
11
12
Parte I
Manuales de usuario
13
Alejandro tfm
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
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
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
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
- 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
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
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
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
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
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
-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
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
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
-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
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
-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
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
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
-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
--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
...
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
36
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
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
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
-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
--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
--min-closure-intron Longitud m´ınima del intr´on que se puede encontrar durante la
b´usqueda de cierre. El valor por defecto es 50.
--max-closure-intron Longitud m´axima del intr´on que se puede encontrar durante la
b´usqueda de cierre. El valor por defecto es 5000.
--min-coverage-intron Longitud m´ınima del intr´on que se puede encontrar durante la
b´usqueda por cobertura. El valor por defecto es 50.
--max-coverage-intron Longitud m´axima del intr´on que se puede encontrar durante la
b´usqueda por cobertura. El valor por defecto es 20000.
--min-segment-intron Longitud m´ınima del intr´on que se puede encontrar durante la
b´usqueda por divisi´on de segmentos. El valor por defecto es 50.
--max-segment-intron Longitud m´axima del intr´on que se puede encontrar durante la
b´usqueda por divisi´on de segmentos. El valor por defecto es 500000.
--keep-tmp Hace que TopHat mantenga los ficheros temporales producidos
durante la ejecuci´on. Por defecto, TopHat los elimina despu´es de
la ejecuci´on.
--no-sort-bam El fichero de salida BAM no es ordenado seg´un coordenadas.
--no-convert-bam No se convierte al formato BAM. El fichero de salida es un fichero
SAM de la siguiente forma:
<dir_salida>/accepted_hit.sam. Esta opci´on implica --no-sort-
bam.
-z/--zpacker Especificaremos de forma manual el programa que se usar´a para
comprimir los ficheros temporales; por defecto se usa gzip. No
se tiene porqu´e usar gzip ´unicamente, se pueden usar programas
compatibles como por ejemplo: bzip2, pigz, pbzip2.
2.6.4. Suministrando nuestras propias uniones
Las opciones siguientes nos permiten validar nuestras propias uniones con los datos de nuestro RNA
secuenciado.
-G/--GTF <GTF 2.2 file> Suministramos a TopHat una lista de modelos de anota-
ciones de genes. TopHat utilizar´a los registros de exones
en este archivo para crear un conjunto de uniones de em-
palme para cada gen, y tratar´a de alinear lecturas a estas
uniones incluso si no estuvieran inicialmente cubiertas por
la asignaci´on inicial.
-j/--raw-juncs <.juncs file> Suministramos a TopHat una lista de uniones en bruto.
Las uniones se especifican una por l´ınea, y se hace uso de
tabuladores para separar la informaci´on. Los registros son
de la forma:
<cromosoma> <izq> <der> <+/->
izq y der son coordenadas de bases, y especifican el primer
y el ´ultimo car´acter de la secuencia.
--no-novel-juncs Busca ´unicamente lecturas a trav´es de las uniones indica-
das en el archivo GFF5
o el fichero de uniones.
5V´ease el ap´endice A.6 en la p´agina 118 para m´as informaci´on acerca del formato GFF
42
2.6.5. Suministrando nuestas propias inserciones y deleciones
--insertions/--deletions <.juncs file> Suministramos a TopHat una lista de inserciones y delecio-
nes con respecto a una referencia. Los indels se especifican
una por l´ınea, y se hace uso de tabuladores para separar la
informaci´on. Los registros son de la forma:
<cromosoma> <izq> <der> <+/->
izq y der son coordenadas de bases, y especifican el primer
y el ´ultimo car´acter de la secuencia.
--no-novel-indels Busca ´unicamente lecturas a trav´es de los indels del fichero
suministrado, o deshabilita la detecci´on de indels cuando
no se adjunta ning´un fichero.
2.6.6. Proporcionando a TopHat un fichero de anotaciones
Si opta por suministrar a TopHat un archivo GTF6
con anotaciones de genes, el programa buscar´a las
uniones entre exones en los transcritos anotados. Hay que tener en cuenta que los valores de la primera
columna, que indica d´onde se encuentra localizado el cromosoma o contig, debe coincidir con una se-
cuencia de referencia del ´ındice de Bowtie que est´e utilizando TopHat. Para ver la lista de secuencias de
un ´ındice de Bowtie deberemos usar el comando siguiente:
bowtie-inspect --names tu_indice
2.7. Salida de TopHat
El comando tophat produce una serie de ficheros en el directorio en el cual se invoca. La mayor´ıa de
estos archivos son archivos internos, archivos temporales que se generan para el uso dentro del “pipeline”.
Los archivos de salida m´as importantes son los siguientes:
1. accepted this.bam. Una lista de lecturas alineadas en formato SAM7
.
2. junctions.bed Conjunto de uniones UCSC BED8
reportadas por TopHat. Cada uni´on consta
de dos bloques BED conectados, donde cada bloque es tan largo como la proyecc´on m´axima que
abarca cualquier lectura de la uni´on. La puntuaci´on es el n´umero de alineaciones que abarca la
uni´on.
3. insertions.bed y deletions.bed Conjunto de inserciones y deleciones UCSC BED reportadas
por TopHat.
6V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF
7V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on sobre el formato SAM
8V´ease el ap´endice A.3 en la p´agina 114 para m´as informaci´on del formato BED
43
44
Cap´ıtulo 3
Cufflinks
3.1. ¿Qu´e es Cufflinks?
Cufflinks[21][18] ensambla alineamientos de lecturas de RNA en transcritos, calcula estimaciones de
su abundancia y prueba la expresi´on diferencial y la regulaci´on del transcriptoma. Cufflinks se ejecuta
tanto en m´aquinas con Sistema Operativo Linux como Mac OS X.
3.1.1. ¿C´omo ensambla los transcritos Cufflinks?
Cufflinks construye un peque˜no conjunto de transcritos que “explican” las lecturas observadas en un
experimento de secuencias de RNA. Esto lo realiza reduciendo el problema de ensamblaje a un problema
de emparejamiento m´aximo en grafos bipartitos. En esencia, Cufflinks implementa una demostraci´on
constructiva del Teorema de Dilworth [5] mediante la construcci´on de una relaci´on de cobertura en las
lecturas a alinear, y encontrando un camino de cobertura m´ınimo en el grafo ac´ıclico dirigido de la
relaci´on.
Aunque Cufflinks trabaja muy bien con lecturas de RNA desemparejadas, est´a dise˜nado para trabajar
con lecturas emparejadas. El algoritmo de ensamblaje se encarga expl´ıcitamente de manejar lecturas de
extremos emparejados mediante el tratamiento de un par determinado como un objeto ´unico en la relaci´on
de cobertura. La demostraci´on del Teorema de Dilworth nos dice que se encuentra una cardinalidad
m´axima en el grafo bipartito del cierre transitivo del DAG (Grafo Dirigido Ac´ıclico). Sin embargo, no
necesariamente es ´unica la m´axima cardinalidad encontrada, lo que refleja el hecho de que debido al
tama˜no limitado de los fragmentos de cDNA, no podemos saber con certeza que los resultados de los
eventos de “splicing” alternativo van de la mano de los mismos transcritos. Cufflinks trata de encontrar el
conjunto correcto de transcritos mediante la realizaci´on de un emparejamiento de coste m´ınimo. El costo
de asociar los eventos de splicing est´a basado en la puntuaci´on de “porcentaje de uniones” introducido
en [23].
Este emparejamiento es ampliado a un camino m´ınimo de cobertura del DAG, cada camino representa
un transcrito diferente.
El algoritmo se basa en las ideas que hay detr´as del algoritmo ShoRAH para la estimaci´on de la
abundancia de halotipos en las poblaciones virales, que se describe en [6].
El ensamblador tambi´en toma prestadas algunas ideas introducidas en el algoritmo PASA para anotar
genomas de EST y plena evidencia de la longitud del mRNA, descrito en [8].
Cufflinks est´a implementado en C++ y hace un uso substancial de las librer´ıas Boost, as´ı como
de la librer´ıa de Gr´aficos LEMON, que fue lanzada por Egerv´ary Research Group on Combinational
Optimization (EGRES)
45
3.1.2. ¿C´omo calcula Cufflinks la abundancia de transcritos?
En los experimentos de secuenciaci´on de RNA, los fragmentos de cDNA se ordenan y se asignan
a genes e idealmente a transcritos individuales. Seg´un una normalizaci´on adecuada, cada fragmento
de RNA puede ser utilizado como una medida de la abundancia de los transcritos, y Cufflinks mide
la abundancia de transcritos en fragmentos por kilobase de ex´on por mill´on de fragmentos asignados
(FPKM), que es una analog´ıa a una sola lectura “RPKM”, que fue originalmente propuesto en [17].
En los experimentos de RNA con extremos emparejados, los fragmentos se ordenan a partir de ambos
extremos, siempre que tengan dos lecturas por cada fragmento. Para calcular los niveles de abundancia
de isomorfos, se deben asignar fragmentos a transcritos individuales, lo cual puede ser complejo ya que
una lectura puede alinear m´ultiples isomorfos en el mismo gen. Cufflinks usa un modelo estad´ıstico de
secuenciaci´on de extremos emparejados para obtener una probabilidad de la abundancia de un conjunto
de transcritos de un conjunto de fragmentos. Esta funci´on de verosimilitud (probabilidad) se puede
demostrar que tiene un m´aximo ´unico, el cual Cufflinks encuentra mediante un algoritmo de optimizaci´on
num´erica. El programa multiplica estas probabilidades para calcular la probabilidad general que se podr´ıa
observar en los fragmentos del experimento. Debido a que el modelo estad´ıstico de Cufflinks es lineal, la
funci´on de verosimilitud tiene un valor m´aximo y ´unico, y Cufflinks lo encuentra mediante un algoritmo
de optimizaci´on num´erica.
Cuando algunos isomorfos tienen una abundancia mayor que otros del mismo gen, o cuando el n´umero
de lecturas para esa localizaci´on es menor, este procedimiento num´erico es menos preciso. Para generar
confianza en la abundancia reportada, se ha adaptado el procedimiento de inferencia Bayesiana propuesto
por Jiang Hui y Wing para lecturas simples de RNA en [10].
Usando estos m´etodos estad´ısticos, Cufflinks puede estimar la abundancia de los isomorfos presentes
en una muestra, ya sea con una anotaci´on “de referencia” conocida, o despu´es de un ensamblaje ab-initio
de los transcritos utilizando s´olo el genoma de referencia.
3.1.3. ¿C´omo calcula Cufflinks la distribuci´on de la longitud de los fragmen-
tos?
La distribuci´on de probabilidad de la longitud de los fragmentos juega un papel importante en el
ensamblaje, la estimaci´on de la abundancia y la correcci´on del sesgo. La precisi´on de esta distribuci´on
tendr´a un gran impacto en la exactitud de nuestros resultados.
◦ Si s´olo se proporcionan lecturas con extremos simples, no hay manera de estimar la distribuci´on
emp´ıricamente, por lo que Cufflinks debe usar una distribuci´on aproximada de Gauss, ya sea con
valores por defecto o proporcionados por el usuario1
.
◦ Si el archivo con los alineamientos contiene lecturas con extremos emparejados y se proporciona
un ensamblaje, Cufflinks es capaz de generar la distribuci´on a partir de las lecturas que se mapean
en isomorfismos simples en los genes. Debido a que el ensamblaje proporciona una estructura de
uniones, los intrones pueden ser eliminados de las lecturas emparejadas, proporcionando de esta
forma una estimaci´on m´as precisa.
◦ Si se proporciona lecturas con extremos emparejados y ning´un ensamblaje, Cufflinks buscar´a gran-
des “zonas abiertas” donde los alineamientos no contengan uniones de lecturas. Dentro de esas
“zonas” (o rangos), Cufflinks usar´a la longitud de la lectura para estimar la distribuci´on. Si no
se encuentran suficientes lecturas dentro de estas zonas, Cufflinks calcular´a la distribuci´on aproxi-
mada de Gauss como en el caso de lecturas simples (primer caso). Para asegurar una distribuci´on
emp´ırica primero se ensamblar´a con la Gaussiana y luego la salida GTF2
se ensamblar´a en una
segunda ejecuci´on de Cufflinks.
1V´ease la secci´on 3.4 en la p´agina 51 para m´as informaci´on acerca de las opciones disponibles
2V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on
46
3.1.4. ¿C´omo Cufflinks identifica y corrige el sesgo de las secuencias?
A menudo, en los experimentos de secuenciaci´on de RNA, se presenta una secuencia espec´ıfica a modo
de sesgo en la preparaci´on de la biblioteca que desaf´ıa el supuesto de la cobertura uniforme. Por ejemplo,
una secuencia espec´ıfica de sesgo fue causada por el uso de hex´ameros aleatorios fue identificada en [9].
Debido a que este sesgo es causado generalmente por los cebadores usados, ya sea en la PCR o en la
transcripci´on inversa, ´este aparece cerca de los finales de los fragmentos. Se ha desarrollado un m´etodo
para corregir este sesgo mediante “aprendizaje” de las secuencias que est´an siendo seleccionadas (o
ignoradas) para un experimento concreto, e incluyendo estas medidas para la estimaci´on de la abundancia.
El primer paso en el proceso es generar una estimaci´on de la abundancia inicial sin utilizar la co-
rrecci´on del sesgo. Debido a que diferentes transcritos nos pueden proporcionar diferentes secuencias en
ellos, usamos esta abundancia aproximada para “valorar” las lecturas mediante el nivel de expresi´on del
transcrito en el que se presentan. Esto nos ayuda a evitar que las secuencias que m´as aparecen interfieran
demasiado en el c´alculo del sesgo.
A continuaci´on, volvemos a cada fragmento en el fichero de alineamientos y aplicamos la ponderaci´on
de la abundancia que hemos “aprendido”. Seguimos un modelo diferente para cada extremo de la lectura
ya que el sesgo en la s´ıntesis de la primera y la segunda hebra no es siempre el mismo.
Finalmente, se vuelve a estimar la abundancia con una funci´on de verosimilitud que ha sido adaptada
para tener en cuenta el sesgo de la secuencia, en base a los par´ametros del modelo calculado en el paso
anterior. El resultado es un nuevo conjunto de FPKMs que se ven menos afectados por el sesgo espec´ıfico
de la secuencia.
M´as detalles acerca de este m´etodo pueden encontrarse en [18].
3.1.5. ¿C´omo gestiona Cufflinks las lecturas con m´ultiples alineaciones?
Las lecturas individuales a veces son mapeadas en m´ultiples posiciones en el genoma debido a que la
secuencia se repite y a la homolog´ıa. Por defecto, Cufflinks dividir´a uniformemente cada lectura mapeada
muchas veces en todas las posiciones en las que ha sido asignada. En otras palabras, una lectura asignada
en 10 posiciones contar´a como un 10 % de una lectura en cada posici´on.
Si usamos la correcci´on de lecturas “multi-mapeadas” (-u/--multi-read-correct), Cufflinks mejorar´a su
estimaci´on de inspir´andose (pero con m´as informaci´on) en el m´etodo “rescate” descrito en [17].
Cufflinks primero calcular´a las estimaciones iniciales de la abundancia para todos los transcritos
usando el esquema de divisi´on uniforme. Luego Cufflinks re-estimar´a la abundancia dividiendo cada
lectura “multi-mapeada” probabilisticamente bas´andose en la estimaci´on de la abundancia inicial de los
genes en los que ha sido asignada, la longitud inferida del fragmento y el sesgo del fragmento (si se
est´a usando correcci´on de sesgo).
3.1.6. ¿C´omo funciona la anotaci´on de referencia basada en transcritos (RABT)?
El ensamblaje basado en anotaci´on de referencia pretende aprovechar la informaci´on disponible sobre
el transcriptoma de un organismo para encontrar nuevos genes e isomorfismos. Cuando proporcionamos
una referencia GTF3
(con la opci´on -g/--GTF-guide), los transcritos de referencia son “revestidos” con
lecturas falsas que ayudan en el ensamblaje de los nuevos isomorfos. Estas lecturas falsas se combinan con
las lecturas de la secuencia y se introducen en el ensamblador de Cufflinks. Los “transfrags” ensamblados
son comparados con los transcritos de referencia para determinar si son lo suficientemente diferentes para
ser considerados nuevos. Los que son “marcados” como nuevos seg´un nuestro criterio (v´ease las opciones
de Cufflinks en la secci´on 3.4 en la p´agina 51 para ajustar los par´ametros) se muestran junto con los
transcritos de la anotaci´on.
EL uso de las lecturas falsas se inspir´o en los m´etodos descritos en [22].
3V´ease m´as informaci´on en el ap´endice A.7 en la p´agina 118
47
3.2. ¿Qu´e es Cuffdiff?
Cuffdiff es un programa que usa el motor de cuantifiaci´on de transcritos de Cufflinks para calcular los
niveles de expresi´on de genes y transcritos. Se puede usar para encontrar encontrar genes y transcritos
expresados diferencialmemte, as´ı como genes que est´an siendo regulados diferencialmente en el nivel
transcripcional y post-transcripcional.
3.2.1. ¿C´omo prueba Cuffdiff la expresi´on diferencial y la regulaci´on?
Cuffdiff toma un fichero GTF de transcritos como entrada, junto con dos o m´as ficheros SAM que
contienen los fragmentos alineados para dos o m´as muestras. Esto produce una serie de ficheros de salida
que contienen los resultados de los cambios de los niveles de expresi´on de los transcritos, los transcritos
primarios y los genes. Tambi´en registra los cambios en la abundancia relativa de los transcritos que
comparten una localizaci´on de transcripci´on inicial y en los cambios de la abundancia relativa de los
transcritos primarios de cada gen. Cuffdiff requiere que los transcritos en el fichero de entrada GTF
est´en anotados con ciertos atributos con el fin de buscar cambios en la expresi´on de los transcritos pri-
marios, las uniones, la codificaci´on de salida y el uso del promotor. Estos atributos son los siguientes:
Atributo Descripci´on
tss id El ID de la posici´on de comienzo del transcrito. Determina cual es el
transcrito primario del que se cree que este transcrito proviene.
p id El ID de la secuencia que contiene este transcrito. Este atributo se adjun-
ta a la salida de Cuffcompare4
s´olo cuando se ejecuta con una anotaci´on
de referencia que incluye registros CDS. Adem´as, el an´alisis diferencial
de CDS s´olo se realiza cuando todos los isomorfos del gen tienen el atri-
buto p id , ya que ni Cufflinks ni Cuffcompare asignan un marco abierto
de lecturas a transcritos.
Los atributos anteriores, junto con el gene id requerido por la especificaci´on GTF, hace que cada
transcrito pertenezca a un “grupo de genes”, “grupo de transcritos primarios” o “grupo CDS”. Los
transcritos con el mismo gene id se integran en el mismo grupo de gen, y similarmente, los que tienen el
mismo tss id y p id son parte del mismo grupo de transcritos primarios y grupo CDS. Cuffdiff realiza
un seguimiento de los cambios no solo en el transcrito absoluto, transcrito primario, CDS y los FPKMs
del gen, si no que tambi´en en los cambios relativos dentro de esos grupos.
Para comprobar si una diferencia observada en la expresi´on g´enica es significante, Cuffdiff compara
la relaci´on logar´ıtmica de expresi´on g´enica con dos condiciones contra el de una condici´on. Supongamos
que escribimos la relaci´on de la expresi´on de un transcrito “t” con la condici´on a versus la condici´on b
de la siguiente forma
Y =
FPKMa
FPKMb
El logaritmo de la relaci´on T puede ser usado como una prueba estad´ıstica debido a la cantidad:
T =
E[log(Y )]
V ar[log(Y )]
que es aproximadamente una distribuci´on normal y puede ser calculada como
T =
E[log(Y )]
V ar[log(Y )]
≈
log(F P KMa
F P KMb
)
V ar[F P KMa]
F P KM2
a
+ F P KMb
F P KM2
b
Hay que tener en cuenta que para calcular T, es necesario conocer la variaci´on del nivel de expresi´on
en cada condici´on. La varianza tiene que incluir la variabilidad del n´umero de fragmentos generados por
el transcrito a trav´es de las r´eplicas, y tambi´en debe incorporar cualquier incertidumbre en la estimaci´on
de la expresi´on en si misma. Si el transcrito es el ´unico isomorfo en el gen al que pertenece (y todas sus
48
lecturas se mapean de forma ´unica), no hay incertidumbre en la estimaci´on de la expresi´on. Sin embargo,
si el transcrito es uno de m´ultiples isomorfos, habr´a cierta incertidumbre sobre el nivel de expresi´on de
cada isomorfo. Cuffdiff calcula la variaci´on en el nivel de expresi´on del transcrito como
V ar[FPKMt] =
109
¯l(t) ¯M
2
(V ar[Xt])
Donde
V ar[Xt]
es la variaci´on en el n´umero de fragmentos que provienen de los transcritos a trav´es de las r´eplicas
del experimento. Si no hay repeticiones, este n´umero se supone que es una distribuci´on de Poisson, es
decir, la variaci´on es igual a la media de la cuenta. En general, esto no es un gran modelo, porque la
variaci´on entre repeticiones biol´ogicas tiende a ser mayor que la media. Sin embargo, si el experimento
se repite para cada condici´on, Cuffdiff puede estimar mejor la varianza del n´umero de fragmentos y por
lo tanto ofrecer una expresi´on diferencial m´as exacta. Para genes con isomorfos ´unicos, Cuffdiff modela
la varianza del n´umero de fragmentos usando una distribuci´on binomial negativa, al igual que el m´etodo
descrito por Anders y Huber [1]. Cuando un gen tiene m´ultiples isomorfismos, Cuffdiff incorpora su propia
incertidumbre en la forma en la que asigna fragmento a transcritos en el c´alculo de la varianza del n´umero
de fragmentos. Cuffdiff usa la beta-binomial negativa para modelar la sobredispersi´on y la incertidumbre
de la asignaci´on de fragmentos de forma simult´anea. La beta-binomial negativa es una distribuci´on que
surge cuando se mezclan varias binomiales negativas. Para cada gen, Cuffdiff ajusta los par´ametros de
la beta-binomial negativa (llamados α, β y r) resolviendo el siguiente sistema de ecuaciones:
r(1 − p)
p
= A
r(1 − p)
p2
= B
αβ
(α + β)2(α + β + 1)
=
A4
B4
·
C
r2
Donde A, B y C se definen como:
A = Xg ˆγt
B = VXg ˆγt
C = X2
g ψg
t,t
Y p es:
p =
α − 1
α + β − 1
En las ecuaciones anteriores, Xg es el n´umero de fragmentos que caen sobre cualquier isomorfo del gen
g al que pertenece el transcrito. El valor ˆγt es la proporci´on estimada de fragmentos de la secuenciaci´on
del gen que vienen del transcrito t. El valor ψt,t es la incertidumbre del algoritmo en la propia estimaci´on
de ˆγt. B es la variaci´on de cantidad de transcritos que tienen un recuento medio similar a t. Cuando
se proporcionan replicas a Cuffdiff, los c´omputos de fragmentos se modelan mediante una regresi´on no
lineal, como se describe en el punto 3.2.3 en la p´agina siguiente.
Una vez que tenemos una estimaci´on de la varianza de la abundancia de transcritos en cada condici´on,
se puede calcular el estad´ıstico de prueba. Adem´as, dada la variaci´on de la abundancia para cada isomorfo
de un gen, podemos calcular la varianza de la abundancia de los genes. Cuando buscamos genes con
cambios estad´ısticamente significativos en la expresi´on absoluta, Cufflinks utilizar un t-test para calcular
los valores p de los cambios observados.
49
Como se mencion´o anteriormente, Cufflinks tambi´en busca cambios en la abundancia relativa den-
tro de los grupos biol´ogicamente interesantes de transcritos. Un tipo simple de cambio relativo en la
abundancia de isomorfos es cuando un gen con varios promotores cambia entre ellos dependiendo de las
condiciones. Otro tipo es la inclusi´on o exclusi´on de los exones alternativos. Al agrupar los transcritos
juntos por sus promotores y buscar cambios en ellos y entre los grupos, podemos hacer una hip´otesis sobre
cu´al es el mecanismo regulador (por uniones, transcripcional, etc.) que est´a produciendo esos cambios.
Los cambios en la abundancia relativa son cuantificados mediante la ra´ız cuadrada de la divergencia
de Jensen-Shannon, que tienen algunas caracter´ısticas clave que se necesitan aqu´ı. Para un grupo de
transcritos, podemos escribir sus abundancias relativas p1, p2, . . . , pn de tal manera que sumen 1. La
entrop´ıa de esta distribuci´on discreta p se describe como:
H(p) = −
n
i=1
pi log pi
La divergencia de Jensen-Shannon entre un conjunto de distribuciones p1
, p2
, . . . , pm
se define como
JS(p1
, . . . , pm
) = H
p1
+ . . . + pm
m
−
m
j=1
H(pj
)
m
Es decir, la divergencia JS es la entrop´ıa de la distribuci´on promedio menos el promedio de las
entrop´ıas individuales. Cuffdiff utiliza la ra´ız cuadrada de esta divergencia para medir la “distancia”
entre la abundancia relativa de un grupo de transcritos en dos condiciones de diferencia. Cuffdiff asigna
los valores de p bas´andose en los cambios observados sobre la base de la divergencia JS.
3.2.2. ¿C´omo funciona la normalizaci´on del cuartil superior?
Como se menciona en [2], un peque˜no n´umero de genes abundantes diferencialmente expresados
pueden crear la (incorrecta) impresi´on de que genes menos abundantes tambi´en est´en diferencialmente
expresados. Este problema puede ser mitigado mediante la exclusi´on de estos genes en la normalizaci´on
de los valores de expresi´on del n´umero de lecturas asignadas en cada muestra. Un m´etodo para hacer
esto es el m´etodo llamado “normalizaci´on del cuartil superior”, que ha demostrado ser un buen m´etodo
para aumentar la exactitud diferencial en [2].
Esta correcci´on se lleva a cabo en Cufflinks y Cuffdiff como una opci´on dentro de la l´ınea de comandos.
Si se solicita, Cufflinks/Cuffdiff usar´a el n´umero de lecturas asignadas al cuartil superior en vez de usar
todo el mapa (M) cuando se calcula FPKM.
3.2.3. ¿C´omo trata Cuffdiff las r´eplicas biol´ogicas?
La secuenciaci´on de RNA es un an´alisis muy sensible para la medici´on de la expresi´on g´enica, y
puede ser usada para encontrar los genes que son diferencialmente expresados entre diferentes condi-
ciones. Varios estudios anteriores analizaron m´ultiples bibliotecas gen´omicas a partir del mismo RNA y
encontraron que el RNA es extremadamente reproducible. Estos estudios concluyeron que las t´ecnicas
de replicaci´on de muestras no suelen ser necesarias. Numerosos estudios de secuenciaci´on de RNA han
usado el “modelo de Poisson” para realizar las pruebas de expresi´on g´enica diferencial. Este modelo dice
que la varianza de las replicas en el n´umero de fragmentos generados es igual a la media del n´umero de
fragmentos de ese gen a trav´es de las replicas. Tambi´en nos lleva a algunas m´etodos sencillos para detec-
tar la expresi´on g´enica diferencial de una forma estad´ıstica. Sin embargo, varios estudios recientes han
encontrado que mientas el modelo de Poisson es apropiado para t´ecnicas de replicaci´on del mismo RNA,
puede ser un pobre ajuste para r´eplicas biol´ogicas. Varios grupos han evaluado los modelos alternativos
para la varianza del n´umero de fragmentos con buenos resultados. Para m´as detalles sobre el manejo de
replicas en la secuenciaci´on de RNA deben buscar informaci´on en los art´ıculos [16],[19], [12] y [1].
50
Cuffdiff adopta un enfoque de an´alisis de expresi´on diferencial que es radicalmente diferente de la
mayor´ıa de los otros paquetes de an´alisis de secuencias de RNA. Debido a que Cufflinks calcula la
abundancia de transcritos individuales, esto hace que sea muy sensible a la hora de buscar la expresi´on
diferencial en genes, especialmente cuando hay muchos “splice alternativos”. Sin embargo, con el fin de
hacer frente a la sobredispersi´on, que se sabe que existe entre las r´eplicas biol´ogicas, Cuffdiff se ajusta a
un modelo de variaci´on del n´umero de fragmentos en cada condici´on antes de realizar cualquier prueba.
Cuffdiff utiliza el paquete de regresi´on LOCFIT, creado por Catherine Loader y Jiayang Sun, para este
prop´osito. Cuffdiff modela la sobredispersi´on del n´umero de fragmentos del mismo modo en que Anders
y Huber lo hacen en su paquete DEseq para obtener un modelo de dispersi´on para cada condici´on expe-
rimental. Si s´olo hay una replica disponible en cada condici´on, Cuffdiff agrupa las condiciones para crear
un modelo de dispersi´on. El modelo de dispersi´on, que describe las varianzas del n´umero de fragmento a
trav´es de las r´eplicas, se utiliza para calcular las variaciones en los niveles relativos de expresi´on g´enica
a trav´es de las r´eplicas. son estas variaciones del nivel de expresi´on las que se usan durante las pruebas
de las diferencias entre los niveles de genes y transcritos.
Una de las principales ventajas de usar Cuffdiff para el an´alisis diferencial sobre el resto de he-
rramientas es que Cuffdiff nos dice cu´ales son los genes diferencialmente “emparejados”. Sin embargo,
puede haber una cierta cantidad de variaci´on en la abundancia relativa de los isomorfos alternativos
de un gen dependiendo de las r´eplicas. A fin de captar esa diferencia para su uso en las pruebas de
expresi´on diferencial y regulaci´on, Cuffdiff agrupa los fragmentos antes de calcular la abundancia de los
isomorfos individuales y luego examina la posibilidad de replicar dicho grupo a trav´es de un muestro
por importancia. El modelo de sobredispersi´on producido por LOCFIT se combina con el la estimaci´on
de la incertidumbre por el procedimiento de muestreo por importancia para establecer los par´ametros
de una primera versi´on de una distribuci´on binomial negativa. Esta distribuci´on proporciona un modelo
de variaci´on para el n´umero de fragmentos que se originan en cada isomorfo de un splice alternativo.
Por lo tanto, Cuffdiff no s´olo aprende los niveles de sobredispersi´on del n´umero de fragmentos a trav´es
de las r´eplicas, sino que tambi´en utiliza las r´eplicas para capturar la incertidumbre entre los isomorfos
alternativos de cada gen.
3.3. Prerrequisitos
Para poder ejecutar Cufflinks necesitamos una m´aquina con arquitectura intel que tenga como sistema
operativo Linux o Mac OS X, adem´as de tener instalado GCC 4.0 o superior. Para usar Cufflinks puede
hacer uso de los binarios pre-compilados o compilar los fuentes usted mismo. Si prefiere la opci´on de
compilar los fuentes, necesita instalar previamente en el sistema la librer´ıa Boost de C++. Adem´as, ne-
cesita tener instalado tambi´en SAM tools5
, debido a que las cabeceras y la librer´ıa libbam son necesarias
para construir Cufflinks.
3.4. Ejecutando Cufflinks
Uso de cufflinks en la l´ınea de comandos:
Uso: cufflinks [opciones]* <lecturas_alineadas.(sam/bam)>
A continuaci´on veremos una descripci´on detallada de las opciones usadas para controlar cufflinks.
3.4.1. Argumentos
<lecturas alineadas.(sam/bam)> Un fichero de lecturas alineadas de secuencias de RNA en forma-
to SAM6
. SAM es un est´andar sobre alineamientos de lecturas
cortas, permite a los alineadores fijar etiquetas personalizadas a
5V´ease la secci´on 4 en la p´agina 69 para m´as informaci´on acerca de SAM tools
6V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on sobre el formato SAM
51
alineamientos individuales, y Cufflinks que las alineaciones que
le pasamos tengan ciertas etiquetas. V´ease la secci´on 3.4.7 en la
p´agina 55 para m´as detalles.
3.4.2. Opciones generales
-h/--help Muestra la ayuda de Cufflinks.
-o/--output-dir <dir> Indicamos el nombre del directorio en el cual Cuf-
flinks crear´a los ficheros de salida. El directorio por
defecto es ./.
-p/--num-threads <int> Podemos especificar cu´antos threads se van a usar.
Por defecto ´unicamente usamos un thread.
-G/--GTF <anotaci´on de ref.(gtf/gff)> Con esta opci´on le indicamos a cufflinks que use
la anotaci´on de referencia suministrada (en un fi-
chero GFF7
) para estimar la expresi´on isomorfa.
No va a ensamblar nuevos transcritos, y el pro-
grama va a ignorar las alineaciones que no sean
estructuralmente compatibles con alg´un transcrito
de referencia.
-g/--GTF-guide <anotaci´on de ref.(gtf/gff)> Con esta opci´on le indicamos a cufflinks que
use la anotaci´on de referencia suministrada (en un
fichero GFF) para guiar el ensamblaje RABT 8
.
Los transcritos de referencia ser´an unidos a lectu-
ras “falsas” para proveer informaci´on adicional en
el ensamblaje. En la salida se incluyen todos los
transcritos de referencia, as´ı como cualquier nuevo
gen e isomorfo que se haya ensamblado.
-M/--mask-file <m´ascara.(gtf/gff)> Indicamos a Cufflinks que omita todas las lecturas
que pudieran haber venido de transcritos del fiche-
ro GFF. Se recomienda incluir en el fichero rRNA
anotado, transcritos mitocondriales y otros trans-
critos que se deseen ignorar del an´alisis
-b/--frag-bias-correct <genoma> Proveemos a Cufflinks un fichero multifasta para
que ejecute la detecci´on de sesgo y el algoritmo de
correcci´on para mejorar la precisi´on de las estima-
ciones de la abundancia de transcritos. Acceda a la
secci´on 3.1.4 en la p´agina 47 para m´as informaci´on.
-u/--multi-read-correct Le indica a Cufflinks que haga una estimaci´on ini-
cial de forma m´as precisa para alinear lecturas en
m´ultiples localizaciones a trav´es del genoma. V´ease
la secci´on 3.1.5 en la p´agina 47 para m´as detalles.
--library-type V´ease Biblioteca de Tipos en la secci´on 3.9 en la
p´agina 67.
7V´ease el ap´endice A.6 en la p´agina 118 para m´as informaci´on acerca del formato GFF
8V´ease la secci´on 3.1.6 en la p´agina 47 para m´as informaci´on acerca de RABT
52
3.4.3. Opciones avanzadas de estimaci´on de la abundancia
-m/--frag-len-mean <int> Longitud esperada (de media) de los fragmentos. Por defecto
200 pb.9
-s/--frag-len-std-dev <int> La desviaci´on est´andar para la distribuci´on de longitudes de los
fragmentos. El valor predeterminado es 80 pb.10
-N/--upper-quartile-norm Con esta opci´on, Cufflinks normaliza seg´un el cuartil superior
de la cantidad de fragmentos alineados individualmente en lugar
de hacerlo seg´un el n´umero total de fragmentos secuenciados.
--total-hits-norm Con esta opci´on, Cufflinks cuenta todos los fragmentos, inclu-
yendo todos aquellos que no son compatibles con alguno de los
transcritos de referencia, para calcular el n´umero de aciertos ma-
peados usados en el denominador FPKM. Esta opci´on puede ser
combinada con -N/--upper-quartile-norm. Por defecto est´a acti-
vada.
--compatible-hits-norm Con esta opci´on, Cufflinks cuenta ´unicamente los fragmentos
que son compatibles con algun transcrito de referencia, para
calcular el n´umero de aciertos mapeados usados en el denomina-
dor FPKM. Esta opci´on puede ser combinada con -N/--upper-
quartile-norm. Por defecto est´a desactivada, y puede ser s´olo
usada en combinaci´on con --GTF.
--num-importance-samples <int> Establece el n´umero de muestras relevantes generadas para cada
lugar durante la estimaci´on de la abundancia. Por defecto son
1000.
--max-mle-iterations <int> Establece el n´umero de iteraciones permitidas durante la estima-
ci´on de la m´axima verosimilitud de la abundancia. Por defecto
son 5000.
3.4.4. Opciones avanzadas de ensamblaje
-L/--label Cufflinks informar´a de los “transfrags”11
en formato GTF12
,
con un prefijo tomado mediante esta opci´on. El prefijo por
defecto es “CUFF”.
-F/--min-isoform-fraction < 0,0 − 1,0 > Despu´es de calcular la abundancia de isomorfos para un
gen, Cufflinks ignora los transcritos que “el cree” que tienen
una baja abundancia, debido a que los isomorfos expresa-
dos con unos niveles extremadamente peque˜nos a menudo
no son capaces de ensamblarse, adem´as pueden ser precur-
sores de empalmes incompletos de transcritos procesados.
Este par´ametro tambi´en puede ser usado para ignorar los
intrones que forman parte de pocos alineamientos empal-
mados. El valor por defecto es 0,1, o el 10 % del isomorfo
m´as abundante (el isomorfo m´as importante) del gen.
-j/--pre-mrna-fraction < 0,0 − 1,0 > Algunos protocolos de RNA-seq producen una gran canti-
dad de lecturas que se originan a partir de transcritos em-
palmados incompletos, y estas lecturas pueden confundir
9Cufflinks ahora aprende la longitud media de los fragmentos para un fichero SAM, as´ı que usar esta opci´on no se
recomienda para lecturas con apareamientos finales
10Cufflinks ahora aprende la longitud media de los fragmentos para un fichero SAM, as´ı que usar esta opci´on no se
recomienda para lecturas con apareamientos finales
11Fragmentos de transcritos
12V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF
53
el ensamblaje de los mRNA. Cufflinks usa este par´ametro
para filtrar los alineamientos que se encuentran dentro de
los intervalos intr´onicos implicados por los alineamientos
empalmados. La profundidad m´ınima de cobertura en la
regi´on intr´onica cubierta por la alineaci´on se divide por el
n´umero de lecturas empalmadas, si el resultado es menor
que el valor del par´ametro las alineaciones intr´onicas son
ignoradas. El valor por defecto es del 15 %.
-I/--max-intron-length <int> Longitud m´axima del intr´on. Cufflinks no informar´a de los
transcritos con intrones m´as grandes de este tama˜no e ig-
norar´a los alineamientos SAM con operaciones REF SKIP
CIGAR m´as grandes de este tama˜no. El valor por defecto es
300000.
-a/--junc-alpha < 0,0 − 1,0 > El valor “alfa” para el test binomial.
-A/--small-anchor-fraction < 0,0−1,0 > Las lecturas emparejadas con menos de este porcentaje en
la longitud de cada uno de los lados de la uni´on son consi-
deradas “sospechosas” y son candidatas para ser filtradas
antes del ensamblaje. El valor por defecto es 0,09.
--min-frags-per-transfrag <int> N´umero m´ınimo de fragmentos de RNA por transfrag para
que sea reportado. El valor por defecto es 10
--overhang-tolerance <int> El n´umero de pares de bases permitidas para meter el
intr´on de un transcrito para determinar si una lectura u
otro transcrito es asignable a/compatible con ´el.
--max-bundle-length <int> Longitud gen´omica m´axima permitida para un paquete de-
terminado. El valor por defecto es 3500000 pares de bases.
--min-intron-length <int> Tama˜no m´ınimo permitido del intr´on en el genoma. El va-
lor por defecto es 50 pb.
--trim-3-avgcov-thresh <int> Cobertura promedia m´ınima requerida para intentar el re-
corte 3 . El valor por defeco es 10.
--trim-3-dropoff-frac <int> Fracci´on de cobertura media por debajo de la cual se “cor-
ta” el extremo 3 de un transcrito ensamblado. El valor por
defecto es 0,1.
3.4.5. Opciones avanzadas de anotaciones de referencia basada en Transcri-
tos (RABT)
--3-overhang-tolerance <int> El n´umero de pares de bases permitidos en el extremo 3 de
un transcrito de referencia para determinar si un transcrito
ensamblado debe fusionarse con ´el. El valor por defecto es
600pb.
--intron-overhang-tolerance <int> El n´umero de pares de bases permitidas en el intr´on de un
transcrito de referencia para determinar si un transcrito de
ensamblado debe ser fusionado por el. El valor por defecto es
de 50pb.
--no-faux-reads Esta opci´on desactiva el apilamiento de los transcritos de re-
ferencia con lecturas “falsas”.
54
3.4.6. Opciones avanzadas del programa de comportamiento
-v/--verbose Imprime la informaci´on de estado y de diagn´ostico.
-q/--quiet Omite los mensajes que no sean de advertencias y errores.
--no-update-check Desactiva la comprobaci´on de actualizaciones de Cufflinks.
3.4.7. Ficheros de entrada
Cufflinks toma como fichero de entrada un fichero de alineamientos en formato SAM13
, o un fichero
SAM binario (BAM14
). Aunque Cufflinks acepta alineamientos en formato SAM generados por m´ultiples
alineadores, se recomienda usar TopHat15
. Veamos un ejemplo de alineamiento aceptado por Cufflinks:
s6.25mer.txt-913508 16 chr1 4482736 255 14M431N11M * 0 0 
CAAGATGCTAGGCAAGTCTTGGAAG IIIIIIIIIIIIIIIIIIIIIIIII NM:i:0 XS:A:-
Observe el uso de la etiqueta personalizada XS. Este atributo, que debe tener un valor de “+” ´o “-
”, indica el sentido de la cadena de RNA. Mientras que esta etiqueta puede ser aplicada a cualquier
alineamiento, incluidos los alineamientos no “empalmados”, debe estar presente para todos alineamientos
empalmados (aquellos con una operaci´on “N” en su cadena CIGAR16
).
El fichero SAM que suministramos a Cufflinks debe estar ordenado seg´un la posici´on de referencia. Si
se han alineado las lecturas con TopHat, sus alineamientos estar´an ordenados de forma autom´atica. Si
se usa otra herramienta, debe de asegurarse de que est´an debidamente ordenados de la siguiente forma:
sort -k 3,3 -k 4,4n hits.sam > hits.sam.sorted
3.4.8. Ficheros de salida
Cufflinks produce tres ficheros de salida:
1. transcripts.gtf
Este fichero GTF contiene los isomorfos ensamblados de Cufflinks. Las primeras 7 columnas son
las est´andar de GTF, y la ´ultima columna contiene los atributos, algunos de los cuales tambi´en
est´an estandarizados (“gene id” y “transcript id”). Hay un registro por cada fila de GTF, y cada
registro representa o bien un transcrito o un ex´on dentro de un transcrito. Las columnas se definen
como sigue:
13Para m´as detalles v´ease el ap´endice A.1 en la p´agina 107
14Para m´as detalles v´ease el ap´endice A.2 en la p´agina 114
15V´ease el cap´ıtulo 2 en la p´agina 37
16V´ease el ap´endice A.1.3 en la p´agina 109 para m´as informaci´on acerca de la cadena CIGAR
55
Tabla 3.1: Descripci´on del fichero transcripts.gtf
No
Nombre Ejemplo Descripci´on
1 seqname chrX Nombre del cromosoma o contig
2 source Cufflinks Nombre del programa que ha generado el fichero
3 feature exon Tipo de registro (“transcrito” o “ex´on”)
4 start 77696957 La coordenada m´as a la izquierda del registro
5 end 77712009 La coordenada m´as a la derecha del registro
6 score 77712009 El isomormismo m´as abundante de cada gen tiene asociado la
puntuaci´on 1000. El resto se puntuan con la relaci´on F P KMmenor
F P KMmayor
7 strand + Sentido de la hebra. “+” ´o “-”.
7 frame . Este campo no se usa, ya que Cufflinks no predice los codones de
inicio y parada.
8 attributes . . . Vea la siguiente tabla.
Cada registro GTF es decorado con los siguientes atributos:
Tabla 3.2: Descripci´on de un registro GTF
Atributo Ejemplo Descripci´on
gene id CUFF.1 Identificador del gen de Cufflinks
transcript id CUFF.1.1 Identificador del transcrito de Cufflinks
FPKM 101.267 Nivel de abundancia relativa del isomorfo
frac 0.7647 Reservado
conf lo 0.07 L´ımite inferior del intervalo de confianza del 95 % de la abundancia
de dicho isomorfo
conf hi 0.1102 L´ımite superior del intervalo de confianza del 95 % de la abundan-
cia de dicho isomorfo
cov 100.765 Estimaci´on de la profundidad absoluta de la cobertura de la lec-
tura a trav´es del transcrito entero
full read support yes Cuando hacemos uso del ensamblaje RABT, este atributo infor-
ma de todos los intrones y exones internos que fueron cubiertos
totalmente por lecturas.
2. isoforms.fpkm tracking
Este archivo contiene los valores estimados de los niveles de expresi´on de los isomorfos en el formato
de seguimiento FPKM17
. Tenga en cuenta que como s´olo hay una muestra el formato “q” no se
usa.
3. genes.fpkm tracking
Este archivo contiene los valores estimados de los niveles de expresi´on de los genes en el formato
de seguimiento FPKM. Tenga en cuenta que como s´olo hay una muestra el formato “q” no se usa.
3.5. Ejecutando Cuffcompare
Cufflinks incluye un programa que nos ayuda a analizar los transfrags que hemos ensamblado. El
programa Cuffcompare nos ayuda a :
Comparar los transcritos ensamblados con una anotaci´on de referencia.
Rastrear los transcritos de Cufflinks a trav´es de m´ultiples experimentos (por ejemplo, a trav´es del
tiempo).
Desde la l´ınea de comandos, deberemos usar el siguiente formato:
17V´ease la secci´on 3.8 en la p´agina 66 para m´as informaci´on acerca del formato FPKM
56
cuffcompare [opciones]* <cuff1.gtf> [cuff2.gtf] ... [cuffN.gtf]
3.5.1. Argumentos
<cuff*.gtf> Fichero GTF producido por Cufflinks.
3.5.2. Opciones
-h Muestra la ayuda de Cuffcompare.
-o <pref salida> Todos los ficheros generados por Cufflinks tendr´an este prefijo de salida (por
ejemplo,<outprefix>.loci, <outprefix>.tracking,. . . ). Si no se hace uso de
esta opci´on tendr´an el prefijo de salida por defecto, cuffcmp.
-r Inclu´ımos una anotaci´on de “referencia” mediante un fichero GTF. Cada muestra
se compara con este archivo, y los isomorfos de la muestra son etiquetados como
superposici´on, igualaci´on o nuevo (seg´un sea) 18
.
-R Si hemos usado la opci´on -r, esta opci´on har´a que cuffcompare ignore los trans-
critos de referencia que no solapen a ning´un transcrito en ninguno de los ficheros
cuff1.gtf,. . . , cuffN.gtf. ´Util para ignorar transcritos anotados que no est´an
presentes en las muestras de RNA.
-s <seq dir> Cufflinks mirar´a en los archivos FASTA con la secuencia gen´omica base (un fi-
chero por contig) para ver qu´e lecturas fueron alineadas por alguna funci´on de
clasificaci´on opcional.
-C Permite que los transcritos “contenidos” puedan ser escritos tambi´en en el
<pref salida>.combined.gtffile, con el atributo contained in indicando el
primer transfrag contenedor encontrado.
-V Cuffcompare es un poco m´as detallado acerca de lo que est´a haciendo. Es decir,
muestra m´as detalles del proceso en la salida est´andar.
3.5.3. Ficheros de entrada
Cuffcompare toma como entrada ficheros GTF provenientes de Cufflinks, y opcionalmente puede
recibir una anotaci´on de referencia.
3.5.4. Ficheros de salida
Cuffcompare produce los siguientes ficheros de salida:
1. <pref salida>.stats
Cuffcompare reporta varias estad´ısticas relacionadas con la “exactitud” de los transcritos en cada
muestra cuando son comparados con los datos de la anotaci´on de referencia. Las medidas t´ıpicas de
b´usqueda en los genes de “sensibilidad” y “especificidad” (como se define en [4]) son calculadas en
varios niveles (nucle´otidos, ex´on, intr´on, transcrito, gen) para cada archivo de entrada y se reflejan
en este archivo. Las columnas Sn y Sp muestran los valores de especificidad y sensibilidad de cada
nivel, mientras que las columnas fSn y fSp son variaciones “difusas” de estos mismos c´alculos,
lo que nos permite admitir variaciones muy peque˜nas en las fronteras del ex´on para poder seguir
considerando como coincidencia.
18Vea la definici´on de refmap en en la p´agina siguiente y de tmap en la p´agina 59 para m´as informaci´on
57
2. <pref salida>.combined.gtf
Cuffcompare reporta un fichero GTF que contiene la “uni´on” de todos los transfrags de cada
muestra. Si un transfrag est´a presente en ambas muestras, es reportado una vez en el fichero GTF
combinado.
3. <pref salida>.tracking
Este fichero coteja los transcritos entre muestras. Cada fila contiene la estructura de un transcrito
que est´a presente en uno o m´as ficheros de entrada GTF. Debido a que los transcritos, generalmente,
tienen diferentes ID (a menos que se ensamble las lecturas de RNA a partir de un transcriptoma
de referencia) cuffcompare examina la estructura de cada uno de los transcritos, emparejando
transcritos que tienen las mismas coordenadas para cada uno de sus intrones (siguiendo la misma
direcci´on de la hebra). En los transcritos emparejados pueden diferir la longitud del primer y del
´ultimo ex´on, ya que las longitudes var´ıan de una muestra a otra, debido al car´acter aleatorio de la
secuencia. Veamos un ejemplo de una linea de este fichero:
TCONS_00000045 XLOC_000023 Tcea|uc007afj.1 j 
q1:exp.115|exp.115.0|100|3.061355|0.350242|0.350207 
q2:60hr.292|60hr.292.0|100|4.094084|0.000000|0.000000
En este ejemplo, tenemos un transcrito presente en dos de los ficheros de entrada, llamados
exp.115.0 y 60hr.292.0, no coincide con ning´un transcrito de referencia exactamente, pero com-
parte exones con uc007afj.1, un isomorfo del gen Tcea, como indica el c´odigo de clase j. Veamos
una descripci´on de las columnas m´as detallada:
Tabla 3.3: Descripci´on del fichero .tracking
No
Nombre Ejemplo Descripci´on
1 Transfrag id TCONS 00000045 Identificador ´unico para el transfrag
2 Id del lugar XLOC 000023 Identificador ´unico para la localizaci´on
3 Id de Ref. del gen Tcea El atributo “gene name” del registro de refe-
rencia GTF para el transcrito, o “-” si no exis-
te
4 Id de Ref. del transcrito uc007afj.1 El atributo “transcript id” del registro de
referencia GTF para el transcrito, o “-” si no
existe
5 C´odigo de Clase c V´ease los c´odigos de clase en 3.5.4.1 en la p´agi-
na 60
Cada columna despu´es del quinto tienen el siguiente formato:
qJ:<gene_id>|<transcript_id>|<FMI>|<FPKM>|<conf_lo>|<conf_hi>|<cov>|<len>
Un transcrito no necesita estar presente en todas las muestras para ser incluido en el fichero de
seguimiento. La muestra que no contiene un transcrito tendr´a un “-” en su entrada en la fila de ese
transcrito.
4. <pref salida>.refmap
Se crea un fichero de este tipo por cada fichero de de cufflinks de entrada. En cada fichero, hay
una fila por cada transcrito de referencia, y las columnas son como sigue:
58
Tabla 3.4: Descripci´on del fichero .refmap
No
Nombre Ejemplo Descripci´on
1 Nombre del gen Myog Nombre del gen al que pertenece el transcrito
seg´un el atributo gene name
2 Id del transcrito uc007crl Identificador del transcrito
3 C´odigo de clase c El tipo de emparejamiento entre el transcrito
de Cufflinks en la columna 4 y el transcrito de
referencia. “c” para emparejamiento parcial y
“=” para total
4 Emparejamientos CUFF.23567.0,
CUFF.24689.0
Lista de identificadores de transcritos que em-
parejan con el de referencia.
5. <pref salida>.tmap
Este fichero delimitado por tabuladores muestra los mejores emparejamientos para cada transcrito
de Cufflinks. Hay uno por cada fila, y las columnas son las siguientes:
Tabla 3.5: Descripci´on del fichero .tmap
No
Nombre Ejemplo Descripci´on
1 Nombre del gen Myog Nombre del gen al que pertenece el transcrito
seg´un el atributo gene name
2 Id del transcrito uc007crl Identificador del transcrito
3 C´odigo de clase c El tipo de emparejamiento entre el transcrito
de Cufflinks en la columna 4 y el transcrito de
referencia.
4 Id del Gen (Cuff.) CUFF.23567.0 Identificador, interno de Cufflinks, del gen.
5 Id del Transcrito
(Cuff.)
CUFF.23567.0 Identificador, interno de Cufflinks, del trans-
crito.
6 Fracci´on del iso-
morfo principal
100 La expresi´on del transcrito como fracci´on del
isomorfo principal del gen. (1 − 100)
7 FPKM 1.4567 Valor de FPKM.
8 FPKM conf lo 0.7778 L´ımite interior del intervalo de confianza del
95 % del FPKM
9 FPKM conf hi 1.9776 L´ımite superior del intervalo de confianza del
95 % del FPKM
10 Coverage 3.2687 Estimaci´on de la profundidad absoluta de la
lectura de cobertura a trav´es del transcrito.
11 Length 1426 longitud del transcrito.
12 Id del Isomorfo
principal
CUFF.23567.0 Identificador el Isomorfo principal.
59
3.5.4.1. C´odigo de clases
Si usa cuffcompare con la opci´on -r, las filas de seguimiento contendr´an alguno de los siguientes
valores. Si no hacemos uso de la opci´on -r, las filas contendr´an “-” en la columna de c´odigo de clase.
Tabla 3.6: C´odigo de clases
Prioridad C´odigo Descripci´on
1 = Emparejamiento total de la cadena de intrones
2 c Contenido
3 j Isomorfo potencialmente nuevo (fragmento): al menos una uni´on de em-
palme es compartido con alg´un transcrito de referencia
4 e Un transfrag de ex´on simple solapa a un ex´on de referencia en al menos
10pb en un intr´on de referencia, indica un posible fragmento de pre-
mRNA
5 i Un transfrag cae por completo en un intr´on de referencia
6 o Solapamiento general de exones con un transcrito de referencia
7 p Posible ejecuci´on de la polimerasa en el fragmento (en 2kbases de un
transcrito de referencia)
8 r Repetici´on.
9 u Desconocido, transcrito interg´enico
10 x Solapamiento de exones con referencia en la cadena opuesta
11 s Un intr´on de un transfrag solapa un intr´on de referencia en la cadena
opuesta (probablemente debido a errores de mapeo de la lectura)
12 . S´olo en el fichero .tracking, indica m´ultiples clasificaciones
3.6. Uniendo ensamblajes con Cuffmerge
Cufflinks incluye un script llamado cuffmerge que se puede usar para fusionar varios conjuntos de
ensamblajes de Cufflinks. Si tambi´en tenemos un fichero de referencia GTF disponible, se puede incluir
en cuffmerge para fusionar de una forma m´as elegante los nuevos isomorfos y los isomorfos conocidos
para maximizar la calidad del ensamblaje en general. El prop´osito general de este script es hacer m´as
f´acil la creaci´on de un fichero de ensamblaje GTF adecuado para su uso con Cuffdiff19
. Desde la l´ınea de
comandos deberemos usar cuffmerge de la siguiente forma:
cuffmerge [opciones]* <lista_ensamblajes.txt>
3.6.1. Argumentos
<lista ensamblajes>.txt Archivo de texto “manifiesto” con una lista de los archivos GTF que se
desea unir en un ´unico fichero GTF.
3.6.2. Opciones
-h/--help Muestra la ayuda de cuffmerge.
-o <pre salida> Muestra las estad´ısticas en el fichero indicado.
-g/--ref-gtf Una anotaci´on de “referencia” GTF opcional. Los ensamblados
de entrada se combinan junto con la referencia GTF y se incluyen
en el resultado final.
19V´ease la secci´on 3.2 en la p´agina 48 para m´as informaci´on acerca de Cuffdiff
60
-p/--num-threads <int> N´umero de hilos que se generar´an para realizar el proceso. El
valor por defecto es 1.
-s/--ref-sequence <seq fasta> Este argumento debe apuntar a las secuencias de DNA de re-
ferencia. Si es un directorio, debe contener un fichero fasta por
contig. Si es un fichero multifasta, todos los contigs deben estar
presentes.
3.6.3. Ficheros de entrada
Cuffmerge toma una seria de ficheros GTF de ensamblaje provenientes de Cufflinks. Los ficheros de
entrada se deben especificar dentro de un fichero “manifiesto” con las rutas de los mismos.
3.6.4. Ficheros de salida
Cuffmerge produce un fichero GTF que contiene un ensamblado que fusiona los ensamblados de
entrada.
<outprefix>/merged.gtf
3.7. Ejecutando Cuffdiff
Cufflinks incluye un programa, “Cuffdiff”, que se usa para encontrar cambios significativos en la
expresi´on de los transcritos, uniones y el uso del promotor. Desde la l´ınea de comandos podemos ejecutar
cuffdiff como sigue:
cuffdiff [options]* <transcripts.gtf>
<sample1_replicate1.sam[,...,sample1_replicateM]>
<sample2_replicate1.sam[,...,sample2_replicateM.sam]>...
[sampleN.sam_replicate1.sam[,...,sample2_replicateM.sam]]
3.7.1. Argumentos
<transcritos.(gtf/gff)> Un fichero de transcritos producido por Cufflinks, Cuffcompare u otra
fuente.
<sample1.sam> Un fichero SAM de lecturas alineadas. Si se proporcionan m´as de dos
ficheros, Cuffdiff calcular´a la expresi´on diferencial y la regulaci´on entre
todos los pares de muestras.
3.7.2. Opciones
-h/--help Muestra la ayuda de Cuffdiff.
-o/--output-dir <dir> Establece el directorio en el cual Cuffdiff pondr´a todos los
ficheros de salida. Por defecto es “./”.
-L/--labels <et1,et2,...,etN> Establece una etiqueta para cada muestra, que ser´an incluidas
en los ficheros de salida de Cuffdiff.
-p/--num-threads <int> No
de hilos que se crear´an para ejecutar Cuffdiff.
61
-T/--time-series Encarga a Cuffdiff analizar las muestras suministradas como
una serie temporal, en lugar de pruebas para las diferencias
entre los pares de muestras. Las muestras deben ser propor-
cionadas incrementalmente a lo largo del tiempo a trav´es de
la l´ınea de comandos (por ejemplo, primera marca de tiempo
FICHERO SAM, segunda marca de tiempo FICHERO SAM,
. . . ).
-N/--upper-quartile-norm Con esta opci´on, Cufflinks normaliza por el cuartil superior de
la cantidad de fragmentos mapeados por cada locus en lugar
del total de fragmentos secuenciados. Esto puede mejorar la
robustez del c´alculo de la expresi´on diferencial de genes y
transcritos menos abundantes.
--total-hits-norm Con esta opci´on, Cufflinks cuenta todos los fragmentos, in-
cluyendo los que no son compatibles con ning´un transcrito de
referencia, para calcular el n´umero de fragmentos mapeados
utilizado en el denominador FPKM. Por defecto est´a inactivo.
--compatible-hits-norm Con esta opci´on, Cufflinks cuenta s´olo aquellos fragmentos
compatibles que alg´un transcrito de referencia para calcular
el n´umero de fragmentos usados en el denominador FPKM.
Por defecto est´a activado.
-b/--frag-bias-correct <genoma.fa> Proporciona a Cufflinks un fichero multifasta con lecturas ma-
peadas para que se ejecute usando nuestro sesgo de detecci´on
y algoritmo de correcci´on. V´ease la secci´on 3.1.4 en la p´agi-
na 47 para m´as informaci´on.
-u/--multi-read-correct Le indicamos a Cufflinks realizar un procedimiento de esti-
maci´on inicial de mayor precisi´on para mapear lecturas en
m´ultiples posiciones en el genoma. V´ease la secci´on 3.1.5 en
la p´agina 47 para m´as informaci´on.
-c/--min-alignment-count <int> N´umero m´ınimo de alineaciones en un locus necesarias para
realizar las pruebas de significancia en dicho locus observadas
entre muestras. El valor por defecto son 10 alineaciones.
-M/--mask-file <mask.(gtf/gff)> Indica a Cuffdiff ignorar todas las lecturas que pudieran ha-
ber salido de los transcritos del fichero GTF que recibe por
par´ametro.
--FDR <float> La tasa de falso “descubrimiento” permitido. El valor por
defecto es 0,05.
3.7.3. Opciones avanzadas
--library-type V´ease la secci´on 3.9 en la p´agina 67 para m´as informaci´on.
-m/--frag-len-mean <int> Longitud (media) esperada del fragmento. El valor por de-
fecto es 200pb.
-s/--frag-len-std-dev <int> Desviaci´on est´andar para la distribuci´on de longitudes de
los fragmentos. El valor por defeco es 80pb.
--num-importance-samples <int> Establece el n´umero de muestras importantes generadas
para cada lugar durante la estimaci´on de la abundancia.
El valor por defecto es 1000.
62
--max-mle-iterations <int> Establece el n´umero de iteraciones permitidas durante la
estimaci´on de la m´axima verosimilitud de la abundancia.
El valor por defecto es 5000.
-v/--verbose Muestra las actualizaciones de estado y dem´as informaci´on
de diagn´ostico.
-q/--quiet Suprime los mensajes que no sean advertencias serias y
errores.
--no-update-check Desactiva la comprobaci´on autom´atica de actualizaciones.
--poisson-dispersion Usa el modelo de dispersi´on basado en Poisson.
--emit-count-tables Cuffdiff generar´a un fichero para cada condici´on (llamado
<sample> counts.txt) que contendr´a el n´umero de frag-
mentos, las varianzas y el modelo de la varianza ajustada.
-F/--min-isoform-fraction <0.0-1.0> Cuffdiff redondear´a a cero la abundancia de los isomorfos
alternativos cuantificados por debajo de la fracci´on espe-
cificada de isomorfos principales. El valor por defecto es
1 · 10−5
, y se recomienda no tocar este par´ametro
3.7.4. Ficheros de entrada
Cuffdiff toma un archivo GTF2/GTF320
de transcritos como entrada, junto con dos o m´as archivos
SAM que contienen los fragmentos alineados para dos o m´as muestras. Cuffdiff produce una serie de
ficheros de salida que contienen resultados de las pruebas de los cambios en los niveles de expresi´on de
transcritos, transcritos primarios y genes. Adem´as registra los cambios en la abundancia de los transcritos
que comparten un mismo sitio de inicio, y en la abundancia relativa de los transcritos primarios de cada
gen. El seguimiento de los primeros permite ver los cambios en la uni´on, y los segundos ver los cambios
en el uso del promotor dentro de un gen. Si se tiene m´as de una r´eplica de una muestra, se deben
suministrar los ficheros SAM para la muestra separados por comas. No es necesario tener el mismo
n´umero de repeticiones para cada muestra.
3.7.5. Ficheros de salida
1. Ficheros FPKM
Cuffdiff calcula el FPKM de cada transcrito, transcrito primario y genes en cada muestra. El FPKM
de los transcritos y genes se calcula sumando el FPKM de los grupos de transcritos primarios o
grupo de genes. Los resultados se emiten en ficheros FPKM de seguimiento en el formato descrito
m´as abajo. Hay cuatro archivos FPKM de seguimiento:
isoforms.fpkm tracking FPKM de los transcritos.
genes.fpkm tracking FPKM de los genes.
cds.fpkm tracking FPKM de la codificaci´on de la secuencia.
tss groups.fpkm tracking FPKM de los transcritos primarios.
2. Test de expresi´on diferencial
Este fichero delimita los resultados de las pruebas de expresi´on diferencial entre las muestras. Para
cada par de pruebas x e y se crean cuatro ficheros:
isoform exp.diff FPKM diferencial de los transcritos.
gene exp.diff FPKM diferencial de los genes.
tss group exp.diff FPKM diferencial de los transcritos primarios.
20V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF
63
cds exp.diff FPKM diferencial de la codificaci´on de la secuencia.
Cada uno de estos ficheros tiene el siguiente formato:
Tabla 3.7: Formato de los ficheros de expresi´on diferencial
No
Nombre Ejemplo Descripci´on
1 Id XLOC 000001 Identificador ´unico que representa al trans-
crito, gen, transcrito primario o CDS que
est´a siendo probado.
2 Gen Lypla1 El gen name o gene id que est´a siendo proba-
do.
3 Locus chr1:4797771
-4835363
Coordenada gen´omica del gen o transcrito.
4 Muestra 1 Liver Etiqueta de la primera muestra.
5 Muestra 2 Brain Etiqueta de la segunda muestra.
6 Estado NOTEST Puede ser OK, NOTEST, LOWDATA o FAIL.
7 FPKMx 8.01089 FPKM del gen de la muestra x.
8 FPKMy 8.551545 FPKM del gen de la muestra y.
9 ln(FPKMy/FPKMx) 0.06531 El logaritmo de la relaci´on y/x
10 Estadisticas 0.860902 El valor de la prueba estad´ıstica utilizada para
calcular la importancia de los cambios obser-
vados en FPKM.
11 Valor de p 0.389292 El valor p sin corregir de la prueba estad´ıstica.
12 Valor de q 0.985216 El valor p FDR-ajustado de la prueba es-
tad´ıstica.
13 Significado no Puede ser “yes” o “no”, dependiendo de si p es
mayor que el FDR despu´es de la correcci´on de
Benjamini-Hochberg para m´ultiples pruebas.
64
3. Test de uniones diferenciales - splicing.diff
Este fichero lista, para cada transcrito primario, la cantidad de uniones diferenciales que existen
entre los isomorfos procesados a partir de un ´unico transcrito primario. S´olo los transcritos primarios
de los que dos o m´as se empalman se enumeran en este archivo.
Tabla 3.8: Formato de los ficheros de uni´on diferencial
No
Nombre Ejemplo Descripci´on
1 Id TSS10015 Identificador ´unico que representa al transcrito, gen, trans-
crito primario o CDS que est´a siendo probado.
2 Gen Rtkn El gen name o gene id que est´a siendo probado.
3 Locus chr6:83087311
-83102572
Coordenada gen´omica del gen o transcrito.
4 Muestra 1 Liver Etiqueta de la primera muestra.
5 Muestra 2 Brain Etiqueta de la segunda muestra.
6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL.
7 Reservado 0
8 Reservado 0
9 JS(x, y) 0.22115 La sobrecarga del empalme del primer transcrito, medida
como la ra´ız cuadrada de la divergencia de Jensen-Shannon
calculada sobre la abundancia relativa de las variantes del
empalme.
10 Estad´ısticas 0.22115 El valor de la prueba estad´ıstica utilizada para calcular la
importancia de la sobrecarga observada, igual a JS(x, y)
11 Valor de p 0.000174982 El valor p sin corregir de la prueba estad´ıstica.
12 Significado yes Puede ser “yes” o “no”, dependiendo de si p es mayor que el
FDR despu´es de la correcci´on de Benjamini-Hochberg para
m´ultiples pruebas.
4. Codificaci´on diferencial de salida - cds.diff
Este fichero lista, para cada gen, la cantidad de sobrecarga detectada entre sus secuencias de
codificaci´on, es decir, la cantidad de CDS diferencial de salida existente entre muestras. S´olo los
genes productores de dos o m´as CDS distintos (es decir, genes multiprot´eicos) son listados aqu´ı.
Tabla 3.9: Formato de los ficheros de codificaci´on diferencial de salida
No
Nombre Ejemplo Descripci´on
1 Id XLOC 000002 Identificador ´unico que representa al transcrito, gen, trans-
crito primario o CDS que est´a siendo probado.
2 Gen Atp6v1h El gen name o gene id que est´a siendo probado.
3 Locus chr1:5073200
-5152501
Coordenada gen´omica del gen o transcrito.
4 Muestra 1 Liver Etiqueta de la primera muestra.
5 Muestra 2 Brain Etiqueta de la segunda muestra.
6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL.
7 Reservado 0
8 Reservado 0
9 JS(x, y) 0.0686517 La sobrecarga del empalme del primer transcrito, medida
como la ra´ız cuadrada de la divergencia de Jensen-Shannon
calculada sobre la abundancia relativa de las variantes del
empalme.
10 Estadisticas 0.0686517 El valor de la prueba estad´ıstica utilizada para calcular la
importancia de la sobrecarga observada, igual a JS(x, y)
11 Valor de p 0.00546783 El valor p sin corregir de la prueba estad´ıstica.
12 Significado yes Puede ser “yes” o “no”, dependiendo de si p es mayor que el
FDR despu´es de la correcci´on de Benjamini-Hochberg para
m´ultiples pruebas.
65
5. Uso diferencial del promotor - promoters.diff
Este fichero lista, para cada gen, la cantidad de sobrecarga detectada entre sus transcritos primarios,
es decir, que uso diferencial del promotor existe entre muestras. S´olo los genes productores de dos
o m´as transcritos primarios distintos son listados aqu´ı.
Tabla 3.10: Formato de los ficheros de uso diferencial del promotor
No
Nombre Ejemplo Descripci´on
1 Id XLOC 000019 Identificador ´unico que representa al transcrito, gen, trans-
crito primario o CDS que est´a siendo probado.
2 Gen Tmem70 El gen name o gene id que est´a siendo probado.
3 Locus chr1:16651657
-16668357
Coordenada gen´omica del gen o transcrito.
4 Muestra 1 Liver Etiqueta de la primera muestra.
5 Muestra 2 Brain Etiqueta de la segunda muestra.
6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL.
7 Reservado 0
8 Reservado 0
9 JS(x, y) 0.0124768 La sobrecarga del empalme del primer transcrito, medida
como la ra´ız cuadrada de la divergencia de Jensen-Shannon
calculada sobre la abundancia relativa de las variantes del
empalme.
10 Estad´ısticas 0.0124768 El valor de la prueba estad´ıstica utilizada para calcular la
importancia de la sobrecarga observada, igual a JS(x, y)
11 Valor de p 0.394327 El valor p sin corregir de la prueba estad´ıstica.
12 Significado no Puede ser “yes” o “no”, dependiendo de si p es mayor que el
FDR despu´es de la correcci´on de Benjamini-Hochberg para
m´ultiples pruebas.
3.8. Formato de seguimiento FPKM
Los archivos FPKM usan un formato gen´erico para mostrar valores de expresi´on estimados. Cada
archivo FPKM tiene el siguiente formato:
66
Tabla 3.11: Formato FPKM
No
Nombre Ejemplo Descripci´on
1 tracking id TCONS 00000001 Identificador ´unico describiendo al objeto
2 class code = El c´odigo de clase del objeto
3 nearest ref id NM 008866.1 El transcrito de referencia al que se refiere el
c´odigo de clase, si existe
4 gene id NM 008866 El gene id asociado con el objeto
5 gene short name Lypla1 El gene short name asociado con el objeto
6 tss id TSS1 El tss id asociado con el objeto
7 locus chr1:4797771
-4835363
Coordenadas en el genoma para una mejor vi-
sualizaci´on del objeto
8 length 2447 El n´umero de pares de bases en el transcrito
9 coverage 43.4279 Estimaci´on de la profundidad absoluta de la
lectura de cobertura a trav´es del objeto
10 status OK Puede ser OK, LOWDATA o FAIL
11 q0 FPKM 8.01089 FPKM del objeto en la muestra 0
12 q0 FPKM lo 7.03583 L´ımite inferior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 0
13 q0 FPKM hi 8.98595 L´ımite superior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 0
14 q1 FPKM 8.55155 FPKM del objeto en la muestra 1
15 q1 FPKM lo 7.77692 L´ımite inferior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 1
16 q1 FPKM hi 9.32617 L´ımite superior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 1
3N + 11 qN FPKM 7.34115 FPKM del objeto en la muestra N
3N + 12 qN FPKM lo 6.33394 L´ımite inferior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 0N
3N + 13 qN FPKM hi 8.34836 L´ımite superior del intervalo de confianza del
95 % en el FPKM del objeto en la muestra 0N
3.9. Biblioteca de Tipos
En los casos en que Cufflinks no puede determinar la plataforma y/o el protocolo usado para generar
las lecturas de entrada, se puede proporcionar esta informaci´on de forma manual, lo que permite a
Cufflinks inferir informaci´on del origen de ciertos protocolos.
Tabla 3.12: Biblioteca de tipos de Cufflinks
Tipo 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 fragmento 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.
67
68
Cap´ıtulo 4
SAMtools
4.1. ¿Qu´e es SAMtools?
SAMtools es un conjunto de utilidades para manipular alineamientos en el formato BAM1
. SAM-
tools importa y exporta en formato SAM (Sequence Alignment/Map), ordena, une e indexa, y permite
recuperar las lecturas de cualquier regi´on con rapidez.
SAMtools est´a dise˜nado para trabajar dentro de un flujo de trabajo. Muchos de los comandos pueden
ser combinados con tuber´ıas de Unix. Todos los mensajes de error y alerta son mostrados en la salida
est´andar (stderr).
Tambi´en es capaz de abrir un fichero BAM (no SAM) en un servidor FTP o HTTP remoto si la
ruta del fichero comienza por ftp:// o http://. SAMtools comprueba el directorio de trabajo actual
en busca del archivo ´ındice. SAMtools no recupera el archivo de alineamientos entero a no ser que se lo
indiquemos expresamente.
4.2. Comandos y opciones de SAMtools
Veamos el conjunto de comandos y las opciones de cada uno de ellos que nos facilita SAMtools:
view Extrae/imprime todos o una porci´on de alineamientos en formato SAM o BAM. Si no se es-
pecifica ninguna regi´on, se imprimir´an todos los alineamientos; por contra, si especificamos
una regi´on en concreto, entonces ´unicamente se mostrar´an lo s alineamientos que caigan
en dicha regi´on. Una regi´on puede ser indicada, por ejemplo, en el siguiente formato: chr2
(el cromosoma chr2 entero), chr2:1000000 (la regi´on que comienza en el 1000000pb) o
chr2:1,000,000-2,000,000 (la regi´on comprendida entre 1000000 − 2000000pb).
Formato
samtools view [-bchuHS] [-t in.refList] [-o output]
[-f reqFlag] [-F skipFlag] [-q minMapQ] [-l library] [-r readGroup]
[-R rgFile] <in.bam>|<in.sam> [region1 [...]]
Opciones:
-b Salida en formato BAM.
-f INT S´olo muestra los alineamientos que tengan en el campo FLAT los bits INT
presentes.
-F INT Omite los alineamientos con los bits presentes en INT.
1V´ease el ap´endice A.2 en la p´agina 114 para m´as informaci´on acerca del formato BAM
69
-h Incluye la cabecera en la salida.
-H S´olo muestra la cabecera.
-l LIB S´olo muestra las lecturas de la librer´ıa LIB.
-o FICH Fichero de salida.
-q INT Omite lecturas con MAPQ menores que INT.
-r CAD S´olo muestra lecturas en el grupo CAD.
-R FICH Muestra las lecturas de los grupos listados en FICH.
-S El formato de entrada es formato SAM.
-c En lugar de mostrar todos los alineamientos, s´olo los cuenta y muestra el total.
Todas las opciones de filtrado son tomadas en cuenta.
-t FICH El fichero est´a delimitado por tabuladores y cada l´ınea debe contener el nom-
bre de referencia y la longitud de referencia. Cada l´ınea debe debe contener
una referencia ´unica y los campos adicionales son ignorados. Este fichero tam-
bi´en define el orden de clasificaci´on de las secuencias de referencia. Si ejecuta
samtools faidx <ref.fa> el fichero indexado resultante <ref.fa>.fai pue-
de ser usado como fichero <in.ref lst>.
-u Salida en formato BAM no comprimido. Esta opci´on guarda el tiempo dedicado
a la compresi´on/descompresi´on y nos da la posibilidad de canalizarlo a otro
comando de SAMtools mediante tuber´ıas.
Ejemplo
samtools view -bt ref_list.txt -o aln.bam aln.sam.gz
tview Visualiza alineamientos en formato texto (basado en la librer´ıa ncurses). En el visor, pre-
sione ‘?’ para mostrar la ayuda y presione ‘g’ para verificar el inicio de un alineamiento en
una regi´on en el formato chr10:10,000,000 o =10,000,000 al ver la secuencia de referencia.
Formato
samtools tview <in.sorted.bam> [ref.fasta]
Ejemplo
samtools tview aln.sorted.bam ref.fasta
mpileup Generar un BCF o pila para uno o varios archivos BAM. Los registros de alineamientos
son agrupados por los identificadores de la muestra en las l´ıneas de cabecera @RG. Si los
identificadores de la muestra no est´an, cada fichero de entrada es considerado como una
muestra.
En el formato apilado (sin -u o -g) cada l´ınea representa una posici´on gen´omica, consistente
en el nombre del cromosoma, unas coordenadas, una base de referencia, unas lecturas base,
unas calidades de lecturas y unas calidades de mapeo de alineamiento. La informaci´on sobre
el ajuste, desajuste, indel, calidad del mapeo y el inicio y fin de la lectura son codificadas
en la columna base de la lectura.
Formato
samtools mpileup [-EBug] [-C capQcoef] [-r reg] [-f in.fa] [-l list]
[-M capMapQ] [-Q minBaseQ] [-q minMapQ] in.bam [in2.bam [...]]
Opciones de entrada:
-6 Asume que la calidad est´a en la cofificaci´on Illumina 1.3.
70
-B Desactiva la realineaci´on probabil´ıstica para el c´alculo de la base de la calidad
de la alineaci´on (BAQ). BAQ es la probabilidad en la escala Phred que una
lectura est´e desalineada. La aplicaci´on de esta opci´on ayuda a reducir los falsos
SNPs causados por los desajustes.
-b FICH Lista de ficheros BAM, un fichero por l´ınea.
-C INT Coeficiente para disminuir la calidad del mapeo para aquellas lectura que con-
tengan muchos desajustes.
-d INT Lee un m´aximo de INT lecturas de una entrada BAM.
-E C´alculo BAQ extendido. Esta opci´on ayuda a la sensibilidad principalmente
para los MNPs, pero puede perjudicar un poco.
-f FICH Fichero indexado de referencia mediante faidx en formato FASTA. El fichero
puede estar comprimido mediante razip.
-l FICH Fichero BED o una lista de ficheros que contienen regiones o localizaciones
donde generar BCF o ficheros apilados2
.
-q INT Calidad m´ınima de mapeo para que un alineamiento sea usado.
-Q INT Calidad base m´ınima para que una base sea considerada.
-r CAD S´olo genera una pila en la regi´on delimitada por CAD.
Opciones de entrada:
-D Profundidad en la salida de cada lectura por muestra.
-g Calcula las probabilidades del genotipo y genera un fichero binario BCF.
-u Similar a -g excepto que la salida es un fichero BCF sin comprimir, que es
mejor para su uso en tuber´ıas.
Opciones para el c´alculo de probabilidades del Genotipo:
-e INT Probabiliad en escala Phred de que exista un error de secuencia en un espacio
de extensi´on. Reducir el valor de INT conduce a indels m´as grandes.
-h INT Coeficiente de error de modelado de homopol´ımeros.
-I No realiza una recolecci´on de indels.
-L INT Omite la recolecci´on de indels si la profundidad media por muestra est´a por
encima de INT.
-o INT Probabiliad en escala Phred de que exista un error de secuencia en un espacio
abierto. Reducir el valor de INT conduce a recoger m´as indels.
-P CAD Lista separada por comas de plataformas (delimitadas por @RG-PL) de las cua-
les se obtienen los candidatos indels. Se recomienda recoger los indles candida-
tos a partir de tecnolog´ıas de secuenciaci´on que tengan una tasa baja de error
de indels como puede ser ILLUMINA.
Ejemplo
samtools mpileup -C50 -gf ref.fasta -r chr3:1,000-2,000 in1.bam in2.bam
reheader Reemplaza la cabecera en in.bam con la cabecera de in.header.sam. Este comando es
mucho m´as r´apido que reemplazar la cabecera con una conversi´on BAM->SAM->BAM.
Formato
samtools reheader <in.header.sam> <in.bam>
2V´ease el comando mpileup para m´as informaci´on acerca de BCF y pilas
71
cat Concatena ficheros BAM. El diccionario de secuencias de cada entrada BAM debe ser
id´entico, aunque este comando no lo comprueba.
Formato
samtools cat [-h header.sam] [-o out.bam] <in1.bam> <in2.bam> [ ... ]
sort Ordena alineamientos por su extremo izquierdo. Se crear´a un fichero nuevo <out.prefix>.bam
con el contenido ordenado.
Formato
samtools sort [-no] [-m maxMem] <in.bam> <out.prefix>
Opciones:
-o Muestra los alineamientos en la salida est´andar.
-n Ordena por el nombre de las lecturas en vez de las coordenadas en el cromo-
soma.
-m INT Aproximadamente el m´aximo de memoria requerida.
Ejemplo
samtools sort aln.bam aln.sorted
merge Combina m´ultiples alineamientos ordenados. La cabecera de referencia de todos los ficheros
BAM, as´ı como el @SQ del fichero inh.sam, si existe, deben hacer referencia al mismo
conjunto de secuencias de referencia.
Formato
samtools merge [-nur1f] [-h inh.sam] [-R reg] <out.bam>
<in1.bam> <in2.bam> [...]
Opciones:
-1 Usa el nivel de compresi´on 1 de zlib para comprimir la salida.
-f Fuerza la sobreescritura del fichero de salida si existe.
-h FICH Usa las l´ıneas del fichero como cabeceras ‘@’, que ser´an copiadas en out.bam.
El fichero debe estar en formato SAM
-n Los alineamientos de entrada est´an ordenados por el nombre de las lecturas en
vez de las coordenadas en el cromosoma.
-R CAD Combina los ficheros en la regi´on especificada en CAD.
-r Adjunta una etiqueta @RG a cada alineamiento. El valor de la variable se infiere
de los nombres de los ficheros.
-u BAM de salida sin comprimir.
Ejemplo
samtools merge out.bam in1.bam in2.bam in3.bam
index Indexa los alineamientos ordenados para un acceso aleatorio m´as r´apido. Se crear´a un fichero
de ´ındice con extensi´on .bai.
Formato
samtools index <aln.bam>
Ejemplo
72
samtools index aln.sorted.bam
idxstats Recupera e imprime las estad´ısticas en el archivo del ´ındice.
Formato
samtools idxstats <aln.bam>
Ejemplo
samtools idxstats aln.sorted.bam
faidx Indexa una secuencia de referencia en formato FASTA3
o extrae una subsecuencia de una
secuencia de referencia indexada. Crear´a un fichero indexado con extensi´on .fai.
Formato
samtools faidx <ref.fasta> [region1 [...]]
Ejemplo
samtools faidx ref.fasta
rmdup Elimina posibles duplicados PCR: si m´ultiples pares de lecturas tienen las mismas coorde-
nadas, s´olo retiene el par con la calidad de mapeo m´as alta.
Formato
samtools rmdup [-sS] <input.srt.bam> <out.bam>
Opciones:
-s Elimina duplicados de lecturas simples. Por defecto s´olo trabaja con lecturas
emparejadas.
-S Trata tanto lecturas simples como emparejadas.
calmd Genera la etiqueta @MD. Si la etiqueta @MD ya est´a presente, este comando advertir´a si la
etiqueta existente es diferente a la generada. Por defecto devuelve la salida en formato SAM.
Formato
samtools calmd [-EeubSr] [-C capQcoef] <aln.bam> <ref.fasta>
Opciones:
-A Cuando se usa junto con -r sobreescribe la calidad base original.
-e Convierte la base de la lectura a “=” si es id´entica a la base de referencia
alineada.
-u La salida en formato BAM no est´a comprimida.
-b La salida en formato BAM est´a comprimida.
-S La entrada es un fichero SAM con l´ıneas de cabecera.
-C INT Coeficiente para limitar la calidad de las lecturas mal alineadas.
-r Genera la etiqueta BQ (sin -A).
-E C´alculo extendido de BAQ.
targetcut Este comando identifica las regiones de destino mediante examinando la continuidad de las
lecturas generando un fichero SAM con los resultados. Cuando se hace uso de la opci´on -f
se aplica tambi´en BAQ.
Formato
3V´ease el ap´endice A.4 en la p´agina 115 para m´as informaci´on del formato FASTA
73
samtools targetcut [-Q minBaseQ] [-i inPenalty] [-0 em0]
[-1 em1] [-2 em2] [-f ref] <in.bam>
phase Recoge y elimina heterocigotos SNPs.
Formato
samtools phase [-AF] [-k len] [-b prefix] [-q minLOD]
[-Q minBaseQ] <in.bam>
Opciones:
-A Elimina lecturas con fase ambigua.
-b CAD Prefijo de los ficheros en formato BAM.
-F No trata de arreglar las lecturas “quim´ericas”.
-k INT Longitud m´axima para la eliminaci´on local.
-q INT M´ınima calidad Phred LOD para recoger un heterocigoto.
-Q INT M´ınima calidad base para ser usada en la recogida de heterocigotos.
74
Parte II
Casos pr´acticos
75
Alejandro tfm
Cap´ıtulo 5
Arabidopsis Thaliana
La Arabidopsis Thaliana es una especide de cruc´ıfera nativa de Europa, Asia y el noroeste de ´Africa.
En la imagen 5.1 vemos un detalle de la planta.
Figura 5.1: Detalle de la Arabidopsis Thaliana
Usamos la A. Thaliana por ser una planta de la que se dispone el genoma para poder descargar y
hacer pruebas con el. Adem´as de que existen multitud de experimentos y art´ıculos que tratan sobre dicha
planta. En las siguientes secciones veremos detalles de su genoma as´ı como de varios experimentos que
hemos realizado con las tecnolog´ıas vistas en los cap´ıtulos anteriores para ver su funcionamiento.
5.1. Genoma de la A. Thaliana
El genoma de la A. Thaliana se puede obtener de varias formas. Podemos acceder a la comunidad en
internet de la A. Thaliana1
o desde la p´agina web de Bowtie podremos descargarnos dicho genoma. A
la hora de descargar el genoma podremos descargarlo indexado normal o con espacio de colores2
. La A.
Thaliana est´a formada por cinco cromosomas m´as el cloroplasto y el mitocondrial. Por eso al descargar
1La web oficial es http://www.arabidopsis.org/
2V´ease la secci´on 1.5 en la p´agina 31 par´a m´as informaci´on de las indexaciones
77
el genoma tendremos a nuestra disposici´on un total de 7 ficheros como apreciamos en la imagen 5.2 en
la p´agina siguiente:
Figura 5.2: Ficheros del genoma de la A. Thaliana
El genoma completo tiene un total de 120.000.000 de pares de bases repartidas entre los ficheros
anteriormente mencionados, generando un total de 121, 2MB de tama˜no. En la imagen 5.3 podemos
apreciar parte del contenido del cromosoma 1 de la A. Thaliana.
Figura 5.3: Detalle del Cromosoma 1 de la A.Thaliana
5.2. Indexaci´on del Genoma
Desde la propia p´agina de Bowtie podemos descargarnos el genoma indexado (incluso mediante espacio
de colores). Si por el contrario, estamos en posesi´on de un genoma no indexado (por ejemplo en formato
FASTA) deberemos de indexar el genoma para as´ı poder proceder con las herramientas descritas en la
parte de Manuales de usuario en en la p´agina 15.
Para poder indexar el genoma deberemos de usar el programa bowtie-build3
. El comando para
indexar el genoma de la A. Thaliana es el siguente:
bowtie-build chr1.fas, chr2.fas, chr3.fas, chr4.fas, chr5.fas, chrC.fas, chrM.fas
a_thaliana
3V´ease la secci´on 1.5 en la p´agina 31 para m´as informaci´on
78
Como vimos en la secci´on de bowtie-build recibe por par´ametro el total de cromosomas de un genoma
y adem´as el nombre que tendr´a el genoma indexado. En estos experimentos hemos usado el comando
en su modo por defecto, sin incluirle opciones especiales (ni haciendo uso del espacio de colores). El
resultado del comando lo podemos apreciar en la imagen 5.4: El comando bowtie-build en indexar el
Figura 5.4: Ficheros del Genoma indexado de la A.Thaliana
genoma de la A. Thaliana emplea 4 minutos y 46 segundos y genera un total de 136, 4 MB. No podemos
mostrar un detalle de los ficheros del ´ındice porque son ficheros binarios en lugar de ficheros de texto.
79
5.3. Experimento SRP000615
Pasemos a describir el primero de los experimentos realizados con el genoma de la A. Thaliana. El
experimento SRP000615 4
es un estudio sobre Arabidopsis, poppy y Persea. Consta de una serie de
pruebas y nos centraremos en el conjunto de datos SRX002936.
5.3.1. Lecturas
Si accedemos a la informaci´on del paquete SRX002936 podemos descargarnos un fichero comprimido
con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 41, 4MB
y un total de 134791 lecturas cortas. Las lecturas de este paquete tienen longitudes dispares. En la
imagen 5.5 vemos un gr´afico que nos muestra el tama˜no de la lectura y el total de lecturas de ese
tama˜no.
Figura 5.5: Grafico del tama˜no de las lecturas del exp SRP000615
En la imagen 5.6 en la p´agina siguiente vemos un detalle del contenido del fichero de lecturas cortas:
4Para m´as informaci´on vea la web http://trace.ddbj.nig.ac.jp/DRASearch/study?acc=SRP000615
80
Figura 5.6: Detalle de las lecturas cortas del exp SRP000615
5.3.2. Ejecuci´on de TopHat
El comando tophat5
usado con este experimento es el siguiente:
tophat -p 2 -o results/expSRP000615 indexes/a_thaliana reads/SRX002936.fastq
Y la salida generada por dicho comando es la siguiente:
[Sat May 21 10:58:19 2011] Beginning TopHat run (v1.2.0)
-----------------------------------------------
[Sat May 21 10:58:19 2011] Preparing output location results/expSRP000615/
[Sat May 21 10:58:19 2011] Checking for Bowtie index files
[Sat May 21 10:58:19 2011] Checking for reference FASTA file
Warning: Could not find FASTA file indexes/a_thaliana.fa
[Sat May 21 10:58:19 2011] Reconstituting reference FASTA file from Bowtie index
[Sat May 21 10:58:30 2011] Checking for Bowtie
Bowtie version: 0.12.7.0
[Sat May 21 10:58:30 2011] Checking for Samtools
Samtools Version: 0.1.16
[Sat May 21 10:58:30 2011] Checking reads
min read length: 37bp, max read length: 610bp
format: fastq
quality scale: phred33 (default)
[Sat May 21 10:58:36 2011] Mapping reads against a_thaliana with Bowtie
[Sat May 21 10:59:02 2011] Joining segment hits
[Sat May 21 10:59:12 2011] Mapping reads against a_thaliana with Bowtie(1/24)
[Sat May 21 10:59:49 2011] Mapping reads against a_thaliana with Bowtie(2/24)
[Sat May 21 11:00:20 2011] Mapping reads against a_thaliana with Bowtie(3/24)
[Sat May 21 11:00:47 2011] Mapping reads against a_thaliana with Bowtie(4/24)
[Sat May 21 11:01:07 2011] Mapping reads against a_thaliana with Bowtie(5/24)
[Sat May 21 11:01:13 2011] Mapping reads against a_thaliana with Bowtie(6/24)
5Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37
81
[Sat May 21 11:01:15 2011] Mapping reads against a_thaliana with Bowtie(7/24)
[Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(8/24)
[Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(9/24)
[Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(10/24)
[Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(11/24)
[Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(12/24)
[Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(13/24)
[Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(14/24)
[Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(15/24)
[Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(16/24)
[Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(17/24)
[Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(18/24)
[Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(19/24)
[Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(20/24)
[Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(21/24)
[Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(22/24)
[Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(23/24)
[Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(24/24)
[Sat May 21 11:01:20 2011] Searching for junctions via segment mapping
[Sat May 21 11:01:43 2011] Retrieving sequences for splices
[Sat May 21 11:02:05 2011] Indexing splices
[Sat May 21 11:03:08 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:04:35 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:05:58 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:07:19 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:08:37 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:09:51 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:11:01 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:12:12 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:13:22 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:14:31 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:15:41 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:16:51 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:18:02 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:19:11 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:20:21 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:21:30 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:22:40 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:23:50 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:24:59 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:26:09 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:27:18 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:28:29 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:29:38 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:30:48 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 11:31:57 2011] Joining segment hits
[Sat May 21 11:32:07 2011] Reporting output tracks
-----------------------------------------------
Run complete [00:33:52 elapsed]
Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 33 minutos
y 52 segundos.
En la imagen 5.7 en la p´agina siguiente podemos ver los ficheros6
que crea TopHat:
6V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros
82
Figura 5.7: Ficheros creados por Tophat en el exp SRP000615
En la imagen 5.8 vemos el contenido del fichero junctions.bed, para ver el contenido del fichero
accepted hits.bam deberemos convertirlo previamente a formato SAM (eso lo haremos en el siguiente
punto).
Figura 5.8: Detalle del fichero junctions.bed del exp SRP000615
Del total de 134790 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado
un total de 30805 y 103985 se han quedado sin alinear. En la imagen 5.9 en la p´agina siguiente vemos
una gr´afica indicando el porcentaje de alineamientos y no alineamientos frente al total de lecturas del
que part´ıamos.
83
Figura 5.9: Porcentajes de alineamientos en el exp SRP000615
5.3.3. Ejecuci´on de SAMtools
Debido a que TopHat nos devuelve un fichero en formato BAM7
, y dicho formato es binario; deberemos
de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el
siguiente:
samtools view -h -o accepted_hits.sam accepted_hits.bam
Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un
fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los
alineamientos encontrados por TopHat.
7V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM
84
Figura 5.10: Fichero accepted hits.sam del exp SRP000615
5.3.4. Ejecuci´on de Cufflinks
Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions”
e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan
m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente
comando:
cufflinks accepted_hits.bam
Despu´es de un tiempo de 35 segundos Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking
y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as
la salida por pantalla es la siguiente:
[12:04:16] Inspecting reads and determining fragment length distribution.
> Processed 21374 loci. [*************************] 100%
> Map Properties:
>Total Map Mass: 39563.00
>Read Type: 161bp single-end
85
>Fragment Length Distribution: Truncated Gaussian (default)
> Default Mean: 200
> Default Std Dev: 80
[12:04:27] Assembling transcripts and estimating abundances.
> Processed 21374 loci. [*************************] 100%
Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la
expresi´on diferencial de los genes. La imagen 5.11 nos muestra dicho fichero.
Figura 5.11: Fichero genes.fpkm tracking del exp SRP000615
86
5.3.5. Resultados
En la imagen 5.12 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los
programas usados. Podemos apreciar que la ejecuci´on de TopHat es el m´as elevado. Esto es debido a que
las lecturas cortas usadas tienen longitudes grandes. Cuanto m´as grandes sean las lecturas usadas m´as
tiempo tardar´an en alinear. Para mejorar este tiempo tambi´en podemos hacer uso del potencial de la
m´aquina usando m´as hilos.
Figura 5.12: Tiempos ejecuci´on exp SRP000615
Por otro lado, como vimos en la imagen 5.9 en la p´agina 84, tenemos un porcentaje muy bajo de
alineamientos. Esto es debido al origen de los datos, propios del experimento.
Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on IGV8
veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.13 en la p´agina siguiente
muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo trozo de
Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio.
8IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su
web oficial http://www.broadinstitute.org/igv/
87
Figura 5.13: Expresi´on diferencial en el exp SRP000615
88
5.4. Experimento SRX011868
Pasemos a describir el siguiente de los experimentos realizados con el genoma de la A. Thaliana.
El experimento SRX011868 9
es un estudio sobre Arabidopsis. Consta de una serie de pruebas y nos
centraremos en el conjunto de datos SRR029315.
5.4.1. Lecturas
Si accedemos a la informaci´on del paquete SRX011868 podemos descargarnos un fichero comprimido
con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 793, 4MB
y un total de 6580847 lecturas cortas. Las lecturas de este paquete tienen todas las misma longitud, en
este caso 35pb dispares. En la imagen 5.14 vemos un detalle del contenido del fichero de lecturas cortas:
Figura 5.14: Detalle de las lecturas cortas del exp SRX011868
9Para m´as informaci´on vea la web http://trace.ddbj.nig.ac.jp/DRASearch/experiment?acc=SRX011868
89
5.4.2. Ejecuci´on de TopHat
El comando tophat10
usado con este experimento es el siguiente:
tophat -p 2 -o results/expSRX011868 indexes/a_thaliana reads/SRR029315.fastq
Y la salida generada por dicho comando es la siguiente:
[Tue Aug 2 17:56:08 2011] Beginning TopHat run (v1.3.1)
-----------------------------------------------
[Tue Aug 2 17:56:08 2011] Preparing output location results/expSRX011868/
[Tue Aug 2 17:56:08 2011] Checking for Bowtie index files
[Tue Aug 2 17:56:08 2011] Checking for reference FASTA file
Warning: Could not find FASTA file indexes/a_thaliana.fa
[Tue Aug 2 17:56:08 2011] Reconstituting reference FASTA file from Bowtie index
Executing: /usr/bin/bowtie-inspect indexes/a_thaliana/a_thaliana >
results/expSRX011868/tmp/a_thaliana.fa
[Tue Aug 2 17:56:23 2011] Checking for Bowtie
Bowtie version: 0.12.7.0
[Tue Aug 2 17:56:23 2011] Checking for Samtools
Samtools Version: 0.1.16
[Tue Aug 2 17:56:23 2011] Generating SAM header for indexes/a_thaliana/a_thaliana
[Tue Aug 2 17:56:25 2011] Preparing reads
format: fastq
quality scale: phred33 (default)
Left reads: min. length=35, count=6326042
[Tue Aug 2 17:58:32 2011] Mapping left_kept_reads against a_thaliana with Bowtie
[Tue Aug 2 18:10:08 2011] Processing bowtie hits
Warning: junction database is empty!
[Tue Aug 2 18:14:28 2011] Reporting output tracks
-----------------------------------------------
Run complete [00:26:07 elapsed]
Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 26 minutos
y 07 segundos.
En la imagen 5.15 podemos ver los ficheros11
que crea TopHat:
Figura 5.15: Ficheros creados por Tophat en el exp SRX011868
10Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37
11V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros
90
En este experimento el fichero junctions.bed no indica ninguna uni´on por lo que est´a vac´ıo, para
ver el contenido del fichero accepted hits.bam deberemos convertirlo previamente a formato SAM (eso
lo haremos en el siguiente punto).
Del total de 6580847 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado
un total de 4834785 y 1746062 se han quedado sin alinear. En la imagen 5.16 vemos una gr´afica indicando
el porcentaje de alineamientos y no alineamientos frente al total de lecturas del que part´ıamos.
Figura 5.16: Porcentajes de alineamientos en el exp SRX011868
91
5.4.3. Ejecuci´on de SAMtools
Debido a que TopHat nos devuelve un fichero en formato BAM12
, y dicho formato es binario; deberemos
de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el
siguiente:
samtools view -h -o accepted_hits.sam accepted_hits.bam
Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un
fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los
alineamientos encontrados por TopHat.
Figura 5.17: Fichero accepted hits.sam del exp SRX011868
12V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM
92
5.4.4. Ejecuci´on de Cufflinks
Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions”
e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan
m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente
comando:
cufflinks accepted_hits.bam
Debido a la gran cantidad de alineamientos cufflinks tarda m´as que en el caso anterior, en este caso
un tiempo de 18 minutos y 2 segundos. Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking
y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as
la salida por pantalla es la siguiente:
[18:35:18] Inspecting reads and determining fragment length distribution.
> Processed 275054 loci. [*************************] 100%
> Map Properties:
>Total Map Mass: 4738556.00
>Read Type: 35bp single-end
>Fragment Length Distribution: Truncated Gaussian (default)
> Default Mean: 200
> Default Std Dev: 80
[18:37:59] Assembling transcripts and estimating abundances.
> Processed 275054 loci.
Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la
expresi´on diferencial de los genes. La imagen 5.18 en la p´agina siguiente nos muestra dicho fichero.
93
Figura 5.18: Fichero genes.fpkm tracking del exp SRX011868
94
5.4.5. Resultados
En la imagen 5.19 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los
programas usados. Podemos apreciar que la ejecuci´on de TopHat es el m´as elevado. En este caso las
lecturas tienen un tama˜no corto, pero por contra hay muchas m´as, por eso el tiempo es elevado, pero
no como en el caso anterior. Vemos que aqu´ı prima m´as la longitud de la lectura que el n´umero total de
lecturas. Por otro lado al haber muchos m´as alineamientos cufflinks tarda m´as tiempo que antes a la
hora de calcular la expresi´on diferencial.
Figura 5.19: Tiempos ejecuci´on exp SRX011868
Por otro lado, como vimos en la imagen 5.16 en la p´agina 91, tenemos un porcentaje muy bajo de
alineamientos. Esto es debido al origen de los datos, propios del experimento.
Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on
IGV13
veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.20 en la p´agina
siguiente muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo
trozo de Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio.
13IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su
web oficial http://www.broadinstitute.org/igv/
95
Figura 5.20: Expresi´on diferencial en el exp SRX011868
96
5.5. Experimento SRX022366
Pasemos a describir el ´ultimos de los experimentos realizados con el genoma de la A. Thaliana. El
experimento SRP000615 14
es un estudio sobre Arabidopsis. Este experimento consta de un ´unico paquete
de datos, el SRR058438.
5.5.1. Lecturas
Si accedemos a la informaci´on del paquete SRX022366 podemos descargarnos un fichero comprimido
con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 631, 1MB
y un total de 3486324 lecturas cortas. En este caso todas las lecturas tienen la misma longitud 36pb.
En la imagen 5.21 vemos un detalle del contenido del fichero de lecturas cortas:
Figura 5.21: Detalle de las lecturas cortas del exp SRX022366
14Para m´as informaci´on vea la web http://www.ncbi.nlm.nih.gov/sra?term=SRX022366
97
5.5.2. Ejecuci´on de TopHat
El comando tophat15
usado con este experimento es el siguiente:
tophat -p 2 -o results/expSRX022366 indexes/a_thaliana reads/SRR058438.fastq
Y la salida generada por dicho comando es la siguiente:
[Sat May 21 14:15:08 2011] Beginning TopHat run (v1.2.0)
-----------------------------------------------
[Sat May 21 14:15:08 2011] Preparing output location results/expSRX022366
[Sat May 21 14:15:08 2011] Checking for Bowtie index files
[Sat May 21 14:15:08 2011] Checking for reference FASTA file
Warning: Could not find FASTA file indexes/a_thaliana.fa
[Sat May 21 14:15:08 2011] Reconstituting reference FASTA file from Bowtie index
[Sat May 21 14:15:21 2011] Checking for Bowtie
Bowtie version: 0.12.7.0
[Sat May 21 14:15:21 2011] Checking for Samtools
Samtools Version: 0.1.16
[Sat May 21 14:15:21 2011] Checking reads
min read length: 36bp, max read length: 36bp
format: fastq
quality scale: phred33 (default)
[Sat May 21 14:16:54 2011] Mapping reads against a_thaliana with Bowtie
[Sat May 21 14:22:10 2011] Joining segment hits
[Sat May 21 14:22:24 2011] Searching for junctions via segment mapping
[Sat May 21 14:23:16 2011] Retrieving sequences for splices
[Sat May 21 14:23:32 2011] Indexing splices
[Sat May 21 14:23:32 2011] Mapping reads against segment_juncs with Bowtie
[Sat May 21 14:24:07 2011] Joining segment hits
[Sat May 21 14:24:18 2011] Reporting output tracks
-----------------------------------------------
Run complete [00:09:16 elapsed]
Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 9 minutos y
16 segundos. Es curioso ver que siendo un paquete de datos grande el tiempo invertido es mucho menor
que el resto de los casos, debido a los pocos alineamientos encontrados.
En la imagen 5.22 podemos ver los ficheros16
que crea TopHat:
Figura 5.22: Ficheros creados por Tophat en el exp SRX022366
15Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37
16V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros
98
En la imagen 5.23 vemos el contenido del fichero junctions.bed (que en este caso s´olo encentra
una uni´on), para ver el contenido del fichero accepted hits.bam deberemos convertirlo previamente a
formato SAM (eso lo haremos en el siguiente punto).
Figura 5.23: Detalle del fichero junctions.bed del exp SRX022366
Del total de 3486324 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado
un total de 761 y 3485563 se han quedado sin alinear, lo que es un n´umero excesivamente bajo. En la
imagen 5.24 vemos una gr´afica indicando el porcentaje de alineamientos y no alineamientos frente al
total de lecturas del que part´ıamos.
Figura 5.24: Porcentajes de alineamientos en el exp SRX022366
99
5.5.3. Ejecuci´on de SAMtools
Debido a que TopHat nos devuelve un fichero en formato BAM17
, y dicho formato es binario; deberemos
de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el
siguiente:
samtools view -h -o accepted_hits.sam accepted_hits.bam
Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un
fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los
alineamientos encontrados por TopHat.
Figura 5.25: Fichero accepted hits.sam del exp SRX022366
5.5.4. Ejecuci´on de Cufflinks
Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions”
e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan
m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente
comando:
cufflinks accepted_hits.bam
Despu´es de un tiempo de 35 segundos Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking
y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as
la salida por pantalla es la siguiente:
[11:35:36] Inspecting reads and determining fragment length distribution.
> Processed 167 loci. [*************************] 100%
> Map Properties:
>Total Map Mass: 587.00
17V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM
100
>Read Type: 36bp single-end
>Fragment Length Distribution: Truncated Gaussian (default)
> Default Mean: 200
> Default Std Dev: 80
[11:35:36] Assembling transcripts and estimating abundances.
> Processed 167 loci. [*************************] 100%
Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la
expresi´on diferencial de los genes. La imagen 5.26 nos muestra dicho fichero.
Figura 5.26: Fichero genes.fpkm tracking del exp SRX022366
101
5.5.5. Resultados
En la imagen 5.27 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los
programas usados. En este experimento las ejecuciones son muy r´apidas debido a los pocos alineamientos
encontrados.
Figura 5.27: Tiempos ejecuci´on exp SRX022366
Por otro lado, como vimos en la imagen 5.24 en la p´agina 99, tenemos un porcentaje muy bajo de
alineamientos. Esto es debido al origen de los datos, propios del experimento.
Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on
IGV18
veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.28 en la p´agina
siguiente muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo
trozo de Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio.
18IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su
web oficial http://www.broadinstitute.org/igv/
102
Figura 5.28: Expresi´on diferencial en el exp SRX022366
103
104
Ap´endices
105
Alejandro tfm
Ap´endice A
Formatos de ficheros
A.1. SAM
A.1.1. Introducci´on
SAM son las siglas de Sequence Alignment/Map. Y es un formato (delimitado por tabuladores) con-
sistente en una secci´on de cabecera, la cual es opcional; y una secci´on de alineamientos. Si est´a presente,
la cabecera debe estar antes de los alineamientos. Las l´ıneas de cabecera deben comenzar con ‘@’, mien-
tras que las l´ıneas de alineamientos no. Cada l´ınea de alineamiento contiene once campos obligatorios
para la informaci´on b´asica del alineamiento, adem´as de un n´umero variable de campos opcionales para
informaci´on adicional.
A.1.1.1. Un ejemplo del formato SAM
Supongamos que tenemos la alineaci´on siguiente con las bases en min´usculas recortadas de la alinea-
ci´on. Las lecturas r001/1 y r001/2 constituyen una lectura emparejada; r003 es una lectura quimera;
r004 representa una alineaci´on dividida.
Figura A.1: Ejemmplo de lecturas
107
El formato SAM correspondiente es:
Figura A.2: Ejemplo de fichero SAM
A.1.2. Cabecera del formato SAM
Cada l´ınea de la cabecera debe comenzar con el car´acter ‘@’ seguido de un c´odigo formado por
dos letras. En la cabecera, cada l´ınea debe estar tabulada excepto las l´ıneas que comiencen por @CO.
Con respecto a los campos de cada l´ınea, deben seguir la siguiente estructura:“Etiqueta:Valor” donde
“Etiqueta” es una cadena de dos letras que define el contenido y el formato de ‘‘Valor’’. Hay que
indicar que las “Etiquetas” con letras min´usculas est´an reservadas para los usuarios finales.
La lista siguiente recoge los distintos c´odigos definidos y sus correspondientes etiquetas. Las etiquetas
seguidas de “*” son obligatorias cuando el c´odigo est´a presente, es decir, si usamos por ejemplo @VN
tenemos que especificar la etiqueta VN de manera obligatoria.
@HD La l´ınea de cabecera. La primera l´ınea debe estar presente.
VN* Formato de la versi´on. Formato Aceptado./^[0-9]+.[0-9]+$/.
SO Orden de clasificaci´on de las alineaciones. Valores aceptados: unkown(por defecto), unsorted,
queryname y coordinate. Para la b´usqueda basada en coordinate, la clave de ordenaci´on
principal es el campo RNAME, con el orden definido por el orden de las l´ıneas @SQ de la
cabecera. La clave de ordenaci´on de menor importancia es el campo POS. Para campos que
tengan igual RNAME y POS, el orden ser´a arbitrario. Todos los alineamientos que tengan ‘*’ en
el campo RNAME seguir´an a alineamientos con otro valor cualquiera, con otros que tengan ‘*’
se ordenar´an de manera arbitraria.
@SQ Diccionario de referencia de secuencias. El orden de las l´ıneas @SQ definir´an el orden de alineaci´on.
SN* Referencia del nombre de la secuencia. Cada l´ınea @SQ debe tener una ´unica etiqueta SN. El
valor de este campo es usado para la creaci´on de los campos RNAME y PNEXT de cada alineaci´on.
LN* Referencia a la longitud de la secuencia. Rango: [1, 229
− 1].
AS Identificador de ensamblaje del Genoma.
M5 Suma de control (MD5) de la secuencia en may´usculas, con los huecos y los espacios.
SP Especies.
UR URI de la secuencia. Este valor puede empezar con uno de los protocolos est´andar como: ftp,
http. . . Si no comienza por uno de los protocolos est´andar, se supone que es una ruta de acceso
al sistema de ficheros.
@RG Grupo de las lecturas. M´ultiples l´ıneas desordenadas de @RG est´an permitidas.
ID* Identificador del grupo de lecturas. Cada l´ınea @RG debe tener un ID ´unico. El valor de ID se
utiliza en las etiquetas RG de los registros de alineaci´on. Debe ser ´unico entre todos los grupos
de lecturas en la secci´on de encabezado. Los ID de grupos de lecturas pueden ser modificados
cuando se unen ficheros SAM con el fin de manejar mejor las colisiones.
108
CN Nombre de la secuencia central que produce la lectura.
DS Descripci´on
DT Fecha de cu´ando se produjo la ejecuci´on.
FO Orden del flujo. El conjunto de bases de nucle´otidos que corresponden a los nucle´otidos usados
para cada flujo de cada lectura. Los flujos de varias bases est´an codificados en formato IU-
PAC, y los flujos que no est´an formados por nucle´otidos est´a codificados por otros caracteres.
Formato: /*|[ACMGRSVTWYHKDBN]+/
KS El conjunto de bases de nucle´otidos que corresponden a la secuencia “clave” de cada lectura.
LB Librer´ıa.
PG Programa usado para procesar el conjunto de lecturas.
PI Predicci´on del tama˜no medio de las inserciones.
PL Plataforma/tecnolog´ıa usada para producir las lecturas. Valores aceptados: CAPILLARY,
LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT y PACBIO.
PU Unidad usada en la plataforma. Identificador ´unico.
SM Muestra.
@PG Programa.
ID* Identificador del programa de registro. Cada l´ınea @PG debe tener un ID ´unico. El valor de
ID se usa en la etiqueta PG del alineamiento y en las etiquetas PP de otras l´ıneas @PG. Al igual
que antes, los ID de las etiquetas PG pueden ser modificados cuando se unen ficheros SAM
para manejar las colisiones.
PN Nombre del programa.
CL L´ınea de comandos.
PP Anterior @PG-ID. Debe coincidir con el ID de alguna etiqueta de encabezado @PG. Los registros
@PG pueden encadenarse con etiquetas PP, con el ´ultimo registro de la cadena que no tiene
etiqueta PP. Esta cadena define el orden de los programas que se han aplicado al alineamiento.
Los valores PP se pueden modificar cuando se unen ficheros SAM para manejar colisiones de
los IDs de los PGs. El primer registro PG en una cadena describe el programa m´as reciente
en usar el fichero SAM. El siguiente registro PG describe el siguiente en usar el fichero SAM.
De esta forma podemos tener un registro de los programas que han intervenido en el registro
SAM.
VN Versi´on del programa.
@CO Comentario de texto de una l´ınea. Se permiten m´ultiples l´ıneas @CO desordenadas.
A.1.3. Campos obligatorios de la secci´on de Alineamientos
Cada l´ınea que representa a un alineamiento tiene 11 campos que son obligatorios. Estos campos
siempre deben de aparecer en el mismo orden y siempre deben estar presente, aunque sus valores pueden
ser ‘0’ o ‘*’ (dependiendo del campo) si la informaci´on correspondiente no est´a disponible. La siguiente
tabla nos resume los campos obligatorios del formato SAM
109
Tabla A.1: Campos obligatorios del formato SAM
No
Campo Tipo Exp Regular / Rango Descripcion
1 QNAME Cadena [!−?A− ∼]{1, 255} Nombre de la consulta
2 FLAG Entero [0, 216
− 1] Bandera de opciones
3 RNAME Cadena  ∗ |[! − () + − <> − ∼][!− ∼]∗ Referencia del nombre de la
secuencia
4 POS Entero [0, 229
− 1] Posici´on de la primera base
m´as a la izquierda
5 MAPQ Entero [0, 28
− 1] Calidad del Mapeo
6 CIGAR Cadena  ∗ |([0 − 9] + [MIDNSHPX =])+ Cadena CIGAR
7 RNEXT Cadena  ∗ | = |[! − () + − <> − ∼][!− ∼]∗ Nombre de referencia del si-
guiente fragmento
8 PNEXT Entero [0, 229
− 1] Posici´on el siguiente fragmen-
to
9 TLEN Entero [−229
+ 1, 229
− 1] Longitud de la plantilla
10 SEQ Cadena  ∗ |[A − Za − z = .]+ Fragmento de secuencia
11 QUAL Cadena [!− ∼]+ Calidad de la secuencia
1. QNAME: Nombre de la consulta. Las lecturas y/o los fragmentos que tienen id´entico QNAME se
consideran que provienen de la misma plantilla. Un QNAME con ‘*’ indica que la informaci´on no
est´a disponible.
2. FLAG: Bandera de opciones. Cada bit se explica en la siguiente tabla:
Tabla A.2: Bits de la etiqueta FLAG
Bit Descripci´on
0x1 La plantilla tiene m´ultiples fragmentos de secuenciaci´on
0x2 Cada fragmento se alinea correctamente de acuerdo al alineador
0x4 Fragmento no mapeado/asignado
0x8 Siguiente fragmento en la plantilla no est´a mapeado
0x10 SEQ est´a inversamente complementada
0x20 SEQ del siguiente fragmento en la plantilla ha sido invertida
0x40 Primer fragmento en la plantilla
0x80 ´Ultimo fragmento en la plantilla
0x100 Alineamiento secundario
0x200 No ha pasado los controles de calidad
0x400 Duplicado PCR o duplicado ´optico
El Bit 0x04 es el ´unico sitio de confianza para saber si el fragmento est´a o no mapeado. Si
0x4 est´a a 1, no podemos suponer nada acerca de RNAME, POS, CIGAR, MAPQ, bits 0x2, 0x10 y
0x100 y bit 0x20 de los siguiente fragmento en la plantilla.
Si 0x40 y 0x80 est´an ambos a 1, el fragmento pertenece a una plantilla linear, pero no es ni
el primer fragmento ni el ´ultimo. Si ambos est´an a 0, el ´ındice del fragmento en la plantilla es
desconocido. Esto puede ser debido a una plantilla no lineal o que el ´ındice se ha perdido en
el procesamiento de los datos.
El bit 0x100 indica que el alineamiento no debe ser usado en ciertos an´alisis. Para ello ciertas
herramientas hacen uso de este bit para no procesar dichos alineamientos.
Si el bit 0x1 est´a a 0, no podemos suponer nada acerca de 0x2, 0x8, 0x20, 0x40 y 0x80.
3. RNAME: Nombre de la secuencia de referencia de la alineaci´on. Si @SQ est´a presente en la cabecera,
RNAME (si no ‘*’) debe estar presente en una de las etiquetas SQ-SN. Si RNAME es ‘*’, no podemos
hacer suposiciones acerca de POS y CIGAR.
110
4. POS: Posici´on de la primera base m´as a la izquierda de la asignaci´on. La primera base en una
secuencia de referencia tiene la coordenada 1. POS vale 0 en el caso de tener una lectura no asignada
sin coordenada. Si POS es 0, no podemos hacer suposiciones acerca de RNAME y CIGAR.
5. MAPQ: Calidad del Mapeo. Es igual a −10 log10 Pr, redondeado al entero m´as pr´oximo. Un valor de
255 indica que la calidad no est´a disponible.
6. CIGAR: Cadena CIGAR. Las operaciones CIGAR se muestran en la siguiente tabla (si no est´a disponible
usamos ‘*’):
Tabla A.3: Operaciones CIGAR
Op BAM Descripci´on
M 0 Coincidencia en la alineaci´on (puede ser una coincidencia o no)
I 1 Inserci´on en la referencia
D 2 Borrado de la referencia
N 3 Se omite la regi´on de la referencia
S 4 Recorte suave (recorta las secuencias presentes en la SEQ)
H 5 Recorte duro (recorta las secuencias no presentes en la SEQ)
P 6 Relleno
= 7 Coincidencia en la secuencia
X 8 Desajuste en la secuencia
H s´olo puede estar presente en la primera/´ultima operaci´on.
S s´olo puede tener operaciones H entre ellos y el final de la cadena CIGAR.
Para alineamientos entre mRNA y genoma, una operaci´on N representa un intr´on. Para otro
tipo de alineamientos, la interpretaci´on de N no est´a definida.
La suma de las longitudes de las operaciones M/I/S/=/X debe ser igual a la longitud de SEQ.
7. RNEXT: Referencia al nombre del siguiente fragmento de secuencia en la plantilla. Para el caso del
´ultimo fragmento, su siguiente ser´ıa el primer fragmento de la secuencia. Si est´a incluida la etiqueta
@SQ, RNEXT debe estar presente en alguna de las etiquetas SQ-SN (si no debe aparecer ‘*’ o ‘=’).
Este campo viene denotado por ‘*’ cuando la informaci´on no est´a disponible, y con ‘=’ cuando
RNEXT es id´entico a RNAME. Si este campo no es ‘=’ y el siguiente fragmento en la plantilla tiene
una asignaci´on primaria, este campo es id´entico a RNAME del siguiente fragmento. Si el siguiente
fragmento tiene m´ultiples asignaciones primarias, no podemos asumir nada acerca de RNEXT y
PNEXT. Si RNEXT es ‘*’, no podemos asumir nada acerca de PNEXT y el bit 0x20.
8. PNEXT: Posici´on del siguiente fragmento dentro de la plantilla. Cuando no hay informaci´on no
disponible aparecer´a un 0. Este campo es igual al campo POS del siguiente fragmento. Si PNEXT es
0, no podemos hacer suposiciones acerca de RNEXT y el bit 0x20.
9. TLEN: Longitud de la plantilla. Si todos los fragmentos se asignan a la misma referencia, TLEN es
igual al n´umero de bases desde la base m´as a la izquierda hasta la m´as a la derecha.
10. SEQ: Fragmento de secuencia. Este campo puede valer ‘*’ cuando la secuencia no se ha almacenado.
Si tenemos contenido diferente a ‘*’, entonces la longitud de la cadena debe ser igual a la suma de
las longitudes de las operaciones M/I/S/=/X en CIGAR. Un signo ‘=’ indica que la base es id´entica
a la base de referencia.
11. QUAL: Hace referencia a la calidad que tiene cada una de las componentes de la secuencia. Para
m´as informaci´on ver la secci´on que habla del formato FASTQ1
.
1V´ease la secci´on A.5 en la p´agina 117 para m´as informaci´on acerca del formato FASTQ
111
A.1.4. Campos opcionales de la secci´on de alineamientos
Todos los campos opcionales de TopHat siguen el siguiente ETIQUETA:TIPO:VALOR donde ETIQUETA es
una cadena de dos caracteres de la forma [A-Za-z][A-Za-z0-9]. Cada ETIQUETA s´olo puede aparecer una
´unica vez dentro de una l´ınea de alineamiento. Una ETIQUETA que est´e en letras min´usculas est´a reservada
para usuarios finales. En cada campo opcional, TIPO es una letra sola (sensible a may´usculas y min´usculas)
la cual define el formato del VALOR.
Tabla A.4: Campos opcionales del formato SAM
Tipo Valor aceptado Descripci´on
A [!− ∼] Car´acter imprimible
i [−+]?[0 − 9]+ Entero de 32 bit
f [−+]?[0 − 9] ∗ .?[0 − 9] + ([eE][−+]?[0 − 9]+)? Numero en punto flotante
Z [ !− ∼]+ Cadena imprimible, incluyendo
espacios
H [0 − 9A − F]+ Conjunto de bits en formato he-
xadecimal
B [cCsSiIf](, [−+]?[0 − 9] ∗ ?[0 − 9] + ([eE][−+]?[0 − 9]+)?)+ Entero o tabla num´erica
Para un entero o una tabla num´erica (tipo ‘B’), la primera letra indica el tipo de los n´umeros en
la siguiente tabla de n´umeros separados por comas. La letra puede ser una de las siguientes: ‘cCsSiIf’,
correspondiendo a int8_t (entero de 8 bits con signo), uint8_t (entero de 8 bits sin signo), int16_t,
int16_t, int32_t, uint32_t y float, respectivamente. Durante el proceso de importaci´on/exportaci´on
el tipo del elemento puede ser cambiado si el nuevo tipo tambi´en es compatible con la tabla.
Las etiquetas predefinidas se muestran en la siguiente tabla. Usted puede a˜nadir libremente las eti-
quetas que necesite, adem´as si cree que dicha etiqueta puede ser de inter´es com´un puede enviarla a
samtools-devel@lists.sourceforge.net para a˜nadirla en la especificaci´on. Tenga en cuenta que las
etiquetas que comienzan con ‘X’, ‘Y’ y ‘Z’ o las etiquetas con letras min´usculas en cualquier posici´on
est´an reservadas para uso local y no se definen formalmente para futuras versiones de la especificaci´on
del formato SAM.
112
Tabla A.5: Etiquetas predefinidas del formato SAM
Etiqueta Tipo Descripci´on
X? ? Campo reservado para el usuario final (junto con Y? y Z? )
AM i Calidad de la asignaci´on m´as peque˜na independiente de la plantilla.
AS i Puntuaci´on de la alineaci´on generada por el alineador.
BQ Z Desplazamiento de las calidades de las bases del alineamiento (BAQ), de la misma
longitud que la lectura. En la base i-´esima, BAQi = Qi − (BQi − 64) donde Qi es la
calidad de la base i.
CC Z Nombre de referencia del siguiente acierto; “=” si es el mismo cromosoma.
CM i Editar distancia entre la secuencia de colores y la referencia de color (V´ease tambi´en
NM).
CP i Coordenada m´as a la izquierda del siguiente acierto.
CQ Z Calidad de color de la lectura en la cadena original de la lectura. Misma codificaci´on
que QUAL; misma longitud que CS.
CS Z Secuencia de color de la lectura en la cadena original de la lectura.
E2 Z La segunda base m´as probable para recoger. Misma codificaci´on y longitud que QUAL.
FI i El ´ındice del fragmento en la plantilla.
FS Z Sufijo del fragmento.
FZ H La intensidad de flujo de se˜nal en la cadena original de la lectura, se almacena como
(uint16 t) round(value * 100.0).
LB Z Librer´ıa. Valor que tiene que ser consistente con la etiqueta RG-LB si @RG est´a presente.
H0 i No
de aciertos perfectos.
H1 i No
de aciertos con 1 diferencia (V´ease tambi´en NM)
H2 i No
de aciertos con 2 diferencias (V´ease tambi´en NM)
HI i Posici´on (´ındice) de la consulta (si hay acierto).
IH i No
de alineaciones almacenadas en SAM que contienen la consulta en el registro
actual.
MD Z Cadena que representa las posiciones de los desajustes.
MQ i Calidad del alineamiento del siguiente fragmento o compa˜nero.
NH i No
de alineamientos reportados que contienen la consulta en el registro actual.
NM i Distancia de la referencia, incluyendo las bases ambiguas pero excluyendo los “recor-
tes”.
OQ Z Calidad base original. Misma codificaci´on que QUAL.
OP i Posici´on de mapeo original.
OC Z Cadena CIGAR original.
PG Z Programa. Debe coincidir con la etiqueta PG-ID si @PG est´a presente.
PQ i Probabilidad Phred de la plantilla.
PU Z Unidad de la plataforma. El valor debe ser consistente con la cabecera RG-PU si @RG
est´a presente.
Q2 Z Phred quality del compa˜nero/siguiente fragmento en la plantilla. Misma codificaci´on
que QUAL.
R2 Z Secuencia del compa˜nero/siguiente fragmento en la plantilla.
RG Z Grupo de la lectura. El valor debe ser consistente con la cabecera RG-ID si @RG est´a pre-
sente.
SM i Calidad de la asignaci´on independiente de la plantilla.
TC i No
de fragmentos en la plantilla.
UQ i Probabilidad Phred del fragmento, condicionada a que la asignaci´on sea correcta.
113
A.2. BAM
BAM es la versi´on binaria comprimida del formato SAM2
. Es una representaci´on compacta e indexable
de las secuencias de alineamientos. Muchas herramientas de NGS trabajan con los formatos SAM/BAM
por lo que es un formato importante.
El formato BAM al ser un formato binario, no es posible visualizarlo con un editor de texto. Para
poder ver el contenido debemos de convertir el fichero BAM a un fichero SAM, que s´ı es posible verlo con
un editor de texto plano. El comando para convertir un fichero BAM a un fichero SAM es el siguiente3
:
samtools view -S -b -o fichero.bam fichero.sam
Para m´as informaci´on puede accerder a la Web http://genome.ucsc.edu/goldenPath/help/bam.html
en la cual detallan el formato BAM con m´as detalle.
A.3. BED
A.3.1. Introducci´on
El formato BED proporciona una manera flexible para definir las l´ıneas de datos que ser´an mostradas
al usuario en un fichero con extensi´on “.bed”. Cada l´ınea BED tiene tres campos obligatorios y nueve
que son adicionales/opcionales. El n´umero de campos tiene que ser consistente en todo el conjunto de
l´ıneas, es decir, no podemos tener l´ıneas con diferentes n´umero de campos; todas tienen que tener el
mismo n´umero de campos y los campos deben de ser los mismos. El orden de los campos opcionales es
vinculante: si hacemos uso de un campo, por ejemplo numerado en la siguiente lista con el 7, los campos
del 4 al 7 deben de estar presentes obligatoriamente.
A.3.2. Campos obligatorios en el formato BED
Los tres primeros campos en el formato BED son obligatorios. Su descripci´on es la siguiente:
1. Cromosoma - El nombre del cromosoma (por ejemplo Chr1, Chr3, ChrM. . . ) o esqueleto (por
ejemplo scaffold10671).
2. Comienzo - El punto donde comienza la lectura dentro del cromosoma o esqueleto. La primera
base del cromosoma est´a numerada con el 0.
3. Fin - El punto donde finaliza la lectura dentro del cromosoma o esqueleto.
A.3.3. Campos adicionales u opcionales en el formato BED
Los nueve campos adicionales u opcionales deben ir a continuaci´on de los obligatorios. Y si hacemos
uso de uno de ellos los anteriores en la lista tambi´en deben de ir obligatoriamente. Veamos cuales son los
campos en la siguiente lista:
4. nombre - Define el nombre de la l´ınea BED.
5. puntuaci´on - Una puntuaci´on entre 0 y 100. Marca el nivel de gris con el que se mostrar´a (cu´anto
m´as alto sea su valor m´as oscuro ser´a).
6. hebra - Define la orientaci´on de la hebra: ‘+’ ´o ‘-’.
7. Comienzo “Grueso” - Define el punto donde se comienza a “dibular” la lectura (por ejemplo el
cod´on de partida en un gen).
2V´ease el formato SAM en el ap´endice A.1 en la p´agina 107
3Para m´as informaci´on acerca de SAMtools vea el cap´ıtulo 4 en la p´agina 69
114
8. Final “Grueso” - Define el punto donde se termina de “dibujar” la lectura (por ejemplo, el cod´on
de parada en un gen).
9. RGB - Determina un valor RGB (0-255,0-255,0-255). Si se ha establecido la opci´on itemRgb=On
entonces el valor RGB determinar´a el color que tendr´a la lectura cuando se visualice.
10. N´umero de bloques - N´umero de bloques (exones) que hay en la l´ınea BED.
11. Tama˜no de bloques - Lista de tama˜nos de bloques separados por comas. El n´umero de elementos
de esta lista debe corresponder con el N´umero de bloques.
12. Comienzo de bloque - lista de comienzos de bloques separados por comas. El n´umero de ele-
mentos de esta lista debe corresponder con el N´umero de bloques.
A.3.4. Ejemplo de fichero BED
Veamos un ejemplo de como ser´ıa un fichero BED con los campos obligatorios as´ı como algunos
campos opcionales/adicionales.
track name=junctions description="TopHat junctions"
Chr2 89280 89459 JUNC00000001 1 - 89280 89459 255,0,0 2 28,23 0,156
Chr2 133079 133351 JUNC00000002 4 - 133079 133351 255,0,0 2 79,94 0,178
Chr2 133295 133530 JUNC00000003 2 - 133295 133530 255,0,0 2 65,76 0,159
A.4. FASTA
El formato FASTA es un formato de texto plano utilizado para represental especialmente ´acidos
nucl´eicos. En dicho formato cada par de bases o amino´acidos se representan con un c´odigo de una ´unica
letra. El formato tambi´en permite la inclusi´on de comentarios as´ı como de ponerle nombre a la secuencia.
Una l´ınea de formato FASTA comienza con una l´ınea de cabecera seguida de una serie de l´ıneas de
datos de la secuencia. La l´ınea de cabecera se distingue de los datos porque comienza con el car´acter
‘¿’. La palabra que sigue al car´acter ‘¿’ es el identificador de la secuencia y el resto de la l´ınea es la
descripci´on. Es recomendable que las l´ıneas no superen los 80 caracteres. Por otro lado, tenemos que
indicar que la secuencia termina cuando aparece una l´ınea que comienza con ‘¿’ (indicando la secuencia
siguiente). Un ejemplo de una secuencia en formato FASTA ser´ıa:
>gi|129295|sp|P01013|OVAX_CHICK GENE X PROTEIN (OVALBUMIN-RELATED)
QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE
KMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTS
VLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHP
FLFLIKHNPTNTIVYFGRYWSP
A.4.1. L´ınea de cabecera
La l´ınea de cabecera (que comienza por ‘¿’) proporciona un nombre y/o identificador ´unico a cada
secuencia, y en ciertas ocasiones informaci´on adicional. Muchas bases de datos de secuencias usan una
serie de cabeceras estandarizadas, para de esta forma poder extraer informaci´on autom´atica de cada
secuencia.
Veamos un fichero que contiene varias secuencias con sus respectivos identificadores:
>IDENT_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
115
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
>IDENT_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH
A.4.2. Representaci´on de la secuencia
Tras la l´ınea de cabecera prosiguen las lineas de secuencia (de una longitud, recomendada, no mayor
de 80). Las secuencias pueden corresponder a secuencias de prote´ınas o de ´acidos nucl´eicos. Adem´as
pueden contener huecos (gaps) o caracteres de alineamiento. No se aceptan d´ıgitos num´ericos y entre las
letras aceptadas se ven en las siguientes tablas.
Los c´odigos de ´acidos nucl´eicos soportados son:
Tabla A.6: C´odigos de ´acidos nucl´eicos en el formato FASTA
C´odigo Significado
A Adenosina
C Citosina
G Guanina
T Timina
U Uracilo
R G A (puRina)
Y T C (pirimidina/pYrimidine)
K G T (cetona/Ketone)
M A C (grupo aMino)
S G C (interacci´on fuerte/Strong interaction)
W A T (interacci´on d´ebil/Weak interaction)
B G T C (no A) (B viene tras la A)
D G A T (no C) (D viene tras la C)
H A C T (no G) (H viene tras la G)
V G C A (no T, no U) (V viene tras la U)
N A G C T (cualquiera/aNy)
X m´ascara
- hueco (gap) de longitud indeterminada
Los c´odigos de amino´acidos soportados son:
116
Tabla A.7: C´odigos de amino´acidos en el formato FASTA
C´odigo Significado
A Alanina
B ´Acido asp´artico o Asparagina
C Ciste´ına
D ´Acido asp´artico
E ´Acido glut´amico
F Fenilalanina
G Glicina
H Histidina
I Isoleucina
K Lisina
L Leucina
M Metionina
N Asparagina
O Pirrolisina
P Prolina
Q Glutamina
R Arginina
S Serina
T Treonina
U Selenociste´ına
V Valina
W Tript´ofano
Y Tirosina
Z ´Acido glut´amico o Glutamina
X cualquiera
* parada de traducci´on
- hueco (gap) de longitud indeterminada
A.5. FASTQ
El formato FASTQ es un formato de texto plano para almacenar secuencias (principalmente) de
nucle´otidos adem´as de los valores de calidad asociados a cada base. Tanto la base como la calidad est´an
codificados con un ´unico car´acter ASCII.
A.5.1. Formato
Un fichero FASTQ usa generalmente 4 l´ıneas por cada secuencia.
1. La primera l´ınea comienza con una ‘@’ y le sigue un identificador de secuencia y opcionalmente una
descripci´on (como en el caso del formato FASTA).
2. La l´ınea 2 contiene todo el contenido de la secuecia (las bases nucle´otidas).
3. La l´ınea 3 comienza con el car´acter ‘+’, y opcionalmente el identificador de la secuencia que
encontramos en la l´ınea 1.
4. La l´ınea 3 contiene las calidades asociadas a la secuencia de la l´ınea 2.
Un ejemplo de fichero FASTQ es el siguiente:
@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!’’*((((***+))%%%++)(%%%%).1***-+*’’))**55CCF>>>>>>CCCCCCC65
117
Los valores de calidad van codificados seg´un la Phred Quality4
.
A.6. GFF
El formato GFF (del ingl´es General Feature Format) es un formato de fichero en el cual cada l´ınea cons-
ta de nueve campos obligatorios separados por tabulaciones. Si estos campos se separan por espacios en
blanco, en vez de tabuladores, pueden aparecer errores a la hora de mostrar la informaci´on. Para m´as in-
formaci´on acerca del formato GFF puede acceder a la web oficial http://www.sanger.ac.uk/resources/software/gff.
Veamos una breve descripci´on de los campos del formato GFF:
seqname El nombre de la secuencia.
source El programa que gener´o dicha informaci´on.
feature El nombre del tipo de caracter´ıstica. Algunos ejemplos de caracter´ısticas est´andar son
“CDS”, “start codon”, “stop codon” y “ex´on”.
start Primera posici´on en la cadena. La primera base se numera como 1.
stop ´Ultima posici´on en la cadena.
score Puntuaci´on entre 0 y 1000. Hace referencia a la tonalidad de gris que se usar´a para mostrar
la informaci´on.
strand Orientaci´on de la hebra: “+” o “-”.
frame Si la caracter´ıstica es un “ex´on”, frame ser´a un n´umero entre 0 − 2 que representa el marco
de lectura de la primera base. En caso contrario el valor deber´a ser “.”.
group Todas las l´ıneas de un mismo grupo son enlazadas juntas en un mismo elemento.
Aqu´ı vemos un ejemplo de un fragmento de fichero GFF.
track name=regulatory description="TeleGene(tm) Regulatory Regions"
chr22 TeleGene enhancer 1000000 1001000 500 + . touch1
chr22 TeleGene promoter 1010000 1010100 900 + . touch1
chr22 TeleGene promoter 1020000 1020000 800 - . touch2
A.7. GTF
A.7.1. Introducci´on
GTF son las siglas de Formato de Transferencia de Genes (del ingl´es Gene Transfer Format). Toma
prestadas caracter´ısticas de GFF5
, pero a˜nade una estructura adicional que garantiza una definici´on por
separado y un formato de nombre.
La estructura es como un fichero GFF, por lo que los campos son:
<seqname> <source> <feature> <start> <end> <score> <strand> <frame> [attributes] [comments]
Aqu´ı vemos un ejemplo simple con 3 exones traducidos. El orden de las filas no es relevante.
381 Twinscan CDS 380 401 . + 0 gene_id "001"; transcript_id "001.1";
381 Twinscan CDS 501 650 . + 2 gene_id "001"; transcript_id "001.1";
381 Twinscan CDS 700 707 . + 2 gene_id "001"; transcript_id "001.1";
381 Twinscan start_codon 380 382 . + 0 gene_id "001"; transcript_id "001.1";
381 Twinscan stop_codon 708 710 . + 0 gene_id "001"; transcript_id "001.1";
4Para m´as informaci´on acceda a la web http://www.phrap.com/phred/
5V´ease el ap´endice A.6 para m´as informaci´on acerca del formato GFF
118
Los espacios en blanco en el ejemplo es para facilitar la lectura. En GTF, los campos deben estar
separados por tabuladores no por espacios en blanco.
A.7.2. Campos del formato GTF
Veamos una definici´on m´as detallada de cada uno de los campos de un registro dentro de un fichero
GTF:
<seqname> El nombre de la secuencia. Por lo general, este es el Id del cromosoma o el Id del
contig.
<source> Source debe ser una columna con una etiqueta ´unica que indique de d´onde vienen
las anotaciones (por lo general de un programa de predicci´on o una base de datos
p´ublica).
<feature> Se requieren alguna de las siguientes caracter´ısticas6
: “CDS”, “start codon” o “stop codon”.
Las opciones “5UTR”, “3UTR”, “inter”, “inter CNS”, “intron CNS” y “exon” son
opcionales. Todas las dem´as ser´an ignoradas.
<start><end> Entero que representa las coordenadas de inicio y fin relativas a la secuencia nom-
brada por <seqname>. <start> debe ser menor o igual que <end>. Los valores de
<start> y <end> que se extiendan fuera de la secuencia de referencia son t´ecnica-
mente acepables, pero se desalientan.
<score> El campo puntuaci´on indica el grado de confianza en la existencia de la caracter´ıstica
as´ı como en las coordenadas. El valor de este campo no tiene escala global pero
puede tener importancia relativa cuando el campo <source> indica la predicci´on del
programa usado para crear dicha anotaci´on. Puede ser un n´umero en punto flotante
o entero, y no es necesario, puede ser reemplazado por un punto.
<strand> Contenido de la hebra.
<frame> Un 0 indica que la caracter´ıstica comienza con un cod´on en la primera base del
sentido 5 . Un 1 significa que hay una base extra (la tercera base de un cod´on) antes
del primer cod´on entero y un 2 significa que hay dos bases extras (las bases segunda y
tercera del cod´on) antes del primer cod´on. Tenga en cuenta que para la hebra inversa,
la base m´as cerca de la 5 es la coordenada <end>.
atributes Los nueve campos tienen los mismos dos atributos obligatorios al final del registro:
gene id value; Identificador ´unico que identifica al gen. Si est´a vac´ıo, no hay gen
asociado al regisro.
transcript id value; Identificador ´unico que identifica al transcrito. Si est´a vac´ıo,
no hay transcrito asociado al registro.
Estos atributos est´an dise˜nados para el manejo de m´ultiples transcritos de la misma
regi´on gen´omica. Cualquier otro atributo o comentario deber´an aparecer despu´es de
estos dos y ser´an ignorados. Los atributos deben terminar en punto y coma, que
adem´as deben separarse entre s´ı (los atributos) mediante un espacio en blanco. Los
atributos de texto deber´an ir entre comillas dobles.
comments Los comentarios comienzan con una almohadilla (‘#’) y contin´uan hasta el final de
la l´ınea. Pueden aparecer en cualquier parte del archivo, incluyendo el final de un
registro.
6Para m´as informacion acerca de estas caracter´ısticas visite la p´agina oficial de GTF
http://mblab.wustl.edu/GTF22.html
119
A.7.3. Ejemplos del formato GTF
Veamos un ejemplo de un gen (en el sentido inverso de la hebra) incluyendo regiones UTR.
140 Twinscan inter 5141 8522 . - . gene_id ""; transcript_id "";
140 Twinscan inter_CNS 8523 9711 . - . gene_id ""; transcript_id "";
140 Twinscan inter 9712 13182 . - . gene_id ""; transcript_id "";
140 Twinscan 3UTR 65149 65487 . - . gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan 3UTR 66823 66992 . - . gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan stop_codon 66993 66995 . - 0 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan CDS 66996 66999 . - 1 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan intron_CNS 70103 70151 . - . gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan CDS 70207 70294 . - 2 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan CDS 71696 71807 . - 0 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan start_codon 71805 71806 . - 0 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan start_codon 73222 73222 . - 2 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan CDS 73222 73222 . - 0 gene_id "140.000"; transcript_id "140.000.1";
140 Twinscan 5UTR 73223 73504 . - . gene_id "140.000"; transcript_id "140.000.1";
He aqu´ı un ejemplo en el que se utiliza la caracter´ıstica “ex´on”.
381 Twinscan exon 150 200 . + . gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan exon 300 401 . + . gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan CDS 380 401 . + 0 gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan exon 501 650 . + . gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan CDS 501 650 . + 2 gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan exon 700 800 . + . gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan CDS 700 707 . + 2 gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan exon 900 1000 . + . gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan start_codon 380 382 . + 0 gene_id "381.000"; transcript_id "381.000.1";
381 Twinscan stop_codon 708 710 . + 0 gene_id "381.000"; transcript_id "381.000.1";
120
Bibliograf´ıa
[1] Simon Anders and Wolfgang Huber. Differential expression analysis for sequence count data. Ge-
nome Biology, 11(10):R106, 2010.
[2] James Bullard, Elizabeth Purdom, Kasper Hansen, and Sandrine Dudoit. Evaluation of statistical
methods for normalization and differential expression in mrna-seq experiments. BMC Bioinforma-
tics, 11(1):94, 2010.
[3] M. Burrows and D. J. Wheeler. A block-sorting lossless data compression algorithm. Technical
Report 124, 1994.
[4] Mois`es Burset and Roderic Guig´o. Evaluation of gene structure prediction programs. Genomics,
34(3):353 – 367, 1996.
[5] R. P. Dilworth. A decomposition theorem for partially ordered sets. 1950.
[6] Nicholas Eriksson, Lior Pachter, Yumi Mitsuya, Soo-Yon Rhee, Chunlin Wang, Baback Gharizadeh,
Mostafa Ronaghi, Robert W. Shafer, and Niko Beerenwinkel. Viral population estimation using
pyrosequencing. PLoS Comput Biol, 4(5):e1000074, 05 2008.
[7] P. Ferragina and G. Manzini. Opportunistic data structures with applications. In Proceedings of the
41st Annual Symposium on Foundations of Computer Science, pages 390–, Washington, DC, USA,
2000. IEEE Computer Society.
[8] Brian J. Haas, Arthur L. Delcher, Stephen M. Mount, Jennifer R. Wortman, Roger K. Smith Jr,
Linda I. Hannick, Rama Maiti, Catherine M. Ronning, Douglas B. Rusch, Christopher D. Town,
Steven L. Salzberg, and Owen White. Improving the arabidopsis genome annotation using maximal
transcript alignment assemblies. Nucleic Acids Research, 31(19):5654–5666, 2003.
[9] Kasper D. Hansen, Steven E. Brenner, and Sandrine Dudoit. Biases in illumina transcriptome
sequencing caused by random hexamer priming. Nucleic Acids Research, 38(12):e131, 2010.
[10] Hui Jiang and Wing Hung Wong. Statistical inferences for isoform expression in rna-seq. Bioinfor-
matics, 25(8):1026–1032, 2009.
[11] Juha K¨arkk¨ainen. Fast bwt in small space by blockwise suffix sorting. Theor. Comput. Sci., 387:249–
257, November 2007.
[12] Ben Langmead, Kasper Hansen, and Jeffrey Leek. Cloud-scale rna-sequencing differential expression
analysis with myrna. Genome Biology, 11(8):R83, 2010.
[13] Ben Langmead, Cole Trapnell, Mihai Pop, and Steven L Salzberg. Ultrafast and memory-efficient
alignment of short DNA sequences to the human genome. Genome biology, 10(3):R25, January 2009.
[14] Albert Lehninger, David L. Nelson, and Michael M. Cox. Lehninger Principles of Biochemistry. W.
H. Freeman, fifth edition edition, June 2008.
[15] Heng Li and Richard Durbin. Fast and accurate short read alignment with burrows
’
wheeler trans-
form. Bioinformatics, 25(14):1754–1760, 2009.
121
[16] John C. Marioni, Christopher E. Mason, Shrikant M. Mane, Matthew Stephens, and Yoav Gilad.
Rna-seq: An assessment of technical reproducibility and comparison with gene expression arrays.
Genome Research, 18(9):1509–1517, 2008.
[17] Ali Mortazavi, Brian A Williams, Kenneth McCue, Lorian Schaeffer, and Barbara Wold. Mapping
and quantifying mammalian transcriptomes by rna-seq. Nat Meth, 5(7):621–628, 07 2008.
[18] Adam Roberts, Cole Trapnell, Julie Donaghey, John Rinn, and Lior Pachter. Improving rna-seq
expression estimates by correcting for fragment bias. Genome Biology, 12(3):R22, 2011.
[19] Mark D. Robinson, Davis J. McCarthy, and Gordon K. Smyth. edger: a bioconductor package for
differential expression analysis of digital gene expression data. Bioinformatics, 26(1):139–140, 2010.
[20] Cole Trapnell, Lior Pachter, and Steven L Salzberg. TopHat: discovering splice junctions with
RNA-Seq. Bioinformatics (Oxford, England), 25(9):1105–11, May 2009.
[21] Cole Trapnell, Brian A Williams, Geo Pertea, Ali Mortazavi, Gordon Kwan, Marijke J van Baren,
Steven L Salzberg, Barbara J Wold, and Lior Pachter. Transcript assembly and quantification
by rna-seq reveals unannotated transcripts and isoform switching during cell differentiation. Nat
Biotech, 28(5):511–515, 05 2010.
[22] J. Craig Venter, Mark D. Adams, Eugene W. Myers, et al. The sequence of the human genome.
Science, 291(5507):1304–1351, 2001.
[23] Eric T. Wang, Rickard Sandberg, Shujun Luo, Irina Khrebtukova, Lu Zhang, Christine Mayr, Step-
hen F. Kingsmore, Gary P. Schroth, and Christopher B. Burge. Alternative isoform regulation in
human tissue transcriptomes. Nature, 456(7221):470–476, 11 2008.
122

Más contenido relacionado

PDF
Manual impacta espanhol
PDF
Algoritmos programacion-python
PDF
Algoritmos programacion-python
PDF
PDF
Introduccion al lenguaje c
PDF
Unixsec
PDF
Scd 13-14 todo
Manual impacta espanhol
Algoritmos programacion-python
Algoritmos programacion-python
Introduccion al lenguaje c
Unixsec
Scd 13-14 todo

La actualidad más candente (16)

PDF
Apunts dintel ligencia_artificial
PDF
PDF
Ft 2800 m-spanish
PDF
Manual yaesu ft 1802
PDF
1246876145manualprogramacióNcastellano 050906
PDF
Es acs800español
PDF
Análisis numérico de impacto no lineal en sistemas multicomponentes, con ANSY...
PDF
PDF
GNU/Linux Mandrake 10.1 Guía De Comienzo (Español)
PDF
Lego education we do teacher's guide (wedo)
PDF
Electronicadigital
PDF
Lego education we do guia del profesor
PDF
Symfony2 es
PDF
Ecosys m2030dn ...535dn_og_es
Apunts dintel ligencia_artificial
Ft 2800 m-spanish
Manual yaesu ft 1802
1246876145manualprogramacióNcastellano 050906
Es acs800español
Análisis numérico de impacto no lineal en sistemas multicomponentes, con ANSY...
GNU/Linux Mandrake 10.1 Guía De Comienzo (Español)
Lego education we do teacher's guide (wedo)
Electronicadigital
Lego education we do guia del profesor
Symfony2 es
Ecosys m2030dn ...535dn_og_es
Publicidad

Similar a Alejandro tfm (20)

PDF
TFM_MJVillanueva
PDF
RasterR.pdf
PDF
Datos con r
PDF
Micro Station V8
PDF
Nuevo enfoque de aprendizajesemi-supervisado para la identificaciónde secuenci...
PDF
ODP
Python en ciencia Pycon Argentina 2009
PDF
Esquemas iterativos en paralelo con OpenMP
PDF
Manual minitab 16
PDF
Manual minitab 16
PDF
Es16 meet minitab
PDF
Introducción al r
PDF
PDF
Manual r 1
PDF
Fast comparison of microbial genomes using the Chaos Games Representation for...
PDF
R manual
PDF
Manual minitab 16
PDF
Programacion en python_2
PDF
INFORME: ELABORACIÓN DE DENDROGRAMAS A PARTIR DE ARTÍCULOS CIENTÍFICOS UTILIZ...
PDF
Localización y decodificación de códigos de barras en imágenes digitales
TFM_MJVillanueva
RasterR.pdf
Datos con r
Micro Station V8
Nuevo enfoque de aprendizajesemi-supervisado para la identificaciónde secuenci...
Python en ciencia Pycon Argentina 2009
Esquemas iterativos en paralelo con OpenMP
Manual minitab 16
Manual minitab 16
Es16 meet minitab
Introducción al r
Manual r 1
Fast comparison of microbial genomes using the Chaos Games Representation for...
R manual
Manual minitab 16
Programacion en python_2
INFORME: ELABORACIÓN DE DENDROGRAMAS A PARTIR DE ARTÍCULOS CIENTÍFICOS UTILIZ...
Localización y decodificación de códigos de barras en imágenes digitales
Publicidad

Alejandro tfm

  • 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
  • 2. 2
  • 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
  • 4. 4
  • 5. ´Indice general I Manuales de usuario 13 1. Bowtie 15 1.1. ¿Qu´e es Bowtie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2. ¿Qu´e no es Bowtie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.3. Obtener Bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1. Compilando desde los fuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4. El alineador bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.4.1. El modo de alineaci´on -n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.4.2. El modo de alineaci´on -v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.4.3. Estratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.4.4. Modos de representaci´on de informes . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.4.5. Alineamiento de Extremos emparejados . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.6. Alineacion por Espacio de Colores . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.4.7. Optimizaci´on del rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.8. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.9. Salida por defecto de bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.4.10. Salida en formato SAM de bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.5. El indexador bowtie-build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.5.1. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.6. El inspector de ´ındices bowtie-inspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.6.1. L´ınea de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2. TopHat 37 2.1. ¿Qu´e es TopHat? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.2. ¿Qu´e tipo de lecturas podemos usar con TopHat? . . . . . . . . . . . . . . . . . . . . . . . 37 2.3. ¿C´omo encuentra TopHat las uniones? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4. Prerrequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5. Obtener e instalar TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.6. Usando el mapeador de uniones TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.6.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.6.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.6.3. Opciones Avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.6.4. Suministrando nuestras propias uniones . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6.5. Suministrando nuestas propias inserciones y deleciones . . . . . . . . . . . . . . . . 43 2.6.6. Proporcionando a TopHat un fichero de anotaciones . . . . . . . . . . . . . . . . . 43 2.7. Salida de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3. Cufflinks 45 3.1. ¿Qu´e es Cufflinks? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.1. ¿C´omo ensambla los transcritos Cufflinks? . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.2. ¿C´omo calcula Cufflinks la abundancia de transcritos? . . . . . . . . . . . . . . . . 46 3.1.3. ¿C´omo calcula Cufflinks la distribuci´on de la longitud de los fragmentos? . . . . . 46 3.1.4. ¿C´omo Cufflinks identifica y corrige el sesgo de las secuencias? . . . . . . . . . . . 47 3.1.5. ¿C´omo gestiona Cufflinks las lecturas con m´ultiples alineaciones? . . . . . . . . . . 47 5
  • 6. 3.1.6. ¿C´omo funciona la anotaci´on de referencia basada en transcritos (RABT)? . . . . 47 3.2. ¿Qu´e es Cuffdiff? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.1. ¿C´omo prueba Cuffdiff la expresi´on diferencial y la regulaci´on? . . . . . . . . . . . 48 3.2.2. ¿C´omo funciona la normalizaci´on del cuartil superior? . . . . . . . . . . . . . . . . 50 3.2.3. ¿C´omo trata Cuffdiff las r´eplicas biol´ogicas? . . . . . . . . . . . . . . . . . . . . . . 50 3.3. Prerrequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4. Ejecutando Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.2. Opciones generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.3. Opciones avanzadas de estimaci´on de la abundancia . . . . . . . . . . . . . . . . . 53 3.4.4. Opciones avanzadas de ensamblaje . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.5. Opciones avanzadas de anotaciones de referencia basada en Transcritos (RABT) . 54 3.4.6. Opciones avanzadas del programa de comportamiento . . . . . . . . . . . . . . . . 55 3.4.7. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4.8. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.5. Ejecutando Cuffcompare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.5.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5.3. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5.4. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.6. Uniendo ensamblajes con Cuffmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.6.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.6.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.6.3. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.6.4. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7. Ejecutando Cuffdiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7.1. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7.2. Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.7.3. Opciones avanzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.7.4. Ficheros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.7.5. Ficheros de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.8. Formato de seguimiento FPKM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.9. Biblioteca de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4. SAMtools 69 4.1. ¿Qu´e es SAMtools? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.2. Comandos y opciones de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 II Casos pr´acticos 75 5. Arabidopsis Thaliana 77 5.1. Genoma de la A. Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2. Indexaci´on del Genoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3. Experimento SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.3.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.3.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4. Experimento SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.4.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.4.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.4.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.4.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6
  • 7. 5.5. Experimento SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.5.1. Lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.5.2. Ejecuci´on de TopHat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.5.3. Ejecuci´on de SAMtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.5.4. Ejecuci´on de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.5.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Ap´endices 104 A. Formatos de ficheros 107 A.1. SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.1.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.1.2. Cabecera del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 A.1.3. Campos obligatorios de la secci´on de Alineamientos . . . . . . . . . . . . . . . . . 109 A.1.4. Campos opcionales de la secci´on de alineamientos . . . . . . . . . . . . . . . . . . . 112 A.2. BAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 A.3. BED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 A.3.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 A.3.2. Campos obligatorios en el formato BED . . . . . . . . . . . . . . . . . . . . . . . . 114 A.3.3. Campos adicionales u opcionales en el formato BED . . . . . . . . . . . . . . . . . 114 A.3.4. Ejemplo de fichero BED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 A.4. FASTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 A.4.1. L´ınea de cabecera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 A.4.2. Representaci´on de la secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 A.5. FASTQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 A.5.1. Formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 A.6. GFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.7. GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.7.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.7.2. Campos del formato GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 A.7.3. Ejemplos del formato GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Bibliograf´ıa 121 7
  • 8. 8
  • 9. ´Indice de Figuras 5.1. Detalle de la Arabidopsis Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2. Ficheros del genoma de la A. Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3. Detalle del Cromosoma 1 de la A.Thaliana . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.4. Ficheros del Genoma indexado de la A.Thaliana . . . . . . . . . . . . . . . . . . . . . . . 79 5.5. Grafico del tama˜no de las lecturas del exp SRP000615 . . . . . . . . . . . . . . . . . . . . 80 5.6. Detalle de las lecturas cortas del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . 81 5.7. Ficheros creados por Tophat en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 83 5.8. Detalle del fichero junctions.bed del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . 83 5.9. Porcentajes de alineamientos en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 84 5.10. Fichero accepted hits.sam del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.11. Fichero genes.fpkm tracking del exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . 86 5.12. Tiempos ejecuci´on exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.13. Expresi´on diferencial en el exp SRP000615 . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.14. Detalle de las lecturas cortas del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . 89 5.15. Ficheros creados por Tophat en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 90 5.16. Porcentajes de alineamientos en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 91 5.17. Fichero accepted hits.sam del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.18. Fichero genes.fpkm tracking del exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . 94 5.19. Tiempos ejecuci´on exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.20. Expresi´on diferencial en el exp SRX011868 . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.21. Detalle de las lecturas cortas del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . 97 5.22. Ficheros creados por Tophat en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 98 5.23. Detalle del fichero junctions.bed del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . 99 5.24. Porcentajes de alineamientos en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 99 5.25. Fichero accepted hits.sam del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.26. Fichero genes.fpkm tracking del exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . 101 5.27. Tiempos ejecuci´on exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.28. Expresi´on diferencial en el exp SRX022366 . . . . . . . . . . . . . . . . . . . . . . . . . . 103 A.1. Ejemmplo de lecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.2. Ejemplo de fichero SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9
  • 10. 10
  • 11. ´Indice de Tablas 3.1. Descripci´on del fichero transcripts.gtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.2. Descripci´on de un registro GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3. Descripci´on del fichero .tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.4. Descripci´on del fichero .refmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.5. Descripci´on del fichero .tmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.6. C´odigo de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.7. Formato de los ficheros de expresi´on diferencial . . . . . . . . . . . . . . . . . . . . . . . . 64 3.8. Formato de los ficheros de uni´on diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.9. Formato de los ficheros de codificaci´on diferencial de salida . . . . . . . . . . . . . . . . . 65 3.10. Formato de los ficheros de uso diferencial del promotor . . . . . . . . . . . . . . . . . . . . 66 3.11. Formato FPKM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.12. Biblioteca de tipos de Cufflinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.1. Campos obligatorios del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 A.2. Bits de la etiqueta FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 A.3. Operaciones CIGAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 A.4. Campos opcionales del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 A.5. Etiquetas predefinidas del formato SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 A.6. C´odigos de ´acidos nucl´eicos en el formato FASTA . . . . . . . . . . . . . . . . . . . . . . . 116 A.7. C´odigos de amino´acidos en el formato FASTA . . . . . . . . . . . . . . . . . . . . . . . . . 117 11
  • 12. 12
  • 13. Parte I Manuales de usuario 13
  • 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
  • 36. 36
  • 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
  • 42. --min-closure-intron Longitud m´ınima del intr´on que se puede encontrar durante la b´usqueda de cierre. El valor por defecto es 50. --max-closure-intron Longitud m´axima del intr´on que se puede encontrar durante la b´usqueda de cierre. El valor por defecto es 5000. --min-coverage-intron Longitud m´ınima del intr´on que se puede encontrar durante la b´usqueda por cobertura. El valor por defecto es 50. --max-coverage-intron Longitud m´axima del intr´on que se puede encontrar durante la b´usqueda por cobertura. El valor por defecto es 20000. --min-segment-intron Longitud m´ınima del intr´on que se puede encontrar durante la b´usqueda por divisi´on de segmentos. El valor por defecto es 50. --max-segment-intron Longitud m´axima del intr´on que se puede encontrar durante la b´usqueda por divisi´on de segmentos. El valor por defecto es 500000. --keep-tmp Hace que TopHat mantenga los ficheros temporales producidos durante la ejecuci´on. Por defecto, TopHat los elimina despu´es de la ejecuci´on. --no-sort-bam El fichero de salida BAM no es ordenado seg´un coordenadas. --no-convert-bam No se convierte al formato BAM. El fichero de salida es un fichero SAM de la siguiente forma: <dir_salida>/accepted_hit.sam. Esta opci´on implica --no-sort- bam. -z/--zpacker Especificaremos de forma manual el programa que se usar´a para comprimir los ficheros temporales; por defecto se usa gzip. No se tiene porqu´e usar gzip ´unicamente, se pueden usar programas compatibles como por ejemplo: bzip2, pigz, pbzip2. 2.6.4. Suministrando nuestras propias uniones Las opciones siguientes nos permiten validar nuestras propias uniones con los datos de nuestro RNA secuenciado. -G/--GTF <GTF 2.2 file> Suministramos a TopHat una lista de modelos de anota- ciones de genes. TopHat utilizar´a los registros de exones en este archivo para crear un conjunto de uniones de em- palme para cada gen, y tratar´a de alinear lecturas a estas uniones incluso si no estuvieran inicialmente cubiertas por la asignaci´on inicial. -j/--raw-juncs <.juncs file> Suministramos a TopHat una lista de uniones en bruto. Las uniones se especifican una por l´ınea, y se hace uso de tabuladores para separar la informaci´on. Los registros son de la forma: <cromosoma> <izq> <der> <+/-> izq y der son coordenadas de bases, y especifican el primer y el ´ultimo car´acter de la secuencia. --no-novel-juncs Busca ´unicamente lecturas a trav´es de las uniones indica- das en el archivo GFF5 o el fichero de uniones. 5V´ease el ap´endice A.6 en la p´agina 118 para m´as informaci´on acerca del formato GFF 42
  • 43. 2.6.5. Suministrando nuestas propias inserciones y deleciones --insertions/--deletions <.juncs file> Suministramos a TopHat una lista de inserciones y delecio- nes con respecto a una referencia. Los indels se especifican una por l´ınea, y se hace uso de tabuladores para separar la informaci´on. Los registros son de la forma: <cromosoma> <izq> <der> <+/-> izq y der son coordenadas de bases, y especifican el primer y el ´ultimo car´acter de la secuencia. --no-novel-indels Busca ´unicamente lecturas a trav´es de los indels del fichero suministrado, o deshabilita la detecci´on de indels cuando no se adjunta ning´un fichero. 2.6.6. Proporcionando a TopHat un fichero de anotaciones Si opta por suministrar a TopHat un archivo GTF6 con anotaciones de genes, el programa buscar´a las uniones entre exones en los transcritos anotados. Hay que tener en cuenta que los valores de la primera columna, que indica d´onde se encuentra localizado el cromosoma o contig, debe coincidir con una se- cuencia de referencia del ´ındice de Bowtie que est´e utilizando TopHat. Para ver la lista de secuencias de un ´ındice de Bowtie deberemos usar el comando siguiente: bowtie-inspect --names tu_indice 2.7. Salida de TopHat El comando tophat produce una serie de ficheros en el directorio en el cual se invoca. La mayor´ıa de estos archivos son archivos internos, archivos temporales que se generan para el uso dentro del “pipeline”. Los archivos de salida m´as importantes son los siguientes: 1. accepted this.bam. Una lista de lecturas alineadas en formato SAM7 . 2. junctions.bed Conjunto de uniones UCSC BED8 reportadas por TopHat. Cada uni´on consta de dos bloques BED conectados, donde cada bloque es tan largo como la proyecc´on m´axima que abarca cualquier lectura de la uni´on. La puntuaci´on es el n´umero de alineaciones que abarca la uni´on. 3. insertions.bed y deletions.bed Conjunto de inserciones y deleciones UCSC BED reportadas por TopHat. 6V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF 7V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on sobre el formato SAM 8V´ease el ap´endice A.3 en la p´agina 114 para m´as informaci´on del formato BED 43
  • 44. 44
  • 45. Cap´ıtulo 3 Cufflinks 3.1. ¿Qu´e es Cufflinks? Cufflinks[21][18] ensambla alineamientos de lecturas de RNA en transcritos, calcula estimaciones de su abundancia y prueba la expresi´on diferencial y la regulaci´on del transcriptoma. Cufflinks se ejecuta tanto en m´aquinas con Sistema Operativo Linux como Mac OS X. 3.1.1. ¿C´omo ensambla los transcritos Cufflinks? Cufflinks construye un peque˜no conjunto de transcritos que “explican” las lecturas observadas en un experimento de secuencias de RNA. Esto lo realiza reduciendo el problema de ensamblaje a un problema de emparejamiento m´aximo en grafos bipartitos. En esencia, Cufflinks implementa una demostraci´on constructiva del Teorema de Dilworth [5] mediante la construcci´on de una relaci´on de cobertura en las lecturas a alinear, y encontrando un camino de cobertura m´ınimo en el grafo ac´ıclico dirigido de la relaci´on. Aunque Cufflinks trabaja muy bien con lecturas de RNA desemparejadas, est´a dise˜nado para trabajar con lecturas emparejadas. El algoritmo de ensamblaje se encarga expl´ıcitamente de manejar lecturas de extremos emparejados mediante el tratamiento de un par determinado como un objeto ´unico en la relaci´on de cobertura. La demostraci´on del Teorema de Dilworth nos dice que se encuentra una cardinalidad m´axima en el grafo bipartito del cierre transitivo del DAG (Grafo Dirigido Ac´ıclico). Sin embargo, no necesariamente es ´unica la m´axima cardinalidad encontrada, lo que refleja el hecho de que debido al tama˜no limitado de los fragmentos de cDNA, no podemos saber con certeza que los resultados de los eventos de “splicing” alternativo van de la mano de los mismos transcritos. Cufflinks trata de encontrar el conjunto correcto de transcritos mediante la realizaci´on de un emparejamiento de coste m´ınimo. El costo de asociar los eventos de splicing est´a basado en la puntuaci´on de “porcentaje de uniones” introducido en [23]. Este emparejamiento es ampliado a un camino m´ınimo de cobertura del DAG, cada camino representa un transcrito diferente. El algoritmo se basa en las ideas que hay detr´as del algoritmo ShoRAH para la estimaci´on de la abundancia de halotipos en las poblaciones virales, que se describe en [6]. El ensamblador tambi´en toma prestadas algunas ideas introducidas en el algoritmo PASA para anotar genomas de EST y plena evidencia de la longitud del mRNA, descrito en [8]. Cufflinks est´a implementado en C++ y hace un uso substancial de las librer´ıas Boost, as´ı como de la librer´ıa de Gr´aficos LEMON, que fue lanzada por Egerv´ary Research Group on Combinational Optimization (EGRES) 45
  • 46. 3.1.2. ¿C´omo calcula Cufflinks la abundancia de transcritos? En los experimentos de secuenciaci´on de RNA, los fragmentos de cDNA se ordenan y se asignan a genes e idealmente a transcritos individuales. Seg´un una normalizaci´on adecuada, cada fragmento de RNA puede ser utilizado como una medida de la abundancia de los transcritos, y Cufflinks mide la abundancia de transcritos en fragmentos por kilobase de ex´on por mill´on de fragmentos asignados (FPKM), que es una analog´ıa a una sola lectura “RPKM”, que fue originalmente propuesto en [17]. En los experimentos de RNA con extremos emparejados, los fragmentos se ordenan a partir de ambos extremos, siempre que tengan dos lecturas por cada fragmento. Para calcular los niveles de abundancia de isomorfos, se deben asignar fragmentos a transcritos individuales, lo cual puede ser complejo ya que una lectura puede alinear m´ultiples isomorfos en el mismo gen. Cufflinks usa un modelo estad´ıstico de secuenciaci´on de extremos emparejados para obtener una probabilidad de la abundancia de un conjunto de transcritos de un conjunto de fragmentos. Esta funci´on de verosimilitud (probabilidad) se puede demostrar que tiene un m´aximo ´unico, el cual Cufflinks encuentra mediante un algoritmo de optimizaci´on num´erica. El programa multiplica estas probabilidades para calcular la probabilidad general que se podr´ıa observar en los fragmentos del experimento. Debido a que el modelo estad´ıstico de Cufflinks es lineal, la funci´on de verosimilitud tiene un valor m´aximo y ´unico, y Cufflinks lo encuentra mediante un algoritmo de optimizaci´on num´erica. Cuando algunos isomorfos tienen una abundancia mayor que otros del mismo gen, o cuando el n´umero de lecturas para esa localizaci´on es menor, este procedimiento num´erico es menos preciso. Para generar confianza en la abundancia reportada, se ha adaptado el procedimiento de inferencia Bayesiana propuesto por Jiang Hui y Wing para lecturas simples de RNA en [10]. Usando estos m´etodos estad´ısticos, Cufflinks puede estimar la abundancia de los isomorfos presentes en una muestra, ya sea con una anotaci´on “de referencia” conocida, o despu´es de un ensamblaje ab-initio de los transcritos utilizando s´olo el genoma de referencia. 3.1.3. ¿C´omo calcula Cufflinks la distribuci´on de la longitud de los fragmen- tos? La distribuci´on de probabilidad de la longitud de los fragmentos juega un papel importante en el ensamblaje, la estimaci´on de la abundancia y la correcci´on del sesgo. La precisi´on de esta distribuci´on tendr´a un gran impacto en la exactitud de nuestros resultados. ◦ Si s´olo se proporcionan lecturas con extremos simples, no hay manera de estimar la distribuci´on emp´ıricamente, por lo que Cufflinks debe usar una distribuci´on aproximada de Gauss, ya sea con valores por defecto o proporcionados por el usuario1 . ◦ Si el archivo con los alineamientos contiene lecturas con extremos emparejados y se proporciona un ensamblaje, Cufflinks es capaz de generar la distribuci´on a partir de las lecturas que se mapean en isomorfismos simples en los genes. Debido a que el ensamblaje proporciona una estructura de uniones, los intrones pueden ser eliminados de las lecturas emparejadas, proporcionando de esta forma una estimaci´on m´as precisa. ◦ Si se proporciona lecturas con extremos emparejados y ning´un ensamblaje, Cufflinks buscar´a gran- des “zonas abiertas” donde los alineamientos no contengan uniones de lecturas. Dentro de esas “zonas” (o rangos), Cufflinks usar´a la longitud de la lectura para estimar la distribuci´on. Si no se encuentran suficientes lecturas dentro de estas zonas, Cufflinks calcular´a la distribuci´on aproxi- mada de Gauss como en el caso de lecturas simples (primer caso). Para asegurar una distribuci´on emp´ırica primero se ensamblar´a con la Gaussiana y luego la salida GTF2 se ensamblar´a en una segunda ejecuci´on de Cufflinks. 1V´ease la secci´on 3.4 en la p´agina 51 para m´as informaci´on acerca de las opciones disponibles 2V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on 46
  • 47. 3.1.4. ¿C´omo Cufflinks identifica y corrige el sesgo de las secuencias? A menudo, en los experimentos de secuenciaci´on de RNA, se presenta una secuencia espec´ıfica a modo de sesgo en la preparaci´on de la biblioteca que desaf´ıa el supuesto de la cobertura uniforme. Por ejemplo, una secuencia espec´ıfica de sesgo fue causada por el uso de hex´ameros aleatorios fue identificada en [9]. Debido a que este sesgo es causado generalmente por los cebadores usados, ya sea en la PCR o en la transcripci´on inversa, ´este aparece cerca de los finales de los fragmentos. Se ha desarrollado un m´etodo para corregir este sesgo mediante “aprendizaje” de las secuencias que est´an siendo seleccionadas (o ignoradas) para un experimento concreto, e incluyendo estas medidas para la estimaci´on de la abundancia. El primer paso en el proceso es generar una estimaci´on de la abundancia inicial sin utilizar la co- rrecci´on del sesgo. Debido a que diferentes transcritos nos pueden proporcionar diferentes secuencias en ellos, usamos esta abundancia aproximada para “valorar” las lecturas mediante el nivel de expresi´on del transcrito en el que se presentan. Esto nos ayuda a evitar que las secuencias que m´as aparecen interfieran demasiado en el c´alculo del sesgo. A continuaci´on, volvemos a cada fragmento en el fichero de alineamientos y aplicamos la ponderaci´on de la abundancia que hemos “aprendido”. Seguimos un modelo diferente para cada extremo de la lectura ya que el sesgo en la s´ıntesis de la primera y la segunda hebra no es siempre el mismo. Finalmente, se vuelve a estimar la abundancia con una funci´on de verosimilitud que ha sido adaptada para tener en cuenta el sesgo de la secuencia, en base a los par´ametros del modelo calculado en el paso anterior. El resultado es un nuevo conjunto de FPKMs que se ven menos afectados por el sesgo espec´ıfico de la secuencia. M´as detalles acerca de este m´etodo pueden encontrarse en [18]. 3.1.5. ¿C´omo gestiona Cufflinks las lecturas con m´ultiples alineaciones? Las lecturas individuales a veces son mapeadas en m´ultiples posiciones en el genoma debido a que la secuencia se repite y a la homolog´ıa. Por defecto, Cufflinks dividir´a uniformemente cada lectura mapeada muchas veces en todas las posiciones en las que ha sido asignada. En otras palabras, una lectura asignada en 10 posiciones contar´a como un 10 % de una lectura en cada posici´on. Si usamos la correcci´on de lecturas “multi-mapeadas” (-u/--multi-read-correct), Cufflinks mejorar´a su estimaci´on de inspir´andose (pero con m´as informaci´on) en el m´etodo “rescate” descrito en [17]. Cufflinks primero calcular´a las estimaciones iniciales de la abundancia para todos los transcritos usando el esquema de divisi´on uniforme. Luego Cufflinks re-estimar´a la abundancia dividiendo cada lectura “multi-mapeada” probabilisticamente bas´andose en la estimaci´on de la abundancia inicial de los genes en los que ha sido asignada, la longitud inferida del fragmento y el sesgo del fragmento (si se est´a usando correcci´on de sesgo). 3.1.6. ¿C´omo funciona la anotaci´on de referencia basada en transcritos (RABT)? El ensamblaje basado en anotaci´on de referencia pretende aprovechar la informaci´on disponible sobre el transcriptoma de un organismo para encontrar nuevos genes e isomorfismos. Cuando proporcionamos una referencia GTF3 (con la opci´on -g/--GTF-guide), los transcritos de referencia son “revestidos” con lecturas falsas que ayudan en el ensamblaje de los nuevos isomorfos. Estas lecturas falsas se combinan con las lecturas de la secuencia y se introducen en el ensamblador de Cufflinks. Los “transfrags” ensamblados son comparados con los transcritos de referencia para determinar si son lo suficientemente diferentes para ser considerados nuevos. Los que son “marcados” como nuevos seg´un nuestro criterio (v´ease las opciones de Cufflinks en la secci´on 3.4 en la p´agina 51 para ajustar los par´ametros) se muestran junto con los transcritos de la anotaci´on. EL uso de las lecturas falsas se inspir´o en los m´etodos descritos en [22]. 3V´ease m´as informaci´on en el ap´endice A.7 en la p´agina 118 47
  • 48. 3.2. ¿Qu´e es Cuffdiff? Cuffdiff es un programa que usa el motor de cuantifiaci´on de transcritos de Cufflinks para calcular los niveles de expresi´on de genes y transcritos. Se puede usar para encontrar encontrar genes y transcritos expresados diferencialmemte, as´ı como genes que est´an siendo regulados diferencialmente en el nivel transcripcional y post-transcripcional. 3.2.1. ¿C´omo prueba Cuffdiff la expresi´on diferencial y la regulaci´on? Cuffdiff toma un fichero GTF de transcritos como entrada, junto con dos o m´as ficheros SAM que contienen los fragmentos alineados para dos o m´as muestras. Esto produce una serie de ficheros de salida que contienen los resultados de los cambios de los niveles de expresi´on de los transcritos, los transcritos primarios y los genes. Tambi´en registra los cambios en la abundancia relativa de los transcritos que comparten una localizaci´on de transcripci´on inicial y en los cambios de la abundancia relativa de los transcritos primarios de cada gen. Cuffdiff requiere que los transcritos en el fichero de entrada GTF est´en anotados con ciertos atributos con el fin de buscar cambios en la expresi´on de los transcritos pri- marios, las uniones, la codificaci´on de salida y el uso del promotor. Estos atributos son los siguientes: Atributo Descripci´on tss id El ID de la posici´on de comienzo del transcrito. Determina cual es el transcrito primario del que se cree que este transcrito proviene. p id El ID de la secuencia que contiene este transcrito. Este atributo se adjun- ta a la salida de Cuffcompare4 s´olo cuando se ejecuta con una anotaci´on de referencia que incluye registros CDS. Adem´as, el an´alisis diferencial de CDS s´olo se realiza cuando todos los isomorfos del gen tienen el atri- buto p id , ya que ni Cufflinks ni Cuffcompare asignan un marco abierto de lecturas a transcritos. Los atributos anteriores, junto con el gene id requerido por la especificaci´on GTF, hace que cada transcrito pertenezca a un “grupo de genes”, “grupo de transcritos primarios” o “grupo CDS”. Los transcritos con el mismo gene id se integran en el mismo grupo de gen, y similarmente, los que tienen el mismo tss id y p id son parte del mismo grupo de transcritos primarios y grupo CDS. Cuffdiff realiza un seguimiento de los cambios no solo en el transcrito absoluto, transcrito primario, CDS y los FPKMs del gen, si no que tambi´en en los cambios relativos dentro de esos grupos. Para comprobar si una diferencia observada en la expresi´on g´enica es significante, Cuffdiff compara la relaci´on logar´ıtmica de expresi´on g´enica con dos condiciones contra el de una condici´on. Supongamos que escribimos la relaci´on de la expresi´on de un transcrito “t” con la condici´on a versus la condici´on b de la siguiente forma Y = FPKMa FPKMb El logaritmo de la relaci´on T puede ser usado como una prueba estad´ıstica debido a la cantidad: T = E[log(Y )] V ar[log(Y )] que es aproximadamente una distribuci´on normal y puede ser calculada como T = E[log(Y )] V ar[log(Y )] ≈ log(F P KMa F P KMb ) V ar[F P KMa] F P KM2 a + F P KMb F P KM2 b Hay que tener en cuenta que para calcular T, es necesario conocer la variaci´on del nivel de expresi´on en cada condici´on. La varianza tiene que incluir la variabilidad del n´umero de fragmentos generados por el transcrito a trav´es de las r´eplicas, y tambi´en debe incorporar cualquier incertidumbre en la estimaci´on de la expresi´on en si misma. Si el transcrito es el ´unico isomorfo en el gen al que pertenece (y todas sus 48
  • 49. lecturas se mapean de forma ´unica), no hay incertidumbre en la estimaci´on de la expresi´on. Sin embargo, si el transcrito es uno de m´ultiples isomorfos, habr´a cierta incertidumbre sobre el nivel de expresi´on de cada isomorfo. Cuffdiff calcula la variaci´on en el nivel de expresi´on del transcrito como V ar[FPKMt] = 109 ¯l(t) ¯M 2 (V ar[Xt]) Donde V ar[Xt] es la variaci´on en el n´umero de fragmentos que provienen de los transcritos a trav´es de las r´eplicas del experimento. Si no hay repeticiones, este n´umero se supone que es una distribuci´on de Poisson, es decir, la variaci´on es igual a la media de la cuenta. En general, esto no es un gran modelo, porque la variaci´on entre repeticiones biol´ogicas tiende a ser mayor que la media. Sin embargo, si el experimento se repite para cada condici´on, Cuffdiff puede estimar mejor la varianza del n´umero de fragmentos y por lo tanto ofrecer una expresi´on diferencial m´as exacta. Para genes con isomorfos ´unicos, Cuffdiff modela la varianza del n´umero de fragmentos usando una distribuci´on binomial negativa, al igual que el m´etodo descrito por Anders y Huber [1]. Cuando un gen tiene m´ultiples isomorfismos, Cuffdiff incorpora su propia incertidumbre en la forma en la que asigna fragmento a transcritos en el c´alculo de la varianza del n´umero de fragmentos. Cuffdiff usa la beta-binomial negativa para modelar la sobredispersi´on y la incertidumbre de la asignaci´on de fragmentos de forma simult´anea. La beta-binomial negativa es una distribuci´on que surge cuando se mezclan varias binomiales negativas. Para cada gen, Cuffdiff ajusta los par´ametros de la beta-binomial negativa (llamados α, β y r) resolviendo el siguiente sistema de ecuaciones: r(1 − p) p = A r(1 − p) p2 = B αβ (α + β)2(α + β + 1) = A4 B4 · C r2 Donde A, B y C se definen como: A = Xg ˆγt B = VXg ˆγt C = X2 g ψg t,t Y p es: p = α − 1 α + β − 1 En las ecuaciones anteriores, Xg es el n´umero de fragmentos que caen sobre cualquier isomorfo del gen g al que pertenece el transcrito. El valor ˆγt es la proporci´on estimada de fragmentos de la secuenciaci´on del gen que vienen del transcrito t. El valor ψt,t es la incertidumbre del algoritmo en la propia estimaci´on de ˆγt. B es la variaci´on de cantidad de transcritos que tienen un recuento medio similar a t. Cuando se proporcionan replicas a Cuffdiff, los c´omputos de fragmentos se modelan mediante una regresi´on no lineal, como se describe en el punto 3.2.3 en la p´agina siguiente. Una vez que tenemos una estimaci´on de la varianza de la abundancia de transcritos en cada condici´on, se puede calcular el estad´ıstico de prueba. Adem´as, dada la variaci´on de la abundancia para cada isomorfo de un gen, podemos calcular la varianza de la abundancia de los genes. Cuando buscamos genes con cambios estad´ısticamente significativos en la expresi´on absoluta, Cufflinks utilizar un t-test para calcular los valores p de los cambios observados. 49
  • 50. Como se mencion´o anteriormente, Cufflinks tambi´en busca cambios en la abundancia relativa den- tro de los grupos biol´ogicamente interesantes de transcritos. Un tipo simple de cambio relativo en la abundancia de isomorfos es cuando un gen con varios promotores cambia entre ellos dependiendo de las condiciones. Otro tipo es la inclusi´on o exclusi´on de los exones alternativos. Al agrupar los transcritos juntos por sus promotores y buscar cambios en ellos y entre los grupos, podemos hacer una hip´otesis sobre cu´al es el mecanismo regulador (por uniones, transcripcional, etc.) que est´a produciendo esos cambios. Los cambios en la abundancia relativa son cuantificados mediante la ra´ız cuadrada de la divergencia de Jensen-Shannon, que tienen algunas caracter´ısticas clave que se necesitan aqu´ı. Para un grupo de transcritos, podemos escribir sus abundancias relativas p1, p2, . . . , pn de tal manera que sumen 1. La entrop´ıa de esta distribuci´on discreta p se describe como: H(p) = − n i=1 pi log pi La divergencia de Jensen-Shannon entre un conjunto de distribuciones p1 , p2 , . . . , pm se define como JS(p1 , . . . , pm ) = H p1 + . . . + pm m − m j=1 H(pj ) m Es decir, la divergencia JS es la entrop´ıa de la distribuci´on promedio menos el promedio de las entrop´ıas individuales. Cuffdiff utiliza la ra´ız cuadrada de esta divergencia para medir la “distancia” entre la abundancia relativa de un grupo de transcritos en dos condiciones de diferencia. Cuffdiff asigna los valores de p bas´andose en los cambios observados sobre la base de la divergencia JS. 3.2.2. ¿C´omo funciona la normalizaci´on del cuartil superior? Como se menciona en [2], un peque˜no n´umero de genes abundantes diferencialmente expresados pueden crear la (incorrecta) impresi´on de que genes menos abundantes tambi´en est´en diferencialmente expresados. Este problema puede ser mitigado mediante la exclusi´on de estos genes en la normalizaci´on de los valores de expresi´on del n´umero de lecturas asignadas en cada muestra. Un m´etodo para hacer esto es el m´etodo llamado “normalizaci´on del cuartil superior”, que ha demostrado ser un buen m´etodo para aumentar la exactitud diferencial en [2]. Esta correcci´on se lleva a cabo en Cufflinks y Cuffdiff como una opci´on dentro de la l´ınea de comandos. Si se solicita, Cufflinks/Cuffdiff usar´a el n´umero de lecturas asignadas al cuartil superior en vez de usar todo el mapa (M) cuando se calcula FPKM. 3.2.3. ¿C´omo trata Cuffdiff las r´eplicas biol´ogicas? La secuenciaci´on de RNA es un an´alisis muy sensible para la medici´on de la expresi´on g´enica, y puede ser usada para encontrar los genes que son diferencialmente expresados entre diferentes condi- ciones. Varios estudios anteriores analizaron m´ultiples bibliotecas gen´omicas a partir del mismo RNA y encontraron que el RNA es extremadamente reproducible. Estos estudios concluyeron que las t´ecnicas de replicaci´on de muestras no suelen ser necesarias. Numerosos estudios de secuenciaci´on de RNA han usado el “modelo de Poisson” para realizar las pruebas de expresi´on g´enica diferencial. Este modelo dice que la varianza de las replicas en el n´umero de fragmentos generados es igual a la media del n´umero de fragmentos de ese gen a trav´es de las replicas. Tambi´en nos lleva a algunas m´etodos sencillos para detec- tar la expresi´on g´enica diferencial de una forma estad´ıstica. Sin embargo, varios estudios recientes han encontrado que mientas el modelo de Poisson es apropiado para t´ecnicas de replicaci´on del mismo RNA, puede ser un pobre ajuste para r´eplicas biol´ogicas. Varios grupos han evaluado los modelos alternativos para la varianza del n´umero de fragmentos con buenos resultados. Para m´as detalles sobre el manejo de replicas en la secuenciaci´on de RNA deben buscar informaci´on en los art´ıculos [16],[19], [12] y [1]. 50
  • 51. Cuffdiff adopta un enfoque de an´alisis de expresi´on diferencial que es radicalmente diferente de la mayor´ıa de los otros paquetes de an´alisis de secuencias de RNA. Debido a que Cufflinks calcula la abundancia de transcritos individuales, esto hace que sea muy sensible a la hora de buscar la expresi´on diferencial en genes, especialmente cuando hay muchos “splice alternativos”. Sin embargo, con el fin de hacer frente a la sobredispersi´on, que se sabe que existe entre las r´eplicas biol´ogicas, Cuffdiff se ajusta a un modelo de variaci´on del n´umero de fragmentos en cada condici´on antes de realizar cualquier prueba. Cuffdiff utiliza el paquete de regresi´on LOCFIT, creado por Catherine Loader y Jiayang Sun, para este prop´osito. Cuffdiff modela la sobredispersi´on del n´umero de fragmentos del mismo modo en que Anders y Huber lo hacen en su paquete DEseq para obtener un modelo de dispersi´on para cada condici´on expe- rimental. Si s´olo hay una replica disponible en cada condici´on, Cuffdiff agrupa las condiciones para crear un modelo de dispersi´on. El modelo de dispersi´on, que describe las varianzas del n´umero de fragmento a trav´es de las r´eplicas, se utiliza para calcular las variaciones en los niveles relativos de expresi´on g´enica a trav´es de las r´eplicas. son estas variaciones del nivel de expresi´on las que se usan durante las pruebas de las diferencias entre los niveles de genes y transcritos. Una de las principales ventajas de usar Cuffdiff para el an´alisis diferencial sobre el resto de he- rramientas es que Cuffdiff nos dice cu´ales son los genes diferencialmente “emparejados”. Sin embargo, puede haber una cierta cantidad de variaci´on en la abundancia relativa de los isomorfos alternativos de un gen dependiendo de las r´eplicas. A fin de captar esa diferencia para su uso en las pruebas de expresi´on diferencial y regulaci´on, Cuffdiff agrupa los fragmentos antes de calcular la abundancia de los isomorfos individuales y luego examina la posibilidad de replicar dicho grupo a trav´es de un muestro por importancia. El modelo de sobredispersi´on producido por LOCFIT se combina con el la estimaci´on de la incertidumbre por el procedimiento de muestreo por importancia para establecer los par´ametros de una primera versi´on de una distribuci´on binomial negativa. Esta distribuci´on proporciona un modelo de variaci´on para el n´umero de fragmentos que se originan en cada isomorfo de un splice alternativo. Por lo tanto, Cuffdiff no s´olo aprende los niveles de sobredispersi´on del n´umero de fragmentos a trav´es de las r´eplicas, sino que tambi´en utiliza las r´eplicas para capturar la incertidumbre entre los isomorfos alternativos de cada gen. 3.3. Prerrequisitos Para poder ejecutar Cufflinks necesitamos una m´aquina con arquitectura intel que tenga como sistema operativo Linux o Mac OS X, adem´as de tener instalado GCC 4.0 o superior. Para usar Cufflinks puede hacer uso de los binarios pre-compilados o compilar los fuentes usted mismo. Si prefiere la opci´on de compilar los fuentes, necesita instalar previamente en el sistema la librer´ıa Boost de C++. Adem´as, ne- cesita tener instalado tambi´en SAM tools5 , debido a que las cabeceras y la librer´ıa libbam son necesarias para construir Cufflinks. 3.4. Ejecutando Cufflinks Uso de cufflinks en la l´ınea de comandos: Uso: cufflinks [opciones]* <lecturas_alineadas.(sam/bam)> A continuaci´on veremos una descripci´on detallada de las opciones usadas para controlar cufflinks. 3.4.1. Argumentos <lecturas alineadas.(sam/bam)> Un fichero de lecturas alineadas de secuencias de RNA en forma- to SAM6 . SAM es un est´andar sobre alineamientos de lecturas cortas, permite a los alineadores fijar etiquetas personalizadas a 5V´ease la secci´on 4 en la p´agina 69 para m´as informaci´on acerca de SAM tools 6V´ease el ap´endice A.1 en la p´agina 107 para m´as informaci´on sobre el formato SAM 51
  • 52. alineamientos individuales, y Cufflinks que las alineaciones que le pasamos tengan ciertas etiquetas. V´ease la secci´on 3.4.7 en la p´agina 55 para m´as detalles. 3.4.2. Opciones generales -h/--help Muestra la ayuda de Cufflinks. -o/--output-dir <dir> Indicamos el nombre del directorio en el cual Cuf- flinks crear´a los ficheros de salida. El directorio por defecto es ./. -p/--num-threads <int> Podemos especificar cu´antos threads se van a usar. Por defecto ´unicamente usamos un thread. -G/--GTF <anotaci´on de ref.(gtf/gff)> Con esta opci´on le indicamos a cufflinks que use la anotaci´on de referencia suministrada (en un fi- chero GFF7 ) para estimar la expresi´on isomorfa. No va a ensamblar nuevos transcritos, y el pro- grama va a ignorar las alineaciones que no sean estructuralmente compatibles con alg´un transcrito de referencia. -g/--GTF-guide <anotaci´on de ref.(gtf/gff)> Con esta opci´on le indicamos a cufflinks que use la anotaci´on de referencia suministrada (en un fichero GFF) para guiar el ensamblaje RABT 8 . Los transcritos de referencia ser´an unidos a lectu- ras “falsas” para proveer informaci´on adicional en el ensamblaje. En la salida se incluyen todos los transcritos de referencia, as´ı como cualquier nuevo gen e isomorfo que se haya ensamblado. -M/--mask-file <m´ascara.(gtf/gff)> Indicamos a Cufflinks que omita todas las lecturas que pudieran haber venido de transcritos del fiche- ro GFF. Se recomienda incluir en el fichero rRNA anotado, transcritos mitocondriales y otros trans- critos que se deseen ignorar del an´alisis -b/--frag-bias-correct <genoma> Proveemos a Cufflinks un fichero multifasta para que ejecute la detecci´on de sesgo y el algoritmo de correcci´on para mejorar la precisi´on de las estima- ciones de la abundancia de transcritos. Acceda a la secci´on 3.1.4 en la p´agina 47 para m´as informaci´on. -u/--multi-read-correct Le indica a Cufflinks que haga una estimaci´on ini- cial de forma m´as precisa para alinear lecturas en m´ultiples localizaciones a trav´es del genoma. V´ease la secci´on 3.1.5 en la p´agina 47 para m´as detalles. --library-type V´ease Biblioteca de Tipos en la secci´on 3.9 en la p´agina 67. 7V´ease el ap´endice A.6 en la p´agina 118 para m´as informaci´on acerca del formato GFF 8V´ease la secci´on 3.1.6 en la p´agina 47 para m´as informaci´on acerca de RABT 52
  • 53. 3.4.3. Opciones avanzadas de estimaci´on de la abundancia -m/--frag-len-mean <int> Longitud esperada (de media) de los fragmentos. Por defecto 200 pb.9 -s/--frag-len-std-dev <int> La desviaci´on est´andar para la distribuci´on de longitudes de los fragmentos. El valor predeterminado es 80 pb.10 -N/--upper-quartile-norm Con esta opci´on, Cufflinks normaliza seg´un el cuartil superior de la cantidad de fragmentos alineados individualmente en lugar de hacerlo seg´un el n´umero total de fragmentos secuenciados. --total-hits-norm Con esta opci´on, Cufflinks cuenta todos los fragmentos, inclu- yendo todos aquellos que no son compatibles con alguno de los transcritos de referencia, para calcular el n´umero de aciertos ma- peados usados en el denominador FPKM. Esta opci´on puede ser combinada con -N/--upper-quartile-norm. Por defecto est´a acti- vada. --compatible-hits-norm Con esta opci´on, Cufflinks cuenta ´unicamente los fragmentos que son compatibles con algun transcrito de referencia, para calcular el n´umero de aciertos mapeados usados en el denomina- dor FPKM. Esta opci´on puede ser combinada con -N/--upper- quartile-norm. Por defecto est´a desactivada, y puede ser s´olo usada en combinaci´on con --GTF. --num-importance-samples <int> Establece el n´umero de muestras relevantes generadas para cada lugar durante la estimaci´on de la abundancia. Por defecto son 1000. --max-mle-iterations <int> Establece el n´umero de iteraciones permitidas durante la estima- ci´on de la m´axima verosimilitud de la abundancia. Por defecto son 5000. 3.4.4. Opciones avanzadas de ensamblaje -L/--label Cufflinks informar´a de los “transfrags”11 en formato GTF12 , con un prefijo tomado mediante esta opci´on. El prefijo por defecto es “CUFF”. -F/--min-isoform-fraction < 0,0 − 1,0 > Despu´es de calcular la abundancia de isomorfos para un gen, Cufflinks ignora los transcritos que “el cree” que tienen una baja abundancia, debido a que los isomorfos expresa- dos con unos niveles extremadamente peque˜nos a menudo no son capaces de ensamblarse, adem´as pueden ser precur- sores de empalmes incompletos de transcritos procesados. Este par´ametro tambi´en puede ser usado para ignorar los intrones que forman parte de pocos alineamientos empal- mados. El valor por defecto es 0,1, o el 10 % del isomorfo m´as abundante (el isomorfo m´as importante) del gen. -j/--pre-mrna-fraction < 0,0 − 1,0 > Algunos protocolos de RNA-seq producen una gran canti- dad de lecturas que se originan a partir de transcritos em- palmados incompletos, y estas lecturas pueden confundir 9Cufflinks ahora aprende la longitud media de los fragmentos para un fichero SAM, as´ı que usar esta opci´on no se recomienda para lecturas con apareamientos finales 10Cufflinks ahora aprende la longitud media de los fragmentos para un fichero SAM, as´ı que usar esta opci´on no se recomienda para lecturas con apareamientos finales 11Fragmentos de transcritos 12V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF 53
  • 54. el ensamblaje de los mRNA. Cufflinks usa este par´ametro para filtrar los alineamientos que se encuentran dentro de los intervalos intr´onicos implicados por los alineamientos empalmados. La profundidad m´ınima de cobertura en la regi´on intr´onica cubierta por la alineaci´on se divide por el n´umero de lecturas empalmadas, si el resultado es menor que el valor del par´ametro las alineaciones intr´onicas son ignoradas. El valor por defecto es del 15 %. -I/--max-intron-length <int> Longitud m´axima del intr´on. Cufflinks no informar´a de los transcritos con intrones m´as grandes de este tama˜no e ig- norar´a los alineamientos SAM con operaciones REF SKIP CIGAR m´as grandes de este tama˜no. El valor por defecto es 300000. -a/--junc-alpha < 0,0 − 1,0 > El valor “alfa” para el test binomial. -A/--small-anchor-fraction < 0,0−1,0 > Las lecturas emparejadas con menos de este porcentaje en la longitud de cada uno de los lados de la uni´on son consi- deradas “sospechosas” y son candidatas para ser filtradas antes del ensamblaje. El valor por defecto es 0,09. --min-frags-per-transfrag <int> N´umero m´ınimo de fragmentos de RNA por transfrag para que sea reportado. El valor por defecto es 10 --overhang-tolerance <int> El n´umero de pares de bases permitidas para meter el intr´on de un transcrito para determinar si una lectura u otro transcrito es asignable a/compatible con ´el. --max-bundle-length <int> Longitud gen´omica m´axima permitida para un paquete de- terminado. El valor por defecto es 3500000 pares de bases. --min-intron-length <int> Tama˜no m´ınimo permitido del intr´on en el genoma. El va- lor por defecto es 50 pb. --trim-3-avgcov-thresh <int> Cobertura promedia m´ınima requerida para intentar el re- corte 3 . El valor por defeco es 10. --trim-3-dropoff-frac <int> Fracci´on de cobertura media por debajo de la cual se “cor- ta” el extremo 3 de un transcrito ensamblado. El valor por defecto es 0,1. 3.4.5. Opciones avanzadas de anotaciones de referencia basada en Transcri- tos (RABT) --3-overhang-tolerance <int> El n´umero de pares de bases permitidos en el extremo 3 de un transcrito de referencia para determinar si un transcrito ensamblado debe fusionarse con ´el. El valor por defecto es 600pb. --intron-overhang-tolerance <int> El n´umero de pares de bases permitidas en el intr´on de un transcrito de referencia para determinar si un transcrito de ensamblado debe ser fusionado por el. El valor por defecto es de 50pb. --no-faux-reads Esta opci´on desactiva el apilamiento de los transcritos de re- ferencia con lecturas “falsas”. 54
  • 55. 3.4.6. Opciones avanzadas del programa de comportamiento -v/--verbose Imprime la informaci´on de estado y de diagn´ostico. -q/--quiet Omite los mensajes que no sean de advertencias y errores. --no-update-check Desactiva la comprobaci´on de actualizaciones de Cufflinks. 3.4.7. Ficheros de entrada Cufflinks toma como fichero de entrada un fichero de alineamientos en formato SAM13 , o un fichero SAM binario (BAM14 ). Aunque Cufflinks acepta alineamientos en formato SAM generados por m´ultiples alineadores, se recomienda usar TopHat15 . Veamos un ejemplo de alineamiento aceptado por Cufflinks: s6.25mer.txt-913508 16 chr1 4482736 255 14M431N11M * 0 0 CAAGATGCTAGGCAAGTCTTGGAAG IIIIIIIIIIIIIIIIIIIIIIIII NM:i:0 XS:A:- Observe el uso de la etiqueta personalizada XS. Este atributo, que debe tener un valor de “+” ´o “- ”, indica el sentido de la cadena de RNA. Mientras que esta etiqueta puede ser aplicada a cualquier alineamiento, incluidos los alineamientos no “empalmados”, debe estar presente para todos alineamientos empalmados (aquellos con una operaci´on “N” en su cadena CIGAR16 ). El fichero SAM que suministramos a Cufflinks debe estar ordenado seg´un la posici´on de referencia. Si se han alineado las lecturas con TopHat, sus alineamientos estar´an ordenados de forma autom´atica. Si se usa otra herramienta, debe de asegurarse de que est´an debidamente ordenados de la siguiente forma: sort -k 3,3 -k 4,4n hits.sam > hits.sam.sorted 3.4.8. Ficheros de salida Cufflinks produce tres ficheros de salida: 1. transcripts.gtf Este fichero GTF contiene los isomorfos ensamblados de Cufflinks. Las primeras 7 columnas son las est´andar de GTF, y la ´ultima columna contiene los atributos, algunos de los cuales tambi´en est´an estandarizados (“gene id” y “transcript id”). Hay un registro por cada fila de GTF, y cada registro representa o bien un transcrito o un ex´on dentro de un transcrito. Las columnas se definen como sigue: 13Para m´as detalles v´ease el ap´endice A.1 en la p´agina 107 14Para m´as detalles v´ease el ap´endice A.2 en la p´agina 114 15V´ease el cap´ıtulo 2 en la p´agina 37 16V´ease el ap´endice A.1.3 en la p´agina 109 para m´as informaci´on acerca de la cadena CIGAR 55
  • 56. Tabla 3.1: Descripci´on del fichero transcripts.gtf No Nombre Ejemplo Descripci´on 1 seqname chrX Nombre del cromosoma o contig 2 source Cufflinks Nombre del programa que ha generado el fichero 3 feature exon Tipo de registro (“transcrito” o “ex´on”) 4 start 77696957 La coordenada m´as a la izquierda del registro 5 end 77712009 La coordenada m´as a la derecha del registro 6 score 77712009 El isomormismo m´as abundante de cada gen tiene asociado la puntuaci´on 1000. El resto se puntuan con la relaci´on F P KMmenor F P KMmayor 7 strand + Sentido de la hebra. “+” ´o “-”. 7 frame . Este campo no se usa, ya que Cufflinks no predice los codones de inicio y parada. 8 attributes . . . Vea la siguiente tabla. Cada registro GTF es decorado con los siguientes atributos: Tabla 3.2: Descripci´on de un registro GTF Atributo Ejemplo Descripci´on gene id CUFF.1 Identificador del gen de Cufflinks transcript id CUFF.1.1 Identificador del transcrito de Cufflinks FPKM 101.267 Nivel de abundancia relativa del isomorfo frac 0.7647 Reservado conf lo 0.07 L´ımite inferior del intervalo de confianza del 95 % de la abundancia de dicho isomorfo conf hi 0.1102 L´ımite superior del intervalo de confianza del 95 % de la abundan- cia de dicho isomorfo cov 100.765 Estimaci´on de la profundidad absoluta de la cobertura de la lec- tura a trav´es del transcrito entero full read support yes Cuando hacemos uso del ensamblaje RABT, este atributo infor- ma de todos los intrones y exones internos que fueron cubiertos totalmente por lecturas. 2. isoforms.fpkm tracking Este archivo contiene los valores estimados de los niveles de expresi´on de los isomorfos en el formato de seguimiento FPKM17 . Tenga en cuenta que como s´olo hay una muestra el formato “q” no se usa. 3. genes.fpkm tracking Este archivo contiene los valores estimados de los niveles de expresi´on de los genes en el formato de seguimiento FPKM. Tenga en cuenta que como s´olo hay una muestra el formato “q” no se usa. 3.5. Ejecutando Cuffcompare Cufflinks incluye un programa que nos ayuda a analizar los transfrags que hemos ensamblado. El programa Cuffcompare nos ayuda a : Comparar los transcritos ensamblados con una anotaci´on de referencia. Rastrear los transcritos de Cufflinks a trav´es de m´ultiples experimentos (por ejemplo, a trav´es del tiempo). Desde la l´ınea de comandos, deberemos usar el siguiente formato: 17V´ease la secci´on 3.8 en la p´agina 66 para m´as informaci´on acerca del formato FPKM 56
  • 57. cuffcompare [opciones]* <cuff1.gtf> [cuff2.gtf] ... [cuffN.gtf] 3.5.1. Argumentos <cuff*.gtf> Fichero GTF producido por Cufflinks. 3.5.2. Opciones -h Muestra la ayuda de Cuffcompare. -o <pref salida> Todos los ficheros generados por Cufflinks tendr´an este prefijo de salida (por ejemplo,<outprefix>.loci, <outprefix>.tracking,. . . ). Si no se hace uso de esta opci´on tendr´an el prefijo de salida por defecto, cuffcmp. -r Inclu´ımos una anotaci´on de “referencia” mediante un fichero GTF. Cada muestra se compara con este archivo, y los isomorfos de la muestra son etiquetados como superposici´on, igualaci´on o nuevo (seg´un sea) 18 . -R Si hemos usado la opci´on -r, esta opci´on har´a que cuffcompare ignore los trans- critos de referencia que no solapen a ning´un transcrito en ninguno de los ficheros cuff1.gtf,. . . , cuffN.gtf. ´Util para ignorar transcritos anotados que no est´an presentes en las muestras de RNA. -s <seq dir> Cufflinks mirar´a en los archivos FASTA con la secuencia gen´omica base (un fi- chero por contig) para ver qu´e lecturas fueron alineadas por alguna funci´on de clasificaci´on opcional. -C Permite que los transcritos “contenidos” puedan ser escritos tambi´en en el <pref salida>.combined.gtffile, con el atributo contained in indicando el primer transfrag contenedor encontrado. -V Cuffcompare es un poco m´as detallado acerca de lo que est´a haciendo. Es decir, muestra m´as detalles del proceso en la salida est´andar. 3.5.3. Ficheros de entrada Cuffcompare toma como entrada ficheros GTF provenientes de Cufflinks, y opcionalmente puede recibir una anotaci´on de referencia. 3.5.4. Ficheros de salida Cuffcompare produce los siguientes ficheros de salida: 1. <pref salida>.stats Cuffcompare reporta varias estad´ısticas relacionadas con la “exactitud” de los transcritos en cada muestra cuando son comparados con los datos de la anotaci´on de referencia. Las medidas t´ıpicas de b´usqueda en los genes de “sensibilidad” y “especificidad” (como se define en [4]) son calculadas en varios niveles (nucle´otidos, ex´on, intr´on, transcrito, gen) para cada archivo de entrada y se reflejan en este archivo. Las columnas Sn y Sp muestran los valores de especificidad y sensibilidad de cada nivel, mientras que las columnas fSn y fSp son variaciones “difusas” de estos mismos c´alculos, lo que nos permite admitir variaciones muy peque˜nas en las fronteras del ex´on para poder seguir considerando como coincidencia. 18Vea la definici´on de refmap en en la p´agina siguiente y de tmap en la p´agina 59 para m´as informaci´on 57
  • 58. 2. <pref salida>.combined.gtf Cuffcompare reporta un fichero GTF que contiene la “uni´on” de todos los transfrags de cada muestra. Si un transfrag est´a presente en ambas muestras, es reportado una vez en el fichero GTF combinado. 3. <pref salida>.tracking Este fichero coteja los transcritos entre muestras. Cada fila contiene la estructura de un transcrito que est´a presente en uno o m´as ficheros de entrada GTF. Debido a que los transcritos, generalmente, tienen diferentes ID (a menos que se ensamble las lecturas de RNA a partir de un transcriptoma de referencia) cuffcompare examina la estructura de cada uno de los transcritos, emparejando transcritos que tienen las mismas coordenadas para cada uno de sus intrones (siguiendo la misma direcci´on de la hebra). En los transcritos emparejados pueden diferir la longitud del primer y del ´ultimo ex´on, ya que las longitudes var´ıan de una muestra a otra, debido al car´acter aleatorio de la secuencia. Veamos un ejemplo de una linea de este fichero: TCONS_00000045 XLOC_000023 Tcea|uc007afj.1 j q1:exp.115|exp.115.0|100|3.061355|0.350242|0.350207 q2:60hr.292|60hr.292.0|100|4.094084|0.000000|0.000000 En este ejemplo, tenemos un transcrito presente en dos de los ficheros de entrada, llamados exp.115.0 y 60hr.292.0, no coincide con ning´un transcrito de referencia exactamente, pero com- parte exones con uc007afj.1, un isomorfo del gen Tcea, como indica el c´odigo de clase j. Veamos una descripci´on de las columnas m´as detallada: Tabla 3.3: Descripci´on del fichero .tracking No Nombre Ejemplo Descripci´on 1 Transfrag id TCONS 00000045 Identificador ´unico para el transfrag 2 Id del lugar XLOC 000023 Identificador ´unico para la localizaci´on 3 Id de Ref. del gen Tcea El atributo “gene name” del registro de refe- rencia GTF para el transcrito, o “-” si no exis- te 4 Id de Ref. del transcrito uc007afj.1 El atributo “transcript id” del registro de referencia GTF para el transcrito, o “-” si no existe 5 C´odigo de Clase c V´ease los c´odigos de clase en 3.5.4.1 en la p´agi- na 60 Cada columna despu´es del quinto tienen el siguiente formato: qJ:<gene_id>|<transcript_id>|<FMI>|<FPKM>|<conf_lo>|<conf_hi>|<cov>|<len> Un transcrito no necesita estar presente en todas las muestras para ser incluido en el fichero de seguimiento. La muestra que no contiene un transcrito tendr´a un “-” en su entrada en la fila de ese transcrito. 4. <pref salida>.refmap Se crea un fichero de este tipo por cada fichero de de cufflinks de entrada. En cada fichero, hay una fila por cada transcrito de referencia, y las columnas son como sigue: 58
  • 59. Tabla 3.4: Descripci´on del fichero .refmap No Nombre Ejemplo Descripci´on 1 Nombre del gen Myog Nombre del gen al que pertenece el transcrito seg´un el atributo gene name 2 Id del transcrito uc007crl Identificador del transcrito 3 C´odigo de clase c El tipo de emparejamiento entre el transcrito de Cufflinks en la columna 4 y el transcrito de referencia. “c” para emparejamiento parcial y “=” para total 4 Emparejamientos CUFF.23567.0, CUFF.24689.0 Lista de identificadores de transcritos que em- parejan con el de referencia. 5. <pref salida>.tmap Este fichero delimitado por tabuladores muestra los mejores emparejamientos para cada transcrito de Cufflinks. Hay uno por cada fila, y las columnas son las siguientes: Tabla 3.5: Descripci´on del fichero .tmap No Nombre Ejemplo Descripci´on 1 Nombre del gen Myog Nombre del gen al que pertenece el transcrito seg´un el atributo gene name 2 Id del transcrito uc007crl Identificador del transcrito 3 C´odigo de clase c El tipo de emparejamiento entre el transcrito de Cufflinks en la columna 4 y el transcrito de referencia. 4 Id del Gen (Cuff.) CUFF.23567.0 Identificador, interno de Cufflinks, del gen. 5 Id del Transcrito (Cuff.) CUFF.23567.0 Identificador, interno de Cufflinks, del trans- crito. 6 Fracci´on del iso- morfo principal 100 La expresi´on del transcrito como fracci´on del isomorfo principal del gen. (1 − 100) 7 FPKM 1.4567 Valor de FPKM. 8 FPKM conf lo 0.7778 L´ımite interior del intervalo de confianza del 95 % del FPKM 9 FPKM conf hi 1.9776 L´ımite superior del intervalo de confianza del 95 % del FPKM 10 Coverage 3.2687 Estimaci´on de la profundidad absoluta de la lectura de cobertura a trav´es del transcrito. 11 Length 1426 longitud del transcrito. 12 Id del Isomorfo principal CUFF.23567.0 Identificador el Isomorfo principal. 59
  • 60. 3.5.4.1. C´odigo de clases Si usa cuffcompare con la opci´on -r, las filas de seguimiento contendr´an alguno de los siguientes valores. Si no hacemos uso de la opci´on -r, las filas contendr´an “-” en la columna de c´odigo de clase. Tabla 3.6: C´odigo de clases Prioridad C´odigo Descripci´on 1 = Emparejamiento total de la cadena de intrones 2 c Contenido 3 j Isomorfo potencialmente nuevo (fragmento): al menos una uni´on de em- palme es compartido con alg´un transcrito de referencia 4 e Un transfrag de ex´on simple solapa a un ex´on de referencia en al menos 10pb en un intr´on de referencia, indica un posible fragmento de pre- mRNA 5 i Un transfrag cae por completo en un intr´on de referencia 6 o Solapamiento general de exones con un transcrito de referencia 7 p Posible ejecuci´on de la polimerasa en el fragmento (en 2kbases de un transcrito de referencia) 8 r Repetici´on. 9 u Desconocido, transcrito interg´enico 10 x Solapamiento de exones con referencia en la cadena opuesta 11 s Un intr´on de un transfrag solapa un intr´on de referencia en la cadena opuesta (probablemente debido a errores de mapeo de la lectura) 12 . S´olo en el fichero .tracking, indica m´ultiples clasificaciones 3.6. Uniendo ensamblajes con Cuffmerge Cufflinks incluye un script llamado cuffmerge que se puede usar para fusionar varios conjuntos de ensamblajes de Cufflinks. Si tambi´en tenemos un fichero de referencia GTF disponible, se puede incluir en cuffmerge para fusionar de una forma m´as elegante los nuevos isomorfos y los isomorfos conocidos para maximizar la calidad del ensamblaje en general. El prop´osito general de este script es hacer m´as f´acil la creaci´on de un fichero de ensamblaje GTF adecuado para su uso con Cuffdiff19 . Desde la l´ınea de comandos deberemos usar cuffmerge de la siguiente forma: cuffmerge [opciones]* <lista_ensamblajes.txt> 3.6.1. Argumentos <lista ensamblajes>.txt Archivo de texto “manifiesto” con una lista de los archivos GTF que se desea unir en un ´unico fichero GTF. 3.6.2. Opciones -h/--help Muestra la ayuda de cuffmerge. -o <pre salida> Muestra las estad´ısticas en el fichero indicado. -g/--ref-gtf Una anotaci´on de “referencia” GTF opcional. Los ensamblados de entrada se combinan junto con la referencia GTF y se incluyen en el resultado final. 19V´ease la secci´on 3.2 en la p´agina 48 para m´as informaci´on acerca de Cuffdiff 60
  • 61. -p/--num-threads <int> N´umero de hilos que se generar´an para realizar el proceso. El valor por defecto es 1. -s/--ref-sequence <seq fasta> Este argumento debe apuntar a las secuencias de DNA de re- ferencia. Si es un directorio, debe contener un fichero fasta por contig. Si es un fichero multifasta, todos los contigs deben estar presentes. 3.6.3. Ficheros de entrada Cuffmerge toma una seria de ficheros GTF de ensamblaje provenientes de Cufflinks. Los ficheros de entrada se deben especificar dentro de un fichero “manifiesto” con las rutas de los mismos. 3.6.4. Ficheros de salida Cuffmerge produce un fichero GTF que contiene un ensamblado que fusiona los ensamblados de entrada. <outprefix>/merged.gtf 3.7. Ejecutando Cuffdiff Cufflinks incluye un programa, “Cuffdiff”, que se usa para encontrar cambios significativos en la expresi´on de los transcritos, uniones y el uso del promotor. Desde la l´ınea de comandos podemos ejecutar cuffdiff como sigue: cuffdiff [options]* <transcripts.gtf> <sample1_replicate1.sam[,...,sample1_replicateM]> <sample2_replicate1.sam[,...,sample2_replicateM.sam]>... [sampleN.sam_replicate1.sam[,...,sample2_replicateM.sam]] 3.7.1. Argumentos <transcritos.(gtf/gff)> Un fichero de transcritos producido por Cufflinks, Cuffcompare u otra fuente. <sample1.sam> Un fichero SAM de lecturas alineadas. Si se proporcionan m´as de dos ficheros, Cuffdiff calcular´a la expresi´on diferencial y la regulaci´on entre todos los pares de muestras. 3.7.2. Opciones -h/--help Muestra la ayuda de Cuffdiff. -o/--output-dir <dir> Establece el directorio en el cual Cuffdiff pondr´a todos los ficheros de salida. Por defecto es “./”. -L/--labels <et1,et2,...,etN> Establece una etiqueta para cada muestra, que ser´an incluidas en los ficheros de salida de Cuffdiff. -p/--num-threads <int> No de hilos que se crear´an para ejecutar Cuffdiff. 61
  • 62. -T/--time-series Encarga a Cuffdiff analizar las muestras suministradas como una serie temporal, en lugar de pruebas para las diferencias entre los pares de muestras. Las muestras deben ser propor- cionadas incrementalmente a lo largo del tiempo a trav´es de la l´ınea de comandos (por ejemplo, primera marca de tiempo FICHERO SAM, segunda marca de tiempo FICHERO SAM, . . . ). -N/--upper-quartile-norm Con esta opci´on, Cufflinks normaliza por el cuartil superior de la cantidad de fragmentos mapeados por cada locus en lugar del total de fragmentos secuenciados. Esto puede mejorar la robustez del c´alculo de la expresi´on diferencial de genes y transcritos menos abundantes. --total-hits-norm Con esta opci´on, Cufflinks cuenta todos los fragmentos, in- cluyendo los que no son compatibles con ning´un transcrito de referencia, para calcular el n´umero de fragmentos mapeados utilizado en el denominador FPKM. Por defecto est´a inactivo. --compatible-hits-norm Con esta opci´on, Cufflinks cuenta s´olo aquellos fragmentos compatibles que alg´un transcrito de referencia para calcular el n´umero de fragmentos usados en el denominador FPKM. Por defecto est´a activado. -b/--frag-bias-correct <genoma.fa> Proporciona a Cufflinks un fichero multifasta con lecturas ma- peadas para que se ejecute usando nuestro sesgo de detecci´on y algoritmo de correcci´on. V´ease la secci´on 3.1.4 en la p´agi- na 47 para m´as informaci´on. -u/--multi-read-correct Le indicamos a Cufflinks realizar un procedimiento de esti- maci´on inicial de mayor precisi´on para mapear lecturas en m´ultiples posiciones en el genoma. V´ease la secci´on 3.1.5 en la p´agina 47 para m´as informaci´on. -c/--min-alignment-count <int> N´umero m´ınimo de alineaciones en un locus necesarias para realizar las pruebas de significancia en dicho locus observadas entre muestras. El valor por defecto son 10 alineaciones. -M/--mask-file <mask.(gtf/gff)> Indica a Cuffdiff ignorar todas las lecturas que pudieran ha- ber salido de los transcritos del fichero GTF que recibe por par´ametro. --FDR <float> La tasa de falso “descubrimiento” permitido. El valor por defecto es 0,05. 3.7.3. Opciones avanzadas --library-type V´ease la secci´on 3.9 en la p´agina 67 para m´as informaci´on. -m/--frag-len-mean <int> Longitud (media) esperada del fragmento. El valor por de- fecto es 200pb. -s/--frag-len-std-dev <int> Desviaci´on est´andar para la distribuci´on de longitudes de los fragmentos. El valor por defeco es 80pb. --num-importance-samples <int> Establece el n´umero de muestras importantes generadas para cada lugar durante la estimaci´on de la abundancia. El valor por defecto es 1000. 62
  • 63. --max-mle-iterations <int> Establece el n´umero de iteraciones permitidas durante la estimaci´on de la m´axima verosimilitud de la abundancia. El valor por defecto es 5000. -v/--verbose Muestra las actualizaciones de estado y dem´as informaci´on de diagn´ostico. -q/--quiet Suprime los mensajes que no sean advertencias serias y errores. --no-update-check Desactiva la comprobaci´on autom´atica de actualizaciones. --poisson-dispersion Usa el modelo de dispersi´on basado en Poisson. --emit-count-tables Cuffdiff generar´a un fichero para cada condici´on (llamado <sample> counts.txt) que contendr´a el n´umero de frag- mentos, las varianzas y el modelo de la varianza ajustada. -F/--min-isoform-fraction <0.0-1.0> Cuffdiff redondear´a a cero la abundancia de los isomorfos alternativos cuantificados por debajo de la fracci´on espe- cificada de isomorfos principales. El valor por defecto es 1 · 10−5 , y se recomienda no tocar este par´ametro 3.7.4. Ficheros de entrada Cuffdiff toma un archivo GTF2/GTF320 de transcritos como entrada, junto con dos o m´as archivos SAM que contienen los fragmentos alineados para dos o m´as muestras. Cuffdiff produce una serie de ficheros de salida que contienen resultados de las pruebas de los cambios en los niveles de expresi´on de transcritos, transcritos primarios y genes. Adem´as registra los cambios en la abundancia de los transcritos que comparten un mismo sitio de inicio, y en la abundancia relativa de los transcritos primarios de cada gen. El seguimiento de los primeros permite ver los cambios en la uni´on, y los segundos ver los cambios en el uso del promotor dentro de un gen. Si se tiene m´as de una r´eplica de una muestra, se deben suministrar los ficheros SAM para la muestra separados por comas. No es necesario tener el mismo n´umero de repeticiones para cada muestra. 3.7.5. Ficheros de salida 1. Ficheros FPKM Cuffdiff calcula el FPKM de cada transcrito, transcrito primario y genes en cada muestra. El FPKM de los transcritos y genes se calcula sumando el FPKM de los grupos de transcritos primarios o grupo de genes. Los resultados se emiten en ficheros FPKM de seguimiento en el formato descrito m´as abajo. Hay cuatro archivos FPKM de seguimiento: isoforms.fpkm tracking FPKM de los transcritos. genes.fpkm tracking FPKM de los genes. cds.fpkm tracking FPKM de la codificaci´on de la secuencia. tss groups.fpkm tracking FPKM de los transcritos primarios. 2. Test de expresi´on diferencial Este fichero delimita los resultados de las pruebas de expresi´on diferencial entre las muestras. Para cada par de pruebas x e y se crean cuatro ficheros: isoform exp.diff FPKM diferencial de los transcritos. gene exp.diff FPKM diferencial de los genes. tss group exp.diff FPKM diferencial de los transcritos primarios. 20V´ease el ap´endice A.7 en la p´agina 118 para m´as informaci´on acerca del formato GTF 63
  • 64. cds exp.diff FPKM diferencial de la codificaci´on de la secuencia. Cada uno de estos ficheros tiene el siguiente formato: Tabla 3.7: Formato de los ficheros de expresi´on diferencial No Nombre Ejemplo Descripci´on 1 Id XLOC 000001 Identificador ´unico que representa al trans- crito, gen, transcrito primario o CDS que est´a siendo probado. 2 Gen Lypla1 El gen name o gene id que est´a siendo proba- do. 3 Locus chr1:4797771 -4835363 Coordenada gen´omica del gen o transcrito. 4 Muestra 1 Liver Etiqueta de la primera muestra. 5 Muestra 2 Brain Etiqueta de la segunda muestra. 6 Estado NOTEST Puede ser OK, NOTEST, LOWDATA o FAIL. 7 FPKMx 8.01089 FPKM del gen de la muestra x. 8 FPKMy 8.551545 FPKM del gen de la muestra y. 9 ln(FPKMy/FPKMx) 0.06531 El logaritmo de la relaci´on y/x 10 Estadisticas 0.860902 El valor de la prueba estad´ıstica utilizada para calcular la importancia de los cambios obser- vados en FPKM. 11 Valor de p 0.389292 El valor p sin corregir de la prueba estad´ıstica. 12 Valor de q 0.985216 El valor p FDR-ajustado de la prueba es- tad´ıstica. 13 Significado no Puede ser “yes” o “no”, dependiendo de si p es mayor que el FDR despu´es de la correcci´on de Benjamini-Hochberg para m´ultiples pruebas. 64
  • 65. 3. Test de uniones diferenciales - splicing.diff Este fichero lista, para cada transcrito primario, la cantidad de uniones diferenciales que existen entre los isomorfos procesados a partir de un ´unico transcrito primario. S´olo los transcritos primarios de los que dos o m´as se empalman se enumeran en este archivo. Tabla 3.8: Formato de los ficheros de uni´on diferencial No Nombre Ejemplo Descripci´on 1 Id TSS10015 Identificador ´unico que representa al transcrito, gen, trans- crito primario o CDS que est´a siendo probado. 2 Gen Rtkn El gen name o gene id que est´a siendo probado. 3 Locus chr6:83087311 -83102572 Coordenada gen´omica del gen o transcrito. 4 Muestra 1 Liver Etiqueta de la primera muestra. 5 Muestra 2 Brain Etiqueta de la segunda muestra. 6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL. 7 Reservado 0 8 Reservado 0 9 JS(x, y) 0.22115 La sobrecarga del empalme del primer transcrito, medida como la ra´ız cuadrada de la divergencia de Jensen-Shannon calculada sobre la abundancia relativa de las variantes del empalme. 10 Estad´ısticas 0.22115 El valor de la prueba estad´ıstica utilizada para calcular la importancia de la sobrecarga observada, igual a JS(x, y) 11 Valor de p 0.000174982 El valor p sin corregir de la prueba estad´ıstica. 12 Significado yes Puede ser “yes” o “no”, dependiendo de si p es mayor que el FDR despu´es de la correcci´on de Benjamini-Hochberg para m´ultiples pruebas. 4. Codificaci´on diferencial de salida - cds.diff Este fichero lista, para cada gen, la cantidad de sobrecarga detectada entre sus secuencias de codificaci´on, es decir, la cantidad de CDS diferencial de salida existente entre muestras. S´olo los genes productores de dos o m´as CDS distintos (es decir, genes multiprot´eicos) son listados aqu´ı. Tabla 3.9: Formato de los ficheros de codificaci´on diferencial de salida No Nombre Ejemplo Descripci´on 1 Id XLOC 000002 Identificador ´unico que representa al transcrito, gen, trans- crito primario o CDS que est´a siendo probado. 2 Gen Atp6v1h El gen name o gene id que est´a siendo probado. 3 Locus chr1:5073200 -5152501 Coordenada gen´omica del gen o transcrito. 4 Muestra 1 Liver Etiqueta de la primera muestra. 5 Muestra 2 Brain Etiqueta de la segunda muestra. 6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL. 7 Reservado 0 8 Reservado 0 9 JS(x, y) 0.0686517 La sobrecarga del empalme del primer transcrito, medida como la ra´ız cuadrada de la divergencia de Jensen-Shannon calculada sobre la abundancia relativa de las variantes del empalme. 10 Estadisticas 0.0686517 El valor de la prueba estad´ıstica utilizada para calcular la importancia de la sobrecarga observada, igual a JS(x, y) 11 Valor de p 0.00546783 El valor p sin corregir de la prueba estad´ıstica. 12 Significado yes Puede ser “yes” o “no”, dependiendo de si p es mayor que el FDR despu´es de la correcci´on de Benjamini-Hochberg para m´ultiples pruebas. 65
  • 66. 5. Uso diferencial del promotor - promoters.diff Este fichero lista, para cada gen, la cantidad de sobrecarga detectada entre sus transcritos primarios, es decir, que uso diferencial del promotor existe entre muestras. S´olo los genes productores de dos o m´as transcritos primarios distintos son listados aqu´ı. Tabla 3.10: Formato de los ficheros de uso diferencial del promotor No Nombre Ejemplo Descripci´on 1 Id XLOC 000019 Identificador ´unico que representa al transcrito, gen, trans- crito primario o CDS que est´a siendo probado. 2 Gen Tmem70 El gen name o gene id que est´a siendo probado. 3 Locus chr1:16651657 -16668357 Coordenada gen´omica del gen o transcrito. 4 Muestra 1 Liver Etiqueta de la primera muestra. 5 Muestra 2 Brain Etiqueta de la segunda muestra. 6 Estado OK Puede ser OK, NOTEST, LOWDATA o FAIL. 7 Reservado 0 8 Reservado 0 9 JS(x, y) 0.0124768 La sobrecarga del empalme del primer transcrito, medida como la ra´ız cuadrada de la divergencia de Jensen-Shannon calculada sobre la abundancia relativa de las variantes del empalme. 10 Estad´ısticas 0.0124768 El valor de la prueba estad´ıstica utilizada para calcular la importancia de la sobrecarga observada, igual a JS(x, y) 11 Valor de p 0.394327 El valor p sin corregir de la prueba estad´ıstica. 12 Significado no Puede ser “yes” o “no”, dependiendo de si p es mayor que el FDR despu´es de la correcci´on de Benjamini-Hochberg para m´ultiples pruebas. 3.8. Formato de seguimiento FPKM Los archivos FPKM usan un formato gen´erico para mostrar valores de expresi´on estimados. Cada archivo FPKM tiene el siguiente formato: 66
  • 67. Tabla 3.11: Formato FPKM No Nombre Ejemplo Descripci´on 1 tracking id TCONS 00000001 Identificador ´unico describiendo al objeto 2 class code = El c´odigo de clase del objeto 3 nearest ref id NM 008866.1 El transcrito de referencia al que se refiere el c´odigo de clase, si existe 4 gene id NM 008866 El gene id asociado con el objeto 5 gene short name Lypla1 El gene short name asociado con el objeto 6 tss id TSS1 El tss id asociado con el objeto 7 locus chr1:4797771 -4835363 Coordenadas en el genoma para una mejor vi- sualizaci´on del objeto 8 length 2447 El n´umero de pares de bases en el transcrito 9 coverage 43.4279 Estimaci´on de la profundidad absoluta de la lectura de cobertura a trav´es del objeto 10 status OK Puede ser OK, LOWDATA o FAIL 11 q0 FPKM 8.01089 FPKM del objeto en la muestra 0 12 q0 FPKM lo 7.03583 L´ımite inferior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 0 13 q0 FPKM hi 8.98595 L´ımite superior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 0 14 q1 FPKM 8.55155 FPKM del objeto en la muestra 1 15 q1 FPKM lo 7.77692 L´ımite inferior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 1 16 q1 FPKM hi 9.32617 L´ımite superior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 1 3N + 11 qN FPKM 7.34115 FPKM del objeto en la muestra N 3N + 12 qN FPKM lo 6.33394 L´ımite inferior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 0N 3N + 13 qN FPKM hi 8.34836 L´ımite superior del intervalo de confianza del 95 % en el FPKM del objeto en la muestra 0N 3.9. Biblioteca de Tipos En los casos en que Cufflinks no puede determinar la plataforma y/o el protocolo usado para generar las lecturas de entrada, se puede proporcionar esta informaci´on de forma manual, lo que permite a Cufflinks inferir informaci´on del origen de ciertos protocolos. Tabla 3.12: Biblioteca de tipos de Cufflinks Tipo 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 fragmento 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. 67
  • 68. 68
  • 69. Cap´ıtulo 4 SAMtools 4.1. ¿Qu´e es SAMtools? SAMtools es un conjunto de utilidades para manipular alineamientos en el formato BAM1 . SAM- tools importa y exporta en formato SAM (Sequence Alignment/Map), ordena, une e indexa, y permite recuperar las lecturas de cualquier regi´on con rapidez. SAMtools est´a dise˜nado para trabajar dentro de un flujo de trabajo. Muchos de los comandos pueden ser combinados con tuber´ıas de Unix. Todos los mensajes de error y alerta son mostrados en la salida est´andar (stderr). Tambi´en es capaz de abrir un fichero BAM (no SAM) en un servidor FTP o HTTP remoto si la ruta del fichero comienza por ftp:// o http://. SAMtools comprueba el directorio de trabajo actual en busca del archivo ´ındice. SAMtools no recupera el archivo de alineamientos entero a no ser que se lo indiquemos expresamente. 4.2. Comandos y opciones de SAMtools Veamos el conjunto de comandos y las opciones de cada uno de ellos que nos facilita SAMtools: view Extrae/imprime todos o una porci´on de alineamientos en formato SAM o BAM. Si no se es- pecifica ninguna regi´on, se imprimir´an todos los alineamientos; por contra, si especificamos una regi´on en concreto, entonces ´unicamente se mostrar´an lo s alineamientos que caigan en dicha regi´on. Una regi´on puede ser indicada, por ejemplo, en el siguiente formato: chr2 (el cromosoma chr2 entero), chr2:1000000 (la regi´on que comienza en el 1000000pb) o chr2:1,000,000-2,000,000 (la regi´on comprendida entre 1000000 − 2000000pb). Formato samtools view [-bchuHS] [-t in.refList] [-o output] [-f reqFlag] [-F skipFlag] [-q minMapQ] [-l library] [-r readGroup] [-R rgFile] <in.bam>|<in.sam> [region1 [...]] Opciones: -b Salida en formato BAM. -f INT S´olo muestra los alineamientos que tengan en el campo FLAT los bits INT presentes. -F INT Omite los alineamientos con los bits presentes en INT. 1V´ease el ap´endice A.2 en la p´agina 114 para m´as informaci´on acerca del formato BAM 69
  • 70. -h Incluye la cabecera en la salida. -H S´olo muestra la cabecera. -l LIB S´olo muestra las lecturas de la librer´ıa LIB. -o FICH Fichero de salida. -q INT Omite lecturas con MAPQ menores que INT. -r CAD S´olo muestra lecturas en el grupo CAD. -R FICH Muestra las lecturas de los grupos listados en FICH. -S El formato de entrada es formato SAM. -c En lugar de mostrar todos los alineamientos, s´olo los cuenta y muestra el total. Todas las opciones de filtrado son tomadas en cuenta. -t FICH El fichero est´a delimitado por tabuladores y cada l´ınea debe contener el nom- bre de referencia y la longitud de referencia. Cada l´ınea debe debe contener una referencia ´unica y los campos adicionales son ignorados. Este fichero tam- bi´en define el orden de clasificaci´on de las secuencias de referencia. Si ejecuta samtools faidx <ref.fa> el fichero indexado resultante <ref.fa>.fai pue- de ser usado como fichero <in.ref lst>. -u Salida en formato BAM no comprimido. Esta opci´on guarda el tiempo dedicado a la compresi´on/descompresi´on y nos da la posibilidad de canalizarlo a otro comando de SAMtools mediante tuber´ıas. Ejemplo samtools view -bt ref_list.txt -o aln.bam aln.sam.gz tview Visualiza alineamientos en formato texto (basado en la librer´ıa ncurses). En el visor, pre- sione ‘?’ para mostrar la ayuda y presione ‘g’ para verificar el inicio de un alineamiento en una regi´on en el formato chr10:10,000,000 o =10,000,000 al ver la secuencia de referencia. Formato samtools tview <in.sorted.bam> [ref.fasta] Ejemplo samtools tview aln.sorted.bam ref.fasta mpileup Generar un BCF o pila para uno o varios archivos BAM. Los registros de alineamientos son agrupados por los identificadores de la muestra en las l´ıneas de cabecera @RG. Si los identificadores de la muestra no est´an, cada fichero de entrada es considerado como una muestra. En el formato apilado (sin -u o -g) cada l´ınea representa una posici´on gen´omica, consistente en el nombre del cromosoma, unas coordenadas, una base de referencia, unas lecturas base, unas calidades de lecturas y unas calidades de mapeo de alineamiento. La informaci´on sobre el ajuste, desajuste, indel, calidad del mapeo y el inicio y fin de la lectura son codificadas en la columna base de la lectura. Formato samtools mpileup [-EBug] [-C capQcoef] [-r reg] [-f in.fa] [-l list] [-M capMapQ] [-Q minBaseQ] [-q minMapQ] in.bam [in2.bam [...]] Opciones de entrada: -6 Asume que la calidad est´a en la cofificaci´on Illumina 1.3. 70
  • 71. -B Desactiva la realineaci´on probabil´ıstica para el c´alculo de la base de la calidad de la alineaci´on (BAQ). BAQ es la probabilidad en la escala Phred que una lectura est´e desalineada. La aplicaci´on de esta opci´on ayuda a reducir los falsos SNPs causados por los desajustes. -b FICH Lista de ficheros BAM, un fichero por l´ınea. -C INT Coeficiente para disminuir la calidad del mapeo para aquellas lectura que con- tengan muchos desajustes. -d INT Lee un m´aximo de INT lecturas de una entrada BAM. -E C´alculo BAQ extendido. Esta opci´on ayuda a la sensibilidad principalmente para los MNPs, pero puede perjudicar un poco. -f FICH Fichero indexado de referencia mediante faidx en formato FASTA. El fichero puede estar comprimido mediante razip. -l FICH Fichero BED o una lista de ficheros que contienen regiones o localizaciones donde generar BCF o ficheros apilados2 . -q INT Calidad m´ınima de mapeo para que un alineamiento sea usado. -Q INT Calidad base m´ınima para que una base sea considerada. -r CAD S´olo genera una pila en la regi´on delimitada por CAD. Opciones de entrada: -D Profundidad en la salida de cada lectura por muestra. -g Calcula las probabilidades del genotipo y genera un fichero binario BCF. -u Similar a -g excepto que la salida es un fichero BCF sin comprimir, que es mejor para su uso en tuber´ıas. Opciones para el c´alculo de probabilidades del Genotipo: -e INT Probabiliad en escala Phred de que exista un error de secuencia en un espacio de extensi´on. Reducir el valor de INT conduce a indels m´as grandes. -h INT Coeficiente de error de modelado de homopol´ımeros. -I No realiza una recolecci´on de indels. -L INT Omite la recolecci´on de indels si la profundidad media por muestra est´a por encima de INT. -o INT Probabiliad en escala Phred de que exista un error de secuencia en un espacio abierto. Reducir el valor de INT conduce a recoger m´as indels. -P CAD Lista separada por comas de plataformas (delimitadas por @RG-PL) de las cua- les se obtienen los candidatos indels. Se recomienda recoger los indles candida- tos a partir de tecnolog´ıas de secuenciaci´on que tengan una tasa baja de error de indels como puede ser ILLUMINA. Ejemplo samtools mpileup -C50 -gf ref.fasta -r chr3:1,000-2,000 in1.bam in2.bam reheader Reemplaza la cabecera en in.bam con la cabecera de in.header.sam. Este comando es mucho m´as r´apido que reemplazar la cabecera con una conversi´on BAM->SAM->BAM. Formato samtools reheader <in.header.sam> <in.bam> 2V´ease el comando mpileup para m´as informaci´on acerca de BCF y pilas 71
  • 72. cat Concatena ficheros BAM. El diccionario de secuencias de cada entrada BAM debe ser id´entico, aunque este comando no lo comprueba. Formato samtools cat [-h header.sam] [-o out.bam] <in1.bam> <in2.bam> [ ... ] sort Ordena alineamientos por su extremo izquierdo. Se crear´a un fichero nuevo <out.prefix>.bam con el contenido ordenado. Formato samtools sort [-no] [-m maxMem] <in.bam> <out.prefix> Opciones: -o Muestra los alineamientos en la salida est´andar. -n Ordena por el nombre de las lecturas en vez de las coordenadas en el cromo- soma. -m INT Aproximadamente el m´aximo de memoria requerida. Ejemplo samtools sort aln.bam aln.sorted merge Combina m´ultiples alineamientos ordenados. La cabecera de referencia de todos los ficheros BAM, as´ı como el @SQ del fichero inh.sam, si existe, deben hacer referencia al mismo conjunto de secuencias de referencia. Formato samtools merge [-nur1f] [-h inh.sam] [-R reg] <out.bam> <in1.bam> <in2.bam> [...] Opciones: -1 Usa el nivel de compresi´on 1 de zlib para comprimir la salida. -f Fuerza la sobreescritura del fichero de salida si existe. -h FICH Usa las l´ıneas del fichero como cabeceras ‘@’, que ser´an copiadas en out.bam. El fichero debe estar en formato SAM -n Los alineamientos de entrada est´an ordenados por el nombre de las lecturas en vez de las coordenadas en el cromosoma. -R CAD Combina los ficheros en la regi´on especificada en CAD. -r Adjunta una etiqueta @RG a cada alineamiento. El valor de la variable se infiere de los nombres de los ficheros. -u BAM de salida sin comprimir. Ejemplo samtools merge out.bam in1.bam in2.bam in3.bam index Indexa los alineamientos ordenados para un acceso aleatorio m´as r´apido. Se crear´a un fichero de ´ındice con extensi´on .bai. Formato samtools index <aln.bam> Ejemplo 72
  • 73. samtools index aln.sorted.bam idxstats Recupera e imprime las estad´ısticas en el archivo del ´ındice. Formato samtools idxstats <aln.bam> Ejemplo samtools idxstats aln.sorted.bam faidx Indexa una secuencia de referencia en formato FASTA3 o extrae una subsecuencia de una secuencia de referencia indexada. Crear´a un fichero indexado con extensi´on .fai. Formato samtools faidx <ref.fasta> [region1 [...]] Ejemplo samtools faidx ref.fasta rmdup Elimina posibles duplicados PCR: si m´ultiples pares de lecturas tienen las mismas coorde- nadas, s´olo retiene el par con la calidad de mapeo m´as alta. Formato samtools rmdup [-sS] <input.srt.bam> <out.bam> Opciones: -s Elimina duplicados de lecturas simples. Por defecto s´olo trabaja con lecturas emparejadas. -S Trata tanto lecturas simples como emparejadas. calmd Genera la etiqueta @MD. Si la etiqueta @MD ya est´a presente, este comando advertir´a si la etiqueta existente es diferente a la generada. Por defecto devuelve la salida en formato SAM. Formato samtools calmd [-EeubSr] [-C capQcoef] <aln.bam> <ref.fasta> Opciones: -A Cuando se usa junto con -r sobreescribe la calidad base original. -e Convierte la base de la lectura a “=” si es id´entica a la base de referencia alineada. -u La salida en formato BAM no est´a comprimida. -b La salida en formato BAM est´a comprimida. -S La entrada es un fichero SAM con l´ıneas de cabecera. -C INT Coeficiente para limitar la calidad de las lecturas mal alineadas. -r Genera la etiqueta BQ (sin -A). -E C´alculo extendido de BAQ. targetcut Este comando identifica las regiones de destino mediante examinando la continuidad de las lecturas generando un fichero SAM con los resultados. Cuando se hace uso de la opci´on -f se aplica tambi´en BAQ. Formato 3V´ease el ap´endice A.4 en la p´agina 115 para m´as informaci´on del formato FASTA 73
  • 74. samtools targetcut [-Q minBaseQ] [-i inPenalty] [-0 em0] [-1 em1] [-2 em2] [-f ref] <in.bam> phase Recoge y elimina heterocigotos SNPs. Formato samtools phase [-AF] [-k len] [-b prefix] [-q minLOD] [-Q minBaseQ] <in.bam> Opciones: -A Elimina lecturas con fase ambigua. -b CAD Prefijo de los ficheros en formato BAM. -F No trata de arreglar las lecturas “quim´ericas”. -k INT Longitud m´axima para la eliminaci´on local. -q INT M´ınima calidad Phred LOD para recoger un heterocigoto. -Q INT M´ınima calidad base para ser usada en la recogida de heterocigotos. 74
  • 77. Cap´ıtulo 5 Arabidopsis Thaliana La Arabidopsis Thaliana es una especide de cruc´ıfera nativa de Europa, Asia y el noroeste de ´Africa. En la imagen 5.1 vemos un detalle de la planta. Figura 5.1: Detalle de la Arabidopsis Thaliana Usamos la A. Thaliana por ser una planta de la que se dispone el genoma para poder descargar y hacer pruebas con el. Adem´as de que existen multitud de experimentos y art´ıculos que tratan sobre dicha planta. En las siguientes secciones veremos detalles de su genoma as´ı como de varios experimentos que hemos realizado con las tecnolog´ıas vistas en los cap´ıtulos anteriores para ver su funcionamiento. 5.1. Genoma de la A. Thaliana El genoma de la A. Thaliana se puede obtener de varias formas. Podemos acceder a la comunidad en internet de la A. Thaliana1 o desde la p´agina web de Bowtie podremos descargarnos dicho genoma. A la hora de descargar el genoma podremos descargarlo indexado normal o con espacio de colores2 . La A. Thaliana est´a formada por cinco cromosomas m´as el cloroplasto y el mitocondrial. Por eso al descargar 1La web oficial es http://www.arabidopsis.org/ 2V´ease la secci´on 1.5 en la p´agina 31 par´a m´as informaci´on de las indexaciones 77
  • 78. el genoma tendremos a nuestra disposici´on un total de 7 ficheros como apreciamos en la imagen 5.2 en la p´agina siguiente: Figura 5.2: Ficheros del genoma de la A. Thaliana El genoma completo tiene un total de 120.000.000 de pares de bases repartidas entre los ficheros anteriormente mencionados, generando un total de 121, 2MB de tama˜no. En la imagen 5.3 podemos apreciar parte del contenido del cromosoma 1 de la A. Thaliana. Figura 5.3: Detalle del Cromosoma 1 de la A.Thaliana 5.2. Indexaci´on del Genoma Desde la propia p´agina de Bowtie podemos descargarnos el genoma indexado (incluso mediante espacio de colores). Si por el contrario, estamos en posesi´on de un genoma no indexado (por ejemplo en formato FASTA) deberemos de indexar el genoma para as´ı poder proceder con las herramientas descritas en la parte de Manuales de usuario en en la p´agina 15. Para poder indexar el genoma deberemos de usar el programa bowtie-build3 . El comando para indexar el genoma de la A. Thaliana es el siguente: bowtie-build chr1.fas, chr2.fas, chr3.fas, chr4.fas, chr5.fas, chrC.fas, chrM.fas a_thaliana 3V´ease la secci´on 1.5 en la p´agina 31 para m´as informaci´on 78
  • 79. Como vimos en la secci´on de bowtie-build recibe por par´ametro el total de cromosomas de un genoma y adem´as el nombre que tendr´a el genoma indexado. En estos experimentos hemos usado el comando en su modo por defecto, sin incluirle opciones especiales (ni haciendo uso del espacio de colores). El resultado del comando lo podemos apreciar en la imagen 5.4: El comando bowtie-build en indexar el Figura 5.4: Ficheros del Genoma indexado de la A.Thaliana genoma de la A. Thaliana emplea 4 minutos y 46 segundos y genera un total de 136, 4 MB. No podemos mostrar un detalle de los ficheros del ´ındice porque son ficheros binarios en lugar de ficheros de texto. 79
  • 80. 5.3. Experimento SRP000615 Pasemos a describir el primero de los experimentos realizados con el genoma de la A. Thaliana. El experimento SRP000615 4 es un estudio sobre Arabidopsis, poppy y Persea. Consta de una serie de pruebas y nos centraremos en el conjunto de datos SRX002936. 5.3.1. Lecturas Si accedemos a la informaci´on del paquete SRX002936 podemos descargarnos un fichero comprimido con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 41, 4MB y un total de 134791 lecturas cortas. Las lecturas de este paquete tienen longitudes dispares. En la imagen 5.5 vemos un gr´afico que nos muestra el tama˜no de la lectura y el total de lecturas de ese tama˜no. Figura 5.5: Grafico del tama˜no de las lecturas del exp SRP000615 En la imagen 5.6 en la p´agina siguiente vemos un detalle del contenido del fichero de lecturas cortas: 4Para m´as informaci´on vea la web http://trace.ddbj.nig.ac.jp/DRASearch/study?acc=SRP000615 80
  • 81. Figura 5.6: Detalle de las lecturas cortas del exp SRP000615 5.3.2. Ejecuci´on de TopHat El comando tophat5 usado con este experimento es el siguiente: tophat -p 2 -o results/expSRP000615 indexes/a_thaliana reads/SRX002936.fastq Y la salida generada por dicho comando es la siguiente: [Sat May 21 10:58:19 2011] Beginning TopHat run (v1.2.0) ----------------------------------------------- [Sat May 21 10:58:19 2011] Preparing output location results/expSRP000615/ [Sat May 21 10:58:19 2011] Checking for Bowtie index files [Sat May 21 10:58:19 2011] Checking for reference FASTA file Warning: Could not find FASTA file indexes/a_thaliana.fa [Sat May 21 10:58:19 2011] Reconstituting reference FASTA file from Bowtie index [Sat May 21 10:58:30 2011] Checking for Bowtie Bowtie version: 0.12.7.0 [Sat May 21 10:58:30 2011] Checking for Samtools Samtools Version: 0.1.16 [Sat May 21 10:58:30 2011] Checking reads min read length: 37bp, max read length: 610bp format: fastq quality scale: phred33 (default) [Sat May 21 10:58:36 2011] Mapping reads against a_thaliana with Bowtie [Sat May 21 10:59:02 2011] Joining segment hits [Sat May 21 10:59:12 2011] Mapping reads against a_thaliana with Bowtie(1/24) [Sat May 21 10:59:49 2011] Mapping reads against a_thaliana with Bowtie(2/24) [Sat May 21 11:00:20 2011] Mapping reads against a_thaliana with Bowtie(3/24) [Sat May 21 11:00:47 2011] Mapping reads against a_thaliana with Bowtie(4/24) [Sat May 21 11:01:07 2011] Mapping reads against a_thaliana with Bowtie(5/24) [Sat May 21 11:01:13 2011] Mapping reads against a_thaliana with Bowtie(6/24) 5Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37 81
  • 82. [Sat May 21 11:01:15 2011] Mapping reads against a_thaliana with Bowtie(7/24) [Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(8/24) [Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(9/24) [Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(10/24) [Sat May 21 11:01:16 2011] Mapping reads against a_thaliana with Bowtie(11/24) [Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(12/24) [Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(13/24) [Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(14/24) [Sat May 21 11:01:17 2011] Mapping reads against a_thaliana with Bowtie(15/24) [Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(16/24) [Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(17/24) [Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(18/24) [Sat May 21 11:01:18 2011] Mapping reads against a_thaliana with Bowtie(19/24) [Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(20/24) [Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(21/24) [Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(22/24) [Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(23/24) [Sat May 21 11:01:19 2011] Mapping reads against a_thaliana with Bowtie(24/24) [Sat May 21 11:01:20 2011] Searching for junctions via segment mapping [Sat May 21 11:01:43 2011] Retrieving sequences for splices [Sat May 21 11:02:05 2011] Indexing splices [Sat May 21 11:03:08 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:04:35 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:05:58 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:07:19 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:08:37 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:09:51 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:11:01 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:12:12 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:13:22 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:14:31 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:15:41 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:16:51 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:18:02 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:19:11 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:20:21 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:21:30 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:22:40 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:23:50 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:24:59 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:26:09 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:27:18 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:28:29 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:29:38 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:30:48 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 11:31:57 2011] Joining segment hits [Sat May 21 11:32:07 2011] Reporting output tracks ----------------------------------------------- Run complete [00:33:52 elapsed] Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 33 minutos y 52 segundos. En la imagen 5.7 en la p´agina siguiente podemos ver los ficheros6 que crea TopHat: 6V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros 82
  • 83. Figura 5.7: Ficheros creados por Tophat en el exp SRP000615 En la imagen 5.8 vemos el contenido del fichero junctions.bed, para ver el contenido del fichero accepted hits.bam deberemos convertirlo previamente a formato SAM (eso lo haremos en el siguiente punto). Figura 5.8: Detalle del fichero junctions.bed del exp SRP000615 Del total de 134790 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado un total de 30805 y 103985 se han quedado sin alinear. En la imagen 5.9 en la p´agina siguiente vemos una gr´afica indicando el porcentaje de alineamientos y no alineamientos frente al total de lecturas del que part´ıamos. 83
  • 84. Figura 5.9: Porcentajes de alineamientos en el exp SRP000615 5.3.3. Ejecuci´on de SAMtools Debido a que TopHat nos devuelve un fichero en formato BAM7 , y dicho formato es binario; deberemos de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el siguiente: samtools view -h -o accepted_hits.sam accepted_hits.bam Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los alineamientos encontrados por TopHat. 7V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM 84
  • 85. Figura 5.10: Fichero accepted hits.sam del exp SRP000615 5.3.4. Ejecuci´on de Cufflinks Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions” e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente comando: cufflinks accepted_hits.bam Despu´es de un tiempo de 35 segundos Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as la salida por pantalla es la siguiente: [12:04:16] Inspecting reads and determining fragment length distribution. > Processed 21374 loci. [*************************] 100% > Map Properties: >Total Map Mass: 39563.00 >Read Type: 161bp single-end 85
  • 86. >Fragment Length Distribution: Truncated Gaussian (default) > Default Mean: 200 > Default Std Dev: 80 [12:04:27] Assembling transcripts and estimating abundances. > Processed 21374 loci. [*************************] 100% Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la expresi´on diferencial de los genes. La imagen 5.11 nos muestra dicho fichero. Figura 5.11: Fichero genes.fpkm tracking del exp SRP000615 86
  • 87. 5.3.5. Resultados En la imagen 5.12 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los programas usados. Podemos apreciar que la ejecuci´on de TopHat es el m´as elevado. Esto es debido a que las lecturas cortas usadas tienen longitudes grandes. Cuanto m´as grandes sean las lecturas usadas m´as tiempo tardar´an en alinear. Para mejorar este tiempo tambi´en podemos hacer uso del potencial de la m´aquina usando m´as hilos. Figura 5.12: Tiempos ejecuci´on exp SRP000615 Por otro lado, como vimos en la imagen 5.9 en la p´agina 84, tenemos un porcentaje muy bajo de alineamientos. Esto es debido al origen de los datos, propios del experimento. Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on IGV8 veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.13 en la p´agina siguiente muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo trozo de Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio. 8IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su web oficial http://www.broadinstitute.org/igv/ 87
  • 88. Figura 5.13: Expresi´on diferencial en el exp SRP000615 88
  • 89. 5.4. Experimento SRX011868 Pasemos a describir el siguiente de los experimentos realizados con el genoma de la A. Thaliana. El experimento SRX011868 9 es un estudio sobre Arabidopsis. Consta de una serie de pruebas y nos centraremos en el conjunto de datos SRR029315. 5.4.1. Lecturas Si accedemos a la informaci´on del paquete SRX011868 podemos descargarnos un fichero comprimido con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 793, 4MB y un total de 6580847 lecturas cortas. Las lecturas de este paquete tienen todas las misma longitud, en este caso 35pb dispares. En la imagen 5.14 vemos un detalle del contenido del fichero de lecturas cortas: Figura 5.14: Detalle de las lecturas cortas del exp SRX011868 9Para m´as informaci´on vea la web http://trace.ddbj.nig.ac.jp/DRASearch/experiment?acc=SRX011868 89
  • 90. 5.4.2. Ejecuci´on de TopHat El comando tophat10 usado con este experimento es el siguiente: tophat -p 2 -o results/expSRX011868 indexes/a_thaliana reads/SRR029315.fastq Y la salida generada por dicho comando es la siguiente: [Tue Aug 2 17:56:08 2011] Beginning TopHat run (v1.3.1) ----------------------------------------------- [Tue Aug 2 17:56:08 2011] Preparing output location results/expSRX011868/ [Tue Aug 2 17:56:08 2011] Checking for Bowtie index files [Tue Aug 2 17:56:08 2011] Checking for reference FASTA file Warning: Could not find FASTA file indexes/a_thaliana.fa [Tue Aug 2 17:56:08 2011] Reconstituting reference FASTA file from Bowtie index Executing: /usr/bin/bowtie-inspect indexes/a_thaliana/a_thaliana > results/expSRX011868/tmp/a_thaliana.fa [Tue Aug 2 17:56:23 2011] Checking for Bowtie Bowtie version: 0.12.7.0 [Tue Aug 2 17:56:23 2011] Checking for Samtools Samtools Version: 0.1.16 [Tue Aug 2 17:56:23 2011] Generating SAM header for indexes/a_thaliana/a_thaliana [Tue Aug 2 17:56:25 2011] Preparing reads format: fastq quality scale: phred33 (default) Left reads: min. length=35, count=6326042 [Tue Aug 2 17:58:32 2011] Mapping left_kept_reads against a_thaliana with Bowtie [Tue Aug 2 18:10:08 2011] Processing bowtie hits Warning: junction database is empty! [Tue Aug 2 18:14:28 2011] Reporting output tracks ----------------------------------------------- Run complete [00:26:07 elapsed] Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 26 minutos y 07 segundos. En la imagen 5.15 podemos ver los ficheros11 que crea TopHat: Figura 5.15: Ficheros creados por Tophat en el exp SRX011868 10Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37 11V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros 90
  • 91. En este experimento el fichero junctions.bed no indica ninguna uni´on por lo que est´a vac´ıo, para ver el contenido del fichero accepted hits.bam deberemos convertirlo previamente a formato SAM (eso lo haremos en el siguiente punto). Del total de 6580847 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado un total de 4834785 y 1746062 se han quedado sin alinear. En la imagen 5.16 vemos una gr´afica indicando el porcentaje de alineamientos y no alineamientos frente al total de lecturas del que part´ıamos. Figura 5.16: Porcentajes de alineamientos en el exp SRX011868 91
  • 92. 5.4.3. Ejecuci´on de SAMtools Debido a que TopHat nos devuelve un fichero en formato BAM12 , y dicho formato es binario; deberemos de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el siguiente: samtools view -h -o accepted_hits.sam accepted_hits.bam Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los alineamientos encontrados por TopHat. Figura 5.17: Fichero accepted hits.sam del exp SRX011868 12V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM 92
  • 93. 5.4.4. Ejecuci´on de Cufflinks Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions” e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente comando: cufflinks accepted_hits.bam Debido a la gran cantidad de alineamientos cufflinks tarda m´as que en el caso anterior, en este caso un tiempo de 18 minutos y 2 segundos. Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as la salida por pantalla es la siguiente: [18:35:18] Inspecting reads and determining fragment length distribution. > Processed 275054 loci. [*************************] 100% > Map Properties: >Total Map Mass: 4738556.00 >Read Type: 35bp single-end >Fragment Length Distribution: Truncated Gaussian (default) > Default Mean: 200 > Default Std Dev: 80 [18:37:59] Assembling transcripts and estimating abundances. > Processed 275054 loci. Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la expresi´on diferencial de los genes. La imagen 5.18 en la p´agina siguiente nos muestra dicho fichero. 93
  • 94. Figura 5.18: Fichero genes.fpkm tracking del exp SRX011868 94
  • 95. 5.4.5. Resultados En la imagen 5.19 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los programas usados. Podemos apreciar que la ejecuci´on de TopHat es el m´as elevado. En este caso las lecturas tienen un tama˜no corto, pero por contra hay muchas m´as, por eso el tiempo es elevado, pero no como en el caso anterior. Vemos que aqu´ı prima m´as la longitud de la lectura que el n´umero total de lecturas. Por otro lado al haber muchos m´as alineamientos cufflinks tarda m´as tiempo que antes a la hora de calcular la expresi´on diferencial. Figura 5.19: Tiempos ejecuci´on exp SRX011868 Por otro lado, como vimos en la imagen 5.16 en la p´agina 91, tenemos un porcentaje muy bajo de alineamientos. Esto es debido al origen de los datos, propios del experimento. Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on IGV13 veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.20 en la p´agina siguiente muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo trozo de Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio. 13IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su web oficial http://www.broadinstitute.org/igv/ 95
  • 96. Figura 5.20: Expresi´on diferencial en el exp SRX011868 96
  • 97. 5.5. Experimento SRX022366 Pasemos a describir el ´ultimos de los experimentos realizados con el genoma de la A. Thaliana. El experimento SRP000615 14 es un estudio sobre Arabidopsis. Este experimento consta de un ´unico paquete de datos, el SRR058438. 5.5.1. Lecturas Si accedemos a la informaci´on del paquete SRX022366 podemos descargarnos un fichero comprimido con un conjunto de lecturas cortas en formato FASTQ. El fichero descargado tiene un tama˜no de 631, 1MB y un total de 3486324 lecturas cortas. En este caso todas las lecturas tienen la misma longitud 36pb. En la imagen 5.21 vemos un detalle del contenido del fichero de lecturas cortas: Figura 5.21: Detalle de las lecturas cortas del exp SRX022366 14Para m´as informaci´on vea la web http://www.ncbi.nlm.nih.gov/sra?term=SRX022366 97
  • 98. 5.5.2. Ejecuci´on de TopHat El comando tophat15 usado con este experimento es el siguiente: tophat -p 2 -o results/expSRX022366 indexes/a_thaliana reads/SRR058438.fastq Y la salida generada por dicho comando es la siguiente: [Sat May 21 14:15:08 2011] Beginning TopHat run (v1.2.0) ----------------------------------------------- [Sat May 21 14:15:08 2011] Preparing output location results/expSRX022366 [Sat May 21 14:15:08 2011] Checking for Bowtie index files [Sat May 21 14:15:08 2011] Checking for reference FASTA file Warning: Could not find FASTA file indexes/a_thaliana.fa [Sat May 21 14:15:08 2011] Reconstituting reference FASTA file from Bowtie index [Sat May 21 14:15:21 2011] Checking for Bowtie Bowtie version: 0.12.7.0 [Sat May 21 14:15:21 2011] Checking for Samtools Samtools Version: 0.1.16 [Sat May 21 14:15:21 2011] Checking reads min read length: 36bp, max read length: 36bp format: fastq quality scale: phred33 (default) [Sat May 21 14:16:54 2011] Mapping reads against a_thaliana with Bowtie [Sat May 21 14:22:10 2011] Joining segment hits [Sat May 21 14:22:24 2011] Searching for junctions via segment mapping [Sat May 21 14:23:16 2011] Retrieving sequences for splices [Sat May 21 14:23:32 2011] Indexing splices [Sat May 21 14:23:32 2011] Mapping reads against segment_juncs with Bowtie [Sat May 21 14:24:07 2011] Joining segment hits [Sat May 21 14:24:18 2011] Reporting output tracks ----------------------------------------------- Run complete [00:09:16 elapsed] Y como podemos comprobar al final de dicha ejecuci´on es que el tiempo total invertido es de 9 minutos y 16 segundos. Es curioso ver que siendo un paquete de datos grande el tiempo invertido es mucho menor que el resto de los casos, debido a los pocos alineamientos encontrados. En la imagen 5.22 podemos ver los ficheros16 que crea TopHat: Figura 5.22: Ficheros creados por Tophat en el exp SRX022366 15Para m´as detalles del formato y opciones de tophat v´ease 2 en la p´agina 37 16V´ease el cap´ıtulo 2 en la p´agina 37 para m´as detalles del contenido de los ficheros 98
  • 99. En la imagen 5.23 vemos el contenido del fichero junctions.bed (que en este caso s´olo encentra una uni´on), para ver el contenido del fichero accepted hits.bam deberemos convertirlo previamente a formato SAM (eso lo haremos en el siguiente punto). Figura 5.23: Detalle del fichero junctions.bed del exp SRX022366 Del total de 3486324 lecturas de las que part´ıamos, tras realizar la ejecuci´on de TopHat se han alineado un total de 761 y 3485563 se han quedado sin alinear, lo que es un n´umero excesivamente bajo. En la imagen 5.24 vemos una gr´afica indicando el porcentaje de alineamientos y no alineamientos frente al total de lecturas del que part´ıamos. Figura 5.24: Porcentajes de alineamientos en el exp SRX022366 99
  • 100. 5.5.3. Ejecuci´on de SAMtools Debido a que TopHat nos devuelve un fichero en formato BAM17 , y dicho formato es binario; deberemos de hacer uso de SAMtools para convertir dicho fichero BAM en formato SAM. El comando usado es el siguiente: samtools view -h -o accepted_hits.sam accepted_hits.bam Tras la ejecuci´on del comando, samtools nos crea un fichero llamado accepted hits.sam que es un fichero de texto plano en formato SAM. Veamos un detalle de dicho fichero en el cual aparecen los alineamientos encontrados por TopHat. Figura 5.25: Fichero accepted hits.sam del exp SRX022366 5.5.4. Ejecuci´on de Cufflinks Despu´es de calcular los alineamientos con TopHat, ademas de obtener los “junctions”, “deletions” e “insertions”. Usaremos Cufflinks para calcular la expresi´on diferencial. Es decir, que genes agrupan m´as alineamientos. Para realizar el c´alculo de la expresi´on diferencial con Cufflinks usaremos el siguiente comando: cufflinks accepted_hits.bam Despu´es de un tiempo de 35 segundos Cufflinks crea 3 ficheros:genes.fpkm tracking, isoforms.fpkm tracking y transcripts.gtf; donde nos muestra la expresi´on diferencial de genes, isomorfos y transcritos. Adem´as la salida por pantalla es la siguiente: [11:35:36] Inspecting reads and determining fragment length distribution. > Processed 167 loci. [*************************] 100% > Map Properties: >Total Map Mass: 587.00 17V´ease el ap´endice A.2 en la p´agina 114 para m´as detalles del formato BAM 100
  • 101. >Read Type: 36bp single-end >Fragment Length Distribution: Truncated Gaussian (default) > Default Mean: 200 > Default Std Dev: 80 [11:35:36] Assembling transcripts and estimating abundances. > Processed 167 loci. [*************************] 100% Veamos el contenido de uno de los ficheros: el fichero genes.fpkm tracking que nos muestra la expresi´on diferencial de los genes. La imagen 5.26 nos muestra dicho fichero. Figura 5.26: Fichero genes.fpkm tracking del exp SRX022366 101
  • 102. 5.5.5. Resultados En la imagen 5.27 podemos ver un gr´afico que nos muestra el tiempo invertido por cada uno de los programas usados. En este experimento las ejecuciones son muy r´apidas debido a los pocos alineamientos encontrados. Figura 5.27: Tiempos ejecuci´on exp SRX022366 Por otro lado, como vimos en la imagen 5.24 en la p´agina 99, tenemos un porcentaje muy bajo de alineamientos. Esto es debido al origen de los datos, propios del experimento. Para terminar haciendo uso de los ficheros proporcionados por cufflinks junto con la aplicaci´on IGV18 veremos la expresi´on diferencial de un trozo del cromosoma 2. La imagen 5.28 en la p´agina siguiente muestra dicho contenido. Vemos que en la figura hay muchos alineamientos que van al mismo trozo de Gen. Con esto vemos que dicho gen est´a muy expresado y es un buen candidato de estudio. 18IGV es una aplicaci´on para visualizar los datos obtenidos por tophat, cufflinks, etc. Para m´as informaci´on acceda a su web oficial http://www.broadinstitute.org/igv/ 102
  • 103. Figura 5.28: Expresi´on diferencial en el exp SRX022366 103
  • 104. 104
  • 107. Ap´endice A Formatos de ficheros A.1. SAM A.1.1. Introducci´on SAM son las siglas de Sequence Alignment/Map. Y es un formato (delimitado por tabuladores) con- sistente en una secci´on de cabecera, la cual es opcional; y una secci´on de alineamientos. Si est´a presente, la cabecera debe estar antes de los alineamientos. Las l´ıneas de cabecera deben comenzar con ‘@’, mien- tras que las l´ıneas de alineamientos no. Cada l´ınea de alineamiento contiene once campos obligatorios para la informaci´on b´asica del alineamiento, adem´as de un n´umero variable de campos opcionales para informaci´on adicional. A.1.1.1. Un ejemplo del formato SAM Supongamos que tenemos la alineaci´on siguiente con las bases en min´usculas recortadas de la alinea- ci´on. Las lecturas r001/1 y r001/2 constituyen una lectura emparejada; r003 es una lectura quimera; r004 representa una alineaci´on dividida. Figura A.1: Ejemmplo de lecturas 107
  • 108. El formato SAM correspondiente es: Figura A.2: Ejemplo de fichero SAM A.1.2. Cabecera del formato SAM Cada l´ınea de la cabecera debe comenzar con el car´acter ‘@’ seguido de un c´odigo formado por dos letras. En la cabecera, cada l´ınea debe estar tabulada excepto las l´ıneas que comiencen por @CO. Con respecto a los campos de cada l´ınea, deben seguir la siguiente estructura:“Etiqueta:Valor” donde “Etiqueta” es una cadena de dos letras que define el contenido y el formato de ‘‘Valor’’. Hay que indicar que las “Etiquetas” con letras min´usculas est´an reservadas para los usuarios finales. La lista siguiente recoge los distintos c´odigos definidos y sus correspondientes etiquetas. Las etiquetas seguidas de “*” son obligatorias cuando el c´odigo est´a presente, es decir, si usamos por ejemplo @VN tenemos que especificar la etiqueta VN de manera obligatoria. @HD La l´ınea de cabecera. La primera l´ınea debe estar presente. VN* Formato de la versi´on. Formato Aceptado./^[0-9]+.[0-9]+$/. SO Orden de clasificaci´on de las alineaciones. Valores aceptados: unkown(por defecto), unsorted, queryname y coordinate. Para la b´usqueda basada en coordinate, la clave de ordenaci´on principal es el campo RNAME, con el orden definido por el orden de las l´ıneas @SQ de la cabecera. La clave de ordenaci´on de menor importancia es el campo POS. Para campos que tengan igual RNAME y POS, el orden ser´a arbitrario. Todos los alineamientos que tengan ‘*’ en el campo RNAME seguir´an a alineamientos con otro valor cualquiera, con otros que tengan ‘*’ se ordenar´an de manera arbitraria. @SQ Diccionario de referencia de secuencias. El orden de las l´ıneas @SQ definir´an el orden de alineaci´on. SN* Referencia del nombre de la secuencia. Cada l´ınea @SQ debe tener una ´unica etiqueta SN. El valor de este campo es usado para la creaci´on de los campos RNAME y PNEXT de cada alineaci´on. LN* Referencia a la longitud de la secuencia. Rango: [1, 229 − 1]. AS Identificador de ensamblaje del Genoma. M5 Suma de control (MD5) de la secuencia en may´usculas, con los huecos y los espacios. SP Especies. UR URI de la secuencia. Este valor puede empezar con uno de los protocolos est´andar como: ftp, http. . . Si no comienza por uno de los protocolos est´andar, se supone que es una ruta de acceso al sistema de ficheros. @RG Grupo de las lecturas. M´ultiples l´ıneas desordenadas de @RG est´an permitidas. ID* Identificador del grupo de lecturas. Cada l´ınea @RG debe tener un ID ´unico. El valor de ID se utiliza en las etiquetas RG de los registros de alineaci´on. Debe ser ´unico entre todos los grupos de lecturas en la secci´on de encabezado. Los ID de grupos de lecturas pueden ser modificados cuando se unen ficheros SAM con el fin de manejar mejor las colisiones. 108
  • 109. CN Nombre de la secuencia central que produce la lectura. DS Descripci´on DT Fecha de cu´ando se produjo la ejecuci´on. FO Orden del flujo. El conjunto de bases de nucle´otidos que corresponden a los nucle´otidos usados para cada flujo de cada lectura. Los flujos de varias bases est´an codificados en formato IU- PAC, y los flujos que no est´an formados por nucle´otidos est´a codificados por otros caracteres. Formato: /*|[ACMGRSVTWYHKDBN]+/ KS El conjunto de bases de nucle´otidos que corresponden a la secuencia “clave” de cada lectura. LB Librer´ıa. PG Programa usado para procesar el conjunto de lecturas. PI Predicci´on del tama˜no medio de las inserciones. PL Plataforma/tecnolog´ıa usada para producir las lecturas. Valores aceptados: CAPILLARY, LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT y PACBIO. PU Unidad usada en la plataforma. Identificador ´unico. SM Muestra. @PG Programa. ID* Identificador del programa de registro. Cada l´ınea @PG debe tener un ID ´unico. El valor de ID se usa en la etiqueta PG del alineamiento y en las etiquetas PP de otras l´ıneas @PG. Al igual que antes, los ID de las etiquetas PG pueden ser modificados cuando se unen ficheros SAM para manejar las colisiones. PN Nombre del programa. CL L´ınea de comandos. PP Anterior @PG-ID. Debe coincidir con el ID de alguna etiqueta de encabezado @PG. Los registros @PG pueden encadenarse con etiquetas PP, con el ´ultimo registro de la cadena que no tiene etiqueta PP. Esta cadena define el orden de los programas que se han aplicado al alineamiento. Los valores PP se pueden modificar cuando se unen ficheros SAM para manejar colisiones de los IDs de los PGs. El primer registro PG en una cadena describe el programa m´as reciente en usar el fichero SAM. El siguiente registro PG describe el siguiente en usar el fichero SAM. De esta forma podemos tener un registro de los programas que han intervenido en el registro SAM. VN Versi´on del programa. @CO Comentario de texto de una l´ınea. Se permiten m´ultiples l´ıneas @CO desordenadas. A.1.3. Campos obligatorios de la secci´on de Alineamientos Cada l´ınea que representa a un alineamiento tiene 11 campos que son obligatorios. Estos campos siempre deben de aparecer en el mismo orden y siempre deben estar presente, aunque sus valores pueden ser ‘0’ o ‘*’ (dependiendo del campo) si la informaci´on correspondiente no est´a disponible. La siguiente tabla nos resume los campos obligatorios del formato SAM 109
  • 110. Tabla A.1: Campos obligatorios del formato SAM No Campo Tipo Exp Regular / Rango Descripcion 1 QNAME Cadena [!−?A− ∼]{1, 255} Nombre de la consulta 2 FLAG Entero [0, 216 − 1] Bandera de opciones 3 RNAME Cadena ∗ |[! − () + − <> − ∼][!− ∼]∗ Referencia del nombre de la secuencia 4 POS Entero [0, 229 − 1] Posici´on de la primera base m´as a la izquierda 5 MAPQ Entero [0, 28 − 1] Calidad del Mapeo 6 CIGAR Cadena ∗ |([0 − 9] + [MIDNSHPX =])+ Cadena CIGAR 7 RNEXT Cadena ∗ | = |[! − () + − <> − ∼][!− ∼]∗ Nombre de referencia del si- guiente fragmento 8 PNEXT Entero [0, 229 − 1] Posici´on el siguiente fragmen- to 9 TLEN Entero [−229 + 1, 229 − 1] Longitud de la plantilla 10 SEQ Cadena ∗ |[A − Za − z = .]+ Fragmento de secuencia 11 QUAL Cadena [!− ∼]+ Calidad de la secuencia 1. QNAME: Nombre de la consulta. Las lecturas y/o los fragmentos que tienen id´entico QNAME se consideran que provienen de la misma plantilla. Un QNAME con ‘*’ indica que la informaci´on no est´a disponible. 2. FLAG: Bandera de opciones. Cada bit se explica en la siguiente tabla: Tabla A.2: Bits de la etiqueta FLAG Bit Descripci´on 0x1 La plantilla tiene m´ultiples fragmentos de secuenciaci´on 0x2 Cada fragmento se alinea correctamente de acuerdo al alineador 0x4 Fragmento no mapeado/asignado 0x8 Siguiente fragmento en la plantilla no est´a mapeado 0x10 SEQ est´a inversamente complementada 0x20 SEQ del siguiente fragmento en la plantilla ha sido invertida 0x40 Primer fragmento en la plantilla 0x80 ´Ultimo fragmento en la plantilla 0x100 Alineamiento secundario 0x200 No ha pasado los controles de calidad 0x400 Duplicado PCR o duplicado ´optico El Bit 0x04 es el ´unico sitio de confianza para saber si el fragmento est´a o no mapeado. Si 0x4 est´a a 1, no podemos suponer nada acerca de RNAME, POS, CIGAR, MAPQ, bits 0x2, 0x10 y 0x100 y bit 0x20 de los siguiente fragmento en la plantilla. Si 0x40 y 0x80 est´an ambos a 1, el fragmento pertenece a una plantilla linear, pero no es ni el primer fragmento ni el ´ultimo. Si ambos est´an a 0, el ´ındice del fragmento en la plantilla es desconocido. Esto puede ser debido a una plantilla no lineal o que el ´ındice se ha perdido en el procesamiento de los datos. El bit 0x100 indica que el alineamiento no debe ser usado en ciertos an´alisis. Para ello ciertas herramientas hacen uso de este bit para no procesar dichos alineamientos. Si el bit 0x1 est´a a 0, no podemos suponer nada acerca de 0x2, 0x8, 0x20, 0x40 y 0x80. 3. RNAME: Nombre de la secuencia de referencia de la alineaci´on. Si @SQ est´a presente en la cabecera, RNAME (si no ‘*’) debe estar presente en una de las etiquetas SQ-SN. Si RNAME es ‘*’, no podemos hacer suposiciones acerca de POS y CIGAR. 110
  • 111. 4. POS: Posici´on de la primera base m´as a la izquierda de la asignaci´on. La primera base en una secuencia de referencia tiene la coordenada 1. POS vale 0 en el caso de tener una lectura no asignada sin coordenada. Si POS es 0, no podemos hacer suposiciones acerca de RNAME y CIGAR. 5. MAPQ: Calidad del Mapeo. Es igual a −10 log10 Pr, redondeado al entero m´as pr´oximo. Un valor de 255 indica que la calidad no est´a disponible. 6. CIGAR: Cadena CIGAR. Las operaciones CIGAR se muestran en la siguiente tabla (si no est´a disponible usamos ‘*’): Tabla A.3: Operaciones CIGAR Op BAM Descripci´on M 0 Coincidencia en la alineaci´on (puede ser una coincidencia o no) I 1 Inserci´on en la referencia D 2 Borrado de la referencia N 3 Se omite la regi´on de la referencia S 4 Recorte suave (recorta las secuencias presentes en la SEQ) H 5 Recorte duro (recorta las secuencias no presentes en la SEQ) P 6 Relleno = 7 Coincidencia en la secuencia X 8 Desajuste en la secuencia H s´olo puede estar presente en la primera/´ultima operaci´on. S s´olo puede tener operaciones H entre ellos y el final de la cadena CIGAR. Para alineamientos entre mRNA y genoma, una operaci´on N representa un intr´on. Para otro tipo de alineamientos, la interpretaci´on de N no est´a definida. La suma de las longitudes de las operaciones M/I/S/=/X debe ser igual a la longitud de SEQ. 7. RNEXT: Referencia al nombre del siguiente fragmento de secuencia en la plantilla. Para el caso del ´ultimo fragmento, su siguiente ser´ıa el primer fragmento de la secuencia. Si est´a incluida la etiqueta @SQ, RNEXT debe estar presente en alguna de las etiquetas SQ-SN (si no debe aparecer ‘*’ o ‘=’). Este campo viene denotado por ‘*’ cuando la informaci´on no est´a disponible, y con ‘=’ cuando RNEXT es id´entico a RNAME. Si este campo no es ‘=’ y el siguiente fragmento en la plantilla tiene una asignaci´on primaria, este campo es id´entico a RNAME del siguiente fragmento. Si el siguiente fragmento tiene m´ultiples asignaciones primarias, no podemos asumir nada acerca de RNEXT y PNEXT. Si RNEXT es ‘*’, no podemos asumir nada acerca de PNEXT y el bit 0x20. 8. PNEXT: Posici´on del siguiente fragmento dentro de la plantilla. Cuando no hay informaci´on no disponible aparecer´a un 0. Este campo es igual al campo POS del siguiente fragmento. Si PNEXT es 0, no podemos hacer suposiciones acerca de RNEXT y el bit 0x20. 9. TLEN: Longitud de la plantilla. Si todos los fragmentos se asignan a la misma referencia, TLEN es igual al n´umero de bases desde la base m´as a la izquierda hasta la m´as a la derecha. 10. SEQ: Fragmento de secuencia. Este campo puede valer ‘*’ cuando la secuencia no se ha almacenado. Si tenemos contenido diferente a ‘*’, entonces la longitud de la cadena debe ser igual a la suma de las longitudes de las operaciones M/I/S/=/X en CIGAR. Un signo ‘=’ indica que la base es id´entica a la base de referencia. 11. QUAL: Hace referencia a la calidad que tiene cada una de las componentes de la secuencia. Para m´as informaci´on ver la secci´on que habla del formato FASTQ1 . 1V´ease la secci´on A.5 en la p´agina 117 para m´as informaci´on acerca del formato FASTQ 111
  • 112. A.1.4. Campos opcionales de la secci´on de alineamientos Todos los campos opcionales de TopHat siguen el siguiente ETIQUETA:TIPO:VALOR donde ETIQUETA es una cadena de dos caracteres de la forma [A-Za-z][A-Za-z0-9]. Cada ETIQUETA s´olo puede aparecer una ´unica vez dentro de una l´ınea de alineamiento. Una ETIQUETA que est´e en letras min´usculas est´a reservada para usuarios finales. En cada campo opcional, TIPO es una letra sola (sensible a may´usculas y min´usculas) la cual define el formato del VALOR. Tabla A.4: Campos opcionales del formato SAM Tipo Valor aceptado Descripci´on A [!− ∼] Car´acter imprimible i [−+]?[0 − 9]+ Entero de 32 bit f [−+]?[0 − 9] ∗ .?[0 − 9] + ([eE][−+]?[0 − 9]+)? Numero en punto flotante Z [ !− ∼]+ Cadena imprimible, incluyendo espacios H [0 − 9A − F]+ Conjunto de bits en formato he- xadecimal B [cCsSiIf](, [−+]?[0 − 9] ∗ ?[0 − 9] + ([eE][−+]?[0 − 9]+)?)+ Entero o tabla num´erica Para un entero o una tabla num´erica (tipo ‘B’), la primera letra indica el tipo de los n´umeros en la siguiente tabla de n´umeros separados por comas. La letra puede ser una de las siguientes: ‘cCsSiIf’, correspondiendo a int8_t (entero de 8 bits con signo), uint8_t (entero de 8 bits sin signo), int16_t, int16_t, int32_t, uint32_t y float, respectivamente. Durante el proceso de importaci´on/exportaci´on el tipo del elemento puede ser cambiado si el nuevo tipo tambi´en es compatible con la tabla. Las etiquetas predefinidas se muestran en la siguiente tabla. Usted puede a˜nadir libremente las eti- quetas que necesite, adem´as si cree que dicha etiqueta puede ser de inter´es com´un puede enviarla a samtools-devel@lists.sourceforge.net para a˜nadirla en la especificaci´on. Tenga en cuenta que las etiquetas que comienzan con ‘X’, ‘Y’ y ‘Z’ o las etiquetas con letras min´usculas en cualquier posici´on est´an reservadas para uso local y no se definen formalmente para futuras versiones de la especificaci´on del formato SAM. 112
  • 113. Tabla A.5: Etiquetas predefinidas del formato SAM Etiqueta Tipo Descripci´on X? ? Campo reservado para el usuario final (junto con Y? y Z? ) AM i Calidad de la asignaci´on m´as peque˜na independiente de la plantilla. AS i Puntuaci´on de la alineaci´on generada por el alineador. BQ Z Desplazamiento de las calidades de las bases del alineamiento (BAQ), de la misma longitud que la lectura. En la base i-´esima, BAQi = Qi − (BQi − 64) donde Qi es la calidad de la base i. CC Z Nombre de referencia del siguiente acierto; “=” si es el mismo cromosoma. CM i Editar distancia entre la secuencia de colores y la referencia de color (V´ease tambi´en NM). CP i Coordenada m´as a la izquierda del siguiente acierto. CQ Z Calidad de color de la lectura en la cadena original de la lectura. Misma codificaci´on que QUAL; misma longitud que CS. CS Z Secuencia de color de la lectura en la cadena original de la lectura. E2 Z La segunda base m´as probable para recoger. Misma codificaci´on y longitud que QUAL. FI i El ´ındice del fragmento en la plantilla. FS Z Sufijo del fragmento. FZ H La intensidad de flujo de se˜nal en la cadena original de la lectura, se almacena como (uint16 t) round(value * 100.0). LB Z Librer´ıa. Valor que tiene que ser consistente con la etiqueta RG-LB si @RG est´a presente. H0 i No de aciertos perfectos. H1 i No de aciertos con 1 diferencia (V´ease tambi´en NM) H2 i No de aciertos con 2 diferencias (V´ease tambi´en NM) HI i Posici´on (´ındice) de la consulta (si hay acierto). IH i No de alineaciones almacenadas en SAM que contienen la consulta en el registro actual. MD Z Cadena que representa las posiciones de los desajustes. MQ i Calidad del alineamiento del siguiente fragmento o compa˜nero. NH i No de alineamientos reportados que contienen la consulta en el registro actual. NM i Distancia de la referencia, incluyendo las bases ambiguas pero excluyendo los “recor- tes”. OQ Z Calidad base original. Misma codificaci´on que QUAL. OP i Posici´on de mapeo original. OC Z Cadena CIGAR original. PG Z Programa. Debe coincidir con la etiqueta PG-ID si @PG est´a presente. PQ i Probabilidad Phred de la plantilla. PU Z Unidad de la plataforma. El valor debe ser consistente con la cabecera RG-PU si @RG est´a presente. Q2 Z Phred quality del compa˜nero/siguiente fragmento en la plantilla. Misma codificaci´on que QUAL. R2 Z Secuencia del compa˜nero/siguiente fragmento en la plantilla. RG Z Grupo de la lectura. El valor debe ser consistente con la cabecera RG-ID si @RG est´a pre- sente. SM i Calidad de la asignaci´on independiente de la plantilla. TC i No de fragmentos en la plantilla. UQ i Probabilidad Phred del fragmento, condicionada a que la asignaci´on sea correcta. 113
  • 114. A.2. BAM BAM es la versi´on binaria comprimida del formato SAM2 . Es una representaci´on compacta e indexable de las secuencias de alineamientos. Muchas herramientas de NGS trabajan con los formatos SAM/BAM por lo que es un formato importante. El formato BAM al ser un formato binario, no es posible visualizarlo con un editor de texto. Para poder ver el contenido debemos de convertir el fichero BAM a un fichero SAM, que s´ı es posible verlo con un editor de texto plano. El comando para convertir un fichero BAM a un fichero SAM es el siguiente3 : samtools view -S -b -o fichero.bam fichero.sam Para m´as informaci´on puede accerder a la Web http://genome.ucsc.edu/goldenPath/help/bam.html en la cual detallan el formato BAM con m´as detalle. A.3. BED A.3.1. Introducci´on El formato BED proporciona una manera flexible para definir las l´ıneas de datos que ser´an mostradas al usuario en un fichero con extensi´on “.bed”. Cada l´ınea BED tiene tres campos obligatorios y nueve que son adicionales/opcionales. El n´umero de campos tiene que ser consistente en todo el conjunto de l´ıneas, es decir, no podemos tener l´ıneas con diferentes n´umero de campos; todas tienen que tener el mismo n´umero de campos y los campos deben de ser los mismos. El orden de los campos opcionales es vinculante: si hacemos uso de un campo, por ejemplo numerado en la siguiente lista con el 7, los campos del 4 al 7 deben de estar presentes obligatoriamente. A.3.2. Campos obligatorios en el formato BED Los tres primeros campos en el formato BED son obligatorios. Su descripci´on es la siguiente: 1. Cromosoma - El nombre del cromosoma (por ejemplo Chr1, Chr3, ChrM. . . ) o esqueleto (por ejemplo scaffold10671). 2. Comienzo - El punto donde comienza la lectura dentro del cromosoma o esqueleto. La primera base del cromosoma est´a numerada con el 0. 3. Fin - El punto donde finaliza la lectura dentro del cromosoma o esqueleto. A.3.3. Campos adicionales u opcionales en el formato BED Los nueve campos adicionales u opcionales deben ir a continuaci´on de los obligatorios. Y si hacemos uso de uno de ellos los anteriores en la lista tambi´en deben de ir obligatoriamente. Veamos cuales son los campos en la siguiente lista: 4. nombre - Define el nombre de la l´ınea BED. 5. puntuaci´on - Una puntuaci´on entre 0 y 100. Marca el nivel de gris con el que se mostrar´a (cu´anto m´as alto sea su valor m´as oscuro ser´a). 6. hebra - Define la orientaci´on de la hebra: ‘+’ ´o ‘-’. 7. Comienzo “Grueso” - Define el punto donde se comienza a “dibular” la lectura (por ejemplo el cod´on de partida en un gen). 2V´ease el formato SAM en el ap´endice A.1 en la p´agina 107 3Para m´as informaci´on acerca de SAMtools vea el cap´ıtulo 4 en la p´agina 69 114
  • 115. 8. Final “Grueso” - Define el punto donde se termina de “dibujar” la lectura (por ejemplo, el cod´on de parada en un gen). 9. RGB - Determina un valor RGB (0-255,0-255,0-255). Si se ha establecido la opci´on itemRgb=On entonces el valor RGB determinar´a el color que tendr´a la lectura cuando se visualice. 10. N´umero de bloques - N´umero de bloques (exones) que hay en la l´ınea BED. 11. Tama˜no de bloques - Lista de tama˜nos de bloques separados por comas. El n´umero de elementos de esta lista debe corresponder con el N´umero de bloques. 12. Comienzo de bloque - lista de comienzos de bloques separados por comas. El n´umero de ele- mentos de esta lista debe corresponder con el N´umero de bloques. A.3.4. Ejemplo de fichero BED Veamos un ejemplo de como ser´ıa un fichero BED con los campos obligatorios as´ı como algunos campos opcionales/adicionales. track name=junctions description="TopHat junctions" Chr2 89280 89459 JUNC00000001 1 - 89280 89459 255,0,0 2 28,23 0,156 Chr2 133079 133351 JUNC00000002 4 - 133079 133351 255,0,0 2 79,94 0,178 Chr2 133295 133530 JUNC00000003 2 - 133295 133530 255,0,0 2 65,76 0,159 A.4. FASTA El formato FASTA es un formato de texto plano utilizado para represental especialmente ´acidos nucl´eicos. En dicho formato cada par de bases o amino´acidos se representan con un c´odigo de una ´unica letra. El formato tambi´en permite la inclusi´on de comentarios as´ı como de ponerle nombre a la secuencia. Una l´ınea de formato FASTA comienza con una l´ınea de cabecera seguida de una serie de l´ıneas de datos de la secuencia. La l´ınea de cabecera se distingue de los datos porque comienza con el car´acter ‘¿’. La palabra que sigue al car´acter ‘¿’ es el identificador de la secuencia y el resto de la l´ınea es la descripci´on. Es recomendable que las l´ıneas no superen los 80 caracteres. Por otro lado, tenemos que indicar que la secuencia termina cuando aparece una l´ınea que comienza con ‘¿’ (indicando la secuencia siguiente). Un ejemplo de una secuencia en formato FASTA ser´ıa: >gi|129295|sp|P01013|OVAX_CHICK GENE X PROTEIN (OVALBUMIN-RELATED) QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE KMKILELPFASGDLSMLVLLPDEVSDLERIEKTINFEKLTEWTNPNTMEKRRVKVYLPQMKIEEKYNLTS VLMALGMTDLFIPSANLTGISSAESLKISQAVHGAFMELSEDGIEMAGSTGVIEDIKHSPESEQFRADHP FLFLIKHNPTNTIVYFGRYWSP A.4.1. L´ınea de cabecera La l´ınea de cabecera (que comienza por ‘¿’) proporciona un nombre y/o identificador ´unico a cada secuencia, y en ciertas ocasiones informaci´on adicional. Muchas bases de datos de secuencias usan una serie de cabeceras estandarizadas, para de esta forma poder extraer informaci´on autom´atica de cada secuencia. Veamos un fichero que contiene varias secuencias con sus respectivos identificadores: >IDENT_1 MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL 115
  • 116. MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL >IDENT_2 SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH A.4.2. Representaci´on de la secuencia Tras la l´ınea de cabecera prosiguen las lineas de secuencia (de una longitud, recomendada, no mayor de 80). Las secuencias pueden corresponder a secuencias de prote´ınas o de ´acidos nucl´eicos. Adem´as pueden contener huecos (gaps) o caracteres de alineamiento. No se aceptan d´ıgitos num´ericos y entre las letras aceptadas se ven en las siguientes tablas. Los c´odigos de ´acidos nucl´eicos soportados son: Tabla A.6: C´odigos de ´acidos nucl´eicos en el formato FASTA C´odigo Significado A Adenosina C Citosina G Guanina T Timina U Uracilo R G A (puRina) Y T C (pirimidina/pYrimidine) K G T (cetona/Ketone) M A C (grupo aMino) S G C (interacci´on fuerte/Strong interaction) W A T (interacci´on d´ebil/Weak interaction) B G T C (no A) (B viene tras la A) D G A T (no C) (D viene tras la C) H A C T (no G) (H viene tras la G) V G C A (no T, no U) (V viene tras la U) N A G C T (cualquiera/aNy) X m´ascara - hueco (gap) de longitud indeterminada Los c´odigos de amino´acidos soportados son: 116
  • 117. Tabla A.7: C´odigos de amino´acidos en el formato FASTA C´odigo Significado A Alanina B ´Acido asp´artico o Asparagina C Ciste´ına D ´Acido asp´artico E ´Acido glut´amico F Fenilalanina G Glicina H Histidina I Isoleucina K Lisina L Leucina M Metionina N Asparagina O Pirrolisina P Prolina Q Glutamina R Arginina S Serina T Treonina U Selenociste´ına V Valina W Tript´ofano Y Tirosina Z ´Acido glut´amico o Glutamina X cualquiera * parada de traducci´on - hueco (gap) de longitud indeterminada A.5. FASTQ El formato FASTQ es un formato de texto plano para almacenar secuencias (principalmente) de nucle´otidos adem´as de los valores de calidad asociados a cada base. Tanto la base como la calidad est´an codificados con un ´unico car´acter ASCII. A.5.1. Formato Un fichero FASTQ usa generalmente 4 l´ıneas por cada secuencia. 1. La primera l´ınea comienza con una ‘@’ y le sigue un identificador de secuencia y opcionalmente una descripci´on (como en el caso del formato FASTA). 2. La l´ınea 2 contiene todo el contenido de la secuecia (las bases nucle´otidas). 3. La l´ınea 3 comienza con el car´acter ‘+’, y opcionalmente el identificador de la secuencia que encontramos en la l´ınea 1. 4. La l´ınea 3 contiene las calidades asociadas a la secuencia de la l´ınea 2. Un ejemplo de fichero FASTQ es el siguiente: @SEQ_ID GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT + !’’*((((***+))%%%++)(%%%%).1***-+*’’))**55CCF>>>>>>CCCCCCC65 117
  • 118. Los valores de calidad van codificados seg´un la Phred Quality4 . A.6. GFF El formato GFF (del ingl´es General Feature Format) es un formato de fichero en el cual cada l´ınea cons- ta de nueve campos obligatorios separados por tabulaciones. Si estos campos se separan por espacios en blanco, en vez de tabuladores, pueden aparecer errores a la hora de mostrar la informaci´on. Para m´as in- formaci´on acerca del formato GFF puede acceder a la web oficial http://www.sanger.ac.uk/resources/software/gff. Veamos una breve descripci´on de los campos del formato GFF: seqname El nombre de la secuencia. source El programa que gener´o dicha informaci´on. feature El nombre del tipo de caracter´ıstica. Algunos ejemplos de caracter´ısticas est´andar son “CDS”, “start codon”, “stop codon” y “ex´on”. start Primera posici´on en la cadena. La primera base se numera como 1. stop ´Ultima posici´on en la cadena. score Puntuaci´on entre 0 y 1000. Hace referencia a la tonalidad de gris que se usar´a para mostrar la informaci´on. strand Orientaci´on de la hebra: “+” o “-”. frame Si la caracter´ıstica es un “ex´on”, frame ser´a un n´umero entre 0 − 2 que representa el marco de lectura de la primera base. En caso contrario el valor deber´a ser “.”. group Todas las l´ıneas de un mismo grupo son enlazadas juntas en un mismo elemento. Aqu´ı vemos un ejemplo de un fragmento de fichero GFF. track name=regulatory description="TeleGene(tm) Regulatory Regions" chr22 TeleGene enhancer 1000000 1001000 500 + . touch1 chr22 TeleGene promoter 1010000 1010100 900 + . touch1 chr22 TeleGene promoter 1020000 1020000 800 - . touch2 A.7. GTF A.7.1. Introducci´on GTF son las siglas de Formato de Transferencia de Genes (del ingl´es Gene Transfer Format). Toma prestadas caracter´ısticas de GFF5 , pero a˜nade una estructura adicional que garantiza una definici´on por separado y un formato de nombre. La estructura es como un fichero GFF, por lo que los campos son: <seqname> <source> <feature> <start> <end> <score> <strand> <frame> [attributes] [comments] Aqu´ı vemos un ejemplo simple con 3 exones traducidos. El orden de las filas no es relevante. 381 Twinscan CDS 380 401 . + 0 gene_id "001"; transcript_id "001.1"; 381 Twinscan CDS 501 650 . + 2 gene_id "001"; transcript_id "001.1"; 381 Twinscan CDS 700 707 . + 2 gene_id "001"; transcript_id "001.1"; 381 Twinscan start_codon 380 382 . + 0 gene_id "001"; transcript_id "001.1"; 381 Twinscan stop_codon 708 710 . + 0 gene_id "001"; transcript_id "001.1"; 4Para m´as informaci´on acceda a la web http://www.phrap.com/phred/ 5V´ease el ap´endice A.6 para m´as informaci´on acerca del formato GFF 118
  • 119. Los espacios en blanco en el ejemplo es para facilitar la lectura. En GTF, los campos deben estar separados por tabuladores no por espacios en blanco. A.7.2. Campos del formato GTF Veamos una definici´on m´as detallada de cada uno de los campos de un registro dentro de un fichero GTF: <seqname> El nombre de la secuencia. Por lo general, este es el Id del cromosoma o el Id del contig. <source> Source debe ser una columna con una etiqueta ´unica que indique de d´onde vienen las anotaciones (por lo general de un programa de predicci´on o una base de datos p´ublica). <feature> Se requieren alguna de las siguientes caracter´ısticas6 : “CDS”, “start codon” o “stop codon”. Las opciones “5UTR”, “3UTR”, “inter”, “inter CNS”, “intron CNS” y “exon” son opcionales. Todas las dem´as ser´an ignoradas. <start><end> Entero que representa las coordenadas de inicio y fin relativas a la secuencia nom- brada por <seqname>. <start> debe ser menor o igual que <end>. Los valores de <start> y <end> que se extiendan fuera de la secuencia de referencia son t´ecnica- mente acepables, pero se desalientan. <score> El campo puntuaci´on indica el grado de confianza en la existencia de la caracter´ıstica as´ı como en las coordenadas. El valor de este campo no tiene escala global pero puede tener importancia relativa cuando el campo <source> indica la predicci´on del programa usado para crear dicha anotaci´on. Puede ser un n´umero en punto flotante o entero, y no es necesario, puede ser reemplazado por un punto. <strand> Contenido de la hebra. <frame> Un 0 indica que la caracter´ıstica comienza con un cod´on en la primera base del sentido 5 . Un 1 significa que hay una base extra (la tercera base de un cod´on) antes del primer cod´on entero y un 2 significa que hay dos bases extras (las bases segunda y tercera del cod´on) antes del primer cod´on. Tenga en cuenta que para la hebra inversa, la base m´as cerca de la 5 es la coordenada <end>. atributes Los nueve campos tienen los mismos dos atributos obligatorios al final del registro: gene id value; Identificador ´unico que identifica al gen. Si est´a vac´ıo, no hay gen asociado al regisro. transcript id value; Identificador ´unico que identifica al transcrito. Si est´a vac´ıo, no hay transcrito asociado al registro. Estos atributos est´an dise˜nados para el manejo de m´ultiples transcritos de la misma regi´on gen´omica. Cualquier otro atributo o comentario deber´an aparecer despu´es de estos dos y ser´an ignorados. Los atributos deben terminar en punto y coma, que adem´as deben separarse entre s´ı (los atributos) mediante un espacio en blanco. Los atributos de texto deber´an ir entre comillas dobles. comments Los comentarios comienzan con una almohadilla (‘#’) y contin´uan hasta el final de la l´ınea. Pueden aparecer en cualquier parte del archivo, incluyendo el final de un registro. 6Para m´as informacion acerca de estas caracter´ısticas visite la p´agina oficial de GTF http://mblab.wustl.edu/GTF22.html 119
  • 120. A.7.3. Ejemplos del formato GTF Veamos un ejemplo de un gen (en el sentido inverso de la hebra) incluyendo regiones UTR. 140 Twinscan inter 5141 8522 . - . gene_id ""; transcript_id ""; 140 Twinscan inter_CNS 8523 9711 . - . gene_id ""; transcript_id ""; 140 Twinscan inter 9712 13182 . - . gene_id ""; transcript_id ""; 140 Twinscan 3UTR 65149 65487 . - . gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan 3UTR 66823 66992 . - . gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan stop_codon 66993 66995 . - 0 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan CDS 66996 66999 . - 1 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan intron_CNS 70103 70151 . - . gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan CDS 70207 70294 . - 2 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan CDS 71696 71807 . - 0 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan start_codon 71805 71806 . - 0 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan start_codon 73222 73222 . - 2 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan CDS 73222 73222 . - 0 gene_id "140.000"; transcript_id "140.000.1"; 140 Twinscan 5UTR 73223 73504 . - . gene_id "140.000"; transcript_id "140.000.1"; He aqu´ı un ejemplo en el que se utiliza la caracter´ıstica “ex´on”. 381 Twinscan exon 150 200 . + . gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan exon 300 401 . + . gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan CDS 380 401 . + 0 gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan exon 501 650 . + . gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan CDS 501 650 . + 2 gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan exon 700 800 . + . gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan CDS 700 707 . + 2 gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan exon 900 1000 . + . gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan start_codon 380 382 . + 0 gene_id "381.000"; transcript_id "381.000.1"; 381 Twinscan stop_codon 708 710 . + 0 gene_id "381.000"; transcript_id "381.000.1"; 120
  • 121. Bibliograf´ıa [1] Simon Anders and Wolfgang Huber. Differential expression analysis for sequence count data. Ge- nome Biology, 11(10):R106, 2010. [2] James Bullard, Elizabeth Purdom, Kasper Hansen, and Sandrine Dudoit. Evaluation of statistical methods for normalization and differential expression in mrna-seq experiments. BMC Bioinforma- tics, 11(1):94, 2010. [3] M. Burrows and D. J. Wheeler. A block-sorting lossless data compression algorithm. Technical Report 124, 1994. [4] Mois`es Burset and Roderic Guig´o. Evaluation of gene structure prediction programs. Genomics, 34(3):353 – 367, 1996. [5] R. P. Dilworth. A decomposition theorem for partially ordered sets. 1950. [6] Nicholas Eriksson, Lior Pachter, Yumi Mitsuya, Soo-Yon Rhee, Chunlin Wang, Baback Gharizadeh, Mostafa Ronaghi, Robert W. Shafer, and Niko Beerenwinkel. Viral population estimation using pyrosequencing. PLoS Comput Biol, 4(5):e1000074, 05 2008. [7] P. Ferragina and G. Manzini. Opportunistic data structures with applications. In Proceedings of the 41st Annual Symposium on Foundations of Computer Science, pages 390–, Washington, DC, USA, 2000. IEEE Computer Society. [8] Brian J. Haas, Arthur L. Delcher, Stephen M. Mount, Jennifer R. Wortman, Roger K. Smith Jr, Linda I. Hannick, Rama Maiti, Catherine M. Ronning, Douglas B. Rusch, Christopher D. Town, Steven L. Salzberg, and Owen White. Improving the arabidopsis genome annotation using maximal transcript alignment assemblies. Nucleic Acids Research, 31(19):5654–5666, 2003. [9] Kasper D. Hansen, Steven E. Brenner, and Sandrine Dudoit. Biases in illumina transcriptome sequencing caused by random hexamer priming. Nucleic Acids Research, 38(12):e131, 2010. [10] Hui Jiang and Wing Hung Wong. Statistical inferences for isoform expression in rna-seq. Bioinfor- matics, 25(8):1026–1032, 2009. [11] Juha K¨arkk¨ainen. Fast bwt in small space by blockwise suffix sorting. Theor. Comput. Sci., 387:249– 257, November 2007. [12] Ben Langmead, Kasper Hansen, and Jeffrey Leek. Cloud-scale rna-sequencing differential expression analysis with myrna. Genome Biology, 11(8):R83, 2010. [13] Ben Langmead, Cole Trapnell, Mihai Pop, and Steven L Salzberg. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome biology, 10(3):R25, January 2009. [14] Albert Lehninger, David L. Nelson, and Michael M. Cox. Lehninger Principles of Biochemistry. W. H. Freeman, fifth edition edition, June 2008. [15] Heng Li and Richard Durbin. Fast and accurate short read alignment with burrows ’ wheeler trans- form. Bioinformatics, 25(14):1754–1760, 2009. 121
  • 122. [16] John C. Marioni, Christopher E. Mason, Shrikant M. Mane, Matthew Stephens, and Yoav Gilad. Rna-seq: An assessment of technical reproducibility and comparison with gene expression arrays. Genome Research, 18(9):1509–1517, 2008. [17] Ali Mortazavi, Brian A Williams, Kenneth McCue, Lorian Schaeffer, and Barbara Wold. Mapping and quantifying mammalian transcriptomes by rna-seq. Nat Meth, 5(7):621–628, 07 2008. [18] Adam Roberts, Cole Trapnell, Julie Donaghey, John Rinn, and Lior Pachter. Improving rna-seq expression estimates by correcting for fragment bias. Genome Biology, 12(3):R22, 2011. [19] Mark D. Robinson, Davis J. McCarthy, and Gordon K. Smyth. edger: a bioconductor package for differential expression analysis of digital gene expression data. Bioinformatics, 26(1):139–140, 2010. [20] Cole Trapnell, Lior Pachter, and Steven L Salzberg. TopHat: discovering splice junctions with RNA-Seq. Bioinformatics (Oxford, England), 25(9):1105–11, May 2009. [21] Cole Trapnell, Brian A Williams, Geo Pertea, Ali Mortazavi, Gordon Kwan, Marijke J van Baren, Steven L Salzberg, Barbara J Wold, and Lior Pachter. Transcript assembly and quantification by rna-seq reveals unannotated transcripts and isoform switching during cell differentiation. Nat Biotech, 28(5):511–515, 05 2010. [22] J. Craig Venter, Mark D. Adams, Eugene W. Myers, et al. The sequence of the human genome. Science, 291(5507):1304–1351, 2001. [23] Eric T. Wang, Rickard Sandberg, Shujun Luo, Irina Khrebtukova, Lu Zhang, Christine Mayr, Step- hen F. Kingsmore, Gary P. Schroth, and Christopher B. Burge. Alternative isoform regulation in human tissue transcriptomes. Nature, 456(7221):470–476, 11 2008. 122