繁体   English   中英

ggplot geom_boxplot 用于基因表达数据

[英]ggplot geom_boxplot for gene expression data

我正在尝试获取 4 个不同基因的箱线图,其中包含多个患者中每个基因的表达数据。

我尝试了多种方法,只是不断出现错误。 我可以使用基本 boxplot() function 来做到这一点,但在 ggplot 中无法弄清楚,我也看不到任何帮助 - 昨天花了几个小时阅读其他答案和问题。 大多数其他数据似乎都是 2 列,因此可以指定 x = a 列和 y = b 列,但是。 我想 plot 我整个 df 的所有 4 列,我找不到任何帮助。 我可以在 ggplot 中一次做一个,但不能同时做 4 个。

我拥有的数据 BCON_sig_genes 是 4 个基因,每个基因的 152 个样本的值在 3-6 之间。 df 是 4 个变量的 152 obs,其中 4 列以每个基因名称为标题,所有单元格都是如下所示的值。

         CD3E      LAT    ZAP70      LCK

1002 4.214679 5.652482 4.788204 5.393783

1022 4.424925 5.776641 4.864269 5.593587

8035 4.327270 5.725364 4.509920 4.961659

8037 4.415715 5.494048 4.435241 5.081846

9004 4.290078 5.265329 4.799106 5.275424

9005 4.233490 5.338098 4.666506 5.069394

以下代码通过替换基因名称一次获取一个基因。

BCON_sig_genes %>% ggplot(aes(y = CD3E, x = "CD3E"))+ geom_boxplot()

ggplot boxplot 1 gene only我尝试过gene <- colnames(BCON_sig_genes)然后输入 x = gene 但它不起作用并出现以下错误消息:

错误:美学长度必须为 1 或与数据 (152) 相同:x

我想我需要弄清楚 y 是什么。 我尝试将其留空,这样它将获取所有数据并对每一列进行排序,但没有运气。

我尝试使用 gather() function 并制作键和值,但我无法完全弄清楚而不会出错......但这感觉就像我走在了正确的轨道上!

使用基础 function 我要做的就是boxplot(BCON_sig_genes) ,它只需将所有 4 个基因绘制在具有正确值的图表上。 碱基 function 箱线图所有基因

我认为我需要更好地为 ggplot 处理数据,以便我可以告诉它 y 只是每列的所有表达式值,但我不确定如何。

任何帮助将非常感激!!

谢谢,维姬

要使 ggplot 工作,您需要以长格式获取数据。 这基本上意味着您在第 1 列中获得基因名称,在第 2 列中获得它们的表达。您对gather 有正确的想法,但gather 被pivot_longer 取代。

 library(tidyverse)

data %>% 
  pivot_longer(cols = CD3E:LCK, 
               names_to = "gene", 
               values_to = "expression") %>% 
  ggplot(aes(x = gene,
             y = expression)) +
  geom_boxplot()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM