• No se han encontrado resultados

Anexo 2. Resultados

Pipeline

La pipeline diseñada obtiene los siguientes resultados satisfactorios con los tres datasets:

 Lectura de archivos CEL y archivo targets

 Control de calidad antes y después de normalizar:

o Histograma de intensidades

o Boxplot

o Dendograma

o PCA Analysis

 Selección de grupos para la matriz de contraste para los experimentos con una y más de una comparación

 Tabla con los resultados del análisis de la expresión diferencial

 Tabla de genes seleccionados con los criterios definidos por el usuario

o Selección por Adjust.P.Value

o Selección del máximo de genes a incluir  Volcano plot

o Selección de genes a mostrar  Heatmap

 Tabla con el resumen del test de comparaciones múltiples(experimentos para más de una comparación)

o Selección por P.Value

 Diagrama de Venn(experimentos con más de una comparación)

 Tabla con la lista de genes sobre e infra expresados(experimentos para más de una comparación)

 Análisis GO

o Tabla con términos GO anotados

o Resumen del análisis GO realizado  Análisis GSEA

o Gráfico de barras

o Gráfico de puntos

o Mapa de enriquecimiento

El código de la pipeline se puede encontrar integro en el Anexo 1 Aplicación web

Para la aplicación web, testada en local se obtienen los mismos resultados favorables que para la pipeline

Se obtiene los siguientes resultados favorables en la aplicación web:  Lectura de archivos CEL y archivo targets

 Control de calidad antes y después de normalizar:

o Histograma de intensidades

o Boxplot

o Dendograma

o PCA Análisis

 Selección de grupos para la matriz de contraste para los experimentos con una y más de una comparación

 Tabla con los resultados del análisis de la expresión diferencial

 Tabla de genes seleccionados con los criterios definidos por el usuario

o Selección por Adjust.P.Value

o Selección del máximo de genes a incluir  Volcano plot

o Selección de genes a mostrar  Heatmap

 Tabla con el resumen del test de comparaciones múltiples(experimentos para más de una comparación)

o Selección por P.Value

 Diagrama de Venn(experimentos con más de una comparación)

 Tabla con la lista de genes sobre e infra expresados(experimentos para más de una comparación)

 Análisis GO

o Tabla con términos GO anotados

o Resumen del análisis GO realizado  Análisis GSEA

o Gráfico de barras

o Gráfico de puntos

o Mapa de enriquecimiento

o Mapa de asociaciones intergénicas

Pestaña de Carga de datos de la aplicación desarrollada, con el dataset 2 cargado.

Gráficos generados por el apartado de resultados para el dataset numero 3.

Anexo 3. Repositorio Github y acceso al servidor Rstudio

El código de la aplicación web se encuentra disponible para su consulta en el repositorio oficial de la aplicación en Github https://github.com/eirr82/DGER- . En el repositorio se encuentran los siguientes archivos:

 README.md. Archivo de información que explica cómo utilizar la aplicación y que pasos a seguir si se quiere instalar de modo local.

 Intrucctions. Archivo de texto que explica como utilizar la aplicación(es el mismo texto que se utiliza en la página de ayuda de la aplicación)

 Ui.R. Código de la interfaz de la aplicación

 Server.R. Código de las funciones que generan los resultados de la aplicación.

 App.R. Archivo que reúne el código de ui.R y server.R y que puede ser ejecutado de forma local

Los datasets que se han utilizado para desarrollar la aplicación se pueden descargar desde el siguiente enlace (incluye el archivo targets):

https://drive.google.com/drive/folders/1-YoXdp7qdCX8OfT7SvpYS- CD2_7yCIcC

Para acceder al servidor online de Rstudio habilitado para ejecutar la aplicación debemos seguir los siguientes pasos

 Entrar en el siguiente enlace http://dger.ddns.net:8787/

 Loguear en el servidor usando rstudio como usuario y contraseña  Apretar el botón Run App dentro de la consola de Rstudio

Anexo 4.Codigo Pipeline

##SCRIPT PIPELINE TFM##

#Cargar librerías a utilizar en el análisis

library(oligo) library(pd.clariom.s.human) library(limma) library(annotate) library(clariomshumantranscriptcluster.db) library(topGO) library(knitr) library(affycoretools) library(Heatplus) ##Carga de datos## #carga archivo targets

targets <- read.csv("C:/Users/Cristian/Desktop/TFM/datos/set1/targets.csv", sep=";")

#carga cel files(paquete oligo)

celFiles <- list.celfiles("C:/Users/Cristian/Desktop/TFM/datos/set1/", full.names=TRUE)

rawData <- read.celfiles(celFiles)

#Creamos la información del archivo targets

info <- data.frame(grupo=c(1,1,1,2,2,2)) sampleNames <- targets$Name color <- c("chocolate4","chocolate4","chocolate4","royalblue4","royalblue4","royalblue4") sampleGrops <- targets$Group sampleInfo <- targets$FileNames ##Control de calidad## #antes de normalizar

#histograma

hist(rawData, main="Signal distribution", col=color, lty=1:ncol(info)) legend (x="topright", legend=sampleNames , col=color, lty=1:ncol(info))

#Boxplot de las muestras

boxplot(rawData, cex.axis=0.6, col=color, las=2, names=sampleNames) legend(x="topright", legend = sampleGrops, col=color, lty=1:ncol(info))

#Dendograma La muestras del mismo grupo deberìan agruparse juntas

clust.euclid.average <- hclust(dist(t(exprs(rawData))),method="average")

plot(clust.euclid.average, labels=sampleNames, main="Hierarchical clustering of samples", hang=-1)

#PCA analisis

plotPCA(rawData)

##NORMALIZACION## #Normalizar

eset_rma <- oligo::rma(rawData) #Usar rma() del paquete Oligo no del paquete AFFY

##Control de calidad después de Normalizar## #boxplot despues de normalizar

boxplot(eset_rma, cex.axis=0.6, col=color, las=2, names=sampleNames) legend(x="topright", legend = sampleGrops, col=color, lty=1:ncol(info)

#dendograma

clust.euclid.average <- hclust(dist(t(exprs(eset_rma))),method="average")

plot(clust.euclid.average, labels=sampleNames, main="Hierarchical clustering of samples", hang=-1)

#PCA Analysis

plotPCA(eset_rma)

#crear la matriz de diseño del experimento groups <- as.character(targets$Group) groups <- as.factor(groups) lev<-factor(groups, levels=unique(groups)) design <- model.matrix(~0+lev) colnames(design)<-levels(lev) rownames(design) <-sampleInfo kable(design) #Crear contrastes cont.matrix <- makeContrasts( controlvstratamiento = (control-tratamiento), levels = design ) kable(cont.matrix)

#DGE por ebayes

fit <- lmFit(eset_rma, design)

fit.main <- contrasts.fit(fit, cont.matrix) fit.main <- eBayes(fit.main)

#Selección de genes diferencialmente expresados

#log2fold, p.value etc(se implementará en la aplicación diretamente)

toptable <- topTable(fit.main, coef=1, n=1000)

#eliminar la columna probeid y eliminar los NA

toptable <- na.omit(toptable) toptable$PROBEID <-NULL

#Anotación manual en caso de que la anotación via "affycoretools" cree cuello computacional en el servidor de shiny

genesymbols <- getSYMBOL(rownames(toptable1), "clariomshumantranscriptcluster.db")

results1 <- cbind(genesymbols,toptable1) results1 <- na.omit(results1)

#show few records of a toptable

kable(toptable[1:20,])

#select top15 genes (para mostrar resultados)

#en la aplicacíon el usuario decidirá los criterios para escoger la lista de genes

selected <- toptable[1:15,]

##Volcano Plot(con solo un contraste)## #volcano plot

volcanoplot(fit.main,coef=1,highlight=5, names=names(fit.main$coefficients[,1]), main=paste("Differentially expressed genes", sep="\n"))

abline(v=c(-1,1))

#Decide test y diagrama de Venn para arrays con mas de una comparacion(cuando las haya)

res<-decideTests(fit.main, method="separate", adjust.method="fdr", p.value=0.01)

sum.res.rows<-apply(abs(res),1,sum) res.selected<-res[sum.res.rows!=0,] print(summary(res))

#diagrama de venn

vennDiagram (res.selected[,1:3], main="Genes in common", cex=0.9, circle.col = c('red', 'blue', 'green'), include="up")

#Heatmap de la lista de genes seleccionada

probeNames<-rownames(res)

probeNames.selected<-probeNames[sum.res.rows!=0] exprs2cluster <-exprs(eset_rma)[probeNames.selected,]

pal <- colorRampPalette(brewer.pal(11, "RdYlGn"))(100) heatmap(exprs2cluster, col=pal)

#Heatmap para experimentos con sola un contraste

geneID = rownames(topTable(fit.main, coef=1, num=100, adjust="none",p.value=0.05))

exdat = eset_rma[geneID]

reg2 = regHeatmap(exprs(exdat), legend=2, col=heat.colors, breaks=-3:3) plot(reg2)

##Go análisis## ##Paquete topGO##

#A partir de la lista generada por toptable con los diferencialmente expresados como selected

geneID <- rownames(toptable)

#creamos la lista de genes interesantes que corresponde a los seleccionados de la toptable

myInterestingGenes <- rownames(selected)

geneList <- factor(as.integer(geneID %in% myInterestingGenes)) names(geneList) <- geneID

#Creamos el objeto topgo

top_GO_data <- new("topGOdata", ontology = "BP", allGenes = geneList,

nodeSize = 10, annot=annFUN.db, affyLib = "clariomshumantranscriptcluster.db")

#Test de Fisher

resultFisher <- runTest(top_GO_data, algorithm = "classic", statistic = "fisher")

#enrichment with Kolmogorov-Smirnov test con los modod clasico y elimin

resultKS <- runTest(top_GO_data, algorithm = "classic", statistic = "ks") resultKS.elim <- runTest(top_GO_data, algorithm = "elim", statistic = "ks")

allRes <- GenTable(top_GO_data, classicFisher = resultFisher, classicKS = resultKS, elimKS = resultKS.elim,

orderBy = "elimKS", ranksOf = "classicFisher", topNodes = 10)

#mostrar resultados

kable(allRes)

#mostrar gráfico

showSigOfNodes(top_GO_data, score(resultKS.elim), firstSigNodes = 5, useInfo = 'all')

Anexo 5. Requerimientos de Software y Hardware necesarios para instalar la aplicación en modo local

Hardware mínimo recomendado  Intel Core i3 2.5G hz o superior  4GB de RAM (8GB recomendados)  2GB de espacio en el disco duro

Software utilizado para el desarrollo del proyecto R version 3.5.0 (2018-04-23)

Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:

[1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252

LC_MONETARY=Spanish_Spain.1252 [4] LC_NUMERIC=C LC_TIME=Spanish_Spain.1252

attached base packages: [1] stats4 parallel stats graphics grDevices utils datasets methods base

other attached packages: [1] clusterProfiler_3.9.1 ReactomePA_1.25.0 [3] affycoretools_1.53.2 Homo.sapiens_1.3.1 [5] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 GO.db_3.6.0 [7] OrganismDbi_1.23.0 GenomicFeatures_1.33.0 [9] GenomicRanges_1.33.5 GenomeInfoDb_1.17.1 [11] shinycssloaders_0.2.0 Heatplus_2.27.0 [13] DT_0.4 knitr_1.20 [15] GOfuncR_1.1.1 vioplot_0.2 [17] sm_2.2-5.5 clariomshumantranscriptcluster.db_8.7.0

[19] org.Hs.eg.db_3.6.0 annotate_1.59.0 [21] XML_3.98-1.11 AnnotationDbi_1.43.1 [23] limma_3.37.1 pd.clariom.s.human_3.14.1 [25] DBI_1.0.0 oligo_1.45.0 [27] Biobase_2.41.0 oligoClasses_1.43.1 [29] RSQLite_2.1.1 Biostrings_2.49.0 [31] XVector_0.21.1 IRanges_2.15.13 [33] S4Vectors_0.19.7 BiocGenerics_0.27.0 [35] shinydashboard_0.7.0 shiny_1.1.0

loaded via a namespace (and not attached): [1] R.utils_2.6.0 tidyselect_0.2.4 htmlwidgets_1.2

[4] grid_3.5.0 BiocParallel_1.15.5 munsell_0.4.3

[7] units_0.5-1 codetools_0.2-15 preprocessCore_1.43.0

[10] colorspace_1.3-2 GOSemSim_2.7.0 BiocInstaller_1.31.1

[13] Category_2.47.0 rstudioapi_0.7 DOSE_3.7.0

[16] GenomeInfoDbData_1.1.0 hwriter_1.3.2 bit64_0.9-7

[19] biovizBase_1.29.0 affxparser_1.53.0 R6_2.2.2

[22] locfit_1.5-9.1 AnnotationFilter_1.5.1 bitops_1.0-6

[25] reshape_0.8.7 fgsea_1.7.0 DelayedArray_0.7.2

[28] assertthat_0.2.0 promises_1.0.1 scales_0.5.0

[31] ggraph_1.0.1 nnet_7.3-12 enrichplot_1.1.2

[34] gtable_0.2.0 affy_1.59.0 ggbio_1.29.0

[37] ensembldb_2.5.1 rlang_0.2.1 genefilter_1.63.0

[40] splines_3.5.0 rtracklayer_1.41.2 lazyeval_0.2.1

[43] acepack_1.4.1 dichromat_2.0-0 checkmate_1.8.5

[46] yaml_2.1.19 reshape2_1.4.3 crosstalk_1.0.0

[49] backports_1.1.2 rsconnect_0.8.8 httpuv_1.4.3

[52] qvalue_2.13.0 Hmisc_4.1-1 RBGL_1.57.0

[55] tools_3.5.0 tcltk_3.5.0 ggplot2_2.2.1

[58] affyio_1.51.0 gplots_3.0.1 ff_2.2-14

[61] RColorBrewer_1.1-2 ggridges_0.5.0 Rcpp_0.12.17

[64] plyr_1.8.4 base64enc_0.1-3 progress_1.1.2

[70] prettyunits_1.0.2 rpart_4.1-13 viridis_0.5.1

[73] cowplot_0.9.2 mapplots_1.5.1 ggrepel_0.8.0

[76] SummarizedExperiment_1.11.3 cluster_2.0.7-1 magrittr_1.5

[79] data.table_1.11.4 DO.db_2.9 reactome.db_1.64.0

[82] ProtGenerics_1.13.0 matrixStats_0.53.1 mime_0.5

[85] xtable_1.8-2 gcrma_2.53.0 gridExtra_2.3

[88] compiler_3.5.0 biomaRt_2.37.1 tibble_1.4.2

[91] KernSmooth_2.23-15 ReportingTools_2.21.0 R.oo_1.22.0

[94] htmltools_0.3.6 GOstats_2.47.0 later_0.7.2

[97] Formula_1.2-3 tidyr_0.8.1 udunits2_0.13

[100] geneplotter_1.59.0 tweenr_0.1.5 rappdirs_0.3.1

[103] MASS_7.3-49 Matrix_1.2-14 R.methodsS3_1.7.1

[106] gdata_2.18.0 igraph_1.2.1 bindr_0.1.1

[109] pkgconfig_2.0.1 rvcheck_0.1.0

GenomicAlignments_1.17.1

[112] foreign_0.8-70 foreach_1.4.4 AnnotationForge_1.23.0

[115] stringr_1.3.1 VariantAnnotation_1.27.1 digest_0.6.15

[118] graph_1.59.0 fastmatch_1.1-0 htmlTable_1.12

[121] edgeR_3.23.2 GSEABase_1.43.0 curl_3.2

[124] graphite_1.27.2 Rsamtools_1.33.0 gtools_3.5.0

[127] jsonlite_1.5 PFAM.db_3.6.0 bindrcpp_0.2.2

[130] viridisLite_0.3.0 BSgenome_1.49.0 pillar_1.2.3

[133] lattice_0.20-35 GGally_1.4.0 httr_1.3.1

[136] survival_2.41-3 glue_1.2.0 UpSetR_1.3.3

[139] iterators_1.0.9 bit_1.1-14 Rgraphviz_2.25.0

[142] ggforce_0.1.2 stringi_1.2.2 blob_1.1.1

[145] DESeq2_1.21.3 latticeExtra_0.6-28 caTools_1.17.1 [148] memoise_1.1.0 dplyr_0.7.5

Documento similar