查看: 283461|回复: 124

[R语言] R语言ggplot2画图教程之——Pathway富集分析气泡图

  [复制链接]

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
82 小时

突出贡献论坛元老


发表于 2016.1.15 14:57:22 | 显示全部楼层 |阅读模式
# 安装包
install.packages("ggplot2")

# 导入包
# 帮助文档链接:http://docs.ggplot2.org/current/
library(ggplot2)

# 设置工作路径到数据存放的文件夹下
# 读数据
pathway = read.table("R0-vs-R3.path.richFactor.head20.tsv",header=T,sep="\t")

# 画图
pp = ggplot(pathway,aes(richFactor,Pathway))
pp + geom_point()

# 改变点的大小
pp + geom_point(aes(size=R0vsR3))

# 四维数据的展示
pbubble = pp + geom_point(aes(size=R0vsR3,color=-1*log10(Qvalue)))
# 自定义渐变颜色
pbubble + scale_colour_gradient(low="green",high="red")

# 绘制pathway富集散点图
pr = pbubble + scale_colour_gradient(low="green",high="red") + labs(color=expression(-log[10](Qvalue)),size="Gene number",x="Rich factor",y="Pathway name",title="Top20 of pathway enrichment")
# 改变图片的样式(主题)
pr + theme_bw()
## 保存图片
ggsave("out.pdf")   # 保存为pdf格式,支持 pdf,png,svg多重格式
ggsave("out.png")  # 保存为png格式
ggsave("out2.png",width=4,height=4)   # 设定图片大小
  

备注,绘图数据的说明:
(1)绘图数据来自我们公司KEGG富集分析的结果,相应文件是结题报告中存在的,略作调整即可;
(2)绘图数据每一列的意思:
1)Pathway      : 通路的名称        
2)R0vsR3            :差异表达基因中,属于这个通路的基因的数量
3)All_Unigene        :所有基因中属于这个通路的基因的数量  
4)Pvalue            :富集分析p值
5)Qvalue                :富集分析的Q值
6)richFactor        :在我们分析报告中,没有提供这一列,但很容易计算。是 第二列 除以 第三列得到;
7)Pathway ID        :通路ID  
8)Genes                :通路中基因的ID
9)KOs                  :通路中基因的KO号
补充一点:绘图仅仅用到4类,分布是第1,2,5,6列
再补充一点(来源25,26,28楼的讨论)
(1)在pathway名称中如有重名,这会导致错误。在表中每个pathway只能出现一次;
(2)文本中,出现了引号会导致错误。例如,  Alzheimer's disease, Huntington's disease这样的名称。
      这两个pathway 名称中的引号需要删除。引号的出现,会导致R无法识别两个引号间的其他符号(退格符,换行符等),导致文件读取错误。
      如果一定要保留引号,则引号的内容再用引号囊括起来,例如:
       "Alzheimer's disease","Huntington's disease",从而避免单个出现的引号对其他字符的影响 。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

旧代码:pp = ggplot(pathway,aes(richFactor,Pathway)) 少了右括号,已修正。  发表于 2016.1.20 00:25
回复

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
0
注册时间
2016.1.15
在线时间
277 小时

活跃会员


发表于 2016.1.15 16:32:26 | 显示全部楼层
好帖,谢谢
新的一天加油!
回复

使用道具 举报

功夫熊猫

Rank: 10Rank: 10Rank: 10

主题
32
注册时间
2016.1.8
在线时间
674 小时

发表于 2016.1.15 16:46:19 | 显示全部楼层
老师 怎么修改气泡圆点的边缘呢 看起来不太圆?谢谢
新的一天加油!
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
15
注册时间
2015.11.12
在线时间
28 小时

发表于 2016.1.15 17:42:10 | 显示全部楼层
我是来膜拜楼主的
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
5
注册时间
2015.12.21
在线时间
82 小时

突出贡献论坛元老


 楼主| 发表于 2016.1.15 17:42:55 | 显示全部楼层
platove 发表于 2016.1.15 16:46
老师 怎么修改气泡圆点的边缘呢 看起来不太圆?谢谢

分辨率问题,其实是圆的,这个我真帮不了你
回复 支持 反对

使用道具 举报

功夫熊猫

Rank: 10Rank: 10Rank: 10

主题
32
注册时间
2016.1.8
在线时间
674 小时

发表于 2016.1.15 17:44:01 | 显示全部楼层
生物信息学 发表于 2016.1.15 17:42
分辨率问题,其实是圆的,这个我真帮不了你

好吧 在pDF看就是圆的 一般图片就不圆 谢谢
新的一天加油!
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2015.12.30
在线时间
5 小时

发表于 2016.1.16 14:46:32 | 显示全部楼层
这帖子我喜欢!!!!哈哈哈,神帖,正好我需要。抱走
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
8
注册时间
2015.12.29
在线时间
80 小时

发表于 2016.1.18 17:07:52 | 显示全部楼层
   牛
新的一天加油!
回复 支持 反对

使用道具 举报

版主

Rank: 10Rank: 10Rank: 10

主题
63
注册时间
2016.1.6
在线时间
341 小时

活跃会员


发表于 2016.1.18 20:34:08 | 显示全部楼层
喜欢这个帖子
不用回家了
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
3
注册时间
2016.1.8
在线时间
27 小时

发表于 2016.1.19 16:07:22 | 显示全部楼层
我想问下数据里面每一个PATHWAY的rich factor是怎么算出来的,有什么统计学意义吗?谢谢@生物信息学
回复 支持 反对

使用道具 举报

管理员

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

主题
49
注册时间
2015.12.5
在线时间
547 小时

活跃会员论坛元老


发表于 2016.1.19 16:23:01 | 显示全部楼层
qh2012 发表于 2016.1.19 16:07
我想问下数据里面每一个PATHWAY的rich factor是怎么算出来的,有什么统计学意义吗?谢谢@生物信息学 ...

Rich Factor是 这个  差异表达基因中属于这个pathway的基因数量/ pathway中基因的总数;
统计学上的意义谈不上,就是一个统计量吧。
新的一天加油!
回复 支持 反对

使用道具 举报

迅猛龙

Rank: 8Rank: 8

主题
17
注册时间
2015.12.7
在线时间
145 小时

优秀版主


发表于 2016.1.19 16:26:22 | 显示全部楼层
qh2012 发表于 2016.1.19 16:07
我想问下数据里面每一个PATHWAY的rich factor是怎么算出来的,有什么统计学意义吗?谢谢@生物信息学 ...

rich factor指差异表达的基因中位于该pathway条目的基因数目与所有基因中位于该pathway条目的基因总数的比值。RichFactor越大,表示富集的程度越高。这就是它的统计学意义了吧!

评分

参与人数 1奥币 +6 收起 理由
基迪奥-周煌凯 + 6 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
3
注册时间
2016.1.8
在线时间
27 小时

发表于 2016.1.19 17:25:57 | 显示全部楼层
谢谢基迪奥-小师妹

点评

这个是基迪奥艾鹏整理的哦  发表于 2016.1.20 13:48
回复 支持 反对

使用道具 举报

帝王蝶

Rank: 4

主题
1
注册时间
2015.12.29
在线时间
20 小时

发表于 2016.1.19 17:56:23 | 显示全部楼层
太好了,正想学这个图怎么做的十分感谢分享!
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2016.3.1
在线时间
4 小时

发表于 2016.3.7 10:18:34 | 显示全部楼层
等了好久,终于 有了教程,非常感谢!
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2016.3.1
在线时间
4 小时

发表于 2016.3.7 10:20:21 | 显示全部楼层
等了好久,终于 有了教程,非常感谢!
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
0
注册时间
2015.12.8
在线时间
18 小时

发表于 2016.3.8 09:08:07 | 显示全部楼层
留个记号,以备后用。
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
4
注册时间
2016.3.16
在线时间
47 小时

发表于 2016.3.31 08:30:10 | 显示全部楼层
周老师,没有怎么保存图片的代码啊。网上搜的可是保存完pdf后打不开
回复 支持 反对

使用道具 举报

钵水母

Rank: 3Rank: 3

主题
4
注册时间
2016.3.16
在线时间
47 小时

发表于 2016.3.31 08:30:44 | 显示全部楼层
再留个保存成各种图片格式的代码就完美了
回复 支持 反对

使用道具 举报

管理员

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

主题
49
注册时间
2015.12.5
在线时间
547 小时

活跃会员论坛元老


发表于 2016.3.31 09:19:04 | 显示全部楼层
张蒙 发表于 2016.3.31 08:30
周老师,没有怎么保存图片的代码啊。网上搜的可是保存完pdf后打不开

已经补充 保存的代码(ggsave)
新的一天加油!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表