Download Análisis de Datos en R: Aplicaciones Genómicas
Document related concepts
no text concepts found
Transcript
Análisis de Datos en R: Aplicaciones Genómicas Introducción a RNASeq UNSAM 1,2 y 3 de junio de 2015 UNSAM Dı́a 2 2/6/2015 1 / 30 UNSAM Dı́a 2 2/6/2015 2 / 30 RNAseq UNSAM Dı́a 2 2/6/2015 3 / 30 Workflow UNSAM Dı́a 2 2/6/2015 4 / 30 Diseño Experimental Cuáles son mis preguntas? Anotar el transcriptoma? Si tengo referencia: genoma bien anotado? transcritpoma bien anotado? Quiero cuantificar la expresión? Nivel Gen? Nivel Isoforma? Nivel Exon? Cuánto puedo secuenciar? ($$$) solo mRNA? todo el RNA? (Puedo ver otros RNAs: RNA pequeños, lncRNAs, etc...) UNSAM Dı́a 2 2/6/2015 5 / 30 Genoma Referencia Si existe genoma de referencia, consiste en un archivo fasta que contene las secuencias. >chr1 ATCGTAGCTGATGCTGACTGATGCTGACTGACTGACTGACTGACTGCA CTGACTGACTGACTGACTGCAATCGTAGCTGATGCTGACTGATGCTGA CTGACTGACTGACTGCAATCGTAGCTGATGCTGACTGATGCTGACTGA Los genomas son ser publicados usando versiones En general, son los cromosomas o scaffolds si aúnn no ha sido cerrados También podemos tener como referencia los CDS o regiones codificantes En caso del transcriptoma, normalmente están en archivos de formato GTF/GFF UNSAM Dı́a 2 2/6/2015 6 / 30 Genoma Referencia ATENCION!!! Controlar cuidadosamente los nombres y las posiciones del genoma y transcriptoma MUCHAS VECES son diferentes!!! Ej: no coinciden los sı́mbolos, las versiones genoma-tr, los nombres de los cromosomas, posiciones, etc, etc UNSAM Dı́a 2 2/6/2015 7 / 30 Genoma Referencia: Dónde buscarlos? Ensembl: http://www.ensembl.org BioMart: http://www.biomart.org UCSC: https://genome.ucsc.edu Phytozome: http://phytozome.jgi.doe.gov Gramene: http://www.gramene.org Los sitios propios de los organismos en estudio: TAIR (Arabidopsis) Drosophila http://flybase.org/ Bioconductor tiene varios genomas y transcriptomas en paquetes, con formatos fácilmente interconvertibles a objetos para trabajar con R *.org : nombres de genes y vı́as metabólicas TxDb.* cordenadas genómicas a diferentes niveles BSGenome.*: secuencias genómicas biomaRt, rtracklayer: para interaccionar con las DBs mencionadas arriba UNSAM Dı́a 2 2/6/2015 8 / 30 Diseño Experimental UNSAM Dı́a 2 2/6/2015 9 / 30 Cobertura Es el número promedio de lecturas que alinean o cubren sobre una referencia. Coverage (X)= total número de lecturas * longitud de la lectura longitud estimada target ejemplo: Para un transcriptoma 50Mb, si se produce 1M de lecturas de 100 pb, la cobertura teórica (coverage) será: 1000000 * 100 \5000000 = 20X Dependerá de la aplicación en la que estemos trabajando Ensamblado de novo ≥ 50 X Detección de mutaciones, SNPs, rearreglos, 10-30X ChipSeq se recomienda aprox 100x. RNAseq se recomienda 10-30X. calcular la cobertura teórica es complicado porque la expresión de lso genes no es uniforme. puede haber variaciones de hasta 5 ordenes de magnitud UNSAM Dı́a 2 2/6/2015 10 / 30 Diseño Experimental: Cobertura https://genohub.com/next-generation-sequencing-guide/ UNSAM Dı́a 2 2/6/2015 11 / 30 Cobertura UNSAM Dı́a 2 2/6/2015 12 / 30 Réplicas UNSAM Dı́a 2 2/6/2015 13 / 30 Diseño Experimental: Réplicas UNSAM Dı́a 2 2/6/2015 14 / 30 Diseño Experimental: UNSAM Dı́a 2 2/6/2015 15 / 30 Mapeo UNSAM Dı́a 2 2/6/2015 16 / 30 Mapeo UNSAM Dı́a 2 2/6/2015 17 / 30 Mapeo TopHat: discovering splice junctions with RNA-Seq. Cole Trapnell,1, Lior Pachter,2 and Steven L. Salzberg1 (2009) Bioinformatics UNSAM Dı́a 2 2/6/2015 18 / 30 Output files SAM (texto plano) BAM (binarios) BED WIG Contienen información sobre las posiciones de la referencia donde fueron alineadas las lecturas Algunos son intercorvertibles con herramientas como: samtools, bedtools UNSAM Dı́a 2 2/6/2015 19 / 30 Output files En nuestro caso utilizaremos archivos BAM (8) que se encuentran en un paquete de R que está en Bioconductor. Cada archivo BAM fue obtenido: Alineando las lecturas (paired-end) al genoma hg19 Homo Sapiens con TopHat2 Extrayendo sólo las lecturas que alinearon al cromosoma 14 Los datos del experimento original están en ArrayExpress, con el número de acceso: E-MTAB-1147 El objetivo es analizar el impacto sobre la remodelación del transcriptoma ante el silenciamiento de una proteı́na del spliceosoma (hnRNP C) Fue elegido porque está disponible como paquete de bioconductor Son 4 réplicas por condición Condiciones Control (CT) , KnockDown (KD) Para cargar el paquete: source("http://bioconductor.org/biocLite.R") biocLite("RNAseqData.HNRNPC.bam.chr14") UNSAM Dı́a 2 2/6/2015 20 / 30 Tablas de conteos Luego del alineamiento hay que contar cuántas lecturas han caı́do en cada región de interés y dependerá nuevamente de nuestra pregunta biológica y de la referencia contra la que hayamos decidido alinear. Hay 2 modelos de trabajo mas relevantes: 1 métodos que se limitan a contar las lecturas que alinean en regiones especı́ficas 2 métodos que intentan reconstruir las isoformas UNSAM Dı́a 2 2/6/2015 21 / 30 Tablas de conteos Los archivos de alineamiento tienen información sobre las posiciones en el genoma donde fueron alineadas las lecturas. Si superponemos cada una de estas cordenadas con las cordenads genómicas que nos interesan (ej. genes), podemos saber cuántas lecturas cayeron en cada una de los genes. Repitiendo este proceso para cada uno de los genes, tendramos una tabla con todos los genes y la cantidad de lecturas para cada uno: UNSAM Dı́a 2 2/6/2015 22 / 30 HTSEQ Es una herramienta muy popular y veloz para generar las tablas de counts. UNSAM Dı́a 2 2/6/2015 23 / 30 Bioconductor En nuestro caso, usaremos tablas generadas con los paquetes: GenomicRanges,GenomicFeatures,GenomicAlignments Con los siguientes comandos: bamfiles <- RNAseqData.HNRNPC.bam.chr14_BAMFILES targets <- data.frame(row.names=names(RNAseqData.HNRNPC.bam.chr14_BAMFILES), bam=matrix(unlist(RNAseqData.HNRNPC.bam.chr14_BAMFILES), ncol = 1, byrow = TRUE), condition=c(rep("CT",4),rep("KD",4))) files=as.character(targets$bam) reads<-lapply(files,function(x) { aln <- readGAlignments(x)}); names(reads)<-rownames(targets) c14<-loadDb("chr14.sqlite") feature <-exonsBy(c14, by="gen") hits<-lapply(reads, function(x){countOverlaps(feature, x, ignore.strand = TRUE) }) hits.ul<-do.call(cbind.data.frame, hits) genes.hits<-write.table(file="genes.hits.tab") Análogo al modo de union de HTSEQ No se han tenido en cuenta que los reads son paired-end El archivo gene.hits.tab está en la página de práctica UNSAM Dı́a 2 2/6/2015 24 / 30 Tablas de conteos: Modo reconstrucción Cufflinks / Cudffdiff: Sin descubrimiento UNSAM Dı́a 2 2/6/2015 25 / 30 Tablas de conteos: Modo reconstrucción Cufflinks / Cudffdiff: Con descubrimiento UNSAM Dı́a 2 2/6/2015 26 / 30 Tablas de conteos: Tuxedo UNSAM Dı́a 2 2/6/2015 27 / 30 Tablas de conteos: Tuxedo RPKM/FPKM = 109 ∗ C /(N ∗ L) UNSAM Dı́a 2 2/6/2015 28 / 30 Tablas de conteos: Tuxedo Para generar la carpeta output con la que trabajaremos con el paquete cummeRbund, Cuffdiff fue ejecutado en modo ”No descubrimiento” con los siguientes comandos: cuffdiff chr14.gtf [archivos.bam] -L CT,KD -o output RPKM/FPKM = 109 ∗ C /(N ∗ L) C: Número de lecturas que caen en los exones N: total de lecturas de la biblioteca L: Longitud del gen UNSAM Dı́a 2 2/6/2015 29 / 30 Cufflinks UNSAM Dı́a 2 2/6/2015 30 / 30