前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggcyto--实现R语言的流式细胞数据可视化!

ggcyto--实现R语言的流式细胞数据可视化!

作者头像
作图丫
发布2022-03-29 14:19:01
1.5K0
发布2022-03-29 14:19:01
举报
文章被收录于专栏:作图丫

导语

GUIDE ╲

ggcyto 是一个基于 ggplot 构建的细胞计数数据可视化工具。

背景介绍

流式细胞术通过光学检测系统快速检测多参数的细胞流。许多因素使得流式细胞术能够成功和广泛的应用,比如检测速度(能够允许大量的细胞被检测),高度的准确性和分辨率,低成本。此外,流式细胞术还是一种非破坏性技术,可以分选出活细胞用于后续分析。能够分析和分选单个细胞的能力使流式细胞术在生物学和医学领域有非常广泛的应用。

今天小编给大家介绍的是2018年发表在Bioinformatics上的工具--ggCyto,作为一个开源的BioConductor软件包,ggCyto是基于ggplot2实现流式细胞数据可视化的,它能够让我们更为方便快捷的绘制可用于发表的flow data图片。

R包安装

代码语言:javascript
复制
BiocManager::install("ggcyto")
library(ggcyto)

可视化展示

01

ggCyto支持3种类型的绘图函数

1、ggplot

ggplot能够使用所有主要的 Cytometry 数据结构,让用户可以进行各种高度定制和多变的绘图

代码语言:javascript
复制
#从flowWorkspaceData获得数据
library(flowWorkspaceData)
dataDir <- system.file("extdata",package="flowWorkspaceData")
gs <- load_gs(list.files(dataDir, pattern = "gs_manual",full = TRUE))
attr(gs, "subset") <- "CD3+"
ggplot(gs, aes(x = `<B710-A>`, y = `<R780-A>`)) + geom_hex(bins = 128) + scale_fill_gradientn(colours = gray.colors(9))
代码语言:javascript
复制
#flowSet/ncdfFlowSet/flowFrame
fs <- gs_pop_get_data(gs, "CD3+")
ggplot(fs, aes(x = `<B710-A>`)) + geom_density(fill = "blue", alpha= 0.5)
代码语言:javascript
复制
#gates
gates <- filterList(gs_pop_get_gate(gs, "CD8"))
ggplot(gs, aes(x = `<B710-A>`, y = `<R780-A>`)) + geom_hex(bins = 128) + geom_polygon(data = gates, fill = NA, col = "purple")

2、ggcyto

代码语言:javascript
复制
ggcyto(gs, aes(x = CD4, y = CD8)) + geom_hex(bins = 128) + geom_gate("CD8")

3、autoplot

基于ggplot的Quick plot精神,通过向用户隐藏更多细节来进一步简化绘图工作。绘制flowSet时,它会根据提供的dim数量自动确定geom类型。

代码语言:javascript
复制
autoplot(fs, "CD4")
代码语言:javascript
复制
autoplot(fs, "CD4", "CD8", bins = 64)
代码语言:javascript
复制
autoplot(gs, c("CD4", "CD8"), bins = 64)

02

参数设置

in-line transformation

它是由专门为细胞计数设计的不同scales layers完成的

代码语言:javascript
复制
#先绘制原始的scale
data(GvHD)
fr <- GvHD[[1]]
p <- autoplot(fr, "FL1-H")
p 
代码语言:javascript
复制
##不同的scale
p + scale_x_logicle() #flowCore logicle scale
p + scale_x_flowJo_fasinh() # flowJo fasinh
p + scale_x_flowJo_biexp() # flowJo biexponential

geom_gate

隐藏了绘制不同几何形状的复杂细节

代码语言:javascript
复制
library(openCyto)
fr <- fs[[1]]
p <- autoplot(fr,"CD4", "CD8") + ggcyto_par_set(limits = "instrument")
#1d gate垂直
gate_1d_v <- openCyto::gate_mindensity(fr, "<B710-A>")
p + geom_gate(gate_1d_v)
代码语言:javascript
复制
#1d gate水平
gate_1d_h <- openCyto::gate_mindensity(fr, "<R780-A>")
p + geom_gate(gate_1d_h)
代码语言:javascript
复制
#2d 长方形 gate
gate_rect <- rectangleGate("<B710-A>" = c(gate_1d_v@min, 4e3), "<R780-A>" = c(gate_1d_h@min, 4e3))
p + geom_gate(gate_rect)

geom_stats

代码语言:javascript
复制
###增加比例
p <- ggcyto(gs, aes(x = "CD4", y = "CD8"), subset = "CD3+") + geom_hex()
p + geom_gate("CD4") + geom_stats()
###显示计数
p + geom_gate("CD4") + geom_stats(type = "count")

auto limits(缩放限制)

代码语言:javascript
复制
p <- p + ggcyto_par_set(limits = "instrument")
p

ggcyto_par_set

通过设置ggcyto_par_set,可以将多种参数聚合在一起

代码语言:javascript
复制
#设置参数集合
mySettings <- ggcyto_par_set(limits = "instrument"
                             , facet = facet_wrap("name")
                             , hex_fill = scale_fill_gradientn(colours = rev(RColorBrewer::brewer.pal(11, "Spectral")))
                             , lab = labs_cyto("marker")
)
#通过mysettins来直接应用,类似theme
p + mySettings

ggcyto_layout

ggCyto还提供了拼图设置布局的功能

代码语言:javascript
复制
gh <- gs[[1]]
nodes <- gs_get_pop_paths(gh, path = "auto")[c(3:9, 14)]
nodes
p <- autoplot(gh, nodes, bins = 64)
class(p)
p
代码语言:javascript
复制
gt <- ggcyto_arrange(p, nrow = 1)
class(gt)
p2 <- autoplot(gh_pop_get_data(gh, "CD3+")[,5:8]) # some density plot
p2@arrange.main <- ""#clear the default title
gt2 <- ggcyto_arrange(p2, nrow = 1)

gt3 <- gridExtra::gtable_rbind(gt, gt2)
plot(gt3)

文章参考:

https://www.bioconductor.org/packages/release/bioc/vignettes/ggcyto/inst/doc/Top_features_of_ggcyto.html

小编总结

ggCyto是一个非常简单方便的流式细胞数据可视化工具,支持3种类型的绘图函数,能够满足不同代码水平用户的需求,有需要的小伙伴可以自取ggCyto的参考哟!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • geom_stats
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档