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","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.skeletal.muscle <- log.tdata.FPKM.sample.info %>% rownames_to_column() %>% filter(Tissue == "Skeletal Muscle") %>% column_to_rownames()

log.tdata.FPKM.subset <- subset(log.tdata.FPKM.sample.info.subset.skeletal.muscle, select = -c(Time,Treatment,Tissue))
  
WGCNA.pathway <-readRDS(here("Data","Skeletal Muscle","Chang_B6_96hr_4wk_gprofiler_pathway_annotation_list_skeletal_muscle_WGCNA.RData"))

Matched<-readRDS(here("Data","Skeletal Muscle","Annotated_genes_in_skeletal_muscle_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.skeletal.muscle[,27238]))
Time <- unclass(as.factor(log.tdata.FPKM.sample.info.subset.skeletal.muscle[,27237]))
Treat.Time <- paste0(Treatment, Time)
phenotype <- data.frame(cbind(Treatment, Time, Treat.Time))

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

MEs0 <- read.csv(here("Data","Skeletal Muscle","log.tdata.FPKM.sample.info.subset.skeletal.muscle.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$grey,MEs$salmon2,MEs$navajowhite1,MEs$darkseagreen,MEs$firebrick4))
colnames(Sigmodules) <- c("grey","salmon2","navajowhite1","darkseagreen","firebrick4")

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")
}

grey

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.5862 0.02759 -2.506 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.589 0.02667 -2.525 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.0004231 0.9989 0.001466 15 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.07311 0.8038 -0.2539 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.01721 0.9534 -0.05963 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.0004231 0.9989 -0.001466 15 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.07311 0.8038 -0.2539 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.589 0.02667 -2.525 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.5892 0.02662 -2.526 15 1 pearson

NULL

salmon2

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6611 0.01004 -3.053 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.6766 0.007882 -3.183 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.4441 0.1117 -1.717 15 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.3735 0.1883 1.395 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.3268 0.2542 1.198 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.4441 0.1117 1.717 15 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.3735 0.1883 1.395 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.6766 0.007882 -3.183 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.6298 0.01579 -2.809 15 1 pearson

NULL

darkseagreen

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.4906 0.07487 1.95 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.4899 0.07536 1.947 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.05127 0.8618 0.1779 15 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.004966 0.9866 0.0172 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.03073 0.9169 -0.1065 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.05127 0.8618 -0.1779 15 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.004966 0.9866 0.0172 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.4899 0.07536 1.947 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.4886 0.07626 1.94 15 1 pearson

NULL

firebrick4

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.04416 0.8808 0.1531 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.005498 0.9851 0.01905 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.5543 0.03971 2.307 15 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.5531 0.04021 -2.3 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.5543 0.03968 -2.307 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.5543 0.03971 -2.307 15 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.5531 0.04021 -2.3 15 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.005498 0.9851 0.01905 15 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.0113 0.9694 -0.03914 15 1 pearson

NULL

Scatterplots Module membership vs. Gene significance

Time

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

grey

saddlebrown

salmon2

thistle1

plum3

brown4

yellow4

magenta4

honeydew1

floralwhite

sienna4

lightcyan1

turquoise

orangered4

coral

mediumpurple3

lightpink4

purple

orangered1

darkseagreen3

antiquewhite2

green

lightpink3

grey60

brown2

orangered3

honeydew

coral2

bisque4

lightcoral

lightsteelblue1

palevioletred2

lavenderblush2

skyblue4

darkslateblue

coral3

firebrick4

darkgrey

Treatment

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

grey

saddlebrown

salmon2

thistle1

plum3

brown4

yellow4

magenta4

honeydew1

floralwhite

sienna4

lightcyan1

turquoise

orangered4

coral

mediumpurple3

lightpink4

purple

orangered1

darkseagreen3

antiquewhite2

green

lightpink3

grey60

brown2

orangered3

honeydew

coral2

bisque4

lightcoral

lightsteelblue1

palevioletred2

lavenderblush2

skyblue4

darkslateblue

coral3

firebrick4

darkgrey

Treatment by Time

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

grey

saddlebrown

salmon2

thistle1

plum3

brown4

yellow4

magenta4

honeydew1

floralwhite

sienna4

lightcyan1

turquoise

orangered4

coral

mediumpurple3

lightpink4

purple

orangered1

darkseagreen3

antiquewhite2

green

lightpink3

grey60

brown2

orangered3

honeydew

coral2

bisque4

lightcoral

lightsteelblue1

palevioletred2

lavenderblush2

skyblue4

darkslateblue

coral3

firebrick4

darkgrey


Analysis performed by Ann Wells

The Carter Lab The Jackson Laboratory 2023

ann.wells@jax.org