Initialization

# library(xlsx)
# install.packages("treemapify")

library(treemap)
library(dplyr)
library(ggplot2)
library(treemapify)

Import data

# funTable = read.xlsx("data/All_genes_and_with_geneExp NEW.xls",1)
funTable = read.csv("data/All_genes_and_with_geneExp.csv",1)

Clean data and tidy data

Filter out all ‘Groupsofgenes’ function category level 1.

clean_funTable = funTable#[,funTable$FuncName2 != ""]

up_pivot = clean_funTable %>% filter(log2FoldChange > 0 & FuncName1 != "Groupsofgenes") %>% group_by(FuncName1, FuncName2, FuncName3, FuncName4) %>% summarise(stat = length(stat))

down_pivot = clean_funTable %>% filter(log2FoldChange < 0 & FuncName1 != "Groupsofgenes") %>% group_by(FuncName1, FuncName2, FuncName3, FuncName4) %>% summarise(stat = length(stat))

Plots

First style

up_tm = treemap( up_pivot
                ,title = "Up regulated genes"
                ,index = c("FuncName1", "FuncName2")

                ,vSize = "stat"
                ,border.lwds = c(3, 2, 1)
                ,border.col = "white"
                ,fontsize.labels = c(30,18)
                ,overlap.labels  = 1
                ,bg.labels=c("transparent")
                ,align.labels = list(c("center","center") ,c("center", "bottom"))
                ,fontcolor.labels = c("black","white")
                ,palette = "HCL"
                ,inflate.labels = T
                ,lowerbound.cex.labels = 0.2                )

dn_tm = treemap( down_pivot
                ,title = "Down regulated genes"
                ,index = c("FuncName1", "FuncName2")
                
                ,vSize = "stat"
                ,border.lwds = c(3, 2, 1)
                ,border.col = "white"
                ,fontsize.labels = c(30,18)
                ,overlap.labels  = 1
                ,bg.labels=c("transparent")
                ,align.labels = list(c("center","center") ,c("center", "bottom"))
                ,fontcolor.labels = c("black","white")
                ,palette = "HCL"
                ,inflate.labels = T
                ,lowerbound.cex.labels = 0.2
                # ,position.legend = "bottom"
                
                )

Another Style

All categories with less then 11 hits filtered out.

ggplot(up_pivot[up_pivot$stat > 10,], aes(area = stat, label = FuncName2, subgroup = FuncName1, fill = FuncName1, subgroup2 = FuncName2)) + 
  geom_treemap() + 
  geom_treemap_subgroup_border(color = "white") +
  geom_treemap_subgroup_text(alpha = 1, grow = F, place = "center", color = "white") + 
  # geom_treemap_subgroup2_border() +
  geom_treemap_subgroup2_text(alpha = 0.7, grow = T, place = "center") + 
  # geom_treemap_text(place = "centre", grow = T) +
  theme(legend.position="none") + 
  ggtitle("up regulated genes functions")+ 
  scale_fill_brewer(palette = "Set2")

ggplot(down_pivot[down_pivot$stat > 10,]
       ,aes(area = stat, label = FuncName2, subgroup = FuncName1, fill = FuncName1, subgroup2 = FuncName2)) + 
  geom_treemap() + 
  geom_treemap_subgroup_border(color = "white") +
  geom_treemap_subgroup_text(alpha = 1, grow = F, place = "center", color = "white") + 
  # geom_treemap_subgroup2_border() +
  geom_treemap_subgroup2_text(alpha = 0.7, grow = T, place = "center") +
  # geom_treemap_text(place = "centre", grow = T) +
  theme(legend.position="none") + 
  ggtitle("down regulated genes functions") + 
  scale_fill_brewer(palette = "Set2") 

Source code git repo available here.