欢迎关注”生信修炼手册”!

对于任意的表达量数据,定量加差异分析都是一套经典的组合拳。当我们想要展示特定基因的组间差异结果时,下面这种图表就派上了用场

横坐标为基因,纵坐标是基因表达量,每一组的表达量采用了箱体图的形式来展现,当然也可以换成小提琴图等其他描述总体分布的可视化方式。对于每一个基因,通过并列的两组箱体来定性的展示两组间的分布差异,而图中星号则表示差异分析的p值,定量展示差异的显著性,通过这种图表,可以直观的展示差异分析结果。

对于这样的图表,推荐使用ggpubr这个R包,这个包是ggplot2的一个扩展,所以其画图的语法遵循ggplot2的定义,简单理解就是每一个属性都对应数据框的每一列,所以我们首要任务是构建一个绘图用的数据框,这个数据框的每一列对应图中的一个元素

1. 第一列,对应x轴,即基因名称

2. 第二列,对应y轴,即基因表达量

3. 第三列,对应样本

3. 第四列,对应图例中的不同颜色,即样本分组

数据准备的代码如下

# 1.基因表达量数据
# 纯文本文件,每一行为基因,每一列为样本
> data <- read.table("data.txt", header = T, sep = "\t", row.names = 1)
> data[1:5, 1:5]GSM3076582 GSM3076584 GSM3076586 GSM3076588 GSM3076590
PNP      7.123107   7.115196   7.103920   7.377837   6.960771
PTGIS    2.483152   4.215764   4.174901   3.658576   3.296362
PTGS2    6.156447   6.539128   6.294466   4.918229   6.269206
NT5C1B   1.912044   3.691517   3.771510   4.546582   3.784036
SIRT3    4.210383   3.960023   3.623266   4.658751   4.347605
# 2.样本的注释信息
# 纯文本文件,每一行为样本,每一列为一种注释信息
> group <- read.table("sample.group.txt", header = T, sep = "\t", row.names = 1, stringsAsFactors = T)
> head(group)group sex    series
GSM3076582   ALS   m GSE112676
GSM3076584   ALS   m GSE112676
GSM3076586   ALS   f GSE112676
GSM3076588   CON   m GSE112676
GSM3076590   CON   m GSE112676
GSM3076592   CON   f GSE112676
> library(tidyr)
# 合并样本分组信息和表达量信息
> plot_data <- cbind(sample = rownames(group), group = group$group, as.data.frame(t(data))
+
+ )
> head(plot_data[, 1:10])sample group      PNP    PTGIS    PTGS2   NT5C1B    SIRT3    ASPDH
GSM3076582 GSM3076582   ALS 7.123107 2.483152 6.156447 1.912044 4.210383 4.504081
GSM3076584 GSM3076584   ALS 7.115196 4.215764 6.539128 3.691517 3.960023 3.963059
GSM3076586 GSM3076586   ALS 7.103920 4.174901 6.294466 3.771510 3.623266 4.367432
GSM3076588 GSM3076588   CON 7.377837 3.658576 4.918229 4.546582 4.658751 4.853395
GSM3076590 GSM3076590   CON 6.960771 3.296362 6.269206 3.784036 4.347605 4.249152
GSM3076592 GSM3076592   CON 7.222664 3.829693 5.185523 4.473507 4.348066 4.399335RNLS    NADK2
GSM3076582 5.937300 4.224377
GSM3076584 4.993297 4.035023
GSM3076586 5.408174 3.590138
GSM3076588 5.431993 3.921544
GSM3076590 5.168883 3.773122
GSM3076592 5.860502 4.037075
# 数据转换,wide => long
> res <- pivot_longer(
+ data = plot_data,
+ cols = 3:ncol(plot_data),
+     names_to = "gene",
+     values_to = "value",
+     values_drop_na = TRUE
+   )
> head(res)
# A tibble: 6 x 4sample     group gene   value<chr>      <fct> <chr>  <dbl>
1 GSM3076582 ALS   PNP     7.12
2 GSM3076582 ALS   PTGIS   2.48
3 GSM3076582 ALS   PTGS2   6.16
4 GSM3076582 ALS   NT5C1B  1.91
5 GSM3076582 ALS   SIRT3   4.21
6 GSM3076582 ALS   ASPDH   4.50

tidyr是一个数据转换的包,可以帮助我们快速的从常规的宽格式的表达量数据转换到绘图使用的长数据,准备好绘图用的数据之后,先用ggpubr的ggboxplot函数绘制最基本的箱体图,代码如下

> library(tidyr)
> ggboxplot(res, x = "gene", y = "value", color = "group")

效果图如下

在基础图形的基础上,需要做如下调整

1. 调整x轴标签的排列方式,改为旋转排列

2. 调整分组的颜色设置

3. 调整x轴,y轴,图例的文字

表达量差异分析结果的可视化相关推荐

  1. TCGA任意基因在配对样本中的表达量展示

    前几天看到了生信技能树的推文:什么情况下我们可以修改基因名字 里面提到了2个函数很好用: 其实这个需求我知道在小洁老师的R包tinyarray里有函数可以实现:宝藏R包tinyarray:常用图表一键 ...

  2. 采用DESeq2对表达量进行PCA和聚类分析

    欢迎关注"生信修炼手册"! 得到基因/转录本的表达量之后,通常会通过以下三种类型的图表来检验和分析生物学样本和实验设计间关系. 1.  样本的聚类树 利用所有样本的表达量数据,对样 ...

  3. rsem比对_RSEM方法比对和表达量计算

    分析模块,封装了Trinity程序包中的"align_and_estimate_abundance.pl"脚本,进行原始数据与转录本序列的比对和表达量计算.其中,核心程序为,Bow ...

  4. 荧光定量PCR:基因相对表达量计算方法

    荧光定量PCR之后计算目的基因的相对表达量一般采用2-△△ct的方法.我们还是假设对照组和处理组各有三个生物学重复(即对照组3个cDNA样品cDNA1, cDNA2, cDNA3,处理组3个cDNA样 ...

  5. 衡量基因相对表达量的RPKM、FPKM、TPM详解

    衡量基因相对表达量的RPKM和FPKM.及TPM 1.RPKM(Reads Per Kilobase per Million)和FPKM(Fragments Per Kilobase per Mill ...

  6. 【0基础】输入cq值即获得可截断的带显著区间的显著水平的表达量柱状图

    标题[0基础]输入cq值即获得可截断的带显著区间的显著水平的表达量柱状图 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 标题[0基础]输入cq值即获得可截断的带显著区间的 ...

  7. 复现《NC》图表(二):R语言一键画表达量箱线图并添加显著性

    我们接着重现NC这篇文章的Figure2,这篇文章里有很多这样的箱线图,这也是这个重现系列重点要讲的内容.原文作者提供了这部分代码,对于所有图提供了详细的数据,可以参考作图. 这里重现的重点在于批量画 ...

  8. R语言---查看指定癌症中感兴趣基因的表达量---笔记整理

    原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247486845&idx=1&sn=b735a4690 ...

  9. 差异表达基因热图怎么看_学徒作业我想看为什么这几个基因的表达量相关性非常高...

    不知道多少人看完了全网第一个单细胞课程(免费基础课程),免费学习地址在B站:https://www.bilibili.com/video/av38741055  而且完成结业考核20题:https:/ ...

最新文章

  1. 2014年06月30日
  2. ubuntu 安装yar和使用
  3. 深入理解java虚拟机gc_java底层:GC相关——深入理解java虚拟机
  4. while循环 for循环的理解
  5. 微信python天天学_教你使用python实现微信每天给女朋友说晚安
  6. 《Puppet实战手册》——1.4 利用Git管理配置清单
  7. Ubuntu 如何进入系统文件/etc/profile修改内容
  8. rhel6.3搭建iscsi-target服务器实战
  9. 干货|手把手教你写单片机的结构体
  10. UIImageJPEGRepresentation 使用中存在的问题
  11. 1118 Birds in Forest (25分)
  12. vector的底层实现!(万字长文详解!)
  13. (C语言)不变初心数 (15 分)---pta
  14. 突然间电脑的复制粘贴不能用了???
  15. 微信公众号 php sdk,GitHub - yuanchenglu/wechat-php-sdk: 微信公众平台 PHP SDK
  16. 算法 - PNPoly解决点到多边形距离的问题
  17. 解剖gowitness
  18. Java网络请求代理API的设计思路
  19. [python]python的引用(续)
  20. Linux个人防火墙的设计与实现

热门文章

  1. 华为v9计算机在哪方面的应用,华为新款笔记本电脑再爆料 软件方面是主要亮点或支持“快应用”...
  2. 楼教主的百度程序大赛答题源码
  3. 高速串口通信稳定_长虹配套珠峰5G通信装备 保障直播信号稳定高速传输
  4. 数据库系统概论 入门
  5. Mysql like 通配符和日期函数混合使用
  6. PHP统计文件夹中的图片数量
  7. 【Fabric】简单测试:链码单元测试+fabric-go-sdk
  8. 谈谈百度搜索为什么那么快?
  9. 基于asp.net的校园二手交易网站
  10. 2000元以下高性价比800万像素相机推荐