## -----------------------------------------------------------------------------
library(geneplast)
data(gpdata.gs)

## ----label='newOgp', eval=TRUE------------------------------------------------
ogp <- gplast.preprocess(cogdata=cogdata, sspids=sspids, cogids=cogids, verbose=FALSE)

## ----label='gplastTest', eval=TRUE--------------------------------------------
ogp <- gplast(ogp, verbose=FALSE)

## ----label='gplastRes', eval=TRUE---------------------------------------------
res <- gplast.get(ogp, what="results")
head(res)

## ----label='newOgr', eval=TRUE------------------------------------------------
ogr <- groot.preprocess(cogdata=cogdata, phyloTree=phyloTree, spid="9606", verbose=FALSE)

## ----label='grootTest', eval=TRUE---------------------------------------------
set.seed(1)
ogr <- groot(ogr, nPermutations=100, verbose=FALSE)
# Note: nPermutations is set to 100 for demonstration purposes; please set nPermutations=1000

## ----label='grootRes1', eval=TRUE---------------------------------------------
res <- groot.get(ogr, what="results")
head(res)

## ----label='grootRes2', eval=TRUE---------------------------------------------
groot.plot(ogr, whichOG="NOG40170")

## ----label='rootRes', eval=TRUE-----------------------------------------------
groot.plot(ogr, plot.lcas = TRUE)

## ----eval=FALSE---------------------------------------------------------------
# # source("https://bioconductor.org/biocLite.R")
# # biocLite("geneplast.data.string.v91")
# library(geneplast.data.string.v91)
# data(gpdata_string_v91)

## ----eval=FALSE---------------------------------------------------------------
# ogr <- groot.preprocess(cogdata=cogdata, phyloTree=phyloTree, spid="9606")

## ----eval=FALSE---------------------------------------------------------------
# ogr <- groot(ogr, nPermutations=100, verbose=TRUE)

## ----eval=FALSE---------------------------------------------------------------
# library(RedeR)
# library(igraph)
# library(RColorBrewer)
# data(ppi.gs)

## ----eval=FALSE---------------------------------------------------------------
# g <- ogr2igraph(ogr, cogdata, ppi.gs, idkey = "ENTREZ")

## ----eval=FALSE---------------------------------------------------------------
# pal <- brewer.pal(9, "RdYlBu")
# color_col <- colorRampPalette(pal)(25)
# g <- att.setv(g=g, from="Root", to="nodeColor",
#               cols=color_col, na.col="grey80",
#               breaks=seq(1,25))

## ----eval=FALSE---------------------------------------------------------------
# g <- att.setv(g = g, from = "SYMBOL", to = "nodeAlias")
# E(g)$edgeColor <- "grey80"
# V(g)$nodeLineColor <- "grey80"

## ----eval=FALSE---------------------------------------------------------------
# rdp <- RedPort()
# calld(rdp)
# resetd(rdp)
# addGraph(rdp, g)
# addLegend.color(rdp, colvec=g$legNodeColor$scale,
#                 size=15, labvec=g$legNodeColor$legend,
#                 title="Roots represented in Fig4")
# relax(rdp)

## ----eval=FALSE---------------------------------------------------------------
# myTheme <- list(nestFontSize=25, zoom=80, isNest=TRUE, gscale=65, theme=2)
# nestNodes(rdp, nodes=V(g)$name[V(g)$Apoptosis==1],
#           theme=c(myTheme, nestAlias="Apoptosis"))
# nestNodes(rdp, nodes=V(g)$name[V(g)$GenomeStability==1],
#           theme=c(myTheme, nestAlias="Genome Stability"))
# relax(rdp, p1=50, p2=50, p3=50, p4=50, p5= 50)

## ----eval=FALSE---------------------------------------------------------------
# library(RTN)
# library(Fletcher2013b)
# library(RedeR)
# library(igraph)
# library(RColorBrewer)
# data("rtni1st")

## ----eval=FALSE---------------------------------------------------------------
# regs <- c("FOXM1","PTTG1")
# g <- tni.graph(rtni1st, gtype = "rmap", regulatoryElements = regs)

## ----eval=FALSE---------------------------------------------------------------
# g <- ogr2igraph(ogr, cogdata, g, idkey = "ENTREZ")

## ----eval=FALSE---------------------------------------------------------------
# pal <- brewer.pal(9, "RdYlBu")
# color_col <- colorRampPalette(pal)(25)
# g <- att.setv(g=g, from="Root", to="nodeColor",
#               cols=color_col, na.col = "grey80",
#               breaks = seq(1,25))

## ----eval=FALSE---------------------------------------------------------------
# idx <- V(g)$SYMBOL %in% regs
# V(g)$nodeFontSize[idx] <- 30
# V(g)$nodeFontSize[!idx] <- 1
# E(g)$edgeColor <- "grey80"
# V(g)$nodeLineColor <- "grey80"

## ----eval=FALSE---------------------------------------------------------------
# rdp <- RedPort()
# calld(rdp)
# resetd(rdp)
# addGraph(rdp, g, layout=NULL)
# addLegend.color(rdp, colvec=g$legNodeColor$scale,
#                 size=15, labvec=g$legNodeColor$legend,
#                 title="Roots represented in Fig4")
# relax(rdp, 15, 100, 20, 50, 10, 100, 10, 2)

## ----label='runtime', eval=FALSE----------------------------------------------
# #--- Load ggplot
# library(ggplot2)
# library(ggthemes)
# library(egg)
# library(data.table)
# 
# #--- Load cogdata
# data(gpdata.gs)
# 
# #--- Get "OGs" that include a ref. species (e.g. "9606")
# cogids <- unique(cogdata$cog_id[cogdata$ssp_id=="9606"])
# length(cogids)
# # [1] 142
# 
# #--- Make a function to check runtime for different input sizes
# check.rooting.runtime <- function(n){
#   cogids.subset <- cogids[1:n]
#   cogdata.subset <- cogdata[cogdata$cog_id%in%cogids.subset,]
#   rt1 <- system.time(
#     ogr <- groot.preprocess(cogdata=cogdata.subset, phyloTree=phyloTree,
#                             spid="9606", verbose=FALSE)
#   )["elapsed"]
#   rt2 <- system.time(
#     ogr <- groot(ogr, nPermutations=100, verbose=FALSE)
#   )["elapsed"]
#   rtime <- c(rt1,rt2)
#   names(rtime) <- c("runtime.preprocess","runtime.groot")
#   return(rtime)
# }
# # check.rooting.runtime(n=5)
# 
# #--- Run check.rooting.runtime() for different input sizes (x3 iterations)
# input_size <- seq.int(10,length(cogids),10)
# iterations <- 1:3
# elapsed_lt <- lapply(iterations, function(i){
#   print(paste0("Iteration ",i))
#   it <- sapply(input_size, function(n){
#     print(paste0("- size...",n))
#     check.rooting.runtime(n)
#   })
# })
# 
# #--- Get 'preprocess' runtime
# runtime.preprocess <- sapply(elapsed_lt, function(lt){
#   lt["runtime.preprocess",]
# })
# runtime.preprocess <- data.frame(InputSize=input_size, runtime.preprocess)
# runtime.preprocess <- melt(as.data.table(runtime.preprocess), "InputSize")
# colnames(runtime.preprocess) <- c("Input.Size","Iteration","Elapsed.Time")
# 
# #--- Get 'groot' runtime
# runtime.groot <- sapply(elapsed_lt, function(lt){
#   lt["runtime.groot",]
# })
# runtime.groot <- data.frame(InputSize=input_size, runtime.groot)
# runtime.groot <- melt(as.data.table(runtime.groot), "InputSize")
# colnames(runtime.groot) <- c("Input.Size","Iteration","Elapsed.Time")
# 
# #--- Plot runtime results
# cls <- c("#69b3a2",adjustcolor("#69b3a2", alpha=0.5))
# gg1 <- ggplot(runtime.preprocess, aes(x=Input.Size, y=Elapsed.Time)) +
#   geom_smooth(method=loess, se=TRUE) +
#   geom_point(color=cls[1], fill=cls[2], size=3, shape=21) +
#   scale_x_continuous(breaks=pretty(runtime.preprocess$Input.Size)) +
#   scale_y_continuous(breaks=pretty(runtime.preprocess$Elapsed.Time)) +
#   theme_pander() + labs(title="groot.preprocess()") +
#   xlab("Input size (n)") + ylab("Elapsed time (s)") +
#   theme(aspect.ratio=1, plot.title=element_text(size=12))
# gg2 <- ggplot(runtime.groot, aes(x=Input.Size, y=Elapsed.Time)) +
#   geom_smooth(method=loess, se=TRUE) +
#   geom_point(color=cls[1], fill=cls[2], size=3, shape=21) +
#   scale_x_continuous(breaks=pretty(runtime.groot$Input.Size)) +
#   scale_y_continuous(breaks=pretty(runtime.groot$Elapsed.Time)) +
#   theme_pander() + labs(title="groot()") +
#   xlab("Input size (n)") + ylab("Elapsed time (s)") +
#   theme(aspect.ratio=1, plot.title=element_text(size=12))
# grid.arrange(gg1, gg2, nrow = 1)
# # pdf(file = "rooting_runtime.pdf", width = 7, height = 3)
# # grid.arrange(gg1, gg2, nrow = 1)
# # dev.off()

## ----label='Session information', eval=TRUE, echo=FALSE-----------------------
sessionInfo()