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.spleen <- log.tdata.FPKM.sample.info %>% rownames_to_column() %>% filter(Tissue == "Spleen") %>% column_to_rownames()

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

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

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

MEs0 <- read.csv(here("Data","Spleen","log.tdata.FPKM.sample.info.subset.spleen.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$tan4,MEs$mediumpurple1,MEs$palevioletred3))
colnames(Sigmodules) <- c("tan4","mediumpurple1","palevioletred3")

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

tan4

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.2075 0.4581 0.7648 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.2764 0.3186 1.037 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.6849 0.004843 3.389 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6754 0.005723 -3.302 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.6607 0.007331 -3.174 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.6849 0.004843 -3.389 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6754 0.005723 -3.302 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.2764 0.3186 1.037 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.1407 0.6169 0.5125 16 1 pearson

NULL

mediumpurple1

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.1174 0.6768 -0.4264 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.1628 0.5622 -0.5947 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.6892 0.00448 3.43 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6972 0.003868 -3.506 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.6923 0.004231 -3.459 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.6892 0.00448 -3.43 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.6972 0.003868 -3.506 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.1628 0.5622 -0.5947 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.1857 0.5075 -0.6816 16 1 pearson

NULL

palevioletred3

Treatment

Partial Correlation Treatment

estimate p.value statistic n gp Method
-0.2073 0.4585 -0.7639 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.2434 0.3821 -0.9046 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.5485 0.03424 -2.365 16 1 pearson

NULL

Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.5356 0.03963 2.287 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
0.5239 0.045 2.218 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
0.5485 0.03424 2.365 16 1 pearson

NULL

Treat.Time

Partial Correlation Treatment

estimate p.value statistic n gp Method
0.5356 0.03963 2.287 16 1 pearson

NULL

Partial Correlation Time

estimate p.value statistic n gp Method
-0.2434 0.3821 -0.9046 16 1 pearson

NULL

Partial Correlation Treat.Time

estimate p.value statistic n gp Method
-0.1541 0.5834 -0.5624 16 1 pearson

NULL

Scatterplots Module membership vs. Gene significance

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

Time

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

black

thistle1

mediumpurple

moccasin

indianred4

blue3

orangered4

darkgreen

lightblue2

cornflowerblue

pink2

blue2

tan4

brown4

darkseagreen4

coral2

grey

sienna2

indianred2

mediumpurple1

lightskyblue4

royalblue3

orange

plum

mediumorchid

darkseagreen3

indianred1

thistle3

palevioletred3

slateblue1

Treatment

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

black

thistle1

mediumpurple

moccasin

indianred4

blue3

orangered4

darkgreen

lightblue2

cornflowerblue

pink2

blue2

tan4

brown4

darkseagreen4

coral2

grey

sienna2

indianred2

mediumpurple1

lightskyblue4

royalblue3

orange

plum

mediumorchid

darkseagreen3

indianred1

thistle3

palevioletred3

slateblue1

Treatment by Time

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

black

thistle1

mediumpurple

moccasin

indianred4

blue3

orangered4

darkgreen

lightblue2

cornflowerblue

pink2

blue2

tan4

brown4

darkseagreen4

coral2

grey

sienna2

indianred2

mediumpurple1

lightskyblue4

royalblue3

orange

plum

mediumorchid

darkseagreen3

indianred1

thistle3

palevioletred3

slateblue1


Analysis performed by Ann Wells

The Carter Lab The Jackson Laboratory 2023

ann.wells@jax.org