ggplotMarginalDensities
uses ggplot2
to draw plots of marginal densities of selected channels of a flowSet.
If the flowSet contains several flowFrames, all events are concatenated
together.
By default, a pseudo Rsquare projection quality indicator,
and the number of dimensions of the MDS projection are provided in sub-title
ggplotMarginalDensities(
x,
sampleSubset,
channels,
pDataForColour,
pDataForGroup,
nEventInSubsample = Inf,
seed = NULL,
transList
)
a flowCore::flowSet
(or a single flowCore::flowFrame
)
(optional) a logical vector, of size nrow(pData)
,
which is by construction the nb of samples, indicating which samples to keep
in the plot. Typically it is obtained through the evaluation of
a logical condition on pData
rows.
(optional)
(optional) which phenoData(fs)
variable
will be used as colour aesthetic. Should be a character.
(optional) which phenoData(fs)
variable
will be used as group aesthetic. Should be a character.
how many event to take (per flowFrame of the flowSet).
if not null, used in subsampling.
a flowCore::transformList
that will be applied
before plotting.
a ggplot object
library(CytoPipeline)
data(OMIP021Samples)
# estimate scale transformations
# and transform the whole OMIP021Samples
transList <- estimateScaleTransforms(
ff = OMIP021Samples[[1]],
fluoMethod = "estimateLogicle",
scatterMethod = "linearQuantile",
scatterRefMarker = "BV785 - CD3")
OMIP021Trans <- CytoPipeline::applyScaleTransforms(
OMIP021Samples,
transList)
# As there are only 2 samples in OMIP021Samples dataset,
# we create artificial samples that are random combinations of both samples
ffList <- c(
flowCore::flowSet_to_list(OMIP021Trans),
lapply(3:5,
FUN = function(i) {
aggregateAndSample(
OMIP021Trans,
seed = 10*i,
nTotalEvents = 5000)[,1:22]
}))
fsNames <- c("Donor1", "Donor2", paste0("Agg",1:3))
names(ffList) <- fsNames
fsAll <- as(ffList,"flowSet")
flowCore::pData(fsAll)$grpId <- factor(c("D1", "D2", rep("Agg", 3)))
flowCore::pData(fsAll)$lbl <- paste0("S", 1:5)
# plot densities, all samples together
p <- ggplotMarginalDensities(fsAll)
# plot densities, per sample
p <- ggplotMarginalDensities(fsAll, pDataForGroup = "lbl")
# plot densities, per sample and coloured by group
p <- ggplotMarginalDensities(
fsAll,
pDataForGroup = "lbl",
pDataForColour = "grpId")