“对称散点图”的绘制(R语言)

​R语言绘制基因表达基因的“对称散点图

转录组分析中,计算了两组间差异表达的基因后,通常怎样表示?您可能第一时间想到可以使用火山图。的确,火山图是使用频率最多的,在火山图中可以很轻松地根据基因在两组间的Fold Change值以及显著性p值,识别和判断差异表达基因概况。火山图实质上就是一种散点图,通常横纵坐标分别代表了log2转化后的Fold Change以及-log10转化后的p值或p调整值信息(下图左)。提到散点图,常见的还有另一种展示差异表达基因的样式:横纵坐标轴可分别代表两组基因表达均值,这种风格可以更方便直观对比基因在两组中的差异状态。

本篇教程就让我们来学习如何绘制右图这种“对称散点图”,展示组间差异基因表达格局。

1 示例文件

示例文件“gene_diff.txt”是一组基因差异表达分析结果,记录了处理组(treat)和对照组(control)间表达显著不一致的基因,鉴定标准为p<0.01以及|log2 Fold Change|≥1。

其中,gene_id为基因名称;control和treat代表了两组中基因的平均表达值;log2FoldChange即log2转化后的基因表达差异倍数;pvalue是差异基因显著性p值;diff为根据p<0.01以及|log2 Fold Change|≥1筛选的差异基因,该列中“up”为上调,“down”为下调,“none”为非差异基因。

接下来通过该示例文件,展示使用R语言绘制差异基因表达“对称散点图”过程。

2 数据预处理

首先对数据做一些预处理。

例如,基因表达值数量级相差过大,取个对数转换;基因名称按是否为差异基因作个排序,避免后续作图时被不显著的基因点遮盖,即排序的目的是让这些显著基因的点都位于图的上方。

#读取示例数据
express <- read.delim('gene_diff.txt', sep = '\t')
​
#将基因表达值取个log(1+)转换
express$control <- log(express$control+1)
express$treat <- log(express$treat+1)
​
#排序,目的是将显著的基因展示在前方图层,避免被不显著基因的点遮盖
express$diff <- factor(express$diff, levels = c('up', 'down', 'none'))
express <- express[order(express$diff, decreasing = TRUE), ]
​
head(express)  #查看读取并预处理后的数据表格

3 绘制差异基因散点图,颜色表示差异基因

下来就可以使用预处理后的数据作图了。

第一种类型是将基因按上调、下调或不显著类型着色,便于从图中辨认差异基因。我们使用ggplot2的方法绘制差异基因散点图。

#绘制散点图,显著上、下调基因以不同颜色区分
library(ggplot2)
​
ggplot(express, aes(x = control, y = treat)) +
geom_point(aes(color = diff), size = 1) +  #按上下调指定基因点的颜色
scale_color_manual(values = c('red', 'gray', 'green4'), limit = c('up', 'none', 'down')) +  #上下调基因颜色赋值
theme_bw() +  #背景调整
labs(x = 'control group', y = 'treat group', color = '') +  #坐标轴标题设置
geom_abline(intercept = 1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +  #这3句用于添加 |log2FC|>1 的阈值线
geom_abline(intercept = -1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +
geom_abline(intercept = 0, slope = 1, col = 'black', linetype = 'dashed', size = 0.5)

两个坐标轴分别代表了处理组(treat)和对照组(control),图中的点代表各基因在两组中的平均表达值(已经作了log转换)。treat组和control组相比,上调基因以红色表示,下调基因以绿色表示。图中的虚线代表了|log2FC|=1时的阈值线。

在该图中,我们可以很轻松地观察差异基因整体分布状态和数量比较的信息。

4 绘制差异基因散点图,颜色表示p值

上图中没有将p值信息展示出。因此另一种思路是,颜色代表p值,这样就可以在图中获得一个渐变梯度。同样使用ggplot2的方法绘制,和上述过程相比仅在颜色指定上存在区别。

#按 p 值数值的渐变色散点图
ggplot(express, aes(x = control, y = treat)) +
geom_point(aes(color = pvalue), size = 0.8) +  #按 p 值大小指定基因点的颜色
scale_color_gradient2(low = 'red', mid = 'darkgoldenrod2', high = 'royalblue2', midpoint = 0.5) +  #渐变色颜色指定
theme_bw() +  #背景调整
labs(x = 'control group', y = 'treat group', color = 'p-value') +  #坐标轴标题设置
geom_abline(intercept = 1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +  #这3句用于添加 |log2FC|>1 的阈值线
geom_abline(intercept = -1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +
geom_abline(intercept = 0, slope = 1, col = 'black', linetype = 'dashed', size = 0.5)

类似上图,两个坐标轴分别代表了处理组(treat)和对照组(control),图中的点代表各基因在两组中的平均表达值(已经作了log转换),图中的虚线代表了|log2FC|=1时的阈值线。

和上图不同点在于,此时基因按显著性p值着色,从不显著>显著展示以蓝色>红色渐变,就获得了一种梯度信息。这样可以很方便地看出,在两组中的表达值差异越大的基因,p值越小,二者趋势是一致的,重在描述了差异倍数和p值的关系。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容