library(dplyr)
library(ggplot2)
library(reshape2)
library(testthat)
library(FlowAnalysis)

protocols = c("simultaneous", "m1_sus_m2", "m2_sus_m1") # m1_m2, m2_m1
to_save = NULL
for(stub in protocols) {
  protocol = eval(parse(text=stub))
  normalized = normalize_by_positive_controls(protocol)
  normalized_medians = as.data.frame(make_medians(normalized))
  normalized_medians_mean = normalized_medians %>%
    group_by(antibody, m1_concentration, m2_concentration) %>%
    summarize(mean.CD86=mean(CD86), sd.CD86=sd(CD86),
              mean.CD206=mean(CD206), sd.CD206=sd(CD206),
              n=n()) %>%
    mutate(sem.CD86=sd.CD86/sqrt(n), sem.CD206=sd.CD206/sqrt(n)) %>%
    mutate(ymax.CD86=mean.CD86+sem.CD86, ymin.CD86=mean.CD86-sem.CD86,
           ymax.CD206=mean.CD206+sem.CD206, ymin.CD206=mean.CD206-sem.CD206)
  eval(parse(text=sprintf("normalized_%s = normalized", stub)))
  eval(parse(text=sprintf("normalized_%s_medians = normalized_medians", stub)))
  eval(parse(text=sprintf("normalized_%s_medians_mean = normalized_medians_mean", stub)))
  to_save = c(to_save,
              # sprintf("normalized_%s", stub),
              sprintf("normalized_%s_medians", stub),
              sprintf("normalized_%s_medians_mean", stub))
}

# simul_timecourse is special
normalized_simul_timecourse_medians = simul_timecourse %>%
  normalize_by_positive_controls_timepoint %>%
  group_by(Experiment, antibody, timepoint, m1_concentration, m2_concentration) %>%
  summarize(CD206 = median(CD206), CD86 = median(CD86))

normalized_simul_timecourse_medians_mean = normalized_simul_timecourse_medians %>%
  group_by(m1_concentration, m2_concentration, timepoint, antibody) %>%
  summarize(mean.CD86=mean(CD86), sd.CD86=sd(CD86),
            mean.CD206=mean(CD206), sd.CD206=sd(CD206),
            n=n()) %>%
  mutate(sem.CD86=sd.CD86/sqrt(n), sem.CD206=sd.CD206/sqrt(n)) %>%
  mutate(ymax.CD86=mean.CD86+sem.CD86, ymin.CD86=mean.CD86-sem.CD86,
         ymax.CD206=mean.CD206+sem.CD206, ymin.CD206=mean.CD206-sem.CD206,
         M1xM2=paste(m1_concentration, m2_concentration, sep="x"))

manuscript_theme = theme_bw() + theme(text=element_text(size=8))

Figure 1

1a. M1 dose-response histogram

g = simultaneous %>%
  filter(Experiment == "tds-004-03", m2_concentration == 0) %>%
  mutate(antibody=factor(antibody, levels=c("exp", "iso", "unstained"), labels=c("Experimental", "Isotype", "Unstained"))) %>%
  ggplot(aes(CD86, color=antibody)) +
    facet_grid(m1_concentration~.) +
    geom_density() +
    scale_color_discrete("Antibody") +
    scale_x_continuous(trans=biexp_trans(lim=100, decade.size=400),
                       breaks=c(-100, 0,100,1000,10000,100000),
                       labels=c("-100", "0","100","1000","1e4","1e5")) +
    scale_y_continuous(limits=c(0, 0.006),
                       breaks=c(0, 0.003, 0.006)) +
    labs(x="CD86 intensity", y="Density") +
    geom_vline(
      data=(simultaneous %>%
        filter(Experiment == "tds-004-03", m2_concentration == 0) %>%
        mutate(antibody=factor(antibody, levels=c("exp", "iso", "unstained"), labels=c("Experimental", "Isotype", "Unstained"))) %>%
        group_by(Experiment, m1_concentration, antibody) %>%
        summarize(median.CD86=median(CD86))),
      mapping=aes(xintercept=median.CD86, color=antibody),
      alpha=0.5
    ) +
    guides(color=guide_legend(direction="horizontal")) +
    manuscript_theme +
    theme(legend.position="bottom")
print(g)

1b. M1 response increases with M1 stimulus

plot_1_filter = function(x) filter(x, antibody == "exp", m2_concentration == 0)

g = normalized_simultaneous_medians %>%
  plot_1_filter %>%
  ggplot(aes(m1_concentration)) +
    geom_point(aes(y=CD86), alpha=0.2) +
    geom_line(aes(y=CD86, group=Experiment), alpha=0.2) +
    geom_errorbar(data=plot_1_filter(normalized_simultaneous_medians_mean),
                  aes(ymax=ymax.CD86, ymin=ymin.CD86),
                  width=0.2) +
    geom_errorbar(data=plot_1_filter(normalized_simultaneous_medians_mean),
                aes(ymax=mean.CD86, ymin=mean.CD86),
                width=0.15) +
    scale_x_discrete("[LPS/IFN-γ] (ng/ml)") +
    scale_y_continuous("CD86 intensity relative to M1",
                       limits=c(0, 1.1),
                       breaks=seq(0, 1, 0.2)) +
    manuscript_theme +
    annotate(geom="text", x=c(3,4)+.15, y=c(.67,1.01), label="*", size=6)
print(g)
plot_1_filter = function(x) filter(x, antibody == "exp", m2_concentration == 0)

g = normalized_simultaneous_medians %>%
  plot_1_filter %>%
  ggplot(aes(m1_concentration)) +
    geom_point(aes(y=CD86), alpha=0.2) +
    geom_line(aes(y=CD86, group=Experiment), alpha=0.2) +
    geom_errorbar(data=plot_1_filter(normalized_simultaneous_medians_mean),
                  aes(ymax=ymax.CD86, ymin=ymin.CD86),
                  width=0.2) +
    geom_errorbar(data=plot_1_filter(normalized_simultaneous_medians_mean),
                aes(ymax=mean.CD86, ymin=mean.CD86),
                width=0.15) +
    scale_x_discrete("[LPS/IFN-γ] (ng/ml)") +
    scale_y_continuous("CD86 intensity relative to M1",
                       limits=c(0, 1.1),
                       breaks=seq(0, 1, 0.2)) +
    manuscript_theme +
    annotate(geom="text", x=c(3,4)+.15, y=c(.67,1.01), label="*", size=6)
print(g)

Post-hoc pairwise significance:

p1f = plot_1_filter(normalized_simultaneous_medians)
plot_1_anova = aov(CD86~m1_concentration, p1f)
print(summary(plot_1_anova))
print(pairwise.t.test(p1f$CD86, p1f$m1_concentration, "holm"))

Linear regression with dummy coding (significance means different from no treatment):

print(summary(lm(CD86~m1_concentration, p1f)))

1c. M2 dose-response histogram

g = simultaneous %>%
  filter(Experiment == "tds-004-03", m1_concentration == 0) %>%
  mutate(antibody=factor(antibody, levels=c("exp", "iso", "unstained"), labels=c("Experimental", "Isotype", "Unstained"))) %>%
  ggplot(aes(CD206, color=antibody)) +
    facet_grid(m2_concentration~.) +
    geom_density() +
    scale_color_discrete("Antibody") +
    scale_x_continuous(trans=biexp_trans(lim=100, decade.size=400),
                       breaks=c(-100, 0,100,1000,10000,100000),
                       labels=c("-100", "0","100","1000","1e4","1e5"),
                       limits=c(-100,NA)) +
    scale_y_continuous(limits=c(0, 0.006),
                       breaks=c(0, 0.003, 0.006)) +
    labs(x="CD206 intensity", y="Density") +
    geom_vline(
      data=(simultaneous %>%
        filter(Experiment == "tds-004-03", m1_concentration == 0) %>%
        mutate(antibody=factor(antibody, levels=c("exp", "iso", "unstained"), labels=c("Experimental", "Isotype", "Unstained"))) %>%
        group_by(Experiment, m2_concentration, antibody) %>%
        summarize(median.CD206=median(CD206))),
      mapping=aes(xintercept=median.CD206, color=antibody),
      alpha=0.5
    ) +
    guides(color=guide_legend(direction="horizontal")) +
    manuscript_theme +
    theme(legend.position="bottom")
print(g)

How much does M1 response increase over baseline?

f1_baseline = normalized_simultaneous_medians %>%
  filter(antibody == "exp", m1_concentration==0, m2_concentration==0)
f1_cd86_t = t.test(f1_baseline$CD86, mu=1)
print(1/f1_cd86_t$estimate)
print(1/f1_cd86_t$conf.int)

1d. M2 response increases with M2 stimulus

plot_2_filter = function(x) filter(x, antibody == "exp", m1_concentration == 0)

g = normalized_simultaneous_medians %>%
  plot_2_filter %>%
  ggplot(aes(m2_concentration)) +
    geom_point(aes(y=CD206), alpha=0.2) +
    geom_line(aes(y=CD206, group=Experiment), alpha=0.2) +
    geom_errorbar(data=plot_2_filter(normalized_simultaneous_medians_mean),
                  aes(ymax=ymax.CD206, ymin=ymin.CD206),
                  width=0.2) +
    geom_errorbar(data=plot_2_filter(normalized_simultaneous_medians_mean),
                aes(ymax=mean.CD206, ymin=mean.CD206),
                width=0.15) +
    scale_x_discrete("[IL-4/IL-13] (ng/ml)") +
    scale_y_continuous("CD206 intensity relative to M2",
                       limits=c(0, 1.1),
                       breaks=seq(0, 1, 0.2)) +
    manuscript_theme +
    annotate(geom="text", x=c(3.05, 4)+.12, y=c(.59, 1.01), label="*", size=6)
print(g)
plot_2_filter = function(x) filter(x, antibody == "exp", m1_concentration == 0)

g = normalized_simultaneous_medians %>%
  plot_2_filter %>%
  ggplot(aes(m2_concentration)) +
    geom_point(aes(y=CD206), alpha=0.2) +
    geom_line(aes(y=CD206, group=Experiment), alpha=0.2) +
    geom_errorbar(data=plot_2_filter(normalized_simultaneous_medians_mean),
                  aes(ymax=ymax.CD206, ymin=ymin.CD206),
                  width=0.2) +
    geom_errorbar(data=plot_2_filter(normalized_simultaneous_medians_mean),
                aes(ymax=mean.CD206, ymin=mean.CD206),
                width=0.15) +
    scale_x_discrete("[IL-4/IL-13] (ng/ml)") +
    scale_y_continuous("CD206 intensity relative to M2",
                       limits=c(0, 1.1),
                       breaks=seq(0, 1, 0.2)) +
    manuscript_theme +
    annotate(geom="text", x=c(3.05, 4)+.12, y=c(.59, 1.01), label="*", size=6)
print(g)

Post-hoc pairwise significance:

p2f = plot_2_filter(normalized_simultaneous_medians)
plot_2_anova = aov(CD206~m2_concentration, p2f)
print(summary(plot_2_anova))
print(pairwise.t.test(p2f$CD206, p2f$m2_concentration, "holm"))

Linear regression with dummy coding (significance means different from no treatment):

print(summary(lm(CD206~m2_concentration, p2f)))

How much does M2 response increase over baseline?

f1_cd206_t = t.test(f1_baseline$CD206, mu=1)
print(1/f1_cd206_t$estimate)
print(1/f1_cd206_t$conf.int)

Figure 2

Figure 2b

g = normalized_simultaneous %>%
    filter(antibody == "exp", Experiment == "tds-003-94") %>%
    ggplot(aes(log2(CD86), log2(CD206))) +
      stat_density2d(aes(alpha=..level..), geom="polygon", n=256) +
      # xlim(-1, NA) + # ylim(-1, NA) +
      # scale_y_continuous(breaks=c(0, 2.5, 5), limits=c(-1, NA)) +
      xlim(-10,5) + ylim(-4,6) +
      geom_hline(yintercept=0, alpha=0.5) + geom_vline(xintercept=0, alpha=0.5) +
      coord_cartesian(xlim=c(-6,6), ylim=c(-4,4)) +
      facet_grid(m2_concentration~m1_concentration) +
      scale_alpha_continuous("Density", trans="sqrt", guide="none") +
      labs(x="CD86 intensity relative to M1", y="CD206 intensity relative to M2") +
      manuscript_theme +
      geom_point(data=filter(normalized_simultaneous_medians, Experiment=="tds-003-94", antibody=="exp"),
                 mapping=aes(log2(CD86), log2(CD206)), color="red", size=0.6)
print(g)

Figure 2c, 2d

p14.cd86.ann = data.frame(
  m1_concentration=c("0.1", "0.3", "0.3"),
  x=c(1, 1, 2),
  xend=c(4, 2, 4),
  y=c(2, 1.9, 2.2)
)

(normalized_simultaneous_medians_mean %>% filter(antibody == "exp") %>%
  ggplot(aes(m2_concentration, mean.CD86, group=m1_concentration)) +
    facet_grid(m1_concentration~.) +
    geom_point(size=0.6) +
    geom_errorbar(aes(ymin=ymin.CD86, ymax=ymax.CD86), width=0.15) +
    geom_path(alpha=0.3) +
    ylim(0, 2.5) +
    # ggtitle("CD86 vs M2 dose, by M1 dose") +
    labs(x="[IL-4/IL-13] (ng/ml)", y="Mean CD86 intensity relative to M1") +
    manuscript_theme +
    geom_segment(data=p14.cd86.ann, mapping=aes(x=x, xend=xend, y=y, yend=y), show.legend=FALSE) +
    geom_text(data=p14.cd86.ann, mapping=aes(x=(x+xend)/2, y=y+0.08), label="*", show.legend=FALSE, size=4) +
    geom_segment(data=p14.cd86.ann, mapping=aes(x=x, xend=x, y=y, yend=y-0.1), show.legend=FALSE) +
    geom_segment(data=p14.cd86.ann, mapping=aes(x=xend, xend=xend, y=y, yend=y-0.1), show.legend=FALSE)
  ) %>% print

normalized_simultaneous_medians = within(normalized_simultaneous_medians, {
  Label = paste(m1_concentration, m2_concentration, sep="x")
})

simul_cd86_p = with(filter(normalized_simultaneous_medians, antibody == "exp"), {
  pairwise.t.test(CD86, Label, p.adjust.method="none")
})

(normalized_simultaneous_medians_mean %>% filter(antibody == "exp") %>%
  ggplot(aes(m1_concentration, mean.CD206, group=m2_concentration)) +
    facet_grid(m2_concentration~.) +
    geom_point(size=0.6) +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), width=0.15) +
    geom_path(alpha=0.3) +
    ylim(0, NA) +
    # ggtitle("CD206 reponse to IL-4/IL-13") +
    labs(x="[LPS/IFN-γ] (ng/ml)", y="Mean CD206 intensity relative to M2") +
    manuscript_theme
  ) %>%
  print()

simul_cd206_p = with(filter(normalized_simultaneous_medians, antibody == "exp"), {
  pairwise.t.test(CD206, Label, p.adjust.method="none")
})

Figure 4

Figure 4b

g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(mean.CD86, mean.CD206, group=M1xM2, shape=timepoint)) +
    facet_wrap(~M1xM2) +
    geom_point(aes(color=timepoint), size=4) +
    geom_path() +
    scale_shape_manual("Timepoint", values=c(16, 17, 15, 18)) +
    scale_color_discrete("Timepoint") +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), alpha=0.4) +
    geom_errorbarh(aes(xmin=ymin.CD86, xmax=ymax.CD86), alpha=0.4) +
    xlim(0, NA) + ylim(0, NA) +
    labs(
      x="CD86 intensity relative to M1",
      y="CD206 intensity relative to M2"
    ) +
    manuscript_theme
print(g)

g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(log2(mean.CD86), log2(mean.CD206), group=M1xM2, shape=timepoint)) +
    facet_wrap(~M1xM2) +
    geom_point(aes(color=timepoint), size=4) +
    geom_path() +
    scale_shape_manual("Timepoint", values=c(16, 17, 15, 18)) +
    scale_color_discrete("Timepoint") +
    geom_errorbar(aes(ymin=log2(ymin.CD206), ymax=log2(ymax.CD206)), alpha=0.4) +
    geom_errorbarh(aes(xmin=log2(ymin.CD86), xmax=log2(ymax.CD86)), alpha=0.4) +
    coord_cartesian(ylim=c(-2, 2), xlim=c(-3.5, 3.5)) +
    geom_hline(yintercept=0) + geom_vline(xintercept=0) +
    #xlim(0, NA) + ylim(0, NA) +
    theme_bw() +
    theme(text=element_text(size=18)) +
    labs(
      x="CD86 intensity relative to M1",
      y="CD206 intensity relative to M2"
    )
print(g)

Figure 4c

p10b_compare = function(df) {
  t24 = filter(normalized_simul_timecourse_medians,
               antibody == "exp",
               timepoint == "24h",
               m1_concentration == df$m1_concentration[1],
               m2_concentration == df$m2_concentration[1],
               Experiment %in% df$Experiment)
  expect_equal(t24$Experiment, df$Experiment)
  t.test(t24$CD86, df$CD86, paired=TRUE)$p.value
}

p10b_p = normalized_simul_timecourse_medians %>%
  filter(antibody == "exp") %>%
  group_by(m1_concentration, m2_concentration, timepoint) %>%
  do(p.value=p10b_compare(.)) %>%
  mutate(p.value=p.value[[1]])
print(p10b_p)

# t.test(filter(normalized_simul_timecourse_medians, antibody=="exp", timepoint=="24h", m1_concentration == .3, m2_concentration == 1)$CD86, mu = 1)
# t = 5.2536, df = 5, p-value = 0.003316

p10b_p = merge(p10b_p, normalized_simul_timecourse_medians_mean) %>%
  filter(!is.na(p.value), p.value < 0.05, antibody == "exp")

g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(timepoint, mean.CD86, color=M1xM2, group=M1xM2)) +
    geom_point() +
    geom_line() +
    geom_errorbar(aes(ymin=ymin.CD86, ymax=ymax.CD86), width=0.15) +
    ylim(0, NA) +
    labs(x="Timepoint", y="CD86 intensity relative to M1") +
    scale_color_discrete("[LPS/IFN-γ] x\n[IL-4/IL-13]\n(ng/ml)") +
    manuscript_theme +
    annotate(geom="text", label="*", size=6,
             x=as.numeric(p10b_p$timepoint)+0.1,
             y=p10b_p$mean.CD86)
print(g)
modeldata = readr::read_csv("../data-raw/modeling/MISA_IFFL_time_course.csv") %>%
  select(timepoint=Time,
         m1_concentration=`M1 inducer`,
         m2_concentration=`M2 inducer`,
         mean.CD86=`M1 response`,
         mean.CD206=`M2 response`) %>%
  mutate(M1xM2=paste(m1_concentration, m2_concentration, sep="x"),
         timepoint=sprintf("%dh", timepoint))

g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(timepoint, mean.CD86, color=M1xM2, group=M1xM2)) +
    geom_point() +
    geom_line(data=modeldata, linetype=2) +
    geom_errorbar(aes(ymin=ymin.CD86, ymax=ymax.CD86), width=0.15) +
    ylim(0, NA) +
    labs(x="Timepoint", y="CD86 intensity relative to M1") +
    scale_color_discrete("[LPS/IFN-γ] x\n[IL-4/IL-13]\n(ng/ml)") +
    manuscript_theme
print(g)

Figure 4d

p10c_compare = function(df) {
  t24 = filter(normalized_simul_timecourse_medians,
               antibody == "exp",
               timepoint == "24h",
               m1_concentration == df$m1_concentration[1],
               m2_concentration == df$m2_concentration[1],
               Experiment %in% df$Experiment)
  expect_equal(t24$Experiment, df$Experiment)
  t.test(t24$CD206, df$CD206, paired=TRUE)$p.value
}

p10b_c = normalized_simul_timecourse_medians %>%
  filter(antibody == "exp") %>%
  group_by(m1_concentration, m2_concentration, timepoint) %>%
  do(p.value=p10c_compare(.)) %>%
  mutate(p.value=p.value[[1]])
print(p10b_c)

p10c_p = merge(p10b_c, normalized_simul_timecourse_medians_mean) %>%
  filter(!is.na(p.value), p.value < 0.05, antibody == "exp")

g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(timepoint, mean.CD206, color=M1xM2, group=M1xM2)) +
    geom_point() +
    geom_line() +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), width=0.15) +
    ylim(0, NA) +
    labs(x="Timepoint", y="CD206 intensity relative to M2") +
    scale_color_discrete("[LPS/IFN-γ] x\n[IL-4/IL-13]\n(ng/ml)") +
    manuscript_theme +
    annotate(geom="text", label="*", size=6,
             x=as.numeric(p10c_p$timepoint)+0.1,
             y=p10c_p$mean.CD206)
print(g)

#t.test(filter(normalized_simul_timecourse_medians, antibody=="exp", timepoint=="96h", m1_concentration == .3, m2_concentration == 1)$CD206, filter(normalized_simul_timecourse_medians, antibody=="exp", timepoint=="96h", m1_concentration == 0, m2_concentration == 1)$CD206)

Is the (96h, CD206, 0x1) case different from (,,0.3x1)?

cd206_96h_m2 = (normalized_simul_timecourse_medians %>%
                  filter(antibody == "exp",
                         timepoint == "96h",
                         m1_concentration == 0,
                         m2_concentration == 1))$CD206
cd206_96h_costim = (normalized_simul_timecourse_medians %>%
                    filter(antibody == "exp",
                           timepoint == "96h",
                           m1_concentration == 0.3,
                           m2_concentration == 1))$CD206
t.test(cd206_96h_m2, cd206_96h_costim)
g = normalized_simul_timecourse_medians_mean %>%
  filter(antibody == "exp") %>%
  ggplot(aes(timepoint, mean.CD206, color=M1xM2, group=M1xM2)) +
    geom_point() +
    geom_line(data=modeldata, linetype=2) +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), width=0.15) +
    ylim(0, NA) +
    labs(x="Timepoint", y="CD206 intensity relative to M2") +
    scale_color_discrete("[LPS/IFN-γ] x\n[IL-4/IL-13]\n(ng/ml)") +
    manuscript_theme
print(g)

Figure 6

Figure 6c

# prepare the list of significant data based on the linear model below
p4sig = normalized_m1_sus_m2_medians_mean %>%
  filter(m2_concentration != 0, antibody == "exp", m1_concentration %in% c(0, 0.3))

p4right = (normalized_m1_sus_m2_medians %>%
  filter(antibody=="exp", m2_concentration==1, m1_concentration==0.3))

p4righttest = p4right$CD206 %>% t.test(mu=1) %>% print
p4rightlen = p4right %>% nrow %>% print

g = normalized_m1_sus_m2_medians_mean %>%
  filter(antibody == "exp", m1_concentration %in% c(0, 0.3)) %>%
  ggplot(aes(m2_concentration, mean.CD206, color=m1_concentration, shape=m1_concentration)) +
    geom_point(size=2) +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), width=0.2) +
    scale_color_discrete("[LPS/IFN-γ]\n(ng/ml)\nadded t=0 h") +
    scale_shape_discrete("[LPS/IFN-γ]\n(ng/ml)\nadded t=0 h") +
    labs(x="[IL-4/IL-13] (ng/ml), added t=24 h", y="CD206 intensity relative to M2") +
    ylim(0, 1.5) +
    manuscript_theme +
    annotate(geom="text", label="*", size=5,
             x=as.numeric(p4sig$m2_concentration)+0.15,
             y=p4sig$mean.CD206) +    
    annotate(geom="text", label="†", size=4, x=4.4, y=1.15) +
    annotate(geom="segment", x=4.3, xend=4.3, y=1, yend=1.3)
print(g)

Figure 6b

g = normalized_m1_sus_m2_medians_mean %>%
  filter(antibody == "exp", m1_concentration %in% c(0, 0.3)) %>%
  ggplot(aes(m2_concentration, mean.CD86, color=m1_concentration, shape=m1_concentration)) +
    geom_point(size=2) +
    geom_errorbar(aes(ymin=ymin.CD86, ymax=ymax.CD86), width=0.2) +
    scale_color_discrete("[LPS/IFN-γ]\n(ng/ml)\nadded t=0 h") +
    scale_shape_discrete("[LPS/IFN-γ]\n(ng/ml)\nadded t=0 h") +
    labs(x="[IL-4/IL-13] (ng/ml), added t=24 h", y="CD86 intensity relative to M2") +
    ylim(0, 1.6) +
    manuscript_theme
print(g)

Asterisk: significantly different (p < 0.05) from no treatment Dagger: significantly different from each other

Does M2 signal still increase from baseline in the presence of M1 stimulus? (Yes)

test4_df = normalized_m1_sus_m2_medians %>%
  filter(antibody == "exp",
         m1_concentration %in% c(0, 0.3))

test4_lm = lm(CD206~m1_concentration + m2_concentration:m1_concentration, test4_df)
print(summary(test4_lm))

Is M2 signal affected by the presence of M1 stimulus? (Not robustly)

test4b_results = numeric()
for(q in levels(test4_df$m2_concentration)) {
  no_m1 = test4_df[test4_df$m2_concentration == q & test4_df$m1_concentration == 0,]
  with_m1 = test4_df[test4_df$m2_concentration == q & test4_df$m1_concentration == 0.3,]
  expect_equal(no_m1$Experiment, with_m1$Experiment) # for paired test
  p = t.test(no_m1$CD206, with_m1$CD206, paired=TRUE)$p.value
  test4b_results[q] = p
}

Non-adjusted:

print(test4b_results)

Adjusted (Holm, FDR):

print(p.adjust(test4b_results))
print(p.adjust(test4b_results, "fdr"))

Figure 6e

# extract points which are significant from no treatment based on the linear model below
p5sig = normalized_m2_sus_m1_medians_mean %>%
  filter(antibody == "exp",
    (m2_concentration == 0 & m1_concentration == 0.1) |
    (m2_concentration == 0 & m1_concentration == 0.3) |
    (m2_concentration == 1 & m1_concentration == 0.3))

g = normalized_m2_sus_m1_medians_mean %>%
  filter(antibody == "exp", m2_concentration %in% c(0, 1)) %>%
  ggplot(aes(m1_concentration, mean.CD86, color=m2_concentration, shape=m2_concentration)) +
    geom_point(size=2) +
    geom_errorbar(aes(ymin=ymin.CD86, ymax=ymax.CD86), width=0.2) +
    scale_color_discrete("[IL-4/IL-13]\n(ng/ml)\nadded t=0 h") +
    scale_shape_discrete("[IL-4/IL-13]\n(ng/ml)\nadded t=0 h") +
    ylim(0, 1.6) +
    labs(x="[LPS/IFN-γ] (ng/ml), added t=24 h", y="CD86 intensity relative to M1") +
    manuscript_theme +
    annotate(geom="text", label="*", size=5,
             x=as.numeric(p5sig$m1_concentration)+0.15,
             y=p5sig$mean.CD86) +
    annotate(geom="text", label="†", size=4, x=2.3, y=0.3125) +
    annotate(geom="segment", x=2.2, xend=2.2, y=0.149-0.04, yend=0.456+0.06)
print(g)

Figure 6f

g = normalized_m2_sus_m1_medians_mean %>%
  filter(antibody == "exp", m2_concentration %in% c(0, 1)) %>%
  ggplot(aes(m1_concentration, mean.CD206, color=m2_concentration, shape=m2_concentration)) +
    geom_point(size=2) +
    geom_errorbar(aes(ymin=ymin.CD206, ymax=ymax.CD206), width=0.2) +
    scale_color_discrete("[IL-4/IL-13]\n(ng/ml)\nadded t=0 h") +
    scale_shape_discrete("[IL-4/IL-13]\n(ng/ml)\nadded t=0 h") +
    ylim(0, 1.5) +
    labs(x="[LPS/IFN-γ] (ng/ml), added t=24 h", y="CD206 intensity relative to M2") +
    manuscript_theme
print(g)

Asterisk: significantly different (p < 0.05) from no treatment Dagger: significantly different from each other

Does M1 signal still increase from baseline in the presence of M2 stimulus? (Yes, at the high end)

test5_df = normalized_m2_sus_m1_medians %>%
  filter(antibody == "exp",
         m2_concentration %in% c(0, 1))

test5_lm = lm(CD86~m2_concentration + m1_concentration:m2_concentration, test5_df)
print(summary(test5_lm))

Is M1 signal affected by the presence of M2 stimulus? (Not robustly except at 0.03 ng/ml)

test5b_results = numeric()
for(q in levels(test5_df$m1_concentration)) {
  no_m2 = test5_df[test5_df$m1_concentration == q & test5_df$m2_concentration == 0,]
  with_m2 = test5_df[test5_df$m1_concentration == q & test5_df$m2_concentration == 1,]
  expect_equal(no_m2$Experiment, with_m2$Experiment) # for paired test
  p = t.test(no_m2$CD86, with_m2$CD86, paired=TRUE)$p.value
  test5b_results[q] = p
}
print(p.adjust(test5b_results))


WendyLiuLab/BiactivationFlow documentation built on May 9, 2019, 10:56 p.m.