R语言 创建显示不同样品中基因表达分布的箱线图

whhtz7ly  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(329)

我有一个数据框,包含了癌症样本中10个相对于对照样本上调最多的基因和10个下调最多的基因,看起来像这样:

我想创建一个整洁的箱形图来比较患者样本和对照样本(每种类型有4个样本)之间每个基因的分布。
我遇到的问题是,我没有让所有的盒子在一行中/在同一个图中彼此并排,而是像这样:

我也希望它能显示基因的盒子排序的“log 2FC值”,而不是在字母顺序。有人知道如何解决这个问题吗?
这是我的代码我用:

#Im using the dataframe called "Dataframe"

#Make a column for the genenames 
Dataframe$genenames <- rownames(Dataframe)

#Get data into a long-format
long_Dataframe <- gather(Dataframe, key="samples", 
            value="values", -c(log2FC, gennames,))

#Creating a new column called "group", stating if each row belongs to patient/control
long_Dataframe$group <- rep(c("Control", "Patient"), each=40)

#Order rows by log2FC - from lowest to highest
long_Dataframe <- long_Dataframe[order(long_Dataframe$log2FC), , 
                  drop=FALSE]

#Use long data for boxplot of top 20 up/downregulated genes
Boxplot_top20 <- ggplot(long_Dataframe, aes(x=genenames, y=values, fill=group)) +
  geom_boxplot() +
  scale_fill_manual(values=c("green", "red")) +
  theme_light() +
  facet_wrap(~genenames, scales="free")
cu6pst1q

cu6pst1q1#

您可以使用geom_boxplot(position=position_dodge())而不是facet_wrap()来将箱形图成对放置在组内。

相关问题