R 学习 - 火山图

欢迎关注生信宝典,获取更好阅读体验。 http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483996&idx=1&sn=9a29d52e78e9acffeb0a78077a14f9f2&chksm=ec0dc7d6db7a4ec0163259e81e4ded54875a5dd8adaafbc6975a86c71223d863627ba37801e5#rd

R 学习 - 火山图

火山图

火山图用于展示基因表达差异的分布,横轴为Log2 Fold Change,越偏离中心差异倍数越大;纵轴为(-1)*Log10 P_adjust,值越大差异越显著。一般横轴越偏离中心的点其纵轴值也会比较大,因此呈现火山喷发的形状。

一步绘制火山图

输入数据格式

火山图需要的数据格式如下 (本文用到的数据文件名为volcano.txt,文末有下载链接,此处截取一部分作为例子,也可用来画图,只是数据少,效果不明显)

id: 不是必须的,但一般的软件输出结果中都会包含,表示基因名字。

log2FoldChange: 差异倍数的对数,一般的差异分析输出结果中也会给出对数处理的值, 因此程序没有提供这一步的计算操作。

padj: 多重假设检验矫正过的差异显著性P值;一般的差异分析输出结果为原始值,程序提供一个参数对其求取负对数。

significant: 可选列,标记哪些基因是上调、下调、无差异;若无此列或未在参数中指定此列,默认程序会根据padj列和log2FoldChange列根据给定的阈值自动计算差异基因,并作出不同颜色的标记。

label: 可选列,一般用于在图中标记出感兴趣的基因的名字。非-行的字符串都会标记在图上。

id log2FoldChange padj significant label

E00007 4.28238 0 EHBIO_UP A

E00008 -1.1036 0.476466843393901 Unchanged -

E00009 -0.274368 1 Unchanged -

E00010 4.62347 7.37606076333335e-103 EHBIO_UP -

E00012 0.973987 0.482982440163204 Unchanged -

E00017 -1.30205 0.000555693857439792 Baodian_UP B

E00024 0.617636 2.78047837287061e-13 Unchanged -

E00033 1.48669 2.56000581595275e-60 EHBIO_UP -

E00034 -0.783716 0.00341521725291801 Unchanged -

E00036 2.01592 6.03136656016401e-06 EHBIO_UP C

E00040 -1.89657 4.73663890849056e-21 Baodian_UP -

E00041 -0.268168 0.563429434558031 Unchanged -

E00042 0.0861048 0.367700939634328 Unchanged -

E00043 -1.19328 1.42673872027352e-153 Baodian_UP -

E00044 -0.887981 2.43067804654905e-26 Unchanged -

E00047 -0.610941 5.51696648645932e-57 Unchanged -

使用significant列绘制火山图

# -f: 指定输入文件,格式如上# -x: 指定横轴变量,值为输入文件中与取过对数的变化倍数相关的列的名字# -y: 指定纵轴变量,值为输入文件中与P-value#    (也可能是p-adj,是否取过对数都可以)相关的列的名字# -P: 若为TRUE,则表示对<-y>指定的列进行-log10转换# -L: 指定图例的位置# -s: 指定差异基因列# -S: 指定差异基因列不同的标签出现的顺序sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -s significant -S"'EHBIO_UP', 'Baodian_UP', 'Unchanged'"-P TRUE -L top

这个图看上去还可以,没有太大的问题。但有部分点与最顶端的线重合了,这些点的pvalue为0,取负对数后为负无穷。另外在一些情况下,会存在部分基因的pvalue极小,使得整张图呈现一个压缩的趋势,大部分点偏安于图的下方,中间大段空白,最上面零星几个点。为了避免这种情况,程序设置了参数-M用于设定pvalue的最大的负对数,所有大于给定值的数,都会视为给定值。

# -M 10: 指定P-value(也可能是p-adj);若小于10^(-10),则为10^(-10)#        用于部分p-value存在异常值,导致整个图都被压缩在最底部p_volcano.sh -f volcano.txt -x log2FoldChange -y padj -s significant -S"'EHBIO_UP', 'Baodian_UP', 'Unchanged'"-P TRUE -L top -M 10

注意看纵轴的变化,和最上面排成一条线的一堆点。

自动计算significant列绘制火山图

若不存在significant列,程序会根据-F指定的参数计算并标记差异基因。-F的默认值为"0.05,1"(引号是必须的), 第一个数表示pvalue或padj,对应于<-y>列;第二个数表示对数转换的差异倍数,对应于<-x>列。

# <-F "0.05,1">, 默认值,故命令行中未写,引号是必须的sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top

# -M 10: 与之前相同sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top -M 10

火山图中标记基因的名字

# -l: label,在图中标记部分基因的名字;# label为含有待标记基因名字的列名,此列中非<->的非空字符都会视为基因名字sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top -M 10 -l label

label列中非-的值都会标记在图上。

今天先到这,前天提到的富集分析图,今天的火山图都是散点图的一种,后续介绍散点图时再对用到的R代码进行解读。需要绘图脚本的,还是请帮助转发下,谢谢。

数据文件链接http://pan.baidu.com/s/1i5LzDxr.

Reference

http://blog.genesino.com/2017/07/volcanoPlot

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

推荐阅读更多精彩内容