空间代谢组 | 数据可视化挖掘必看—微区加边界线教程(内附代码)
在空间代谢组分析中,微区的划分是其中重要的一环。在可视化展示过程中,需要为这些特定区域加上边界线,以标识特定微区。本质上,这是给有分组信息的散点添加边界线。今天我们将介绍几种加边界线的方法。同时,在绘制PCA、TSNE、UMAP等降维图时,也可以进行个性化修改。
为方便理解,用R自带数据集iris, PCA后的数据,绘制散点图来演示。示例数据格式如下:
2.1 用ggplot2中的stat_ellipse()绘制置信椭圆边界线
利用ggplot2中函数stat_ellipse(),给不同组添加置信椭圆的边界线。
library(openxlsx)
library(ggplot2)
# 读取示例文件
df1 <- openxlsx::read.xlsx("PCA.xlsx")
# 绘图
p <-ggplot(data = df1,aes(x=PC1,y=PC2))+ labs(x = ''PC1'', y = ''PC2'')
theme(panel.background = element_rect(color = ''black'', fill = ''transparent''),
panel.grid = element_blank(), legend.key = element_blank(),
axis.text = element_text(color = ''black''), axis.ticks = element_line(color = ''black''))
p1 <- p + stat_ellipse(aes(color = iris.Species), level = 0.95, linetype = 2, show.legend = FALSE) + # linetype 控制边界线类型
geom_point(aes(color = iris.Species)) + scale_colour_manual(values = c("purple","green","tomato"))
p1 效果图
▼
2.2 用ggplot2中geom_polygon()绘制多边形边界线
利用ggplot2中函数geom_polygon(),给不同组添加多边形的边界线,这里首先需要获得处在边界线上点的坐标,然后绘制多边形。
#计算各组样本的边界
library(plyr)
border <- ddply(df1, ''iris.Species'', function(df) df[chull(df[[1]], df[[2]]), ])
#将边界点连接为多边形表示样本分组
p2 <- p + geom_polygon(data = border, aes(color = iris.Species), fill = ''transparent'', show.legend = FALSE) +
geom_point(aes(color = iris.Species)) +
scale_color_manual(values = c("purple","green","tomato"))
p2 效果图:
▼
2.3 用ggalt中函数geom_encircle()绘制不规则曲线
利用ggplot2扩展包ggalt中geom_encircle()绘制不规则的曲线,将特定区域框选出来。
#绘制不规则曲线表示样本分组
library(ggalt)
p3 <- p + geom_encircle(aes(color = iris.Species), show.legend = FALSE) +
geom_point(aes(color = iris.Species)) +
scale_color_manual(values = c("purple","green","tomato"))
p3 效果图
▼
2.4 用ggforce中函数geom_mark_hull()绘制无规则边界线
利用ggplot2另外一个扩展包ggforce中的函数geom_mark_hull()绘制无规则边界线,ggforce包除了函数geom_mark_hull()以外,还有函数geom_mark_rect() 、geom_mark_circle()、geom_mark_ellipse(),分别画矩形、圆形、椭圆形的边界线,这里以函数geom_mark_hull()进行演示
# 绘制不规则曲线表示样本分组
library(ggforce)
library(concaveman) # geom_mark_hull() 函数需要concaveman包
p4 <- p + geom_mark_hull(aes(color = iris.Species),
show.legend = FALSE,
expand = unit(3, "mm") # 区域面积的比例,越大边界线范围越大
)+
geom_point(aes(color = iris.Species)) +
scale_color_manual(values = c("purple","green","tomato"))
p4 效果图
▼
下面以空间代谢组分析中,某一mz的intensity在空间上分布展示来进行演示:
好了,今天关于空间代谢组给微区加上边界线的分享就到这里了。更多精彩,关注鹿明生物哦!祝愿大家在科研道路上顺风顺水。
.
文末看点|lumingbio
上海鹿明生物科技有限公司是欧易生物旗下从事蛋白质组及代谢组质谱检测的专业质谱组学服务公司。公司建有国内第一个空间代谢组商业服务平台,深耕质谱组学检测分析,具体包括空间代谢组、双平台代谢组、靶向代谢组、TMT标记定量蛋白组、翻译后修饰蛋白组、4D-DIA蛋白组、单细胞及超微量蛋白组、空间蛋白组等。创新质谱组学平台广泛应用于机制解析、分型诊断、标志物筛选、药靶发掘等多个领域。公司并先后获得高新技术企业、上海市专精特新企业并建有院士专家工作站,自有包括tims tof pro2在内的各类大型质谱近二十台套,年服务项目超2000项。鹿明生物协助合作伙伴发表SCI论文近千篇,成功打造以硬数据、好服务为基础,以空间代谢组为特色的质谱组学检测服务公司品牌。
精彩往期推荐
一文读懂PCA分析(原理、算法、可视化)内附Python作图代码
2023-06-27
2023-05-4
2023-04-17
2023-04-12
探云指南 | 代谢组学一键化报告上新啦——“代谢”你想要的科研图我都有~
2023-03-17
END
小前 撰文
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点“阅读原文”了解更多
-
仪器推荐
-
仪器推荐
-
仪器推荐
-
仪器推荐
-
仪器推荐
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章
-
微信文章