Browse Source

Merge branch 'dev'

main
marcelcosta 2 years ago
parent
commit
38e902cef0
1 changed files with 110 additions and 0 deletions
  1. +110
    -0
      BDAccess/app.R

+ 110
- 0
BDAccess/app.R

@ -1,5 +1,9 @@
library(shiny)
library(rhandsontable)
library(tidyverse)
library(reshape2)
library(Matrix)
library(CitFuns)
library(BDCIT)
print(getwd())
@ -61,6 +65,23 @@ ui <- fluidPage(
h3("Nitrogen"),
tableOutput("nitrogen")
)
),
tabPanel("scRNAseq",
sidebarPanel(
textInput("sqlquery", label = "sqlquery", value = ""),
uiOutput("PATID"),
checkboxInput("sct_sel", "Mostrar filtrados"),
checkboxInput("cd45_chk", "Purificación CD45"),
textInput("genes", label="genes", value = "")
),
mainPanel(
tabsetPanel(
tabPanel("Table", tableOutput("sc_table")),
tabPanel("Plots",
plotOutput("sc_plot", height = "1000px"),
plotOutput("sc_expr"), height = "600px")
)
)
)
)
)
@ -767,6 +788,95 @@ server <- function(input, output) {
## scRNAseq
output$PATID = renderUI({
observeEvent(input$goButton, {})
sc_cod<-sqlFetch(dta, "CNAG") %>% pull(CODIGO)
selectizeInput("sc_cod", "CÓDIGO", sc_cod, multiple = T)
})
output$sc_table<-renderTable({
if (input$sct_sel){
if (input$sqlquery != ""){
print(input$sqlquery)
sqlQuery(dta, input$sqlquery)
}else{
if (!is.null(input$sc_cod)){
sqlFetch(dta, "CNAG") %>% filter(CODIGO %in% input$sc_cod)
}else{
sqlFetch(dta, "CNAG")
}
}
}else{
sqlFetch(dta, "CNAG")
}
})
output$sc_plot <-renderPlot({
meta<<-readRDS(paste0(scRNAseqRoute,"metadata_full_object.rds"))
if (input$sqlquery != ""){
sc_codigos<-sqlQuery(dta, input$sqlquery) %>% pull(CNAG_NAME)
}else{
if (!is.null(input$sc_cod)){
sc_codigos<-sqlFetch(dta, "CNAG") %>% filter(CODIGO %in% input$sc_cod) %>% pull(CNAG_NAME)
}else{
sc_codigos<-sqlFetch(dta, "CNAG") %>% pull(CNAG_NAME)
}
}
sc_codigos<-gsub(" _","_", sc_codigos )
sc_codigos<-gsub("_ ","_", sc_codigos )
sc_codigos<-gsub(" ","_", sc_codigos )
meta<-meta %>% mutate(sample2=gsub("_CD45", "", sample)) %>% filter(sample2 %in% sc_codigos)
if (isFALSE(input$cd45_chk)){ meta<-meta %>% filter(!grepl("_CD45", sample))}
g1<-ggplot(meta, aes(coord_x, coord_y, color=predicted.id))+
geom_point(size=0.2)+
guides(colour = guide_legend(override.aes = list(size=2)))+
theme_bw()+
theme(aspect.ratio = 1)
meta_perc<-meta %>% group_by(sample, predicted.id) %>% summarise(N=n()) %>% mutate(N=perc(N)) %>%
spread(predicted.id, N) %>% gather("predicted.id","N",-sample) %>% mutate(N=case_when(is.na(N)~0,TRUE~N))
g2<-ggheatmap(meta_perc, "sample","predicted.id", "N", color = "grey50")
ggpubr::ggarrange(g1,g2, ncol=1, heights = c(0.3, 0.7))
})
output$sc_expr <-renderPlot({
if (input$genes != ""){
expr<-readRDS(paste0(scRNAseqRoute,"expression_full_object.rds"))
genes<-strsplit(input$genes, ",")[[1]]
if (length(genes) > 1){
df.expr<-as.data.frame(as.matrix(expr[genes,]))
df.expr["Gene"]<-rownames(df.expr)
mdf.expr<-melt(df.expr)
}else{
df.expr<-as.data.frame(t(as.matrix(expr[genes[1],])))
df.expr["Gene"]<-genes[1]
mdf.expr<-melt(df.expr)
}
alldata<-merge(meta, mdf.expr, by.x="barcode", by.y = "variable")
}
# order <- clustsort(alldata %>% spread(Gene, value) %>% select(predicted.id, all_of(genes)) %>%
# group_by(predicted.id) %>% summarise(across(all_of(genes), mean)) %>% as.data.frame)
#
# g1<-ggplot(alldata, aes(predicted.id, value, fill=predicted.id))+
# geom_violin(scale = "width")+
# geom_jitter(width=0.2, size=0.1, alpha=0.3)+
# scale_x_discrete(limits=order$x)+
# guides(fill=F)+
# facet_wrap(.~Gene)+
# theme_bw()+
# theme(axis.text.x = element_text(angle=90, hjust=1, vjust = 0.5))
g2<-ggheatmap(alldata, x="predicted.id",y="Gene",value="value", color="grey")+coord_equal()
# ggpubr::ggarrange(g1,g2, ncol=1)
g2
})
}
# Run the application

Loading…
Cancel
Save