suppressPackageStartupMessages({
library(SummarizedExperiment)
library(SEtools)
library(edgeR)
library(DT)
library(pheatmap)
library(plotly)
library(dplyr)
library(sva)
library(lme4)
library(lmerTest)
})source("Functions/EDC_Functions.R")
source("Functions/CriFormatted.R")
<- read.table("Data/Stainings/KI67/CNT.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
CNT $Expo <- "CNT"
CNT
<- read.table("Data/Stainings/KI67/DMSO.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
DMSO $Expo <- "DMSO"
DMSO
<- read.table("Data/Stainings/KI67/T3.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
T3 $Expo <- "T3"
T3
<- read.table("Data/Stainings/KI67/BPA.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
BPA $Expo <- "BPA"
BPA
<- read.table("Data/Stainings/KI67/MixN1X.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
MixN1X $Expo <- "MixN1X"
MixN1X
<- read.table("Data/Stainings/KI67/MixN1000X.txt",header = F, sep="\t")
KI <- as.data.frame(strsplit(as.character(KI$V1),":"))
KI <- as.data.frame(KI[2,c(2:5)], row.names = as.character(KI[1,1]))
a colnames(a)=c("DAPI low thresh", "KI67 low thresh","Area KI67","Area DAPI")
for (i in 2:(length(colnames(KI))/6))
{<- as.data.frame(KI[2,c(2:5)+ 6*i -6], row.names = as.character(KI[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
MixN1000X $Expo <- "MixN1000X"
MixN1000X
<- rbind(CNT,DMSO,T3,BPA,MixN1X,MixN1000X)
KI $`DAPI low thresh`<- as.numeric(as.character(KI$`DAPI low thresh`))
KI$`KI67 low thresh`<- as.numeric(as.character(KI$`KI67 low thresh`))
KI$`Area KI67`<- as.numeric(as.character(KI$`Area KI67`))
KI$`Area DAPI`<- as.numeric(as.character(KI$`Area DAPI`))
KI$ratio <- KI$`Area KI67`/KI$`Area DAPI` KI
#boxplot(KI67$ratio~KI67$Expo)
#KI$Expo <- factor(KI$Expo, levels=unique(KI$Expo))
$Expo <- factor(KI$Expo, levels=c("CNT","DMSO","MixN1X","MixN1000X","BPA","T3" ))
KI#KI$Expo <- factor(KI$Expo, levels=c("Y", "X", "Z"))
ggplot(KI, aes(x=Expo, y=ratio, color=Expo)) +
geom_violin() +
stat_summary(fun.data="mean_sdl", geom="crossbar", width=0.05) +
geom_jitter(shape=16, position=position_jitter(0.2)) +
ylab("KI67 positive area / DAPI positive area")
$organoid <- gsub("_[0-9]$","",row.names(KI))
KI<- lmer(log(`Area KI67`)~offset(log(`Area DAPI`))+(1|organoid)+Expo, data=KI)
mod coefficients(summary(mod))[-1,]
## Estimate Std. Error df t value Pr(>|t|)
## ExpoDMSO 0.06084015 0.2824066 18.84486 0.2154346 0.83174297
## ExpoMixN1X 0.41433678 0.2384650 19.89371 1.7375161 0.09775401
## ExpoMixN1000X 0.39949701 0.2402402 20.40155 1.6629068 0.11161885
## ExpoBPA 0.20304123 0.2863031 24.77179 0.7091827 0.48483288
## ExpoT3 -0.67238758 0.2824066 18.84486 -2.3809206 0.02798208
Pairwise mixed-model tests indicate a significant effect for T3, and for 1X. If we group the controls and MixN:
$expo2 <- KI$Expo
KIlevels(KI$expo2) <- c("CNT","CNT","MixN","MixN", "BPA", "T3")
<- lmer(log(`Area KI67`)~offset(log(`Area DAPI`))+(1|organoid)+expo2, data=KI)
mod coefficients(summary(mod))[-1,]
## Estimate Std. Error df t value Pr(>|t|)
## expo2MixN 0.3741480 0.1619093 21.93585 2.3108500 0.030627961
## expo2BPA 0.1758326 0.2398145 30.01963 0.7332026 0.469122194
## expo2T3 -0.7028077 0.2336407 20.47096 -3.0080708 0.006826492
$Expo <- factor(KI$Expo, levels=c("CNT","DMSO","MixN1X","MixN1000X","BPA","T3" ))
KI
<- c("CNT"="#0000FF", "DMSO"="#2900D5", "MixN1X"="#7E0080", "MixN1000X"="#FF0000", "BPA"="#117733", "T3"="yellow")
SampleColors <- ggplot(data=KI, aes(Expo,ratio, fill=Expo))+
plot geom_jitter(position=position_dodge(0.6), size=5, pch=21) +
stat_summary(fun.y=mean, fun.ymin=mean, fun.ymax=mean,
geom="crossbar", width=0.5, col='gray35', position=position_dodge(0.6)) +
scale_fill_manual(values=SampleColors) +
theme_bw() + xlab('') +
theme(plot.title = element_text(face='bold', colour='darkred', size=18, hjust=0.5),
axis.title=element_text(size=14), axis.text=element_text(size=12.5, angle=45, hjust=1)) +
ylab("KI67 positive area / DAPI positive area")+
xlab("Expo")
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.ymin` is deprecated. Use `fun.min` instead.
## Warning: `fun.ymax` is deprecated. Use `fun.max` instead.
plot
An alternative visualization for nested data:
<- aggregate(KI[,"ratio",drop=FALSE], by=KI[,c("Expo","organoid")], FUN=mean)
ag <- ggplot(data=KI, aes(Expo,ratio, fill=Expo))+
plot geom_jitter(width = 0.1, height = 0, alpha=0.3) +
geom_jitter(data=ag, width = 0.1, height = 0, size=5, pch=21) +
stat_summary(fun.y=mean, fun.ymin=mean, fun.ymax=mean,
geom="crossbar", width=0.5, col='gray35', position=position_dodge(0.6)) +
scale_fill_manual(values=SampleColors) +
theme_bw() + xlab('') +
theme(plot.title = element_text(face='bold', colour='darkred', size=18, hjust=0.5),
axis.title=element_text(size=14), axis.text=element_text(size=12.5, angle=45, hjust=1)) +
ylab("KI67 positive area / DAPI positive area")+
xlab("Expo")
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.ymin` is deprecated. Use `fun.min` instead.
## Warning: `fun.ymax` is deprecated. Use `fun.max` instead.
plot
<- read.table("Data/Stainings/DCX/CNT.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
CNT $Expo <- "CNT"
CNT
<- read.table("Data/Stainings/DCX/DMSO.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
DMSO $Expo <- "DMSO"
DMSO
<- read.table("Data/Stainings/DCX/T3.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
T3 $Expo <- "T3"
T3
<- read.table("Data/Stainings/DCX/BPA.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
BPA $Expo <- "BPA"
BPA
<- read.table("Data/Stainings/DCX/MixN1X.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
MixN1X $Expo <- "MixN1X"
MixN1X
<- read.table("Data/Stainings/DCX/MixN1000X.txt",header = F, sep="\t")
DCX <- as.data.frame(strsplit(as.character(DCX$V1),":"))
DCX <- as.data.frame(DCX[2,c(2:5)], row.names = as.character(DCX[1,1]))
a colnames(a)=c("DAPI low thresh", "DCX low thresh","Area DCX","Area DAPI")
for (i in 2:(length(colnames(DCX))/6))
{<- as.data.frame(DCX[2,c(2:5)+ 6*i -6], row.names = as.character(DCX[1,i*6 -5]))
b colnames(b) <- colnames(a)
<- rbind(a, b)
a
}<- a
MixN1000X $Expo <- "MixN1000X"
MixN1000X
<- rbind(CNT,DMSO,T3,BPA,MixN1X,MixN1000X)
DCX $`DAPI low thresh`<- as.numeric(as.character(DCX$`DAPI low thresh`))
DCX$`DCX low thresh`<- as.numeric(as.character(DCX$`DCX low thresh`))
DCX$`Area DCX`<- as.numeric(as.character(DCX$`Area DCX`))
DCX$`Area DAPI`<- as.numeric(as.character(DCX$`Area DAPI`))
DCX$ratio <- DCX$`Area DCX`/DCX$`Area DAPI` DCX
#boxplot(KI67$ratio~KI67$Expo)
$Expo <- factor(DCX$Expo, levels=c("CNT","DMSO","MixN1X","MixN1000X","BPA","T3" ))
DCX$SampleColors <- c(rep("#0000FF",3), rep("#2900D5",3), rep("yellow", 3), rep("#117733",3), rep("#7E0080",5), rep("#FF0000",5))
DCX#KI$Expo <- factor(KI$Expo, levels=c("Y", "X", "Z"))
ggplot(DCX, aes(x=Expo, y=ratio, color=Expo)) +
geom_violin() +
stat_summary(fun.data="mean_sdl", geom="crossbar", width=0.05) +
geom_jitter(shape=16, position=position_jitter(0.2)) +
ylab("DCX positive area / DAPI positive area")
$Expo <- factor(DCX$Expo, levels=c("CNT","DMSO","MixN1X","MixN1000X","BPA","T3" ))
DCX
<- c("CNT"="#0000FF", "DMSO"="#2900D5", "MixN1X"="#7E0080", "MixN1000X"="#FF0000", "BPA"="#117733", "T3"="yellow")
SampleColors <- ggplot(data=DCX, aes(Expo,ratio, fill=Expo))+
plot geom_jitter(position=position_dodge(0.6), size=5, pch=21) +
stat_summary(fun.y=mean, fun.ymin=mean, fun.ymax=mean,
geom="crossbar", width=0.5, col='gray35', position=position_dodge(0.6)) +
scale_fill_manual(values=SampleColors) +
theme_bw() + xlab('') +
theme(plot.title = element_text(face='bold', colour='darkred', size=18, hjust=0.5),
axis.title=element_text(size=14), axis.text=element_text(size=12.5, angle=45, hjust=1)) +
ylab("DCX positive area / DAPI positive area")+
xlab("Expo")
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.ymin` is deprecated. Use `fun.min` instead.
## Warning: `fun.ymax` is deprecated. Use `fun.max` instead.
plot
<- lm(log(`Area DCX`)~offset(log(`Area DAPI`))+Expo, data=DCX)
mod coefficients(summary(mod))[-1,]
## Estimate Std. Error t value Pr(>|t|)
## ExpoDMSO -0.008027809 0.1875312 -0.04280787 0.96638437
## ExpoMixN1X -0.112295586 0.1677330 -0.66949022 0.51272896
## ExpoMixN1000X -0.412033503 0.1677330 -2.45648482 0.02583516
## ExpoBPA 0.343005088 0.1875312 1.82905645 0.08609116
## ExpoT3 0.419119968 0.1875312 2.23493501 0.04003302
$expo2 <- DCX$Expo
DCXlevels(DCX$expo2) <- c("CNT","CNT","MixN","MixN", "BPA", "T3")
<- lm(log(`Area DCX`)~offset(log(`Area DAPI`))+expo2, data=DCX)
mod coefficients(summary(mod))[-1,]
## Estimate Std. Error t value Pr(>|t|)
## expo2MixN -0.2581506 0.1258296 -2.051588 0.05505077
## expo2BPA 0.3470190 0.1722993 2.014047 0.05919851
## expo2T3 0.4231339 0.1722993 2.455807 0.02444831
load("Data/AllSEcorrected.RData", verbose = T)
## Loading objects:
## SEs
## DEAs
load("Data/DEGsOrganoidsChronic.RData",verbose = T)
## Loading objects:
## org.chronic
## org.chronicLong
<- SEs$chronic.org[,which(SEs$chronic.org$EXPO=="CNT"|SEs$chronic.org$EXPO=="1X" | SEs$chronic.org$EXPO=="1000X" | SEs$chronic.org$EXPO=="BPA0.04X" | SEs$chronic.org$EXPO=="T3")]
Org_chronic #ProlGenes <- c('MKI67','CCNB1', 'CCNB2', 'CDC20', 'CDC20B', 'CDCA8', 'HMGB2')
#geneStripPairEDCMix(SE = Org_chronic,GeneSet = ProlGenes,printExp = FALSE,SampleColors = "Default")
<- c('MKI67','CCNB1', 'CDC20', 'HMGB2')
ProlGenes geneStripPairEDCMix(SE = Org_chronic,GeneSet = ProlGenes,printExp = FALSE,SampleColors = "Default")
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.ymin` is deprecated. Use `fun.min` instead.
## Warning: `fun.ymax` is deprecated. Use `fun.max` instead.
<- DEAs$chronic.org[ProlGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC.EXPO1X logFC.EXPO1000X logCPM F PValue FDR
## MKI67 0.5158631 0.47797089 7.179763 4.1450790 0.02432131 0.09845604
## CCNB1 0.1571566 0.09338588 5.662209 0.9141929 0.41029016 0.56941503
## CDC20 0.2228841 0.11457047 5.573279 1.0834085 0.34962845 0.51233616
## HMGB2 0.0578860 0.08059550 7.969252 0.5347055 0.59059752 0.71801280
load("Data/DEAorgSingleCompunds.RData", verbose=TRUE)
## Loading objects:
## res.orgT3
## res.orgBPA
<- res.orgT3[ProlGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC logCPM F PValue FDR
## MKI67 -0.4316251 7.179763 2.369536 0.1328066900 0.267152693
## CCNB1 -0.3840033 5.662209 4.473368 0.0416925114 0.116328310
## CDC20 -0.7155889 5.573279 8.399397 0.0064679535 0.029175767
## HMGB2 -0.4727221 7.969252 15.555194 0.0003714244 0.003406081
load("Data/DEAorgSingleCompunds.RData", verbose=TRUE)
## Loading objects:
## res.orgT3
## res.orgBPA
<- res.orgBPA[ProlGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC logCPM F PValue FDR
## MKI67 0.6809718 7.179763 11.679921 1.630579e-03 0.0150459679
## CCNB1 0.3895131 5.662209 9.144768 4.673363e-03 0.0304629216
## CDC20 0.6909414 5.573279 16.899461 2.293352e-04 0.0040934070
## HMGB2 0.4415802 7.969252 25.607486 1.369475e-05 0.0006104268
load("Data/AllSEcorrected.RData", verbose = T)
## Loading objects:
## SEs
## DEAs
#NeuronGenes <- c('DCX',"SATB2","NEUROG1","SYP","MAP2","RBFOX3","L1CAM")
#geneStripPairEDCMix(SE = Org_chronic,GeneSet = NeuronGenes,printExp = FALSE, SampleColors = "Default")
<- c('DCX',"SYP","MAP2","RBFOX3")
NeuronGenes geneStripPairEDCMix(SE = Org_chronic,GeneSet = NeuronGenes,printExp = FALSE, SampleColors = "Default")
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.ymin` is deprecated. Use `fun.min` instead.
## Warning: `fun.ymax` is deprecated. Use `fun.max` instead.
<- DEAs$chronic.org[NeuronGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC.EXPO1X logFC.EXPO1000X logCPM F PValue FDR
## DCX -0.04485794 -0.08371969 9.808547 0.4310941 0.65323502 0.7659654
## SYP -0.07111726 -0.21076232 5.675611 3.6125359 0.03758126 0.1282101
## MAP2 -0.09206050 -0.08913764 9.567773 0.8878417 0.42069713 0.5782503
## RBFOX3 -0.30662511 -0.43254504 1.474974 3.7034481 0.03486353 0.1219995
load("Data/DEAorgSingleCompunds.RData", verbose=TRUE)
## Loading objects:
## res.orgT3
## res.orgBPA
<- res.orgT3[NeuronGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC logCPM F PValue FDR
## DCX 0.7751497 9.808547 28.404687 6.079119e-06 0.0001500374
## SYP 0.2560135 5.675611 3.282760 7.868525e-02 0.1843611264
## MAP2 0.4753571 9.567773 18.931729 1.136035e-04 0.0013758926
## RBFOX3 0.6095827 1.474974 6.192068 1.779189e-02 0.0618094061
load("Data/DEAorgSingleCompunds.RData", verbose=TRUE)
## Loading objects:
## res.orgT3
## res.orgBPA
<- res.orgBPA[NeuronGenes,]
PVals <- PVals[complete.cases(PVals), ]
PVals
PVals## logFC logCPM F PValue FDR
## DCX 0.42930443 9.808547 16.055671524 0.0003098608 0.005050019
## SYP 0.25608904 5.675611 6.013271839 0.0193830760 0.080749618
## MAP2 0.15271212 9.567773 3.501767167 0.0697659399 0.194436446
## RBFOX3 -0.01012511 1.474974 0.003345398 0.9542087935 0.978916341