|
@ -5,6 +5,10 @@ library(reshape2) |
|
|
library(Matrix) |
|
|
library(Matrix) |
|
|
library(CitFuns) |
|
|
library(CitFuns) |
|
|
library(BDCIT) |
|
|
library(BDCIT) |
|
|
|
|
|
library(openCyto) |
|
|
|
|
|
library(flowCore) |
|
|
|
|
|
library(flowWorkspace) |
|
|
|
|
|
library(CytoML) |
|
|
|
|
|
|
|
|
print(getwd()) |
|
|
print(getwd()) |
|
|
source("../sqlFunctions.R", encoding = "UTF-8") |
|
|
source("../sqlFunctions.R", encoding = "UTF-8") |
|
@ -76,19 +80,16 @@ ui <- fluidPage( |
|
|
## Citometría ---- |
|
|
## Citometría ---- |
|
|
tabPanel("Citometría", |
|
|
tabPanel("Citometría", |
|
|
sidebarPanel( |
|
|
sidebarPanel( |
|
|
# shinyDirButton(id="cito_dir",label="Cito Dir", title="Citometría") |
|
|
|
|
|
|
|
|
|
|
|
# fileInput(inputId = "cito_dir", label = "Cito Dir", multiple = F) |
|
|
|
|
|
|
|
|
selectInput("phenotype", "Tipo de análisis", selected="Pop", choices=c("Pop", "IC")), |
|
|
), |
|
|
), |
|
|
mainPanel( |
|
|
mainPanel( |
|
|
actionButton("goButtonDir","load session to analyze"), |
|
|
|
|
|
textOutput("session") |
|
|
|
|
|
# tabsetPanel( |
|
|
|
|
|
# tabPanel("Table", tableOutput("sc_table")), |
|
|
|
|
|
# tabPanel("Plots", |
|
|
|
|
|
# plotOutput("sc_plot", height = "1000px"), |
|
|
|
|
|
# plotOutput("sc_expr"), height = "600px") |
|
|
|
|
|
# ) |
|
|
|
|
|
|
|
|
actionButton("goButtonDir","Selecciona directorio fenotipo"), |
|
|
|
|
|
textOutput("session"), |
|
|
|
|
|
hr(), |
|
|
|
|
|
actionButton("fcsconvert", "Convertir a fcs"), |
|
|
|
|
|
hr(), |
|
|
|
|
|
actionButton("pngexport", "Exportar informes"), |
|
|
|
|
|
actionButton("popexport", "Actualizar BBDD") |
|
|
) |
|
|
) |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
@ -820,7 +821,7 @@ server <- function(input, output) { |
|
|
|
|
|
|
|
|
observe({ |
|
|
observe({ |
|
|
if(input$goButtonDir > 0){ |
|
|
if(input$goButtonDir > 0){ |
|
|
cito_dir<<-choose.dir() %>% gsub("\\","/",. ,fixed=T) |
|
|
|
|
|
|
|
|
cito_dir<<-choose.dir() %>% gsub("\\","/",. ,fixed=T) %>% paste0("/") |
|
|
|
|
|
|
|
|
output$session <- renderText( |
|
|
output$session <- renderText( |
|
|
cito_dir |
|
|
cito_dir |
|
@ -828,6 +829,64 @@ server <- function(input, output) { |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
observeEvent(input$fcsconvert,{ |
|
|
|
|
|
route<-cito_dir |
|
|
|
|
|
|
|
|
|
|
|
files<-list.files(route, ".LMD") |
|
|
|
|
|
for (lmd in files){ |
|
|
|
|
|
fcs<-read.FCS(paste0(route,lmd), dataset = 2) |
|
|
|
|
|
# fcs@parameters$desc<-c("FS-A","SS-A", paste("FL",1:10,"-A", sep = ""), "TIME") |
|
|
|
|
|
# fcs@parameters$desc<-c("FS-H","FS-A","FS-W","SS-H","SS-A","TIME", paste("FL",1:10,"-A", sep = "")) |
|
|
|
|
|
keyword(fcs)['$FIL']<-paste0(gsub(".LMD","",lmd), ".fcs") |
|
|
|
|
|
write.FCS(fcs, paste0(route, gsub(".LMD","",lmd), ".fcs")) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
observeEvent(input$pngexport,{ |
|
|
|
|
|
route<-cito_dir |
|
|
|
|
|
|
|
|
|
|
|
ws<-open_flowjo_xml(paste0(route,"Populations.wsp")) |
|
|
|
|
|
gs<-flowjo_to_gatingset(ws, name="All Samples") |
|
|
|
|
|
|
|
|
|
|
|
sampleNames(gs)<-sapply(sampleNames(gs), function(x) strsplit(x, "Pop ")[[1]][2]) %>% |
|
|
|
|
|
gsub("[[:space:]][0-9]*.fcs_.[0-9]*","", . , perl = T) |
|
|
|
|
|
|
|
|
|
|
|
for (samp in sampleNames(gs)){ |
|
|
|
|
|
print(samp) |
|
|
|
|
|
p<-autoplot(gs[[samp]], bins=64) |
|
|
|
|
|
ggsave(paste0(route, samp,".png"),p,width = 10, height = 10) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
observeEvent(input$popexport,{ |
|
|
|
|
|
route<-cito_dir |
|
|
|
|
|
|
|
|
|
|
|
ws<-open_flowjo_xml(paste0(route,"Populations.wsp")) |
|
|
|
|
|
gs<-flowjo_to_gatingset(ws, name="All Samples") |
|
|
|
|
|
|
|
|
|
|
|
sampleNames(gs)<-sapply(sampleNames(gs), function(x) strsplit(x, "Pop ")[[1]][2]) %>% |
|
|
|
|
|
gsub("[[:space:]][0-9]*.fcs_.[0-9]*","", . , perl = T) |
|
|
|
|
|
|
|
|
|
|
|
nodes<-sapply(strsplit(gs_get_pop_paths(gs), "/"), tail, 1) |
|
|
|
|
|
nodes<-nodes[grepl("_",nodes)] |
|
|
|
|
|
pop<-gs_pop_get_stats(gs, nodes=nodes,type="percent") %>% as.data.frame %>% mutate(percent=percent*100) |
|
|
|
|
|
|
|
|
|
|
|
pop[,"pop"]<-gsub("_","",pop$pop) |
|
|
|
|
|
pop$pop<-gsub(" ","_",pop$pop) |
|
|
|
|
|
pop$pop<-gsub("+","pos",pop$pop, fixed=T) |
|
|
|
|
|
pop$pop<-gsub("-","neg",pop$pop, fixed=T) |
|
|
|
|
|
pop<-rename(pop, "samples"="sample") |
|
|
|
|
|
pop$percent<-round(pop$percent, digits=2) |
|
|
|
|
|
pop_sp<-pop %>% spread(pop, percent) |
|
|
|
|
|
|
|
|
|
|
|
vartypes<-rep("Number", pop_sp %>% select(-samples) %>% colnames %>% length) |
|
|
|
|
|
names(vartypes)<-pop_sp %>% select(-samples) %>% colnames |
|
|
|
|
|
|
|
|
|
|
|
sqlSave(dta, pop_sp, tablename="POPULATIONS", append = T, varTypes = vartypes, rownames = F) |
|
|
|
|
|
print("Tabla POPULATIONS sincronizada.") |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
## scRNAseq ---- |
|
|
## scRNAseq ---- |
|
|
|
|
|
|
|
|