ixxmu / mp_duty

抓取网络文章到github issues保存
https://archives.duty-machine.now.sh/
110 stars 30 forks source link

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

Closed ixxmu closed 3 years ago

ixxmu commented 3 years ago

https://mp.weixin.qq.com/s/Tx7zA1wWpA8_p5hdEHluCw

github-actions[bot] commented 3 years ago

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

导语

GUIDE 

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

背景介绍




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

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

R包安装




BiocManager::install("ggcyto")library(ggcyto)

可视化展示




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

1、ggplot
ggplot能够使用所有主要的 Cytometry 数据结构,让用户可以进行各种高度定制和多变的绘图
#从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))

#flowSet/ncdfFlowSet/flowFramefs <- gs_pop_get_data(gs, "CD3+")ggplot(fs, aes(x = `<B710-A>`)) + geom_density(fill = "blue", alpha= 0.5)

#gatesgates <- 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
ggcyto(gs, aes(x = CD4, y = CD8)) + geom_hex(bins = 128) + geom_gate("CD8")

3、autoplot

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

autoplot(fs, "CD4")

autoplot(fs, "CD4", "CD8", bins = 64)

autoplot(gs, c("CD4", "CD8"), bins = 64)

02
参数设置

in-line transformation
它是由专门为细胞计数设计的不同scales layers完成的
#先绘制原始的scaledata(GvHD)fr <- GvHD[[1]]p <- autoplot(fr, "FL1-H")p 

##不同的scalep + scale_x_logicle() #flowCore logicle scalep + scale_x_flowJo_fasinh() # flowJo fasinhp + scale_x_flowJo_biexp() # flowJo biexponential

geom_gate

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

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)

#1d gate水平gate_1d_h <- openCyto::gate_mindensity(fr, "<R780-A>")p + geom_gate(gate_1d_h)

#2d 长方形 gategate_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

###增加比例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(缩放限制)
p <- p + ggcyto_par_set(limits = "instrument")p


ggcyto_par_set
通过设置ggcyto_par_set,可以将多种参数聚合在一起
#设置参数集合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来直接应用,类似themep + mySettings

ggcyto_layout
ggCyto还提供了拼图设置布局的功能
gh <- gs[[1]]nodes <- gs_get_pop_paths(gh, path = "auto")[c(3:9, 14)]nodesp <- autoplot(gh, nodes, bins = 64)class(p)p


gt <- ggcyto_arrange(p, nrow = 1)class(gt)p2 <- autoplot(gh_pop_get_data(gh, "CD3+")[,5:8]) # some density plotp2@arrange.main <- ""#clear the default titlegt2 <- 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的参考哟!


分析专辑


单细胞scRNA | R包绘图 | 免疫浸润分析 | 肿瘤纯度评估工具 | 数据库


文章解读专辑


多区域进化文章精读 | 高分文章精读 | 免疫微环境文献解读 


招聘信息


招聘


点击蓝字即可进入专栏!

END

长期诚邀师资合作

作图丫长期进行生信技能培训,诚邀有能力的团队、老师或者科研大咖合作

无论是科研写作技巧、技术分析经验还是生信流程分析,我们保证只要您有专长,作图丫就是您展示自己的舞台

    

如有意,请与赵老师联系,谢谢

微信:guofengzhao527


合作方式:线上课程

劳动报酬:酬劳丰厚,微信私聊


文字均为原创,欢迎读者分享或转发到朋友圈,任何公众号或其他媒体未经许可不得私自转载或抄袭。


由于微信平台算法改版,公众号内容将不再以时间排序展示,建议设置“作图丫”公众号为星标,防止丢失。星标具体步骤为:

(1)点击页面最上方“作图丫”,进入公众号主页;

(2)点击右上角的小点点,在弹出界面选择“设为星标”即可。


作图丫分析作图群进群要求:转发任一篇“zuotuya”公众号文章至微信朋友圈,并附“作图丫关注绘图和精品分析,期待你的关注”,并获得10个赞后加小编微信“guofengzhao527”邀请你加入。