Introduction and Data files

This dataset contains nine tissues (heart, hippocampus, hypothalamus, kidney, liver, prefrontal cortex, skeletal muscle, small intestine, and spleen) from C57BL/6J mice that were fed 2-deoxyglucose (6g/L) through their drinking water for 96hrs or 4wks. 96hr mice were given their 2DG treatment 2 weeks after the other cohort started the 4 week treatment. The organs from the mice were harvested and processed for metabolomics and transcriptomics. The data in this document pertains to the transcriptomics data only. The counts that were used were FPKM normalized before being log transformed. It was determined that sample A113 had low RNAseq quality and through further analyses with PCA, MA plots, and clustering was an outlier and will be removed for the rest of the analyses performed. This document will determine the contribution of each main effect or their combination to each module identified, as well as the relationship of each gene within the module and its significance.

needed.packages <- c("tidyverse", "here", "functional", "gplots", "dplyr", "GeneOverlap", "R.utils", "reshape2","magrittr","data.table", "RColorBrewer","preprocessCore", "ARTool","emmeans", "phia", "gProfileR", "WGCNA","plotly", "pheatmap","ppcor", "pander","colorBlindness","downloadthis")
for(i in 1:length(needed.packages)){library(needed.packages[i], character.only = TRUE)}

source(here("source_files","WGCNA_source.R"))
source(here("source_files","WGCNA_contribution_source.R"))
tdata.FPKM.sample.info <- readRDS(here("Data","20190406_RNAseq_B6_4wk_2DG_counts_phenotypes.RData"))

tdata.FPKM <- readRDS(here("Data","20190406_RNAseq_B6_4wk_2DG_counts_numeric.RData"))

log.tdata.FPKM <- log(tdata.FPKM + 1)
log.tdata.FPKM <- as.data.frame(log.tdata.FPKM)

log.tdata.FPKM.sample.info <- cbind(log.tdata.FPKM, tdata.FPKM.sample.info[,27238:27240])

log.tdata.FPKM.sample.info <- log.tdata.FPKM.sample.info %>% rownames_to_column() %>% filter(rowname != "A113") %>% column_to_rownames()

log.tdata.FPKM.subset <- log.tdata.FPKM[,colMeans(log.tdata.FPKM != 0) > 0.5] 

log.tdata.FPKM.subset <- log.tdata.FPKM.subset %>% rownames_to_column() %>% filter(rowname != "A113") %>% column_to_rownames()

log.tdata.FPKM.sample.info.subset.heart <- log.tdata.FPKM.sample.info %>% rownames_to_column() %>% filter(Tissue == "Heart") %>% column_to_rownames()

log.tdata.FPKM.subset <- subset(log.tdata.FPKM.sample.info.subset.heart, select = -c(Time,Treatment,Tissue))
  
WGCNA.pathway <-readRDS(here("Data","Heart","Chang_B6_96hr_4wk_gprofiler_pathway_annotation_list_heart_WGCNA.RData"))

Matched<-readRDS(here("Data","Heart","Annotated_genes_in_heart_WGCNA_Chang_B6_96hr_4wk.RData"))


module.names <- Matched$X..Module.
name <- str_split(module.names,"_")
samples <-c()
for(i in 1:length(name)){
samples[[i]] <- name[[i]][2]
}  
name <- str_split(samples,"\"")
name <- unlist(name)

Treatment <- unclass(as.factor(log.tdata.FPKM.sample.info.subset.heart[,27238]))
Time <- unclass(as.factor(log.tdata.FPKM.sample.info.subset.heart[,27237]))
Treat.Time <- paste0(Treatment, Time)
phenotype <- data.frame(cbind(Treatment, Time, Treat.Time))

nSamples <- nrow(log.tdata.FPKM.sample.info.subset.heart)

MEs0 <- read.csv(here("Data","Heart","log.tdata.FPKM.sample.info.subset.heart.WGCNA.module.eigens.csv"),header = T, row.names = 1)
name <- str_split(names(MEs0),"_")
samples <-c()
for(i in 1:length(name)){
samples[[i]] <- name[[i]][2]
}  
name <- str_split(samples,"\"")
name <- unlist(name)
colnames(MEs0) <-name
MEs <- orderMEs(MEs0)
moduleTraitCor <- cor(MEs, phenotype, use = "p");
moduleTraitPvalue <- corPvalueStudent(moduleTraitCor, nSamples)

Relationship between Modules and Traits

#sizeGrWindow(10,6)
# Will display correlations and their p-values
textMatrix = paste(signif(moduleTraitCor, 2), "\n(",
                        signif(moduleTraitPvalue, 1), ")", sep = "");
dim(textMatrix) = dim(moduleTraitCor)

# Display the correlation values within a heatmap plot
heat <- pheatmap(moduleTraitCor, main = paste("Module-trait relationships"),color=colorRampPalette(brewer.pal(n = 12, name = "Paired"))(10), cluster_rows = F, cluster_cols = F, fontsize_number = 4, angle_col = 45, number_color = "black", border_color = "white")
heat

DT::datatable(moduleTraitPvalue, extensions = 'Buttons',
                  rownames = TRUE, 
                  filter="top",
                  options = list(dom = 'Blfrtip',
                                 buttons = c('copy', 'csv', 'excel'),
                                 lengthMenu = list(c(10,25,50,-1),
                                                   c(10,25,50,"All")), 
                                 scrollX= TRUE), class = "display")

Partial Correlation

phenotype$Treatment <- as.numeric(phenotype$Treatment)
phenotype$Time <- as.numeric(phenotype$Time)
phenotype$Treat.Time <- as.numeric(phenotype$Treat.Time)

Sigmodules <- as.data.frame(cbind(MEs$darkorange,MEs$darkgreen,MEs$plum1))
colnames(Sigmodules) <- c("darkorange", "darkgreen","plum1")

for(i in 1:length(Sigmodules)){
   cat("\n##",colnames(Sigmodules[i]),"{.tabset .tabset-fade .tabset-pills}","\n")
   for(j in 1:length(phenotype)){
      cat("\n###", colnames(phenotype[j]),"{.tabset .tabset-fade .tabset-pills}","\n")
      for(k in 1:length(phenotype)){
         cat("\n####", "Partial Correlation", colnames(phenotype[k]),"\n")
         partial <- pcor.test(Sigmodules[,i], phenotype[,j],phenotype[,k])
         panderOptions('knitr.auto.asis', FALSE)
         print(pander(partial))
         cat("\n \n")
      }
      cat("\n \n")
   }
   cat("\n \n")
}

darkorange

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.8542 5.033e-05 -5.924 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.9038 3.825e-06 -7.614 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.5103 0.05195 2.139 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6282 0.01214 -2.911 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.3266 0.2347 -1.246 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.5103 0.05195 -2.139 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6282 0.01214 -2.911 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.9038 3.825e-06 -7.614 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.8825 1.332e-05 -6.765 16 1 pearson

NULL

darkgreen

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.8697 2.525e-05 6.353 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.8847 1.183e-05 6.843 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.5064 0.05407 2.117 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.3717 0.1725 -1.444 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.1835 0.5127 -0.673 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.5064 0.05407 -2.117 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.3717 0.1725 -1.444 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.8847 1.183e-05 6.843 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.8471 6.736e-05 5.748 16 1 pearson

NULL

plum1

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.06415 0.8203 0.2318 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.09098 0.7471 0.3294 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.7119 0.002907 3.655 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.7105 0.00299 -3.641 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.7091 0.003078 -3.626 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.7119 0.002907 -3.655 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.7105 0.00299 -3.641 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.09098 0.7471 0.3294 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.006722 0.981 -0.02424 16 1 pearson

NULL

Scatterplots Module membership vs. Gene significance

Time

time.contribution(phenotype, log.tdata.FPKM.subset, MEs)

yellowgreen

steelblue

plum1

saddlebrown

violet

brown

lightyellow

lightsteelblue1

darkorange

black

cyan

royalblue

darkturquoise

darkmagenta

darkred

mediumpurple3

pink

skyblue

skyblue3

paleturquoise

darkgreen

lightcyan1

sienna3

lightgreen

darkgrey

Treatment

treat.contribution(phenotype, log.tdata.FPKM.subset, MEs)

yellowgreen

steelblue

plum1

saddlebrown

violet

brown

lightyellow

lightsteelblue1

darkorange

black

cyan

royalblue

darkturquoise

darkmagenta

darkred

mediumpurple3

pink

skyblue

skyblue3

paleturquoise

darkgreen

lightcyan1

sienna3

lightgreen

darkgrey

Treatment by Time

treat.time.contribution(phenotype, log.tdata.FPKM.subset, MEs)

yellowgreen

steelblue

plum1

saddlebrown

violet

brown

lightyellow

lightsteelblue1

darkorange

black

cyan

royalblue

darkturquoise

darkmagenta

darkred

mediumpurple3

pink

skyblue

skyblue3

paleturquoise

darkgreen

lightcyan1

sienna3

lightgreen

darkgrey


Analysis performed by Ann Wells

The Carter Lab The Jackson Laboratory 2023

ann.wells@jax.org