在箱线图中突出显示特定基因

时间:2018-10-17 15:31:10

标签: r

我有一个data.frame,它由200个基因(即200行)和2列(即已处理和未处理)组成。值是两种条件下基因的表达水平。我只是想绘制一个200个基因的两个条件分布的箱线图,但是用彩色圆点突出显示基因的一个子集。此外,我想将这两个条件的比较的p值(在这种情况下,我计算出该值并且<0.001)放入图表中。谁能帮我吗?

 df
        Gene        Treated       Untreated   
         A           0.12           0.12  
         B           12.4           0.003   
         C           3.4            0.32   
         D           8.9            0.1   
         E           1.28           0.32   
         F          -4.95           1.54   
         G          -5.93           0.87  
         H           11.2           0.76   
         I           9.8            1.06       

假设突出显示基因:C,F,G,I

提前谢谢

最佳

1 个答案:

答案 0 :(得分:2)

我会给你一个ggplot2的答案。为此,您需要重塑数据,因此有单独的x和y变量。现在,您的y值会分为两列。

然后,我们仅通过绘制子集的点来突出显示特定基因。

library(ggplot2)
library(dplyr)
library(tidyr)

gene_list <- c('C', 'F', 'G', 'I')
df_long <- gather(df, treatment, expression, -Gene)

ggplot(df_long, aes(treatment, expression)) +
  geom_boxplot() +
  geom_point(aes(color = Gene), filter(df_long, Gene %in% gene_list), size = 3) + 
  theme_minimal() +
  labs(caption = 'p < 0.001')

enter image description here

要进行具体调整,请在SO上查看许多ggplot2问题。