Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(funkycells)
## ----define_functions, echo=FALSE---------------------------------------------
full_run <- FALSE # This runs only computations that are feasibly quick
paper_run <- FALSE # This creates and saves figures as in paper
save_path <- tempdir() # Save to temp directory as desired
## ----build_data---------------------------------------------------------------
set.seed(123)
cell_data <- simulatePP(
agentVarData =
data.frame(
"outcome" = c(0, 1),
"A" = c(0, 0),
"B" = c(1 / 100, 1 / 300)
),
agentKappaData =
data.frame(
"agent" = c("A", "B"),
"clusterAgent" = c(NA, "A"),
"kappa" = c(20, 5)
),
unitsPerOutcome = 15,
replicatesPerUnit = 2,
silent = FALSE
)
## ----show_spatial_images------------------------------------------------------
plotPP(cell_data[cell_data$replicate == 1, c("x", "y", "type")],
ptSize = 2, colorGuide = ggplot2::guide_legend(title = "Cells"),
xlim = c(0, 1), ylim = c(0, 1)
)
plotPP(cell_data[cell_data$replicate == 21, c("x", "y", "type")],
ptSize = 2, colorGuide = ggplot2::guide_legend(title = "Cells"),
xlim = c(0, 1), ylim = c(0, 1)
)
## ----paper_spatial_images, echo=FALSE, eval=paper_run-------------------------
# img1 <- plotPP(
# data = cell_data[cell_data$replicate == 1, c("x", "y", "type")],
# ptSize = 3, dropAxes = T, colorGuide = "none"
# )
# png(paste0(save_path,"/paper/diagram_pp1.png"), width = 800, height = 800)
# print(img1)
# dev.off()
#
# img21 <- plotPP(
# data = cell_data[cell_data$replicate == 21, c("x", "y", "type")],
# ptSize = 3, dropAxes = T, colorGuide = "none"
# )
# png(paste0(save_path,"/paper/diagram_pp21.png"), width = 800, height = 800)
# print(img21)
# dev.off()
#
# img41 <- plotPP(
# data = cell_data[cell_data$replicate == 41, c("x", "y", "type")],
# ptSize = 3, dropAxes = T, colorGuide = "none"
# )
# png(paste0(save_path,"/paper/diagram_pp41.png"), width = 800, height = 800)
# print(img41)
# dev.off()
## ----show_K_functions---------------------------------------------------------
AB_ex <- getKFunction(
cell_data[
cell_data$replicate == 1,
!(colnames(cell_data) %in% ("outcome"))
],
agents = c("A", "B"), unit = "unit", replicate = "replicate",
rCheckVals = seq(0, 0.25, 0.01), xRange = c(0, 1), yRange = c(0, 1)
)
ggplot2::ggplot() +
ggplot2::geom_line(ggplot2::aes(x = r, y = K1), data = AB_ex, linewidth = 2) +
ggplot2::theme_bw() +
ggplot2::theme(
axis.title = ggplot2::element_blank(),
axis.text = ggplot2::element_blank()
)
## ----paper_K_functions, echo=FALSE, eval=paper_run----------------------------
# AA_im1 <- getKFunction(
# cell_data[
# cell_data$replicate == 1,
# !(colnames(cell_data) %in% ("outcome"))
# ],
# agents = c("A", "A"), unit = "unit", replicate = "replicate",
# rCheckVals = seq(0, 0.25, 0.01), xRange = c(0, 1), yRange = c(0, 1)
# )
# AB_im1 <- getKFunction(
# cell_data[
# cell_data$replicate == 1,
# !(colnames(cell_data) %in% ("outcome"))
# ],
# agents = c("A", "B"), unit = "unit", replicate = "replicate",
# rCheckVals = seq(0, 0.25, 0.01), xRange = c(0, 1), yRange = c(0, 1)
# )
#
# AAfig_im1 <- ggplot2::ggplot() +
# ggplot2::geom_line(ggplot2::aes(x = r, y = K1), data = AA_im1, linewidth = 3) +
# ggplot2::theme_bw() +
# ggplot2::theme(
# axis.title = ggplot2::element_blank(),
# axis.text = ggplot2::element_blank()
# )
# png(paste0(save_path,"/paper/diagram_K_AA_i1.png"), width = 800, height = 800)
# print(AAfig_im1)
# dev.off()
#
# ABfig_im1 <- ggplot2::ggplot() +
# ggplot2::geom_line(ggplot2::aes(x = r, y = K1), data = AB_im1, linewidth = 3) +
# ggplot2::theme_bw() +
# ggplot2::theme(
# axis.title = ggplot2::element_blank(),
# axis.text = ggplot2::element_blank()
# )
# png(paste0(save_path,"/paper/diagram_K_AB_i1.png"), width = 800, height = 800)
# print(ABfig_im1)
# dev.off()
## ----pca----------------------------------------------------------------------
pcaData <- getKsPCAData(
data = cell_data, replicate = "replicate",
agents_df = data.frame(c("A", "A", "B"), c("A", "B", "B")),
xRange = c(0, 1), yRange = c(0, 1),
nPCs = 3, silent = T
)
## ----simulate_meta------------------------------------------------------------
set.seed(123)
pcaMeta <- simulateMeta(pcaData,
metaInfo = data.frame(
"var" = c("sex", "age"),
"rdist" = c("rbinom", "rnorm"),
"outcome_0" = c("0.5", "25"),
"outcome_1" = c("0.5", "26")
)
)
## ----evaluate_model, eval=full_run | full_run---------------------------------
# set.seed(123)
# model_fm <- funkyModel(
# data = pcaMeta,
# outcome = "outcome",
# unit = "unit",
# metaNames = c("sex", "age")
# )
## ----show_variable_importance, eval=full_run----------------------------------
# model_fm$viPlot
## ----paper_variable_importance, echo=FALSE, eval=paper_run--------------------
# # Get Vars
# viData <- model_fm$VariableImportance
# accData <- model_fm$AccuracyEstimate
# NoiseCutoff <- model_fm$NoiseCutoff
# InterpolationCutoff <- model_fm$InterpolationCutoff
#
# # Plot
# maxVal <- max(InterpolationCutoff, NoiseCutoff, viData$est)
# plot_vi_full <- ggplot2::ggplot(
# data = viData,
# mapping = ggplot2::aes(
# x = factor(stats::reorder(var, est)),
# y = ifelse(est / maxVal > 1, 1,
# ifelse(est / maxVal < 0, 0,
# est / maxVal
# )
# ),
# group = 1
# )
# ) +
# ggplot2::geom_errorbar(
# ggplot2::aes(
# ymin = ifelse((est - sd) / maxVal < 0, 0, (est - sd) / maxVal),
# ymax = ifelse((est + sd) / maxVal > 1, 1, (est + sd) / maxVal)
# ),
# color = "black", width = 0.2
# ) +
# ggplot2::geom_point(color = "black", size = 3) +
# ggplot2::geom_hline(
# ggplot2::aes(yintercept = max(0, min(1, NoiseCutoff / maxVal))),
# color = "red", linetype = "dotted", linewidth = 2
# ) +
# ggplot2::coord_flip(ylim = c(0, 1)) +
# ggplot2::xlab(NULL) +
# ggplot2::ylim(c(0, 1)) +
# ggplot2::ylab(NULL) +
# ggplot2::theme_bw() +
# ggplot2::theme(
# axis.text = ggplot2::element_text(size = 18),
# axis.text.x = ggplot2::element_blank(),
# axis.text.y = ggplot2::element_blank(),
# axis.ticks.y = ggplot2::element_blank(),
# panel.grid.major.y = ggplot2::element_blank(),
# axis.title = ggplot2::element_text(size = 20)
# ) +
# ggplot2::geom_line(ggplot2::aes(
# x = ordered(viData[order(-est), "var"]),
# y = InterpolationCutoff / maxVal
# ), color = "orange", linetype = "dashed", linewidth = 2) +
# ggplot2::ylab(paste0(
# "OOB (",
# specify_decimal(accData$OOB, 2),
# "), Guess (",
# specify_decimal(accData$guess, 2),
# "), Bias (",
# specify_decimal(accData$bias, 2), ")"
# ))
#
# png(paste0(save_path,"/paper/diagram_variableimportance.png"))
# print(plot_vi_full)
# dev.off()
#
#
# # Plot
# maxVal <- max(InterpolationCutoff, NoiseCutoff, viData$est)
# plot_vi_details <- ggplot2::ggplot(
# data = viData,
# mapping = ggplot2::aes(
# x = factor(stats::reorder(var, est)),
# y = ifelse(est / maxVal > 1, 1,
# ifelse(est / maxVal < 0, 0,
# est / maxVal
# )
# ),
# group = 1
# )
# ) +
# ggplot2::geom_errorbar(
# ggplot2::aes(
# ymin = ifelse((est - sd) / maxVal < 0, 0, (est - sd) / maxVal),
# ymax = ifelse((est + sd) / maxVal > 1, 1, (est + sd) / maxVal)
# ),
# color = "black", width = 0.2
# ) +
# ggplot2::geom_point(color = "black", size = 3) +
# ggplot2::geom_hline(
# ggplot2::aes(yintercept = max(0, min(1, NoiseCutoff / maxVal))),
# color = "red", linetype = "dotted", linewidth = 2
# ) +
# ggplot2::coord_flip(ylim = c(0, 1)) +
# ggplot2::xlab(NULL) +
# ggplot2::ylim(c(0, 1)) +
# ggplot2::ylab(NULL) +
# ggplot2::theme_bw() +
# ggplot2::theme(
# axis.text = ggplot2::element_text(size = 18),
# axis.text.x = ggplot2::element_blank(),
# # axis.text.y = ggplot2::element_blank(),
# axis.ticks.y = ggplot2::element_blank(),
# panel.grid.major.y = ggplot2::element_blank(),
# axis.title = ggplot2::element_text(size = 20)
# ) +
# ggplot2::geom_line(ggplot2::aes(
# x = ordered(viData[order(-est), "var"]),
# y = InterpolationCutoff / maxVal
# ), color = "orange", linetype = "dashed", linewidth = 2) +
# ggplot2::ylab(paste0(
# "OOB (",
# specify_decimal(accData$OOB, 2),
# "), Guess (",
# specify_decimal(accData$guess, 2),
# "), Bias (",
# specify_decimal(accData$bias, 2), ")"
# ))
#
# png(paste0(save_path,"/paper/diagram_variableimportance_names.png"))
# print(plot_vi_details)
# dev.off()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.