|
|
@@ -1,13 +1,16 @@
|
|
|
|
library(shiny)
|
|
|
|
library(shiny)
|
|
|
|
library(openxlsx)
|
|
|
|
library(openxlsx)
|
|
|
|
library(readxl)
|
|
|
|
library(readxl)
|
|
|
|
library(ggplot2)
|
|
|
|
# library(ggplot2)
|
|
|
|
library(reshape2)
|
|
|
|
library(reshape2)
|
|
|
|
library(dplyr)
|
|
|
|
# library(dplyr)
|
|
|
|
library(ggbeeswarm)
|
|
|
|
library(ggbeeswarm)
|
|
|
|
library(magrittr)
|
|
|
|
library(magrittr)
|
|
|
|
library(flextable)
|
|
|
|
library(flextable)
|
|
|
|
source("funcions.R")
|
|
|
|
source("funcions.R")
|
|
|
|
|
|
|
|
library(tidyverse)
|
|
|
|
|
|
|
|
library(rstatix)
|
|
|
|
|
|
|
|
library(ggpubr)
|
|
|
|
|
|
|
|
|
|
|
|
ui <- fluidPage(
|
|
|
|
ui <- fluidPage(
|
|
|
|
#Navbar
|
|
|
|
#Navbar
|
|
|
@@ -119,17 +122,13 @@ server <- function(input, output) {
|
|
|
|
dades$maps<<-t_maps
|
|
|
|
dades$maps<<-t_maps
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
if (input$test == "T-test (adj Holm)"){
|
|
|
|
if (input$test == "T-test (adj Holm)"){
|
|
|
|
t_stats<-multi_stats(t, "value", "variable", "Groups", stat.test = "ttest")
|
|
|
|
t_stats<-t %>% rename("Condition"="variable") %>% group_by(Condition) %>% t_test(value~Groups)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (input$test == "Wilcoxon (adj Holm)"){
|
|
|
|
if (input$test == "Wilcoxon (adj Holm)"){
|
|
|
|
t_stats<-multi_stats(t, "value", "variable", "Groups", stat.test = "wilcox")
|
|
|
|
t_stats<-t %>% rename("Condition"="variable") %>% group_by(Condition) %>% wilcox_test(value~Groups)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dades$stats<<-t_stats
|
|
|
|
dades$stats<<-t_stats
|
|
|
|
t_stats<-t_stats %>% filter(p.signif != "ns")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t_maps<-generate_labstats(t_stats, t, "value", "variable", "Groups")
|
|
|
|
|
|
|
|
dades$maps<<-t_maps
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (length(unique(dades$taula %>% pull(Groups))) < 2){
|
|
|
|
if (length(unique(dades$taula %>% pull(Groups))) < 2){
|
|
|
|
dades$stats<<-null
|
|
|
|
dades$stats<<-null
|
|
|
@@ -145,7 +144,7 @@ server <- function(input, output) {
|
|
|
|
need(exists("mock_mean"), "No se puede elegir positividad con múltiples mocks")
|
|
|
|
need(exists("mock_mean"), "No se puede elegir positividad con múltiples mocks")
|
|
|
|
)
|
|
|
|
)
|
|
|
|
if (exists("mock_mean")){
|
|
|
|
if (exists("mock_mean")){
|
|
|
|
ggplot(melt(t_substr, id=ids), aes(variable, value))+
|
|
|
|
g<-ggplot(melt(t_substr, id=ids), aes(variable, value))+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
# geom_errorbar(stat="summary", position=position_dodge(width=0.9), width=0.5, aes(fill=Groups))+
|
|
|
|
# geom_errorbar(stat="summary", position=position_dodge(width=0.9), width=0.5, aes(fill=Groups))+
|
|
|
|
geom_hline(data=mock_mean, aes(color=Groups, yintercept = `.`))+
|
|
|
|
geom_hline(data=mock_mean, aes(color=Groups, yintercept = `.`))+
|
|
|
@@ -162,7 +161,7 @@ server <- function(input, output) {
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
ids=c("Mice", "Groups", c(ctrl, mock)[c(ctrl, mock) %in% colnames(t_substr)])
|
|
|
|
ids=c("Mice", "Groups", c(ctrl, mock)[c(ctrl, mock) %in% colnames(t_substr)])
|
|
|
|
ggplot(melt(t_substr, id=ids), aes(variable, value))+
|
|
|
|
g<-ggplot(melt(t_substr, id=ids, variable.name = "Condition"), aes(Condition, value))+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
# geom_errorbar(stat="summary", position=position_dodge(width=0.9), width=0.5, aes(fill=Groups))+
|
|
|
|
# geom_errorbar(stat="summary", position=position_dodge(width=0.9), width=0.5, aes(fill=Groups))+
|
|
|
|
# geom_bar(stat="summary", position="dodge", color="black", aes(fill=Groups))+
|
|
|
|
# geom_bar(stat="summary", position="dodge", color="black", aes(fill=Groups))+
|
|
|
@@ -170,11 +169,17 @@ server <- function(input, output) {
|
|
|
|
geom_jitter(position=position_jitterdodge(jitter.width = 0.2), shape=21, aes(fill=Groups), size=3)+
|
|
|
|
geom_jitter(position=position_jitterdodge(jitter.width = 0.2), shape=21, aes(fill=Groups), size=3)+
|
|
|
|
# geom_quasirandom(width=0.2, position=position_dodge(), shape=21)+
|
|
|
|
# geom_quasirandom(width=0.2, position=position_dodge(), shape=21)+
|
|
|
|
scale_x_discrete(limits=colnames(t_substr)[!colnames(t_substr) %in% c("Mice", "Groups", ctrl, mock)])+
|
|
|
|
scale_x_discrete(limits=colnames(t_substr)[!colnames(t_substr) %in% c("Mice", "Groups", ctrl, mock)])+
|
|
|
|
geom_segment(data=t_maps$brackets, aes(x=x1, xend=x2, y=y1, yend=y2), color="black")+
|
|
|
|
# geom_segment(data=t_maps$brackets, aes(x=x1, xend=x2, y=y1, yend=y2), color="black")+
|
|
|
|
geom_text(data=t_stats, aes(t_maps$label$x, t_maps$label$y, label=p.signif), color="black")+
|
|
|
|
# geom_text(data=t_stats, aes(t_maps$label$x, t_maps$label$y, label=p.signif), color="black")+
|
|
|
|
theme_bw()+
|
|
|
|
theme_bw()+
|
|
|
|
theme(axis.text.x=element_text(angle=45, hjust=1))
|
|
|
|
theme(axis.text.x=element_text(angle=45, hjust=1))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (input$showstats == T){
|
|
|
|
|
|
|
|
stat.pos<-t_stats %>% add_xy_position(x="Condition", step.increase = 0.06, dodge = 0.75)
|
|
|
|
|
|
|
|
g+stat_pvalue_manual(stat.pos,hide.ns = T)
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
g
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
@@ -204,12 +209,11 @@ server <- function(input, output) {
|
|
|
|
if (!is.null(dades$final)){
|
|
|
|
if (!is.null(dades$final)){
|
|
|
|
print(dades$stats)
|
|
|
|
print(dades$stats)
|
|
|
|
t_substr<-dades$final
|
|
|
|
t_substr<-dades$final
|
|
|
|
t_stats<-dades$stats %>% filter(p.signif != "ns")
|
|
|
|
t_stats<-dades$stats
|
|
|
|
t_maps<-dades$maps
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ids<-c("Mice", "Groups")
|
|
|
|
ids<-c("Mice", "Groups")
|
|
|
|
set.seed(123)
|
|
|
|
set.seed(123)
|
|
|
|
g<-ggplot(melt(t_substr, id=ids), aes(variable, value))+
|
|
|
|
g<-ggplot(melt(t_substr, id=ids, variable.name="Condition"), aes(Condition, value))+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
labs(x="", y="Spots/2.5*10^5 cells")+
|
|
|
|
geom_boxplot(color="black", aes(fill=Groups), alpha=0.4, outlier.alpha = 0, position=position_dodge(width=0.8),width=input$`boxplot-width`)+
|
|
|
|
geom_boxplot(color="black", aes(fill=Groups), alpha=0.4, outlier.alpha = 0, position=position_dodge(width=0.8),width=input$`boxplot-width`)+
|
|
|
|
geom_jitter(position=position_jitterdodge(jitter.width = 0.2), shape=21, aes(fill=Groups), size=input$`point-size`)+
|
|
|
|
geom_jitter(position=position_jitterdodge(jitter.width = 0.2), shape=21, aes(fill=Groups), size=input$`point-size`)+
|
|
|
@@ -224,13 +228,13 @@ server <- function(input, output) {
|
|
|
|
g<-g+theme_gray(base_size = input$`font-size`)
|
|
|
|
g<-g+theme_gray(base_size = input$`font-size`)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
g<-g+theme(axis.text.x=element_text(angle=45, hjust=1))
|
|
|
|
g<-g+theme(axis.text.x=element_text(angle=45, hjust=1))
|
|
|
|
if (input$stats2 == T){
|
|
|
|
|
|
|
|
g<-g+geom_segment(data=t_maps$brackets, aes(x=x1, xend=x2, y=y1, yend=y2), color="black")+
|
|
|
|
|
|
|
|
geom_text(data=t_stats, aes(t_maps$label$x, t_maps$label$y, label=p.signif), color="black")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (input$legend == F){
|
|
|
|
if (input$legend == F){
|
|
|
|
g<-g+guides(color=FALSE, fill=FALSE)
|
|
|
|
g<-g+guides(color=FALSE, fill=FALSE)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (input$stats2 == T){
|
|
|
|
|
|
|
|
stat.pos<-dades$stats %>% add_xy_position(x="Condition", step.increase = 0.06, dodge = 0.75)
|
|
|
|
|
|
|
|
g<-g+stat_pvalue_manual(stat.pos,hide.ns = T)
|
|
|
|
|
|
|
|
}
|
|
|
|
if (input$colors != ""){
|
|
|
|
if (input$colors != ""){
|
|
|
|
v_col<-strsplit(input$colors, ",")[[1]]
|
|
|
|
v_col<-strsplit(input$colors, ",")[[1]]
|
|
|
|
g<-g+scale_color_manual(values=v_col)+
|
|
|
|
g<-g+scale_color_manual(values=v_col)+
|
|
|
|