## ----table1, echo = FALSE, results = 'asis'------------------------------
toy<-data.frame(Name=c('EC$eset','EC$genelist','EC$david','EC$genes','EC$process'),Description=c('Data frame of normalized expression values of brain and heart endothelial cells (3 replicates)','Data frame of differentially expressed genes (adjusted p-value < 0.05)','Data frame of results from a functional analysis of the differentially expressed genes performed with DAVID','Data frame of selected genes with logFC','Character vector of selected enriched biological processes'),Dimension=c('20644 x 7','2039 x 7','174 x 5','37 x 2','7'))
knitr::kable(toy, colnames=c('Name','Description','Dimension (row, col)'))

## ----glimpse, warning = FALSE, message = FALSE---------------------------
library(GOplot)
# Load the dataset
data(EC)
# Get a glimpse of the data format of the results of the functional analysis... 
head(EC$david)
# ...and of the data frame of selected genes
head(EC$genelist)

## ----circ_object, warning = FALSE, message = FALSE-----------------------
# Generate the plotting object
circ <- circle_dat(EC$david, EC$genelist)

## ----GOBar, warning = FALSE, message = FALSE, fig.width = 8.3, fig.height = 6----
# Generate a simple barplot
GOBar(subset(circ, category == 'BP'))

## ----GOBar2, eval = FALSE, warning = FALSE, message = FALSE--------------
#  # Facet the barplot according to the categories of the terms
#  GOBar(circ, display = 'multiple')

## ----GOBar3, eval = FALSE, warning = FALSE, message = FALSE--------------
#  # Facet the barplot, add a title and change the colour scale for the z-score
#  GOBar(circ, display = 'multiple', title = 'Z-score coloured barplot', zsc.col = c('yellow', 'black', 'cyan'))

## ----GOBubble1, warning = FALSE, message = FALSE, fig.keep = 'none'------
# Generate the bubble plot with a label threshold of 3
GOBubble(circ, labels = 3)

## ----GOBubble2, warning = FALSE, message = FALSE, fig.keep = 'none'------
# Add a title, change the colour of the circles, facet the plot according to the categories and change the label threshold
GOBubble(circ, title = 'Bubble plot', colour = c('orange', 'darkred', 'gold'), display = 'multiple', labels = 3)

## ----GOBubble3, warning = FALSE, message = FALSE, fig.keep = 'none'------
# Colour the background according to the category
GOBubble(circ, title = 'Bubble plot with background colour', display = 'multiple', bg.col = T, labels = 3)

## ----GOBubble4, warning = FALSE, message = FALSE, fig.keep = 'none', eval = FALSE----
#  # Reduce redundant terms with a gene overlap >= 0.75...
#  reduced_circ <- reduce_overlap(circ, overlap = 0.75)
#  # ...and plot it
#  GOBubble(reduced_circ, labels = 2.8)

## ----GOCircle1, warning = FALSE, message = FALSE, fig.keep = 'none'------
# Generate a circular visualization of the results of gene- annotation enrichment analysis
GOCircle(circ)

## ----GOCircle2, eval = FALSE---------------------------------------------
#  # Generate a circular visualization of selected terms
#  IDs <- c('GO:0007507', 'GO:0001568', 'GO:0001944', 'GO:0048729', 'GO:0048514', 'GO:0005886', 'GO:0008092', 'GO:0008047')
#  GOCircle(circ, nsub = IDs)

## ----GOCircle3, eval = FALSE---------------------------------------------
#  # Generate a circular visualization for 10 terms
#  GOCircle(circ, nsub = 10)

## ----GOChord1, warning = FALSE, message = FALSE--------------------------
# Define a list of genes which you think are interesting to look at. The item EC$genes of the toy 
# sample contains the data frame of selected genes and their logFC. Have a look...
head(EC$genes)
# Since we have a lot of significantly enriched processes we selected some specific ones (EC$process)
EC$process
# Now it is time to generate the binary matrix
chord <- chord_dat(circ, EC$genes, EC$process)
head(chord)

## ----GOChord2, eval=FALSE, warning = FALSE, message = FALSE--------------
#  # Generate the matrix with a list of selected genes
#  chord <- chord_dat(data = circ, genes = EC$genes)
#  # Generate the matrix with selected processes
#  chord <- chord_dat(data = circ, process = EC$process)

## ----GOChord3, warning = FALSE, message = FALSE, fig.keep = 'none'-------
# Create the plot
GOChord(chord, space = 0.02, gene.order = 'logFC', gene.space = 0.25, gene.size = 5)

## ----GOChord4, warning = FALSE, message = FALSE, fig.keep = 'none'-------
# Display only genes which are assigned to at least three processes
GOChord(chord, limit = c(3, 0), gene.order = 'logFC')

## ----GOHeat1, warning = FALSE, message = FALSE, fig.keep = 'none'--------
# First, we use the chord object without logFC column to create the heatmap
GOHeat(chord[,-8], nlfc = 0)

## ----GOHeat2, warning = FALSE, message = FALSE, fig.keep = 'none'--------
# First, we use the chord object without logFC column to create the heatmap
GOHeat(chord, nlfc = 1, fill.col = c('red', 'yellow', 'green'))

## ----GOCluster, warning=FALSE, eval=FALSE, message=FALSE, fig.keep='none'----
#  GOCluster(circ, EC$process, clust.by = 'logFC', term.width = 2)

## ----GOCluster2, warning=FALSE, eval=FALSE, message=FALSE, fig.keep='none'----
#  GOCluster(circ, EC$process, clust.by = 'term', lfc.col = c('darkgoldenrod1', 'black', 'cyan1'))

## ----GOVenn, warning=FALSE, message=FALSE, fig.keep='none'---------------
l1 <- subset(circ, term == 'heart development', c(genes,logFC))
l2 <- subset(circ, term == 'plasma membrane', c(genes,logFC))
l3 <- subset(circ, term == 'tissue morphogenesis', c(genes,logFC))
GOVenn(l1,l2,l3, label = c('heart development', 'plasma membrane', 'tissue morphogenesis'))