require(ggplot2) require(scales) require(lme4) require(reshape2) require(dplyr) library(tidyr) require(ggbeeswarm) require(latex2exp) require(ggExtra) require(ggpubr) require(grid) require(gridExtra) require(stringr) require(data.table)
fmri.results <- readRDS('../data/real/discr_fmri_results.rds') dmri.results <- readRDS('../data/real/discr_dmri_results.rds')
reg_opts <- c("A", "F") names(reg_opts) <- c("ANTs", "FSL") freq_opts <- c("F", "N") names(freq_opts) <- c(TRUE, FALSE) scrub_opts <- c("S", "X") names(scrub_opts) <- c(TRUE, FALSE) gsr_opts <- c("G", "X") names(gsr_opts) <- c(TRUE, FALSE) atlas_opts <- c("A", "C", "D", "H") names(atlas_opts) <- c("AAL", "CC200", "Desikan", "HO") dsets <- unique(fmri.results$Dataset) fmri.results <- do.call(rbind, lapply(1:dim(fmri.results)[1], function(i) { dat <- fmri.results[i,] name <- paste(reg_opts[as.character(dat$Reg)], freq_opts[abs(as.numeric(dat$FF) - 1) + 1], scrub_opts[abs(as.numeric(dat$Scr) - 1) + 1], gsr_opts[abs(as.numeric(dat$GSR) - 1) + 1], atlas_opts[as.character(dat$Parcellation)], sep="") return(cbind(data.frame(Name=name), dat)) }))
nan.mean <- function(x) { mean(x, na.rm=TRUE) } fmri.summarized <- aggregate(list(me.discr=fmri.results$discr), by=list(Name=fmri.results$Name), FUN=nan.mean) fmri.results$Name <- factor(fmri.results$Name, levels=as.character(fmri.summarized$Name[order(fmri.summarized$me.discr, decreasing = TRUE)]), ordered=TRUE)
ggplot(fmri.results, aes(x=Name, y=discr, color=Dataset, size=nscans)) + geom_point() + xlab("Preprocessing Strategy") + ylab("Discriminability") + theme_bw() + ggtitle("Comparing Discriminability Across 64 Preprocessing Strategies") + theme(axis.text.x=element_text(angle=90)) + scale_size_continuous(name="#Scans") + stat_summary(fun.y="mean", color="black", geom="point", shape="triangle", size=2) + guides(color=guide_legend(ncol=2))
for (col in c("Reg", "FF", "Scr", "GSR", "Parcellation")) { }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.