Quick plot for cytometry data

knitr::opts_chunk$set(message = FALSE, warning = FALSE)
library(ggcyto)
dataDir <- system.file("extdata",package="flowWorkspaceData")
gs <- load_gs(list.files(dataDir, pattern = "gs_bcell_auto",full = TRUE))
data(GvHD)
fs <- GvHD[subset(pData(GvHD), Patient %in%5 & Visit %in% c(5:6))[["name"]]]

flowSet

geom_density layer is used for one-dimensional plot.

autoplot(fs, x = 'FSC-H')

geom_hex layer is added for 2d plot.

autoplot(fs, x = 'FSC-H', y = 'SSC-H', bins = 64)

flowFrame

For the flowFrame, it can display one-dimensional plots for all channels by not supplying the x argument.

autoplot(fs[[1]]) + labs_cyto("marker")

GatingSet

autoplot(gs, "CD3", bins = 64)

Here are some default settings applied:

Multiple gates that share the same parent can be plotted together.

autoplot(gs, c("CD3", "CD19"), bins = 64)

GatingHierarchy

Multiple cell populations with their asssociated gates can be plotted in different panels of the same plot.

gh <- gs[[1]]
nodes <- gs_get_pop_paths(gh, path = "auto")[c(3:6)]
nodes

autoplot(gh, nodes, bins = 64)

ggcyto_arrange

Optionally we can manually arrange it as a gtable object and manipulate the layout afterwards.

# get ggcyto_GatingLayout object from first sample
res <- autoplot(gs[[1]], nodes, bins = 64)
class(res)
# arrange it as one-row gtable object 
gt <- ggcyto_arrange(res, nrow = 1)
gt
# do the same to the second sample
gt2 <- ggcyto_arrange(autoplot(gs[[2]], nodes, bins = 64), nrow = 1)
# combine the two and print it on the sampe page
gt3 <- gridExtra::gtable_rbind(gt, gt2)
plot(gt3)


Try the ggcyto package in your browser

Any scripts or data that you put into this service are public.

ggcyto documentation built on Nov. 8, 2020, 5:30 p.m.