#' Title
#'
#' @param netList
#' @param plotFolder
#'
#' @return
#' @export
#'
#' @examples
stabilityPlots <- function(netList, plotFolder)
{
cohDf <- lapply(netList, function(net) {
print(net)
df <-
read_csv(paste0(randRaw, "/", net, "/wild_finFlagFreq.csv"),
col_types = cols()) %>%
filter(!is.na(Avg0)) %>%
select(coherence0, Avg0, SD0, frust0) %>%
mutate(Network = netNameKey[net])
DirectoryNav(plotFolder)
ggplot(df, aes(
x = frust0,
y = coherence0,
color = log10(Avg0)
)) +
geom_point(size = 1.5) + scale_color_viridis_c() +
theme_Publication() +
theme(
legend.position = c(0.2, 0.4),
legend.direction = "vertical",
legend.key.height = unit(0.8, "cm"),
legend.background = element_blank()
) +
labs(x = "Frustration",
y = "Coherence",
color = "Log10(SSF)")
ggsave(paste0(net, "_cohVfrust.png"),
width = 5.5,
height = 5)
ggplot(df, aes(
x = frust0,
y = Avg0,
color = coherence0
)) +
geom_point(size = 1.5) + scale_color_viridis_c() +
scale_y_log10() +
theme_Publication() +
theme(
legend.position = c(0.2, 0.4),
legend.direction = "vertical",
legend.key.height = unit(0.8, "cm"),
legend.background = element_blank()
) +
labs(x = "Frustration",
y = "SSF",
color = "Coherence")
ggsave(paste0(net, "_ssfVfrust.png"),
width = 5.5,
height = 5)
ggplot(df, aes(
x = Avg0,
y = coherence0,
color = frust0
)) +
geom_point(size = 1.5) + scale_color_viridis_c() +
theme_Publication() +
theme(
legend.position = c(0.8, 0.4),
legend.direction = "vertical",
legend.key.height = unit(0.8, "cm"),
legend.background = element_blank()
) +
labs(x = "SSF",
y = "Coherence",
color = "Frustration")
ggsave(paste0(net, "_cohVfreq.png"),
width = 5.5,
height = 5)
cr <-
cor.test(as.numeric(df$coherence0),
as.numeric(df$Avg0),
method = "spearman")
df$cohFreq <-
paste0(
df$Network,
", \u03c1 : ",
round(cr$estimate, 2),
ifelse(cr$p.value < 0.05, "*", "")
)
cr <-
cor.test(as.numeric(df$frust0), as.numeric(df$Avg0), method = "spearman")
df$frustFreq <-
paste0(
df$Network,
", \u03c1 : ",
round(cr$estimate, 2),
ifelse(cr$p.value < 0.05, "*", "")
)
cr <-
cor.test(as.numeric(df$coherence0),
as.numeric(df$frust0),
method = "spearman")
df$cohFrust <-
paste0(
df$Network,
", \u03c1 : ",
round(cr$estimate, 2),
ifelse(cr$p.value < 0.05, "*", "")
)
df
}) %>% reduce(rbind.data.frame)
ggplot(cohDf, aes(x = Avg0, y = coherence0, color = cohFreq)) + geom_point(size = 2) +
# geom_errorbar(aes(ymin = Avg0 - SD0, ymax = Avg0 + SD0)) +
xlim(min(cohDf$Avg0), 1) +
scale_x_log10() +
# geom_smooth(se = F, method = "lm")+
theme_Publication() + theme(
legend.position = c(0.3, 0.8),
legend.direction = "vertical",
legend.key.height = unit(0.6, "cm"),
legend.text = element_text(size = rel(1.1)),
legend.title = element_text(size = rel(1.1)),
legend.background = element_blank()
) +
labs(y = "SSF", x = "Coherence", color = "Network")
setwd(plotFolder)
ggsave(paste0(paste0(netList, collapse = "_"), "_CohVfreq.png"),
width = 5.5,
height = 5)
ggplot(cohDf, aes(x = frust0, y = coherence0, color = cohFrust)) + geom_point(size = 2) +
# geom_errorbar(aes(ymin = Mean - Stdev, ymax = Mean + Stdev)) +
# geom_smooth(se = F, method = "lm")+
theme_Publication() + theme(
legend.position = c(0.3, 0.3),
legend.direction = "vertical",
legend.key.height = unit(0.6, "cm"),
legend.text = element_text(size = rel(1.1)),
legend.title = element_text(size = rel(1.1)),
legend.background = element_blank()
) +
labs(x = "Frustration", y = "Coherence", color = "Network")
setwd(plotFolder)
ggsave(paste0(paste0(netList, collapse = "_"), "_CohVfrust.png"),
width = 5.5,
height = 5)
ggplot(cohDf, aes(y = frust0, x = Avg0, color = frustFreq)) + geom_point(size = 2) +
xlim(min(cohDf$Avg0), 1) + ylim(0, 0.5) +
# geom_errorbar(aes(ymin = Mean - Stdev, ymax = Mean + Stdev)) +
# geom_smooth(se = F, method = "lm")+
scale_x_log10() +
theme_Publication() + theme(
legend.position = c(0.75, 0.8),
legend.direction = "vertical",
legend.key.height = unit(0.6, "cm"),
legend.text = element_text(size = rel(1)),
legend.title = element_text(size = rel(1)),
# legend.background = element_blank()
) +
labs(y = "Frustration", x = "SSF", color = "Network")
setwd(plotFolder)
ggsave(paste0(paste0(netList, collapse = "_"), "_freqVfrust.png"),
width = 5.5,
height = 5)
}
#' Title
#'
#' @param net
#' @param plotFolder
#' @param w
#' @param h
#'
#' @return
#' @export
#'
#' @examples
matrixPlot <- function(net,
plotFolder,
w = NULL,
h = NULL)
{
freqFile <- paste0(randRaw, "/", net, "/wild_finFlagFreq.csv")
nodes <-
readLines(paste0(randRaw, "/", net, "/wild_nodes.txt")) %>%
str_replace_all(regex("\\W+"), "")
freqData <-
read_csv(freqFile, col_types = cols()) %>% filter(flag == 1,!is.na(Avg0)) %>%
select(states, Phenotype, Avg0) %>%
mutate(Phenotype = factor(Phenotype, levels = rev(c("H", "M", "E")))) %>%
mutate(states = str_remove_all(states, "'")) %>%
arrange(Phenotype) %>%
mutate(states = str_split(states, "") %>% sapply(function(x) {
paste0(x, collapse = "_")
})) %>%
separate(states, nodes, sep = "_")
nS <- nrow(freqData)
topoFile <- paste0(randRaw, "/", net, "/wild.topo")
file.copy(topoFile, paste0(net, ".topo"))
gr <-
readLines(str_replace(topoFile, ".topo", ".teams")) %>% str_split(",") %>% unlist
sig <- nodes[!(nodes %in% gr)]
nds <- c(gr, sig)
size <- 0.8
if (length(nodes) > 30)
size <- 0.6
gs <-
readLines(str_replace(topoFile, ".topo", ".teams")) %>% str_split(",")
topoFile <- paste0(net, ".topo")
# freqData <- freqData %>%
# mutate(Score = freqData %>% select(all_of(gs[[1]])) %>%
# mutate_all(as.numeric) %>% rowSums -
# freqData %>% select(all_of(gs[[2]])) %>%
# mutate_all(as.numeric) %>% rowSums) %>%
# mutate(absScore = abs(Score)) %>% arrange(desc(absScore), Score) %>%
# mutate(num = paste0(as.character(Phenotype), 1:nrow(.))) %>%
# arrange(Avg0*1000 + Score) %>%
# mutate(num = factor(num, levels = num))
freqData <-
freqData %>% mutate(num = paste0(as.character(Phenotype), 1:nrow(.)))
# freqGat <- freqData %>%
# gather(key = "Nodes", value = "Level", -Phenotype, -num, -Avg0, -Score, -absScore) %>%
# mutate(Nodes = factor(Nodes, levels = nds))
freqGat <- freqData %>%
gather(key = "Nodes", value = "Level",-Phenotype,-num,-Avg0) %>%
mutate(Nodes = factor(Nodes, levels = nds)) %>%
mutate(Level = ifelse(Level == "0", "-1", "1"))
breaks <- freqData %>%
mutate(n = 1:nrow(.)) %>%
split(freqData$Phenotype) %>% sapply(function(x) {
median(x$n) %>% round
})
breaks <- freqData$num[breaks]
# labels <- c("Terminal", "Hybrid")
labels <- c("Epithelial", "Mesenchymal", "Hybrid")
ggplot(freqGat, aes(
y = Nodes,
x = reorder(num,-as.numeric(Phenotype)),
fill = Level
)) +
geom_tile(aes(width = 0.1 + Avg0 / max(Avg0))) +
theme_Publication() +
theme(
axis.title.y = element_blank(),
# axis.text.y = element_text(angle = 90, hjust = 0.5),
axis.text.y = element_text(
size = rel(size),
vjust = 0.5,
hjust = 1
),
legend.position = "right",
legend.direction = "vertical",
axis.text.x = element_blank(),
axis.ticks.x = element_blank()
) +
scale_fill_manual(values = c("white", "black")) +
scale_x_discrete(breaks = breaks, labels = labels) +
# scale_y_reverse()+
labs(x = "", title = netNameKey[net])
setwd(plotFolder)
w1 <- 2 + length(nodes) * 0.25
if (!is.null(w))
w1 <- w
h1 <- 4.5 + nS * 0.03
if (!is.null(h))
h1 <- h
ggsave(paste0(net, "_stateFreq.png"),
width = h1,
height = w1)
freqData %>% filter(Phenotype == "H") %>% select(Avg0) %>% unlist %>% sum
}
#' Title
#'
#' @param net
#' @param plotFolder
#' @param w
#' @param h
#'
#' @return
#' @export
#'
#' @examples
signalCoherencePlot <- function(net,
plotFolder,
w = 10,
h = 6) {
phenKeyRev <- c(Epithelial = "E",
Mesenchymal = "M",
Hybrid = "H")
setwd(paste0(randRaw, "/", net, "/signalCoherence"))
df <- read_csv("wild_signalCoherence.csv", lazy = F)
df1 <- df %>% gather(key = "Phenotype",
value = "Conservation",-initState,
-initPhen,
-signal,
-Freq) %>%
mutate(initPhen = paste0("Init ", initPhen),
Phenotype = phenKeyRev[Phenotype])
ggplot(df1, aes(x = initState, y = signal, fill = Conservation)) +
geom_tile(height = 0.9, width = 0.9) + facet_grid(Phenotype ~ initPhen, scales = "free") +
theme_Publication() + scale_fill_viridis_c(limits = c(0, 1)) +
theme(axis.text.x = element_blank(),
legend.key.width = unit(0.7, "cm")) +
labs(
x = "State",
y = "Signal",
title = netNameKey[net],
fill = "Coherence"
)
setwd(plotFolder)
ggsave(paste0(net, "_signalCoherence.png"),
width = w,
height = h)
}
coherenceHeatmaps <- function(net)
{#browser()
setwd(plotFolder)
if(!dir.exists("coherencePlots"))
dir.create("coherencePlots")
setwd("coherencePlots")
freqFile <- paste0(randRaw, "/", net, "/", net, "_finFlagFreq.csv")
multiCohFile <- paste0(WTcoherence, "/", net, "_coherence.csv")
nodeCohFile <- paste0(randcompiled, "/", net, "_NodeStateCoherence.csv")
dfFreq <- read.csv(freqFile)
dfCoh <- read.csv(multiCohFile)
dfSingleCoh <- read.csv(nodeCohFile)
rownames(dfCoh) <- dfCoh$X
colnames(dfCoh) <- colnames(dfCoh) %>% str_remove("X") %>% str_remove_all("\\.")
dfCoh <- dfCoh[, -1] %>% t %>% data.frame %>% mutate(states = rownames(.))
dfCoh$states <- paste0("'", dfCoh$states, "'")
df <- merge(dfCoh, dfFreq, by = "states", all.x = T) %>%
select(-contains("Avg"), -flag, -contains("frust"), -contains("SD"), -Strength, -Partial,
-Epithelial, -Mesenchymal, -EMTScore, -coherence0)
df$phenotype <- paste0(df$phenotype, 1:nrow(df))
dfGat <- df %>% gather(key = "nPert", value = "Coherence", -states, -phenotype)
dfGat$nPert <- dfGat$nPert %>% str_remove("X") %>% as.numeric
dfGat$nPert <- dfGat$nPert/22
# dfGat$Phenotype <- paste0(dfGat$phenotype, 1:nrow(dfGat))
ggplot(dfGat, aes(x = nPert, y = phenotype,
fill = Coherence)) + geom_tile() +
scale_fill_viridis_c(limits = c(0,1)) + theme_Publication() +
scale_x_continuous(expand=c(0,0)) +
scale_y_discrete(expand=c(0,0)) +
theme(legend.position = "right", legend.direction = "vertical",
legend.key.height = unit(1, "cm"),
legend.key.width = unit(0.6,"cm"),
legend.title = element_text(hjust = 0.5),
panel.background = element_blank(),
plot.background = element_blank(), panel.grid = element_blank(),
axis.text.y = element_blank()) +
labs(x = "Level of Perturbation", y = "", fill = "Mean\nCoherence")
ggsave(paste0(net, "_coherenceMultiNode.png"), width = 6.5, height = 5)
dfCoh <- read.csv(nodeCohFile)
rownames(dfCoh) <- dfCoh$X
colnames(dfCoh) <- colnames(dfCoh) %>% str_remove("X") %>% str_remove_all("\\.")
dfCoh <- dfCoh[, -1] %>% t %>% data.frame %>% mutate(states = rownames(.))
dfCoh$states <- paste0("'", dfCoh$states, "'")
df <- merge(dfCoh, dfFreq, by = "states", all.x = T) %>%
select(-contains("Avg"), -flag, -contains("frust"), -contains("SD"),
-Score, -Partial,
-Epithelial, -Mesenchymal)
df$phenotype <- paste0(df$phenotype, 1:nrow(df))
dfGat <- df %>% gather(key = "Nodes", value = "Coherence", -states, -phenotype) %>%
mutate(Nodes = Nodes %>% str_replace_all(regex("\\W+"), ""))
setwd(paste0(randRaw, "/", net))
l <- groupCalc1(paste0(net, ".topo"))
nodesC <- l[[1]] %>% unlist
nodes <- dfGat$Nodes %>% unique
nodesS <- nodes[!(nodes %in% nodesC)]
setwd(cwd)
dfGat$Nodes <- dfGat$Nodes %>% factor(levels = c(nodesC, nodesS))
ggplot(dfGat, aes(x = Nodes, y = phenotype,
fill = Coherence)) + geom_tile() +
scale_fill_viridis_c(limits = c(0,1)) + theme_Publication() +
scale_x_discrete(expand=c(0,0)) +
scale_y_discrete(expand=c(0,0)) +
theme(legend.position = "right", legend.direction = "vertical",
legend.key.height = unit(1, "cm"),
legend.key.width = unit(0.6,"cm"),
legend.title = element_text(hjust = 0.5),
panel.background = element_blank(),
plot.background = element_blank(), panel.grid = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_text(angle = 90, hjust = 1, size = rel(0.6))) +
labs(x = "", y = "", fill = "Mean\nCoherence")
ggsave(paste0(net, "_coherenceSingleNode.png"), width = 6.5, height = 5)
print(net)
}