Skip to main content

Binary Differential Replication Option


4.3.3 Realizar una copia de seguridad diferencial o incremental Suponiendo que una buena parte de los datos de su servidor MySQL permanezca sin cambios con el tiempo, puede aumentar la velocidad y reducir el espacio de almacenamiento necesario para las copias de seguridad habituales al hacer una copia de seguridad de todos los datos del servidor Cada vez, pero sólo los cambios a los datos que han tenido lugar a lo largo del tiempo. Para ello, después de realizar primero una copia de seguridad completa que contenga todos los datos, puede realizar una de las siguientes acciones: Realización de una serie de copias de seguridad diferenciales. Cada copia de seguridad diferencial incluye todos los cambios realizados en los datos desde que se realizó la última copia de seguridad completa. Para restaurar datos hasta, por ejemplo, tiempo t. Simplemente restaura primero la copia de seguridad completa y luego, encima de ella, la copia de seguridad diferencial tomada para el tiempo t. Realice una serie de copias de seguridad incrementales. Cada copia de seguridad incremental sólo incluye los cambios desde la copia de seguridad anterior, que puede ser una copia de seguridad completa o incremental. La primera copia de seguridad en una serie incremental siempre es una copia de seguridad diferencial pero después de eso, cada copia de seguridad incremental sólo contiene los cambios realizados desde la última copia de seguridad incremental. Por lo tanto, cada copia de seguridad incremental posterior es más pequeña en tamaño que una copia de seguridad diferencial y es más rápida para hacer que le permite hacer copias de seguridad incrementales muy frecuentes y, a continuación, le permite restaurar la base de datos a un punto más preciso cuando sea necesario. Sin embargo, la restauración de datos con copias de seguridad incrementales puede requerir más tiempo y más trabajo: en general, restaurar datos hasta, por ejemplo, el tiempo t. Comenzar con la restauración de la copia de seguridad completa y, a continuación, restaurar las copias de seguridad incrementales de uno en uno, hasta que haya terminado con la copia de seguridad incremental tomada durante el tiempo t. MySQL Enterprise Backup admite copias de seguridad incrementales y diferenciales. Debería decidir qué estrategia de copia de seguridad debe adoptarse examinando factores tales como la cantidad de espacio de almacenamiento que tiene, la rapidez con la que debe poder restaurar datos y así sucesivamente. MySQL Enterprise Backup trata la copia de seguridad diferencial como un caso especial de copia de seguridad incremental que tiene una copia de seguridad completa como base. Para crear una copia de seguridad diferencial, simplemente siga las instrucciones a continuación para realizar copias de seguridad incrementales y asegúrese de especificar una copia de seguridad completa como la base de su copia de seguridad incremental utilizando los métodos que describimos a continuación, también debe ignorar las instrucciones que sólo se apliquen al manejo de Múltiples copias de seguridad incrementales. Al crear una copia de seguridad incremental, debe indicar a mysqlbackup el punto en el tiempo de la copia de seguridad completa o incremental anterior. Para mayor comodidad, puede utilizar la opción --incremental-base para derivar automáticamente el número de secuencia de registro necesario (LSN) de los metadatos almacenados en un directorio de copia de seguridad anterior o en el servidor. O, puede especificar un valor LSN explícito utilizando la opción --start-lsn, proporcionando a mysqlbackup el LSN final de una copia de seguridad completa o incremental anterior. Para preparar los datos de copia de seguridad que se van a restaurar, se combinan todas las copias de seguridad incrementales con una copia de seguridad completa original. Normalmente, realiza una nueva copia de seguridad completa después de un período de tiempo designado, después de lo cual puede descartar los datos de copia de seguridad incremental más antiguos. Creación de copias de seguridad incrementales utilizando sólo el registro de rehacer El --incremental-con-redo-log sólo podría ofrecer algunos beneficios sobre la opción --incremental para crear una copia de seguridad incremental: Los cambios en las tablas InnoDB se determinan en función del contenido de InnoDB Redo log Dado que los archivos de registro de rehacer tienen un tamaño fijo que se sabe de antemano, puede requerir menos E / S para leer los cambios de ellos que para explorar los archivos de espacio de tabla InnoDB para localizar las páginas modificadas, dependiendo del tamaño de su base de datos, De la actividad DML y el tamaño de los archivos de registro de rehacer. Dado que los archivos de registro de rehacer actúan como un búfer circular, con registros de cambios antiguos sobrescritos a medida que se llevan a cabo nuevas operaciones DML, debe realizar nuevas copias de seguridad incrementales en un horario predecible dictado por el tamaño de los archivos de registro y la cantidad de datos de rehacer generados Para su carga de trabajo. De lo contrario, el registro de rehacer podría no llegar lo suficiente para registrar todos los cambios desde la copia de seguridad incremental anterior, en cuyo caso mysqlbackup determinará rápidamente que no puede continuar y devolverá un error. El script de copia de seguridad debe ser capaz de detectar ese error y luego realizar una copia de seguridad incremental con la opción --incremental en su lugar. Para calcular el tamaño del registro de rehacer, emita el comando SHOW VARIABLES LIKE archivo de registro innodb y, en base a la salida, multiplique el valor del archivo innodb por el valor de los archivos de registro innodb en grupo. Para calcular el tamaño del registro de rehacer en el nivel físico, busque en el directorio datadir de la instancia de MySQL y sume los tamaños de los archivos que coinciden con el patrón ib logfile. El valor InnoDB LSN corresponde al número de bytes escritos en el registro de rehacer. Para comprobar el LSN en algún momento, emita el comando SHOW ENGINE INNODB STATUS y busque bajo el encabezado LOG. Mientras planifica su estrategia de copia de seguridad, registre los valores de LSN periódicamente y sustraiga el valor anterior del actual para calcular la cantidad de datos de rehacer que se genera cada hora, día y así sucesivamente. Antes de MySQL 5.5, era una práctica común mantener los registros de rehacer bastante pequeños para evitar un largo tiempo de inicio cuando el servidor de MySQL se mataba en lugar de apagarse normalmente. Con MySQL 5.5 y superior, el rendimiento de la recuperación de fallos mejora considerablemente, como se describe en Optimización de variables de configuración de InnoDB. De modo que usted puede hacer que sus archivos de registro de redo más grande si eso ayuda a su estrategia de copia de seguridad y la carga de trabajo de la base de datos. Este tipo de copia de seguridad incremental no es tan tolerante de valores demasiado bajos --start-lsn como la opción estándar --incremental es. Por ejemplo, no puede realizar una copia de seguridad completa y, a continuación, realizar una serie de copias de seguridad - incremental-with-redo-log-only con el mismo valor --start-lsn. Asegúrese de especificar el LSN final preciso de la copia de seguridad anterior, ya que el LSN de inicio de la siguiente copia de seguridad incremental no utiliza valores arbitrarios. Para garantizar que los valores de LSN coincidan exactamente entre copias de seguridad incrementales sucesivas, se recomienda que utilice siempre la opción --incremental-base cuando se utiliza la opción --incremental-with-redo-log-only. Para juzgar si este tipo de copia de seguridad incremental es práctico y eficiente para una instancia de MySQL concreta: Mida la rapidez con que los datos cambian dentro de los archivos de registro de rehacer InnoDB. Compruebe el LSN periódicamente para decidir cuánto se acumulan los datos de rehacer en el transcurso de un número de horas o días. Compare la tasa de acumulación de registros de rehacer con el tamaño de los archivos de registro de rehacer. Utilice esta relación para ver la frecuencia con la que debe realizar una copia de seguridad incremental, para evitar la probabilidad de que la copia de seguridad falle porque los datos históricos no están disponibles en el registro de rehacer. Por ejemplo, si está produciendo 1 GB de datos de registro de rehacer por día y el tamaño combinado de los archivos de registro de rehacer es de 7 GB, programaría copias de seguridad incrementales con más frecuencia que una vez a la semana. Puede realizar copias de seguridad incrementales todos los días o dos, para evitar un problema potencial cuando una repentina oleada de actualizaciones produce más datos de registro de rehacer que de costumbre. Utilice las opciones incremental - incremental y - incremental-with-redo-log-only para confirmar si la técnica de copia de seguridad de registro de rehacer realiza más rápido y con menos sobrecarga que el método de copia de seguridad incremental tradicional. El resultado podría depender del tamaño de los datos, la cantidad de actividad de DML y el tamaño de los archivos de registro de rehacer. Haga sus pruebas en un servidor con un volumen de datos realista y una carga de trabajo realista. Por ejemplo, si tiene enormes archivos de registro de rehacer, leerlos en el curso de una copia de seguridad incremental podría tomar tanto tiempo como leer los archivos de datos InnoDB utilizando la técnica incremental tradicional. Por el contrario, si el volumen de datos es grande, leer todos los archivos de datos para encontrar las pocas páginas modificadas podría ser menos eficiente que procesar los archivos de registro de rehacer mucho más pequeños. Otras consideraciones para copias de seguridad incrementales La función de copia de seguridad incremental está destinada principalmente a tablas InnoDB o tablas que no son de InnoDB que son de sólo lectura o rara vez se actualizan. Las copias de seguridad incrementales detectan cambios en el nivel de las páginas de los archivos de datos de InnoDB. A diferencia de las filas de la tabla cada página que ha cambiado se copia de seguridad. Por lo tanto, el ahorro de espacio y tiempo no es exactamente proporcional al porcentaje de filas o columnas InnoDB cambiadas. Para archivos que no son InnoDB, todo el archivo se incluye en una copia de seguridad incremental si ese archivo ha cambiado desde la copia de seguridad anterior, lo que significa que los ahorros para recursos de copia de seguridad son menos significativos al compararlos con las tablas de InnoDB. No puede realizar copias de seguridad incrementales con la opción --compress. Al realizar una copia de seguridad incremental basada en una copia de seguridad (completa o incremental) creada con la opción --no-locking, utilice la opción --skip-binlog para omitir la copia de seguridad del registro binario, ya que la información del registro binario será No está disponible para mysqlbackup en esa situación. Ejemplos de copias de seguridad incrementales Este ejemplo utiliza mysqlbackup para realizar una copia de seguridad incremental de un servidor MySQL, incluyendo todas las bases de datos y tablas. Se muestran dos alternativas, una con la opción --incremental-base y otra con la opción --start-lsn. Con la opción --incremental-base, no es necesario realizar un seguimiento de los valores de LSN entre una copia de seguridad y la siguiente. En su lugar, sólo puede especificar el directorio de copia de seguridad de la copia de seguridad anterior (ya sea completa o incremental) y mysqlbackup calcula el punto de partida de esta copia de seguridad en función de los metadatos de la anterior. Debido a que necesita un conjunto conocido de nombres de directorio, puede que desee utilizar nombres codificados en disco o generar una secuencia de nombres en su propio script de copia de seguridad, en lugar de utilizar la opción --with-timestamp. Tenga en cuenta que incluso si su última copia de seguridad era un solo archivo. Puede utilizar --incremental-base especificando para dir: directory path la ubicación del directorio temporal que ha proporcionado con la opción - backup-dir durante la copia de seguridad completa: Como alternativa a especificar - incremental-base dir: directory camino . Puede decir mysqlbackup para consultar el valor final lsn de la última copia de seguridad no TTS exitosa registrada en la tabla de historial de copias de seguridad en el servidor usando --incremental-base history: última copia de seguridad (esto requirió que la última copia se hiciera con mysqlbackup conectado Al servidor). También puede utilizar la opción --start-lsn para especificar dónde debe comenzar la copia de seguridad incremental. Usted tiene que registrar el LSN de la copia de seguridad anterior reportada por mysqlbackup al final de la copia de seguridad: El número también se graba en el archivo meta / backup variables. txt en la carpeta especificada por --backup-dir durante la copia de seguridad. Suministre entonces ese número a mysqlbackup usando la opción --start-lsn. La copia de seguridad incremental incluye todos los cambios que se produjeron después del LSN especificado. Para crear una imagen de copia de seguridad incremental con la opción --start-lsn, utilice el siguiente comando, especificando con --incremental-backup-dir el directorio de copia de seguridad, que en este caso es un directorio para almacenar los metadatos para la copia de seguridad y Algunos archivos temporales: En el siguiente ejemplo, porque --backup-image no proporciona una ruta completa al archivo de imagen que se va a crear, la imagen de copia de seguridad incremental se crea en la carpeta especificada por --incremental-backup-dir. En el siguiente ejemplo, se utiliza la opción --incremental-base history: last backup, dado que mysqlbackup recupera el LSN de la última copia de seguridad completa o parcial (no TTS) de la tabla de historial mysql. backup y realiza una copia de seguridad incremental Basándose en eso. Avanzado: Utilice los siguientes comandos para crear copias de seguridad de directorios incrementales, utilizando las opciones --incremental-base y --start-lsn: Mantenimiento de una programación de copia de seguridad: En un programa regular determinado por fecha o cantidad de actividad de la base de datos, Copias de seguridad diferenciales. Opcionalmente, inicie periódicamente el ciclo de nuevo tomando una copia de seguridad completa, sin comprimir o comprimido. Normalmente, este hito se produce cuando puede archivar y borrar los datos de copia de seguridad más antiguos. Sobre cómo restaurar su base de datos usando las copias de seguridad incrementales, vea Sección 5.1.3, Restaurando una copia de seguridad incremental Implementando NoSync Inicializaciones (y variaciones) en SQL Server 2005/8 Me gustaría hacer un breve artículo sobre hacer las inicializaciones de nosync para SQL Server 2005 / 8. Se trata de inicializaciones que no utilizan una instantánea. ¿Por qué nos gustaría hacer las cosas de esta manera (1) Por lo general, la razón es el tamaño de la instantánea. Esto es particularmente relevante para uno de mis principales clientes, donde nos replicamos a una flota de buques de todo el mundo a través de estrechos enlaces por satélite. Si usamos una instantánea, una publicación en particular tardaría una semana en inicializarse. Por lo tanto, la alternativa más sencilla es cerrar la copia de seguridad de la base de datos y enviarla, descomprimir, restaurar y utilizarla como punto de partida. (2) tomar la base de datos asegura que todos los objetos de apoyo se toman al mismo tiempo. No todos los objetos pueden agregarse como artículos, por lo que usar esta metodología significa que no tenemos que usar archivos post-instantánea y es por lo tanto menos mantenimiento. (3) podríamos tener los datos ya existentes en el suscriptor pero la aplicación de un snapashot o una restauración de la base de datos del editor rompería el sistema. Esto no es claramente una configuración recomendada, pero he tenido el dudoso placer de trabajar en un sistema de este tipo en un banco donde la inicialización estándar es imposible. Si la base de datos de abonado contiene datos que sólo existen en el abonado, entonces tendrá que usar esto como punto de partida. La no convergencia, especialmente en el caso de la replicación de la fusión, es algo que intentamos evitar pero extrañamente en algunos sistemas es un estado aceptado. Tenga en cuenta que en algunos casos también podríamos comprimir los archivos de instantáneas y usar una ubicación de instantánea alternativa en lugar de usar una copia de seguridad de base de datos, sin embargo tomar una copia de seguridad es a menudo un método más sencillo. Cómo agregar la suscripción - el Asistente Al agregar una suscripción, la opción en el asistente para declarar que no, el suscriptor ya tiene el esquema y los datos que existían en SQL Server 2000 ha sido reemplazado por la pantalla siguiente que es bastante auto-explicativo . Todavía tenemos que obtener los datos al suscriptor como antes, y hay varias modificaciones que podríamos necesitar hacer al esquema en el suscriptor como se explica en la sección siguiente, pero esto nos prepara para una inicialización de nosync. Para la replicación de mezcla esto es lo mismo que la metodología anterior para una inicialización de nosync y ejecutar el agente de combinación generará todas las tablas de sistema extra, disparadores, etc. en el suscriptor. Para la replicación transaccional esto no es lo mismo que la inicialización de nosync de SQL Server 2000 como en SQL Server 2005/8 estamos usando la opción de soporte de replicación solo nueva que se explica más adelante. Cómo agregar la suscripción - Scripts Usando scripts podemos ver más fácilmente cuáles son todas las opciones disponibles y qué significan. Para agregar una suscripción en la replicación transaccional utilizamos los siguientes procedimientos: sp addsubscription y sp addpushsubscription agent / sp addpullsubscription agent. En sp addsubscription hay ahora 4 opciones para el tipo de sincronización. Anteriormente sólo había 2 opciones: automática (la predeterminada) y ninguna que se utilizó para realizar una inicialización de nosync. Esto sigue siendo el caso de la replicación de mezcla en SQL Server 2005/8 por lo que no mencionar que más, pero para la transacción ahora tenemos varias nuevas opciones que no están explícitamente disponibles en el asistente. Parafraseando mi artículo de SQL Server 2000, la última opción (ninguna) tenía que ser utilizada en conjunción con una generación manual de procedimientos almacenados de replicación que luego se aplican a cada suscriptor. En SQL Server 2005/8 ahora tenemos opciones alternativas que son: (1) none - supone que el suscriptor ya tiene el esquema y los datos iniciales para las tablas publicadas - AHORA DEPRECATED. (Sin embargo sp scriptpublicationcustomprocs no está marcado como obsoleto para uso manual en BOL.) (2) automático (por defecto) - transferencia automática de esquemas, datos, procedimientos almacenados de replicación (y disparadores cuando sea necesario). (3) solo soporte de replicación - qué significa el término en este contexto Son los procedimientos almacenados de la replicación interna del artículo, los disparadores de replicación que admiten las suscripciones de actualización y las tablas del sistema de replicación necesarias. Por lo tanto, esto es como la opción de SQL Server 2000, sin el dolor de cabeza de hacer la creación manual y la implementación de los procedimientos almacenados. Esta opción supone que el suscriptor ya tiene el esquema y todos los datos iniciales de las tablas publicadas. Aquí hay que tener mucho cuidado: - NO debe haber NINGUNA diferencia en los datos entre el editor y el suscriptor. Esto no está garantizado por la configuración y como DBA debemos garantizar que este es el caso. En algunas terminologías se hace referencia a esto mientras se transfieren los datos. Obviamente, si trabajas en un sistema donde hay acceso las 24 horas, esto no va a ser posible, así que la opción (2) o (4) sería requerida. - si está configurando esto usando una copia de seguridad, la copia de seguridad debe ser tomada después de que la publicación se ha creado. ¿Por qué esto es tan importante? Debido a que la creación de la publicación hace algunos cambios en el esquema que son esenciales para que la replicación funcione. En particular, las columnas de identidad se establecen en NOT FOR REPLICATION. - tenga en cuenta que esta configuración no se refleja con precisión en la GUI. La forma normal de configurar los artículos es agregarlos en la GUI y luego editar las propiedades del artículo. Esto nos permite decidir qué permisos, disparadores, índices, etc para tomar un artículo replicado en particular. Los cambios posteriores a, por ejemplo, la configuración del índice no se propagan, pero permite una granularidad en el proceso de inicialización. En el caso de una opción de solo soporte de replicación, las propiedades del artículo son SIN MENSAJE Está omitiendo esta funcionalidad y tomando toda la base de datos. (4) inicializar con copia de seguridad. El esquema completo y los datos iniciales de las tablas publicadas se obtienen de una copia de seguridad completa reciente de la base de datos de publicaciones. Como se mencionó anteriormente, esta copia de seguridad debe tomarse DESPUÉS de la publicación de la publicación. Una vez que se crea la copia de seguridad de la base de datos de publicación, debemos asegurarnos de que el suscriptor tenga acceso al archivo de copia de seguridad, ya sea que la copia de seguridad se transfiera al suscriptor o se coloque en una compartición de archivos que el suscriptor pueda leer. La ubicación de la copia de seguridad y el tipo de medio para la copia de seguridad se especifican mediante 2 nuevos parámetros de sp addsubscription. Backupdevicename y backupdevicetype. En este punto notaré que usted necesitará hacer 3 cosas: (a) quitar objetos redundantes y tablas. No hay ningún punto de saturación de la base de datos en el suscriptor con nada que wouldn t ser allí es que había hecho una inicialización automática. Esto acelerará la copia de seguridad y aclarará a otros administradores para qué se está utilizando el suscriptor. (B) reemplazar columnas timestamp con columnas binarias (8). Usted tendrá que utilizar una tabla de tenencia temporal para lograr esto. (C) recuerde que la copia de seguridad incluye todos los datos, incluso si los filtros de fila o columna están especificados en una tabla, por lo que es posible que sea necesario eliminar algunas columnas. Cómo funciona y cómo evitar las trampas Cuando se utiliza, sp addsubscription internamente llama a RESTORE HEADERONLY para extraer el último LSN de la copia de seguridad que se utilizará como punto de partida de la nueva suscripción. Una comparación posterior se realiza con el valor xact seqno en los comandos distribution..MSrepl. Y los comandos necesarios transferidos. Para asegurarse de que todos los comandos necesarios realmente existen en la tabla de comandos de MSrepl, debemos restaurar la copia de seguridad antes de que se alcance el período de retención y el agente de limpieza de distribución elimine las filas. BOL recomienda que desactivemos el agente de limpieza de la distribución durante este período para asegurarnos de que todo vaya sin problemas. Si obtiene este incorrecto, recibirá el mensaje siguiente: Msg 21397, Nivel 16, Estado 1, Procedimiento sp MSsetupnosyncsubwithlsnatdist, Línea 213 Las transacciones necesarias para sincronizar la suscripción nosync creada de la copia de seguridad especificada no están disponibles en el distribuidor. Vuelva a intentar la operación con una copia de seguridad más actualizada de registro, diferencial o de base de datos completa. Se canceló el Suscriptor. Agregar nuevas tablas Si agrega un artículo nuevo a una publicación que tiene un suscriptor configurado como soporte de replicación sólo tiene que tener un poco de cuidado. Para una suscripción normal (por defecto) ejecutaríamos el agente de instantáneas para crear los scripts para el nuevo artículo y esto se aplicaría entonces al suscriptor. En este caso las cosas son diferentes. Después de agregar y propagar el nuevo artículo, habrá un mensaje en el historial del agente de distribución que dice Aplicó la instantánea al suscriptor. Sin embargo, cuando se mira en el suscriptor no verá ninguna tabla. Lo que se ha creado en el abonado durante este proceso son los procedimientos almacenados internos para aplicar comandos a la nueva tabla. La creación de la tabla real y los datos en el suscriptor depende de usted. Por lo tanto, asegúrese de que utiliza algo como SSIS para transferir la tabla y los datos. Asegúrese de que las columnas de identidad se establecen en NOT FOR REPLICATION y también se crean objetos relacionados, por ejemplo, índices no agrupados y disparadores. Realmente usted necesita hacer esto antes de suscribirse al nuevo artículo. Esencialmente todo esto significa que el sistema necesita ser detenido mientras esto sucede así que no perdemos ningún dato. Por lo tanto, podríamos decir que la razón inicial por la que utilizamos este método se descompone al agregar artículos Conclusiones Esperemos que este artículo le ayudará a aprovechar las nuevas opciones útiles en la configuración de una inicialización de nosync. Esta opción siempre ha implicado algunos requerimientos de scripting necesarios, y nunca podría hacerse completamente usando la GUI. Ahora con SQL Server 2005/8 esto es aún más, pero las opciones adicionales presentan una alternativa necesaria a las inicializaciones automáticas. Gracias a Nigel Maneffa por señalar algunas mejoras en este artículo. Los recientes avances en secuenciación de cDNA de alto rendimiento (RNA-seq) pueden revelar nuevos genes y variantes de empalme y cuantificar la expresión de todo el genoma en un solo ensayo. El volumen y la complejidad de los datos de los experimentos RNA-seq requieren un software de análisis escalable, rápido y matemáticamente basado en principios. TopHat y Cufflinks son herramientas gratuitas de software de código abierto para el descubrimiento de genes y análisis de expresión completa de datos de secuenciación de mRNA de alto rendimiento (RNA-seq). Juntos, permiten a los biólogos identificar nuevos genes y nuevas variantes de empalme de los conocidos, así como comparar la expresión del gen y la transcripción en dos o más condiciones. Este protocolo describe detalladamente cómo usar TopHat y Cufflinks para realizar tales análisis. También cubre varias herramientas accesorias y utilidades que ayudan en la gestión de datos, incluyendo CummeRbund, una herramienta para visualizar los resultados de análisis RNA-seq. Aunque el procedimiento asume las habilidades básicas de informática, estas herramientas asumen poco o ningún antecedente con el análisis de ARN-seq y están diseñadas para novatos y expertos por igual. El protocolo comienza con la secuenciación en bruto lee y produce una asamblea de transcriptoma, listas de genes y transcripciones diferencialmente expresados ​​y regulados, y visualizaciones de calidad de publicación de los resultados del análisis. El tiempo de ejecución del protocolo depende del volumen de los datos de secuenciación del transcriptoma y de los recursos informáticos disponibles, pero toma menos de 1d de tiempo de la computadora para los experimentos típicos y 1 h de tiempo práctico. INTRODUCCIÓN La secuenciación de mRNA de alto rendimiento (RNA-seq) ofrece la capacidad de descubrir nuevos genes y transcripciones y medir la expresión de la transcripción en un único ensayo 1 instrumentos actuales generan más de 500 gigabases en una sola ejecución. Por otra parte, los costos de secuenciación están reduciendo exponencialmente, abriendo la puerta a la secuenciación personalizada asequible e invitando a comparaciones con la computación de productos básicos y su impacto en la sociedad 4. Aunque el volumen de datos de los experimentos RNA seq suele ser oneroso, De la misma manera que la secuenciación de cDNA con secuenciadores Sanger amplió drásticamente nuestro catálogo de genes humanos conocidos 5. RNA-seq revela el repertorio completo de isoformas de empalme alternativas en nuestro transcriptoma y arroja luz sobre las transcripciones más raras y más específicas de células y contextos 6. Además, Debido a que el número de lecturas producidas a partir de un transcrito de ARN es una función de la abundancia de ese transcrito, la densidad de lectura puede usarse para medir la expresión de los transcritos 7, 8 y 2, 3, 9, 10 con exactitud comparable o superior a los microarrays de expresión 1, 11. RNA-seq experimentos deben ser analizados con robusto, eficiente y estadísticamente principios algoritmos. Afortunadamente, la comunidad bioinformática ha trabajado duro desarrollando matemáticas, estadísticas e informática para ARN-seq y construyendo estas ideas en herramientas de software (para una revisión reciente de conceptos de análisis y paquetes de software véase Garber et al 12). Las herramientas de análisis de RNA seq generalmente se dividen en tres categorías: (i) las de alineación de lectura (ii) las de transcripción o de anotación de genoma y (iii) las de transcripción y de cuantificación de genes. Hemos desarrollado dos herramientas populares que juntas sirven los tres roles, así como una herramienta más nueva para visualizar los resultados del análisis. TopHat 13 (tophat. cbcb. umd. edu/) alinea lecturas al genoma y descubre sitios de empalme de transcrito. Estas alineaciones se utilizan durante el análisis posterior de varias maneras. Cufflinks 8 (cufflinks. cbcb. umd. edu/) utiliza este mapa contra el genoma para armar las lecturas en transcripciones. Cuffdiff, una parte del paquete Cufflinks, toma las lecturas alineadas de dos o más condiciones e informa genes y transcripciones que se expresan diferencialmente usando un análisis estadístico riguroso. Estas herramientas están ganando amplia aceptación y se han utilizado en una serie de recientes estudios de alta resolución transcriptome 14 17. CummeRbund hace Cuffdiff salida en cifras listas de publicación y parcelas. La Figura 1 muestra el software utilizado en este protocolo y resalta las principales funciones de cada herramienta. Todas las herramientas utilizadas en el protocolo están completamente documentadas en la web, mantenidas activamente por un equipo de desarrolladores y adoptan estándares bien aceptados de almacenamiento y transferencia de datos. Componentes de software utilizados en este protocolo. Bowtie 33 forma el núcleo algorítmico de TopHat, que alinea millones de lecturas RNA-seq al genoma por hora de CPU. Las alineaciones de lectura de TopHat son ensambladas por Cufflinks y su programa de utilidad asociado para producir. Las limitaciones del protocolo y el software TopHat y Cufflinks no abordan todas las aplicaciones de RNA-seq, ni son las únicas herramientas para el análisis de RNA-seq. En particular, TopHat y Cufflinks requieren un genoma secuenciado (ver a continuación las referencias a las herramientas que se pueden utilizar sin un genoma de referencia). Este protocolo también supone que RNA-seq se realizó con Illumina o SOLiD máquinas de secuenciación. Otras tecnologías de secuenciación tales como 454 o el enfoque clásico de electroforesis capilar pueden utilizarse para la secuenciación de cDNA a gran escala, pero el análisis de tales datos es sustancialmente diferente del enfoque utilizado aquí. TopHat y Cufflinks se operan a través del shell de UNIX. No se incluye ninguna interfaz gráfica de usuario. Sin embargo, ahora hay productos comerciales y interfaces de fuente abierta con estas y otras herramientas de análisis de ARN-seq. Por ejemplo, el Galaxy Project 18 utiliza una interfaz web para los recursos de computación en nube para llevar herramientas de línea de comandos como TopHat y Cufflinks a usuarios sin habilidades UNIX a través de la web y la nube de computación. Paquetes de análisis alternativos TopHat y Cufflinks proporcionan un flujo de trabajo RNA-seq completo, pero hay otros paquetes de análisis RNA-seq que se pueden usar en lugar de o en combinación con las herramientas de este protocolo. Muchos programas alternativos de alineación de lectura 19 28 análisis. Debido a que muchas de estas herramientas operan en archivos de datos con formato similar, podrían utilizarse en lugar de o además de las herramientas utilizadas aquí. Por ejemplo, con secuencias de comandos simples de post-procesamiento, se podría proporcionar GSNAP 19 alineaciones de lectura a Cufflinks, o utilizar un Scripture 22 transcriptome reconstrucción en lugar de un Cufflinks uno antes de análisis de expresión diferencial. Sin embargo, tal personalización está más allá del alcance de este protocolo, y desalentamos a los usuarios RNA-seq principiantes de realizar cambios en el protocolo descrito aquí. Este protocolo es apropiado para los experimentos RNA-seq en organismos con genomas de referencia secuenciados. Los usuarios que trabajan sin un genoma secuenciado, pero que están interesados ​​en el descubrimiento de genes debe considerar la realización de transcriptome de novo de montaje utilizando una de varias herramientas como Trinity 29. Trans-Abyss 30 u Oases (ebi. ac. uk/ zerbino / oases /). Los usuarios que realicen análisis de expresión con un ensamblaje de transcriptoma de novo tal vez deseen considerar RSEM 10 o IsoEM 25. Para un estudio de estas herramientas (incluyendo TopHat y Cufflinks) los lectores pueden desear ver el estudio de Garber et al. 12. que describe sus ventajas y desventajas comparativas y las consideraciones teóricas que fundamentan su diseño. Descripción general del protocolo Aunque los experimentos RNA-seq pueden servir a muchos propósitos, describimos un flujo de trabajo que tiene como objetivo comparar los perfiles de transcriptoma de dos o más condiciones biológicas, tales como un experimento de tipo salvaje frente a mutante o de control frente a knockdown. Por simplicidad, suponemos que el experimento compara sólo dos condiciones biológicas, aunque el software está diseñado para soportar muchos más, incluyendo experimentos de tiempo-curso. Este protocolo comienza con lecturas de RNA-seq en bruto y concluye con una visualización lista para la publicación del análisis. La Figura 2 destaca los pasos principales del protocolo. En primer lugar, las lecturas de cada condición se asignan al genoma de referencia con TopHat. Muchos usuarios de RNA-seq también están interesados ​​en el descubrimiento de variantes de genes o empalmes y el fracaso en buscar nuevas transcripciones puede sesgar estimaciones de expresión y reducir la exactitud 8. Por lo tanto, incluimos el ensamblado de transcripción con Cufflinks como un paso en el flujo de trabajo Para un flujo de trabajo que omite el descubrimiento de genes y transcripciones). Después de ejecutar TopHat, los archivos de alineación resultantes se proporcionan a Cufflinks para generar un conjunto transcriptome para cada condición. Estos ensamblajes se combinan a continuación utilizando la utilidad Cuffmerge, que se incluye con el paquete Cufflinks. Este conjunto fusionado proporciona una base uniforme para calcular la expresión del gen y del transcrito en cada condición. Las lecturas y el conjunto fusionado se alimentan a Cuffdiff, que calcula los niveles de expresión y prueba la significación estadística de los cambios observados. Cuffdiff también realiza una capa adicional de análisis diferencial. Agrupando las transcripciones en grupos biológicamente significativos (tales como las transcripciones que comparten el mismo sitio de inicio de la transcripción (TSS)), Cuffdiff identifica genes que están regulados diferencialmente en el nivel transcripcional o post-transcripcional. These results are reported as a set of text files and can be displayed in the plotting environment of your choice. An overview of the Tuxedo protocol. In an experiment involving two conditions, reads are first mapped to the genome with TopHat. The reads for each biological replicate are mapped independently. These mapped reads are provided as input to Cufflinks, which . We have recently developed a powerful plotting tool called CummeRbund ( compbio. mit. edu/cummeRbund/ ), which provides functions for creating commonly used expression plots such as volcano, scatter and box plots. CummeRbund also handles the details of parsing Cufflinks output file formats to connect Cufflinks and the R statistical computing environment. CummeRbund transforms Cufflinks output files into R objects suitable for analysis with a wide variety of other packages available within the R environment and can also now be accessed through the Bioconductor website ( bioconductor / ). This protocol does not require extensive bioinformatics expertise (e. g. the ability to write complex scripts), but it does assume familiarity with the UNIX command-line interface. Users should feel comfortable creating directories, moving files between them and editing text files in a UNIX environment. Installation of the tools may require additional expertise and permission from one s computing system administrators. Read alignment with TopHat Alignment of sequencing reads to a reference genome is a core step in the analysis workflows for many high-throughput sequencing assays, including ChIP-Seq 31. RNA-seq, ribosome profiling 32 and others. Sequence alignment itself is a classic problem in computer science and appears frequently in bioinformatics. Hence, it is perhaps not surprising that many read alignment programs have been developed within the last few years. One of the most popular and to date most efficient is Bowtie 33 ( bowtie-bio. sourceforge /index. shtml ), which uses an extremely economical data structure called the FM index 34 to store the reference genome sequence and allows it to be searched rapidly. Bowtie uses the FM index to align reads at a rate of tens of millions per CPU hour. However, Bowtie is not suitable for all sequence alignment tasks. It does not allow alignments between a read and the genome to contain large gaps hence, it cannot align reads that span introns. TopHat was created to address this limitation. TopHat uses Bowtie as an alignment read, TopHat can build up an index of splice sites in the transcriptome on the fly without a priori gene or splice site annotations. This capability is crucial, because, as numerous RNA-seq studies have now shown, our catalogs of alternative splicing events remain woefully incomplete. Even in the transcriptomes of often-studied model organisms, new splicing events are discovered with each additional RNA-seq study. Aligned reads say much about the sample being sequenced. Mismatches, insertions and deletions in the alignments can identify polymorphisms between the sequenced sample and the reference genome, or even pinpoint gene fusion events in tumor samples. Reads that align outside annotated genes are often strong evidence of new protein-coding genes and noncoding RNAs. As mentioned above, RNA-seq read alignments can reveal new alternative splicing events and isoforms. Alignments can also be used to accurately quantify gene and transcript expression, because the number of reads produced by a transcript is proportional to its abundance ( Box 2 ). Discussion of polymorphism and fusion detection is out of the scope of this protocol, and we address transcript assembly and gene discovery only as they relate to differential expression analysis. For a further review of these topics, see Garber et al. 12. Transcript assembly with Cufflinks Accurately quantifying the expression level of a gene from RNA-seq reads requires accurately identifying which isoform of a given gene produced each read. This, of course, depends on knowing all of the splice variants (isoforms) of that gene. Attempting to quantify gene and transcript expression by using an incomplete or incorrect transcriptome annotation leads to inaccurate expression values 8. Cufflinks assembles individual transcripts from RNA-seq reads that have been aligned to the genome. Because a sample may contain reads from multiple splice variants for a given gene, Cufflinks must be able to infer the splicing structure of each gene. However, genes sometimes have multiple alternative splicing events, and there may be many possible reconstructions of the gene model that explain the sequencing data. In fact, it is often not obvious how many splice variants of the gene may be present. Thus, Cufflinks reports a parsimonious transcriptome assembly of the data. The algorithm reports as few full-length transcript fragments or all the splicing event outcomes in the input data. After the assembly phase, Cufflinks quantifies the expression level of each transfrag in the sample. This calculation is made using a rigorous statistical model of RNA-seq and is used to filter out background or artifactual transfrags 8. For example, with current library preparation protocols, most genes generate a small fraction of reads from immature primary transcripts that are generally not interesting to most users. As these transfrags are typically far less abundant in the library than the mature, spliced transcripts, Cufflinks can use its abundance estimates to automatically exclude them. Given a sample, Cufflinks can also quantify transcript abundances by using a reference annotation rather than assembling the reads. However, for multiple samples, we recommend that the user quantify genes and transcripts using Cuffdiff, as described below. When you are working with several RNA-seq samples, it becomes necessary to pool the data and assemble it into a comprehensive set of transcripts before proceeding to differential analysis. A natural approach to this problem would be to simply pool aligned reads from all samples and run Cufflinks once on this combined set of alignments. However, we do not usually recommend this tactic for two reasons. First, because assembly becomes more computationally expensive as read depth increases, assembling the pooled alignments may not be feasible with the machines available in your laboratory. Second, with a pooled set of reads, Cufflinks will be faced with a more complex mixture of splice isoforms for many genes than would be seen when assembling the samples individually, and this increases the probability that it will assemble the transcripts incorrectly (associating the wrong outcomes of different splicing events in some transcripts). A better strategy is to assemble the samples individually and then merge the resulting assemblies together. We have recently developed a utility program, Cuffmerge, which handles this task using many of the same concepts and algorithms as Cufflinks does when assembling transcripts from individual reads. Cuffmerge is essentially a it treats the assembled transfrags the way Cufflinks treats reads, merging them together parsimoniously. Furthermore, when a reference genome annotation is available, Cuffmerge can integrate reference transcripts into the merged assembly. It performs a reference annotation-based transcript (RABT) assembly 35 to merge reference transcripts with sample transfrags and produces a single annotation file for use in downstream differential analysis. Figure 3 shows an example of the benefits of merging sample assemblies with Cuffmerge. Merging sample assemblies with a reference transcriptome annotation. Genes with low expression may receive insufficient sequencing depth to permit full reconstruction in each replicate. However, merging the replicate assemblies with Cuffmerge often recovers . Once each sample has been assembled and all samples have been merged, the final assembly can be screened for genes and transcripts that are differentially expressed or regulated between samples. This protocol recommends that you assemble your samples with Cufflinks before performing differential expression to improve accuracy, but this step is optional. Assembly can be computationally demanding, and interpreting assemblies is often difficult, especially when sequencing depth is low, because distinguishing full-length isoforms from partially reconstructed fragments is not always possible without further experimental evidence. Furthermore, although Cufflinks assemblies are quite accurate when they are provided with sufficiently high-quality data, assembly errors do occur and can accumulate when merging many assemblies. When you are working with RNA-seq data from well-annotated organisms such as human, mouse or fruit fly, you may wish to run the alternate protocol see also Table 1 ). Library type options for TopHat and Cufflinks. Even for well-studied organisms, most RNA-seq experiments should reveal new genes and transcripts. A recent analysis of deep RNA-seq samples from 24 human tissues and cell lines revealed over 8,000 new long, noncoding RNAs along with numerous potential protein-coding genes 6. Many users of RNA-seq are interested in discovering new genes and transcripts in addition to performing differential analysis. However, it can be difficult to distinguish full-length novel transcripts from partial fragments using RNA-seq data alone. Gaps in sequencing coverage will cause breaks in transcript reconstructions, just as they do during genome assembly. High-quality reconstructions of eukaryotic transcriptomes will contain thousands of full-length transcripts. Low-quality reconstructions, especially those produced from shallow sequencing runs (e. g. fewer than 10 million reads), may contain tens or even hundreds of thousands of partial transcript fragments. Cufflinks includes a utility program called that can compare Cufflinks assemblies to reference annotation files and help sort out new genes from known ones. Because of the difficulty in constructing transcriptome assemblies, we encourage users to validate novel genes and transcripts by traditional cloning and PCR-based techniques. We also encourage validation of transcript ends by rapid amplification of cDNA ends (RACE) to rule out incomplete reconstruction due to gaps in sequencing coverage. Although a complete discussion of transcript and gene discovery is beyond the scope of this protocol, readers interested in such analysis should consult the Cufflinks manual to help identify new transcripts 6 . Differential analysis with Cuffdiff Cufflinks includes a separate program, Cuffdiff, which calculates expression in two or more samples and tests the statistical significance of each observed change in expression between them. The statistical model used to evaluate changes assumes that the number of reads produced by each transcript is proportional to its abundance but fluctuates because of technical variability during library preparation and sequencing and because of biological variability between replicates of the same experiment. Despite its exceptional overall accuracy, RNA-seq, like all other assays for gene expression, has sources of bias. These biases have been shown to depend greatly on library preparation protocol 36 39. Cufflinks and Cuffdiff can automatically model and subtract a large fraction of the bias in RNA-seq read distribution across each transcript, thereby improving abundance estimates 38 . Although RNA-seq is often noted to have substantially less technical variability than other gene expression assays (e. g. micro-arrays), biological variability will persist 40. Cuffdiff allows you to supply multiple technical or biological replicate sequencing libraries per condition. With multiple replicates, Cuffdiff learns how read counts vary for each gene across the replicates and uses these variance estimates to calculate the significance of observed changes in expression. We strongly recommend that RNA-seq experiments be designed in replicate to control for batch effects such as variation in culture conditions. Advances in multiplexing techniques during sequencing now make it possible to divide sequencing output among replicates without increasing total sequencing depth (and thus cost of sequencing). Cuffdiff reports numerous output files containing the results of its differential analysis of the samples. Gene and transcript expression level changes are reported in simple tabular output files that can be viewed with any spreadsheet application (such as Microsoft Excel). These files contain familiar statistics such as fold change (in log 2 scale), P values (both raw and corrected for multiple testing) and gene - and transcript-related attributes such as common name and location in the genome. Cuffdiff also reports additional differential analysis results beyond simple changes in gene expression. The program can identify genes that are differentially spliced or differentially regulated via promoter switching. The software groups together isoforms of a gene that have the same TSS. These TSS groups represent isoforms that are all derived from the same pre-mRNA accordingly, changes in abundance relative to one another reflect differential splicing of their common pre-mRNA. Cuffdiff also calculates the total expression level of a TSS group by adding up the expression levels of the isoforms within it. When a gene has multiple TSSs, Cuffdiff looks for changes in relative abundance between them, which reflect changes in TSS (and thus promoter) preference between conditions. The statistics used to evaluate significance of changes within and between TSS groupings are somewhat different from those used to assess simple expression level changes of a given transcript or gene. Readers interested in further statistical detail should see the supplemental material of Trapnell et al. 8. Figure 4 illustrates how Cuffdiff constructs TSS groupings and uses them to infer differential gene regulation. Analyzing groups of transcripts identifies differentially regulated genes. ( a ) Genes may produce multiple splice variants (labeled A C) at different abundances through alternative transcription start sites (TSS), alternative cleavage and polyadenylation . Visualization with CummeRbund Cuffdiff provides analyses of differential expression and regulation at the gene and transcript level. These results are reported in a set of tab-delimited text files that can be opened with spreadsheet and charting programs such as Microsoft Excel. The Cuffdiff file formats are designed to simplify use by other downstream programs. However, browsing these files by eye is not especially easy, and working with data across multiple files can be quite difficult. For example, extracting the list of differentially expressed genes is fairly straightforward, but plotting the expression levels for each isoform of those genes requires a nontrivial script. We have recently created a user-friendly tool, called CummeRbund, to help manage, visualize and integrate all of the data produced by a Cuffdiff analysis. CummeRbund drastically simplifies common data exploration tasks, such as plotting and cluster analysis of expression data ( Fig. 5 ). Furthermore, you can create publication-ready plots with a single command. Scripted plotting also lets you automate plot generation, allowing you to reuse analyses from previous experiments. Finally, CummeRbund handles the transformation of Cuffdiff data into the R statistical computing environment, making RNA-seq expression analysis with Cuffdiff more compatible with many other advanced statistical analysis and plotting packages. CummeRbund helps users rapidly explore their expression data and create publication-ready plots of differentially expressed and regulated genes. With just a few lines of plotting code, CummeRbund can visualize differential expression at the isoform level, . This protocol concludes with a brief exploration of the example data set using CummeRbund, but the plots illustrated here are only the beginning of what is possible with this tool. Furthermore, CummeRbund is new and under active development future versions will contain powerful new views of RNA-seq data. Users familiar with ggplot 41. the popular plotting packaging around which CummeRbund is designed, may wish to design their own plots and analysis functions. We strongly encourage such users to contribute their plotting scripts to the open-source CummeRbund project. Processing time and memory requirements RNA-seq analysis is generally more computationally demanding than many other bioinformatics tasks. Analyzing large data sets requires a powerful workstation or server with ample disk space (see Box 3 ) and with at least 16 GB of RAM. Bowtie, TopHat and the Cufflinks tools are all designed to take advantage of multicore processors, and running the programs with multiple threads is highly recommended. Of the tasks in this protocol, read mapping with TopHat is usually the least demanding task in terms of memory, but mapping a full lane of HiSeq 100 bp paired-end reads can still take a day or two on a typical workstation or compute cluster node. If possible, you should align the reads from each sample on a separate machine to parallelize the total alignment workload. Assembling transcripts can also be very demanding in terms of both processing time and memory. You may want to consider using the --mask/-M option during your Cufflinks runs to exclude genes that are extremely abundant in your samples (e. g. actin), because Cufflinks may spend a long time assembling these genes. When a reference transcriptome annotation is available, Cuffmerge will add these genes back into the final transcriptome file used during differential analysis. Thus, Cuffdiff will still quantify expression for these genes excluding them during sample assembly simply amounts to forgoing discovery of novel splice variants. RNA-seq experimental design RNA-seq has been hailed as a whole-transcriptome expression assay of unprecedented sensitivity, but no amount of technical consistency or sensitivity can eliminate biological variability 40. We strongly recommend that experimenters designing an RNA-seq study heed lessons learned from microarray analysis. In particular, biological replication of each condition is crucial. How deeply each condition must be replicated is an open research question, and more replicates are almost always preferable to fewer. Multiplexed RNA-seq is making replication possible without increasing total sequencing costs by reducing the total sequencing depth in each replicate and making experimental designs more robust. With currently available kits, sequencing each condition in triplicate is quite feasible. Thus, the protocol here is illustrated through an example experiment with three replicates of each condition. When considering an RNA-seq experiment, two other design choices have a major effect on accuracy. Library fragments may be sequenced from one or both ends, and although paired-end reads are up to two times the cost of single-end reads, we and others 24 strongly recommend paired-end sequencing whenever possible. The marginal information provided by paired-end sequencing runs over single-end runs at the same depth is considerable. Cufflinks algorithms for transcript assembly and expression quantitation are much more accurate with paired-end reads. Sequencing read length is also a major consideration, and longer reads are generally preferable to short ones. TopHat is more accurate when discovering splice junctions with longer reads, and reads of 75 bp and longer are substantially more powerful than shorter reads. However, as generating longer reads can add substantially to the cost of an RNA-seq experiment, many experimenters may wish to sequence more samples (or more replicates of the same samples) with shorter reads. MATERIALS EQUIPMENT Data (requirements vary according to your experimental goals see EQUIPMENT SETUP) Perform PROCEDURE Steps 2 18. Box 2 Calculating expression levels from read counts The number of RNA-seq reads generated from a transcript is directly proportional to that transcript s relative abundance in the sample. However, because cDNA fragments are generally size-selected as part of library construction (to optimize output from the sequencer), longer transcripts produce more sequencing fragments than shorter transcripts. For example, suppose a sample has two transcripts, A and B, both of which are present at the same abundance. If B is twice as long as A, an RNA-seq library will contain (on average) twice as many reads from B as from A. To calculate the correct expression level of each transcript, Cufflinks must count the reads that map to each transcript and then normalize this count by each transcript s length. Similarly, two sequencing runs of the same library may produce different volumes of sequencing reads. To compare the expression level of a transcript across runs, the counts must be normalized for the total yield of the machine. The commonly used fragments per kilobase of transcript per million mapped fragments (or FPKM 8. also known as RPKM 1 in single-ended sequencing experiments) incorporates these two normalization steps to ensure that expression levels for different genes and transcripts can be compared across runs. When a gene is alternatively spliced and produces multiple isoforms in the same sample, many of the reads that map to it will map to constitutive or shared exons, complicating the process of counting reads for each transcript. A read from a shared exon could have come from one of several isoforms. To accurately compute each transcript s expression level, a simple counting procedure will not suffice more sophisticated statistical inference is required. Cufflinks and Cuffdiff implement a linear statistical model to estimate an assignment of abundance to each transcript that explains the observed reads with maximum likelihood. Because Cufflinks and Cuffdiff calculate the expression level of each alternative splice transcript of a gene, calculating the expression level of a gene is simple the software simply adds up the expression level of each splice variant. This is possible because FPKM is directly proportional to abundance. In fact, the expression level of any group of transcripts (e. g. a group of transcripts that share the same promoter) can be safely computed by adding the expression levels of the members of that group. Box 3 File formats and data storage Storing RNA-seq data and analysis results in standardized, well-documented file formats is crucial for data sharing between laboratories and for reuse or reproduction of past experimental data. The next-generation sequencing informatics community has worked hard to adopt open file standards. Although some of these formats are still evolving, data storage conventions have matured substantially. Raw, unmapped sequencing reads may be one of several formats specific to the vendor or instrument, but the most commonly encountered format is FASTQ, a version of FASTA that has been extended with Phred base quality scores. TopHat accepts FASTQ and FASTA files of sequencing reads as input. Alignments are reported in BAM files. BAM is the compressed, binary version of SAM 43. a flexible and general purpose read alignment format. SAM and BAM files are produced by most next-generation sequence alignment tools as output, and many downstream analysis tools accept SAM and BAM as input. There are also numerous utilities for viewing and manipulating SAM and BAM files. Perhaps most popular among these are the SAM tools ( samtools. sourceforge / ) and the Picard tools ( picard. sourceforge / ). Both Cufflinks and Cuffdiff accept SAM and BAM files as input. Although FASTQ, SAM and BAM files are all compact, efficient formats, typical experiments can still generate very large files. It is not uncommon for a single lane of Illumina HiSeq sequencing to produce FASTQ and BAM files with a combined size of 20 GB or larger. Laboratories planning to perform more than a small number of RNA-seq experiments should consider investing in robust storage infrastructure, either by purchasing their own hardware or through cloud storage services 44 . ACKNOWLEDGMENTS We are grateful to D. Hendrickson, M. Cabili and B. Langmead for helpful technical discussions. The TopHat and Cufflinks projects are supported by US National Institutes of Health grants R01-HG006102 (to S. L.S.) and R01-HG006129-01 (to L. P.). C. T. is a Damon Runyon Cancer Foundation Fellow. L. G. is a National Science Foundation Postdoctoral Fellow. A. R. is a National Science Foundation Graduate Research Fellow. J. L.R. is a Damon Runyon-Rachleff, Searle, and Smith Family Scholar, and is supported by Director s New Innovator Awards (1DP2OD00667-01). This work was funded in part by the Center of Excellence in Genome Science from the US National Human Genome Research Institute (J. L.R.). J. L.R. is an investigator of the Merkin Foundation for Stem Cell Research at the Broad Institute. Footnotes AUTHOR CONTRIBUTIONS C. T. is the lead developer for the TopHat and Cufflinks projects. L. G. designed and wrote CummeRbund. D. K. H. P. and G. P. are developers of TopHat. A. R. and G. P. are developers of Cufflinks and its accompanying utilities. C. T. developed the protocol, generated the example experiment and performed the analysis. L. P. S. L.S. and C. T. conceived the TopHat and Cufflinks software projects. C. T. D. R.K. and J. L.R. wrote the manuscript. COMPETING FINANCIAL INTERESTS The authors declare no competing financial interests. References 1. Mortazavi A, Williams BA, McCue K, Schaeffer L, Wold B. Mapping and quantifying mammalian transcriptomes by RNA-seq. Nat. Métodos. 2008 5 :621 628. PubMed 2. Cloonan N, et al. Stem cell transcriptome profiling via massive-scale mRNA sequencing. Nat. Métodos. 2008 5 :613 619. PubMed 3. Nagalakshmi U, et al. The transcriptional landscape of the yeast genome defined by RNA sequencing. Ciencia. 2008 320 :1344 1349. PMC free article PubMed 4. Mardis ER. The impact of next-generation sequencing technology on genetics. Trends Genet. 2008 24 :133 141. PubMed 5. Adams MD, et al. Sequence identification of 2,375 human brain genes. Naturaleza. 1992 355 :632 634. PubMed 6. Cabili MN, et al. Integrative annotation of human large intergenic noncoding RNAs reveals global properties and specific subclasses. Genes Dev. 2011 25 :1915 1927. PMC free article PubMed 7. Jiang H, Wong WH. Statistical inferences for isoform expression in RNA-seq. Bioinformatics. 2009 25 :1026 1032. PMC free article PubMed 8. Trapnell C, et al. Transcript assembly and quantification by RNA-seq reveals unannotated transcripts and isoform switching during cell differentiation. Nat. Biotechnol. 2010 28 :511 515. PMC free article PubMed 9. Mortimer SA, Weeks KM. A fast-acting reagent for accurate analysis of RNA secondary and tertiary structure by SHAPE chemistry. J. Am. Chem. Soc. 2007 129 :4144 4145. PubMed 10. Li B, Ruotti V, Stewart RM, Thomson JA, Dewey CN. RNA-seq gene expression estimation with read mapping uncertainty. Bioinformatics. 2010 26 :493 500. PMC free article PubMed 11. Marioni JC, Mason CE, Mane SM, Stephens M, Gilad Y. RNA-seq: an assessment of technical reproducibility and comparison with gene expression arrays. Genome Res. 2008 18 :1509 1517. PMC free article PubMed 12. Garber M, Grabherr MG, Guttman M, Trapnell C. Computational methods for transcriptome annotation and quantification using RNA-seq. Nat. Métodos. 2011 8 :469 477. PubMed 13. Trapnell C, Pachter L, Salzberg SL. TopHat: discovering splice junctions with RNA-seq. Bioinformatics. 2009 25 :1105 1111. PMC free article PubMed 14. Lister R, et al. Hotspots of aberrant epigenomic reprogramming in human induced pluripotent stem cells. Naturaleza. 2011 470 :68 73. PMC free article PubMed 15. Graveley BR, et al. The developmental transcriptome of Drosophila melanogaster . Naturaleza. 2011 471 :473 479. PMC free article PubMed 16. Twine NA, Janitz K, Wilkins MR, Janitz M. Whole transcriptome sequencing reveals gene expression and splicing differences in brain regions affected by Alzheimer s disease. PLoS ONE. 2011 6 :e16266. PMC free article PubMed 17. Mizuno H, et al. Massive parallel sequencing of mRNA in identification of unannotated salinity stress-inducible transcripts in rice ( Oryza sativa L.). BMC Genomics. 2010 11 :683. PMC free article PubMed 18. Goecks J, Nekrutenko A, Taylor J. Galaxy Team Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences. Genome Biol. 2010 11 :R86. PMC free article PubMed 19. Wu TD, Nacu S. Fast and SNP-tolerant detection of complex variants and splicing in short reads. Bioinformatics. 2010 26 :873 881. PMC free article PubMed 20. Wang K, et al. MapSplice: accurate mapping of RNA-seq reads for splice junction discovery. Nucleic Acids Res. 2010 38 :e178. PMC free article PubMed 21. Au KF, Jiang H, Lin L, Xing Y, Wong WH. Detection of splice junctions from paired-end RNA-seq data by SpliceMap. Nucleic Acids Res. 2010 38 :4570 4578. PMC free article PubMed 22. Guttman M, et al. Ab initio reconstruction of cell type-specific transcriptomes in mouse reveals the conserved multi-exonic structure of lincRNAs. Nat. Biotechnol. 2010 28 :503 510. PMC free article PubMed 23. Griffith M, et al. Alternative expression analysis by RNA sequencing. Nat. Métodos. 2010 7 :843 847. PubMed 24. Katz Y, Wang ET, Airoldi EM, Burge CB. Analysis and design of RNA sequencing experiments for identifying isoform regulation. Nat. Métodos. 2010 7 :1009 1015. PMC free article PubMed 25. Nicolae M, Mangul S, M 6 :9. PMC free article PubMed 26. Anders S, Huber W. Differential expression analysis for sequence count data. Genome Biol. 2010 11 :R106. PMC free article PubMed 27. Robinson MD, McCarthy DJ, Smyth GK. edgeR: a Bioconductor package for differential expression analysis of digital gene expression data. Bioinformatics. 2009 26 :139 140. PMC free article PubMed 28. Wang L, Feng Z, Wang X, Wang X, Zhang X. DEGseq: an R package for identifying differentially expressed genes from RNA-seq data. Bioinformatics. 2010 26 :136 138. PubMed 29. Grabherr MG, et al. Full-length transcriptome assembly from RNA-seq data without a reference genome. Nat. Biotechnol. 2011 29 :644 652. PMC free article PubMed 30. Robertson G, et al. De novo assembly and analysis of RNA-seq data. Nat. Métodos. 2010 7 :909 912. PubMed 31. Johnson DS, Mortazavi A, Myers RM, Wold B. Genome-wide mapping of in vivo protein-DNA interactions. Ciencia. 2007 316 :1497 1502. PubMed 32. Ingolia NT, Ghaemmaghami S, Newman JRS, Weissman JS. Genome-wide analysis in vivo of translation with nucleotide resolution using ribosome profiling. Ciencia. 2009 324 :218 223. PMC free article PubMed 33. Langmead B, Trapnell C, Pop M, Salzberg SL. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biol. 2009 10 :R25. PMC free article PubMed 34. Ferragina P, Manzini G. An experimental study of a compressed index. Information Sci. 2001 135 :13 28. 35. Roberts A, Pimentel H, Trapnell C, Pachter L. Identification of novel transcripts in annotated genomes using RNA-seq. Bioinformatics. 2011 27 :2325 2329. PubMed 36. Li J, Jiang H, Wong WH. Modeling non-uniformity in short-read rates in RNA-seq data. Genome Biol. 2010 11 :R50. PMC free article PubMed 37. Hansen KD, Brenner SE, Dudoit S. Biases in Illumina transcriptome sequencing caused by random hexamer priming. Nucleic Acids Res. 2010 38 :e131. PMC free article PubMed 38. Roberts A, Trapnell C, Donaghey J, Rinn JL, Pachter L. Improving RNA-seq expression estimates by correcting for fragment bias. Genome Biol. 2011 12 :R22. PMC free article PubMed 39. Levin JZ, et al. Comprehensive comparative analysis of strand-specific RNA sequencing methods. Nat. Métodos. 2010 7 :709 715. PMC free article PubMed 40. Hansen KD, Wu Z, Irizarry RA, Leek JT. Sequencing technology does not eliminate biological variability. Nat. Biotechnol. 2011 29 :572 573. PMC free article PubMed 41. Wickham H. ggplot2: Elegant Graphics for Data Analysis (Use R) Springer 2009. p. 224. 42. Robinson JT, et al. Integrative genomics viewer. Nat. Biotechnol. 2011 29 :24 26. PMC free article PubMed 43. Li H, et al. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 25 :2078 2079. PMC free article PubMed 44. Schatz MC, Langmead B, Salzberg SL. Cloud computing and the DNA data race. Nat. Biotechnol. 2010 28 :691 693. PMC free article PubMed

Comments

Popular posts from this blog

Pie Heaven Cafe 37

Opción de opciones binarias imán opción de revisión de software indonesia - El mejor servicio de señales de opción binaria Carta de valor de línea leyendo este artículo de opciones binarias. Operado. Scam gráficos libres para el comercio de revisiones de software. Revisión de la estrategia de negociación corredores de opciones binarias aceptando neteller hace. Legal son legit safe book review nueva zelanda. Invest in australia revisión Opciones uk indonesia binario opciones imanes cuenta demo gratuita sin depósito echo binario opción comercial. Decimal opción binaria revisión de la plataforma de venta. Revisión del imán de las opciones. Opción de software o que binario. Jun. Win en Reino Unido www, opciones binarias bullet juicio corredor de futuros binarios para el niño. Israel. Corredor riesgo de negociación xposed revisión opción valoración modelo revisión opción comercial. Intercambio de revisiones de software. De la opción binaria el imán binario de las opciones es también. Opción...

Turtle Trading System 2 Ea

Usted podría publicar las reglas del comercio de la tortuga en el periódico y nadie las seguiría - Richard Dennis El EA de la comercialización de la tortuga es un consejero experto de Metatrader4 que implemente el sistema de comercio original de Richard Dennis y de Bill Eckhart, comúnmente conocido como el comerciante de la tortuga. Comercio exactamente como las tortugas originales Asegúrese de capturar todos los grandes movimientos del mercado Seguir las tendencias al final y los beneficios en los mercados hacia arriba o hacia abajo Obtener regresos a casa aplicando una tendencia probada sistema siguiente Un compañero semi-automatizado incomparable para los comerciantes experimentados Beneficiarse de un total Automatizado que necesita poca o ninguna atención de usted: apenas escoja su cartera diversificada y olvídela. Negociación totalmente automatizada 24/5 No se requieren habilidades comerciales anteriores Mejore su actividad comercial o su portafolio de inversiones con una tendenci...