Как я могу указать статистическую значимость на гистограмме средних значений с помощью ggplot2? - PullRequest
1 голос
/ 14 июля 2020

Некоторое время я пытаюсь использовать ggplot2 для создания специфической c штриховой диаграммы. Для интересующего гена я хочу показать количество генов в двух моих образцах. По оси X должны быть показаны образцы, по оси Y - среднее значение подсчетов, на ней должны быть полосы ошибок и показан результат независимого t-теста, проверяющего значительную разницу между обоими образцами.

Это для гистограмма, показывающая средние значения и планки ошибок:

genecounts <- data.frame(
  sample = c("control", "control", "condition", "condition"),
  counts = c(7.9, 4.2, 5.2, 7.7)
)

genecounts2 <-  genecounts %>%
  group_by(sample) %>%
  summarise(mean = mean(counts), sd = sd(counts))

barplot <- ggplot(genecounts2) +
  geom_bar(
    aes(x = sample, y = mean),
    stat = "identity"
    ) +
  geom_errorbar(
    aes(x = sample, ymax = mean + sd, ymin = mean - sd),
    width = 0.25
    ) +
  labs(y = "mean normalized counts", x = "gene name")

Как добавить метки значимости? Я пробовал использовать ggpubr или ggsignif. Все решения, которые я нашел до сих пор, используют в качестве основы таблицы данных, в которых вы можете найти подсчеты для всех образцов. Но я хочу сделать это на гистограмме, которая показывает только среднее значение всех выборок. Идеи приветствуются!

Что я подумал:

library("ggpubr")
paircomparison <- list(c("control", "condition"))

barplot + stat_compare_means(comparisons = paircomparison)

# OR

barplot + stat_compare_means(data = genecounts, aes(x = sample, y = counts), comparisons = paircomparison)

Error in f(...) : 
  Can only handle data with groups that are plotted on the x-axis

Это могло как-то выглядеть примерно так:

ссылка на сайт

...