Отображение p-значений с помощью ggpubr в сгруппированном графике приводит к ошибке - PullRequest
0 голосов
/ 14 декабря 2018

Я строю grouped dotplot с , который отлично работает.Но если я использую stat_compare_means из пакета ggpubr для добавления s, это не сработает.Когда я использую compare_means вне графической среды, он работает нормально, и я получаю правильное значение p-values с набором данных (используя compare_means(X1 ~ X5, data=titer_lung, method="t.test").

Я использую следующие данные:

> titer_lung
         X1  X2               X3    X4     X5
1  4.531479  NK       mutIRFE_FB Lunge group1
2  4.068186  NK       mutIRFE_FB Lunge group1
3  4.071882  NK       mutIRFE_FB Lunge group1
4  4.117271  NK       mutIRFE_FB Lunge group1
5  4.117271  NK       mutIRFE_FB Lunge group1
6  4.462398 -NK       mutIRFE_FB Lunge group2
7  4.643453 -NK       mutIRFE_FB Lunge group2
8  4.556303 -NK       mutIRFE_FB Lunge group2
9  4.724276 -NK       mutIRFE_FB Lunge group2
10 4.491362 -NK       mutIRFE_FB Lunge group2
11 3.903090  NK    mutIRFErev_FB Lunge group3
12 4.342423  NK    mutIRFErev_FB Lunge group3
13 4.113943  NK    mutIRFErev_FB Lunge group3
14 4.653213  NK    mutIRFErev_FB Lunge group3
15 4.230449  NK    mutIRFErev_FB Lunge group3
16 4.556303 -NK    mutIRFErev_FB Lunge group4
17 4.462398 -NK    mutIRFErev_FB Lunge group4
18 4.230449 -NK    mutIRFErev_FB Lunge group4
19       NA -NK    mutIRFErev_FB Lunge group4
20 4.591065 -NK    mutIRFErev_FB Lunge group4
21 4.230449  NK    d3IDE mutIRFE Lunge group5
22 4.531479  NK    d3IDE mutIRFE Lunge group5
23 4.812913  NK    d3IDE mutIRFE Lunge group5
24 4.544068  NK    d3IDE mutIRFE Lunge group5
25 4.342423  NK    d3IDE mutIRFE Lunge group5
26 4.380211 -NK    d3IDE mutIRFE Lunge group6
27 4.698970 -NK    d3IDE mutIRFE Lunge group6
28 4.716003 -NK    d3IDE mutIRFE Lunge group6
29 4.477121 -NK    d3IDE mutIRFE Lunge group6
30 4.740363 -NK    d3IDE mutIRFE Lunge group6
31 4.255273  NK d3IDE mutIRFErev Lunge group7
32 4.322219  NK d3IDE mutIRFErev Lunge group7
33 4.113943  NK d3IDE mutIRFErev Lunge group7
34 4.176091  NK d3IDE mutIRFErev Lunge group7
35 4.518514  NK d3IDE mutIRFErev Lunge group7
36 4.724276 -NK d3IDE mutIRFErev Lunge group8
37 4.462398 -NK d3IDE mutIRFErev Lunge group8
38 4.785330 -NK d3IDE mutIRFErev Lunge group8
39 4.431364 -NK d3IDE mutIRFErev Lunge group8
40 4.826075 -NK d3IDE mutIRFErev Lunge group8

И, используя следующий код, я получаю искомый график:

titer_plot <- ggplot(titer_lung, aes(y=titer_lung$X1, x=titer_lung$X3, 
                                    fill=titer_lung$X2)) +
  geom_dotplot(aes(fill = titer_lung$X2, color = titer_lung$X2),
               trim = FALSE,
               binaxis='y', stackdir='center', dotsize = 0.8,
               position = position_dodge(0.8)
  )+
  stat_summary(fun.y = median, fun.ymin = median, fun.ymax = median,
               geom = "crossbar", width = 0.5, position = position_dodge(0.8)) +
  scale_fill_manual(values = c("black", "white"))+
  scale_color_manual(values = c("black", "black"))+
  xlab("")+
  ylab(expression('Viral titer/organ [log '[10]*']'))+
  theme_classic()+
  theme(text = element_text(size=10),
        axis.text.x = element_text(size=10, angle = 90, hjust=1),
        axis.text.y = element_text(size=10), 
        axis.title.y = element_text(size=10), legend.text = element_text(size=10),
        legend.title=element_blank())+
titer_plot 

Когда я хочусравнивая group1 с group2 и group3 с group4, я пишу:

my_comparisons <- list(c("group1","group2"),c("group3","group4"))
titer_plot + stat_compare_means(comparisons=my_comparisons, label.y=0,
                     method = "t.test")

Но тогда я получаю следующую ошибку:

Удалено 1 строка, содержащая неконечные значения (stat_signif).
Вычисление не удалось в stat_signif(): пропущенное значение, где требуется ИСТИНА / ЛОЖЬ

Полагаю, со значениями NA не должно возникнуть проблем, поскольку compare_means также не беспокоит.

Я очень рад любой помощи, спасибо !!!

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема в том, что не знает, где поставить скобки (x-координаты)

сравнения: список векторов длины-2.Записи в векторе - это либо имена 2-х значений на оси x, либо 2-х целых чисел, которые соответствуют индексу интересующих групп.

titer_plot + stat_compare_means(aes(group=X2), method = "t.test",)  #specify the groups specifically
label.y=5

enter image description here

Я не знаю, как это преодолеть, но базовый geom_signif имеет «ручной» аргумент.Поэтому я думаю, что вы могли бы как-то предоставить вывод compare_means(X1 ~ X5, data=titer_lung, method="t.test") для этого geom.

Вы могли бы также рассмотреть 8 записей на оси x

ggplot(titer_lung, aes(y=X1, x=paste(X3,X2), fill=X2)) + ...

my_comparisons <- list(c("mutIRFE_FB -NK","mutIRFE_FB NK"),
                   c("mutIRFErev_FB -NK","mutIRFErev_FB NK"),
                   c("d3IDE mutIRFE -NK","d3IDE mutIRFE NK"),
                   c("d3IDE mutIRFErev -NK","d3IDE mutIRFErev NK"))
titer_plot +  stat_compare_means(comparisons=my_comparisons, label.y=5,
                 method = "t.test")

enter image description here

...