rangeGate
.density1d(x, stain, alpha = "min", sd = 2, plot = FALSE, borderQuant =
0.1, absolute = TRUE, inBetween = FALSE, refLine=NULL,rare=FALSE,bwFac=1.2
,sig=NULL,peakNr=NULL, ...)
[0,1]
, where values closer to 0 will shift the
split point closer to the negative population and values closer to 1
will shift towards the positive population. Additionally, the value
of alpha
can be "min"
, in which case the split point
will be selected as the area of lowest local density between the two
populations. sd
tuning parameter controls how far away from the mode the split point
is set. [0,1]
. TRUE
if the alignment of the measurment range is not
optimal and the bulk of the data is on one end of the theoretical
range.NULL
or a numeric of lenth 1. If
NULL
, this parameter is ignored. When it is set to a numeric, the
minor sub-population (if any) below this reference line
will be igored while determining the separator between positive and
negative.TRUE
or FALSE
, assumes that there is one major peak, and that the rare positive population is to the right of it. Uses a robust estimate of mean and variance to gate the positive cells. The algorithm first tries to identify high density regions in the
data. If the input is a flowSet
, density regions will be
computed on the collapsed data, hence it should have been normalized
before (see warpSet
for one possible normalization
technique). The high density regions are then clasified as positive
and negative populations, based on their mean value in the theoretical
(or absolute if argument absolute=TRUE
) measurement range. In
case there are only two high-density regions the lower one is usually
clasified as the negative populations, however the heuristics in the
algorithm will force the classification towards a positive population
if the mean value is already very high. The absolute
and
borderQuant
arguments can be used to control this
behaviour. The split point between populations will be drawn at the
value of mimimum local density between the two populations, or, if the
alpha
argument is used, somewhere between the two populations
where the value of alpha forces the point to be closer to the negative
(0 - 0.5
) or closer to the positive population (0.5 -
1
).
If there is only a single high-density region, the algorithm will fall
back to estimating the mode of the distribution
(hubers
) and a robust measure of it's variance
and, in combination with the sd
argument, set the split point
somewhere in the right or left tail, depending on the classification
of the region.
For more than two populations, the algorithm will still classify each population into positive and negative and compute the split point between those clusteres, similar to the two population case.
warpSet
, rangeGate
data(GvHD)
dat <- GvHD[pData(GvHD)$Patient==10]
dat <- transform(dat, "FL4-H"=asinh(`FL4-H`), "FL3-H"=asinh(`FL3-H`))
d <- flowStats:::density1d(dat, "FL4-H", plot=TRUE)
if(require(flowViz))
densityplot(~`FL4-H`, dat, refline=d)
## tweaking the location
flowStats:::density1d(dat, "FL4-H", plot=TRUE, alpha=0.8)
## only a single population
flowStats:::density1d(dat, "FL3-H", plot=TRUE)
flowStats:::density1d(dat, "FL3-H", plot=TRUE, sd=2)
Run the code above in your browser using DataLab