data <-read.table("Figure_1_Genome_size_WT_CTCF_data.txt", header=T, stringsAsFactors = F)
# quality control size vs DAPI sum
plot (data$Nucleus.Area.um, data$DAPI.Sum, cex=0.1, col="#FF000020", log="y")
# Data is filtered based on nuclear area (above 450 um2) and DAPI sum intensity (above 4.5e6 and below 5e5)
data.filter <- data[which((data$Nucleus.Area.um<500)&(data$DAPI.Sum>7e5)&(data$DAPI.Sum<4.5e6)),]
# control the output
plot (data.filter$Nucleus.Area.um, data.filter$DAPI.Sum, cex=0.1, col="#FF000020")
# make a test histogram
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =20000))
par(new=T)
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))], breaks = seq(from=0, to =5e6, by =20000), col="red")
#plot relative frequency lines
hela.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =25000))
U2OS.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))], breaks = seq(from=0, to =4.5e6, by =25000))
# normalize to 1
# normalize to 1
hela.dapi.hist.rel <- hela.dapi.hist$counts/sum(hela.dapi.hist$counts)
U2OS.dapi.hist.rel <- U2OS.dapi.hist$counts/sum(U2OS.dapi.hist$counts)
# Figure 1, a
plot(hela.dapi.hist$mids, hela.dapi.hist.rel, type="h", xlim=c(0,4.5e6))
par(new=T)
plot(hela.dapi.hist$mids, U2OS.dapi.hist.rel, col="red", type="h", xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))]), xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))]), col="red", xlim=c(0,4.5e6), axes=F)
# extract the stats of the peak, based on the density fitting
hela.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
u2os.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))])
G1.peak.hela <- hela.dens$x[which.max(hela.dens$y)]
G1.peak.u2os <- u2os.dens$x[which.max(u2os.dens$y)]
library(vioplot)
# The filtered data is used to make violaplots as shown in Figure 1, c: absolute CTCF sum intensities in HeLa Kyoto and U2OS
# test data with boxplot before background subtraction:
boxplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))],
data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")],
outline=F
)
# violaplots
library(vioplot)
vioplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
names=c("HeLa", "U2OS"), ylab="integrated nuclear intensity [a.u.]", h=30000)
# calcualte statistics
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
mean(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
sd(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
elative CTCF sum intensities, normalized by DNA content in HeLa Kyoto and U2OS
vioplot((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))],
names=c("HeLa", "U2OS"), ylab="rel CTCF / DAPI")
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF")&(data.filter$Slide!="Bdx"))])
ning this script allows to analyse the data on genome size and CTCF levels in wild-type untreated HeLa Kyoto and U2OS
# From the Environment window on the right side, click on "Import Dataset" to load the text file "Figure_1_Genome_size_WT_CTCF_data"
# 00 initialisation
# dataframe contains all pooled operetta readings for anti CTCF staining in HeLa, U2OS, as well as no antibody controls for both cell lines.
data <-read.table("Figure_1_Genome_size_WT_CTCF_data.txt", header=T, stringsAsFactors = F)
# quality control size vs DAPI sum
plot (data$Nucleus.Area.um, data$DAPI.Sum, cex=0.1, col="#FF000020", log="y")
# Data is filtered based on nuclear area (above 450 um2) and DAPI sum intensity (above 4.5e6 and below 5e5)
data.filter <- data[which((data$Nucleus.Area.um<500)&(data$DAPI.Sum>7e5)&(data$DAPI.Sum<4.5e6)),]
# control the output
plot (data.filter$Nucleus.Area.um, data.filter$DAPI.Sum, cex=0.1, col="#FF000020")
#####################################################################################################################################
#####################################################################################################################################
# 01 plot DAPI histograms
# use the filtered data populations
# make a test histogram
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =20000))
par(new=T)
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =5e6, by =20000), col="red")
#plot relative frequency lines
hela.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =25000))
U2OS.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =25000))
# normalize to 1
hela.dapi.hist.rel <- hela.dapi.hist$counts/sum(hela.dapi.hist$counts)
U2OS.dapi.hist.rel <- U2OS.dapi.hist$counts/sum(U2OS.dapi.hist$counts)
# Figure 1, a
plot(hela.dapi.hist$mids, hela.dapi.hist.rel, type="h", xlim=c(0,4.5e6))
par(new=T)
plot(hela.dapi.hist$mids, U2OS.dapi.hist.rel, col="red", type="h", xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))]), xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))]), col="red", xlim=c(0,4.5e6), axes=F)
# extract the stats of the peak, based on the density fitting
hela.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
u2os.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
G1.peak.hela <- hela.dens$x[which.max(hela.dens$y)]
G1.peak.u2os <- u2os.dens$x[which.max(u2os.dens$y)]
#####################################################################################################################################
#####################################################################################################################################
# 02 CTCF levels
library(vioplot)
# The filtered data is used to make violaplots as shown in Figure 1, c: absolute CTCF sum intensities in HeLa Kyoto and U2OS
# test data with boxplot before background subtraction:
boxplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))],
data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")],
outline=F
)
# The staining background levels are subtracted to the CTCF-immunostained samples:
# "2nd_test" data correspond to samples of both cell lines in whose staining the primary antibody for CTCF was omitted
# the median value of CTCF channel sum intensity of "2nd_test" is subtracted to CTCF-immunostained HeLa Kyoto and U2OS
# subtracted values are plotted
# violaplots
library(vioplot)
vioplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
names=c("HeLa", "U2OS"), ylab="integrated nuclear intensity [a.u.]", h=30000)
# calcualte statistics
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
mean(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
sd(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
#####################################################################################################################################
#####################################################################################################################################
# 03 CTCF normalized by DNA content (divided by the respective DAPI sum intensity)
# The filtered and background-subtracted data is used to make violaplots as shown in Figure 1, e:
# relative CTCF sum intensities, normalized by DNA content in HeLa Kyoto and U2OS
vioplot((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))],
names=c("HeLa", "U2OS"), ylab="rel CTCF / DAPI")
#statistics:
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
ning this script allows to analyse the data on genome size and CTCF levels in wild-type untreated HeLa Kyoto and U2OS
# 00 initialisation
# dataframe contains all pooled operetta readings for anti CTCF staining in HeLa, U2OS, as well as no antibody controls for both cell lines.
data <-read.table("Figure_1_Genome_size_WT_CTCF_data.txt", header=T, stringsAsFactors = F)
# quality control size vs DAPI sum
plot (data$Nucleus.Area.um, data$DAPI.Sum, cex=0.1, col="#FF000020", log="y")
# Data is filtered based on nuclear area (above 450 um2) and DAPI sum intensity (above 4.5e6 and below 5e5)
data.filter <- data[which((data$Nucleus.Area.um<500)&(data$DAPI.Sum>7e5)&(data$DAPI.Sum<4.5e6)),]
# control the output
plot (data.filter$Nucleus.Area.um, data.filter$DAPI.Sum, cex=0.1, col="#FF000020")
#####################################################################################################################################
#####################################################################################################################################
# 01 plot DAPI histograms
# use the filtered data populations
# make a test histogram
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =20000))
par(new=T)
hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =5e6, by =20000), col="red")
#plot relative frequency lines
hela.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =25000))
U2OS.dapi.hist <- hist(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))], breaks = seq(from=0, to =4.5e6, by =25000))
# normalize to 1
hela.dapi.hist.rel <- hela.dapi.hist$counts/sum(hela.dapi.hist$counts)
U2OS.dapi.hist.rel <- U2OS.dapi.hist$counts/sum(U2OS.dapi.hist$counts)
# Figure 1, a
plot(hela.dapi.hist$mids, hela.dapi.hist.rel, type="h", xlim=c(0,4.5e6))
par(new=T)
plot(hela.dapi.hist$mids, U2OS.dapi.hist.rel, col="red", type="h", xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))]), xlim=c(0,4.5e6), axes=F)
par(new=T)
plot(density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))]), col="red", xlim=c(0,4.5e6), axes=F)
# extract the stats of the peak, based on the density fitting
hela.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
u2os.dens <- density(data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
G1.peak.hela <- hela.dens$x[which.max(hela.dens$y)]
G1.peak.u2os <- u2os.dens$x[which.max(u2os.dens$y)]
#####################################################################################################################################
#####################################################################################################################################
# 02 CTCF levels
library(vioplot)
# The filtered data is used to make violaplots as shown in Figure 1, c: absolute CTCF sum intensities in HeLa Kyoto and U2OS
# test data with boxplot before background subtraction:
boxplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))],
data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")],
outline=F
)
# The staining background levels are subtracted to the CTCF-immunostained samples:
# "2nd_test" data correspond to samples of both cell lines in whose staining the primary antibody for CTCF was omitted
# the median value of CTCF channel sum intensity of "2nd_test" is subtracted to CTCF-immunostained HeLa Kyoto and U2OS
# subtracted values are plotted
# violaplots
library(vioplot)
vioplot(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]),
names=c("HeLa", "U2OS"), ylab="integrated nuclear intensity [a.u.]", h=30000)
# calcualte statistics
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
mean(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
median(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
sd(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))
length(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
mean(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
sd(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")])
#####################################################################################################################################
#####################################################################################################################################
# 03 CTCF normalized by DNA content (divided by the respective DAPI sum intensity)
# The filtered and background-subtracted data is used to make violaplots as shown in Figure 1, e:
# relative CTCF sum intensities, normalized by DNA content in HeLa Kyoto and U2OS
vioplot((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))],
(data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))],
names=c("HeLa", "U2OS"), ylab="rel CTCF / DAPI")
#statistics:
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="HeLa")&(data.filter$Staining=="CTCF"))])
mean((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
median((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
sd((data.filter$Alexa.594.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))] - median(data.filter$Alexa.594.Sum[which(data.filter$Staining=="2nd_test")]))/data.filter$DAPI.Sum[which((data.filter$Cell.Type=="U2OS")&(data.filter$Staining=="CTCF"))])
