Class and constructor for n-dimensional rectangular
filter
objects.
rectangleGate(..., .gate, filterId="defaultRectangleGate")
filterId
of this gate. The object can later be identified by this name.rectangleGate
as additional named arguments, as described
below. rectangleGate
object for use in filtering
flowFrame
s or other flow cytometry objects."parameterFilter"
, directly. Class "concreteFilter"
, by class
parameterFilter
, distance 2. Class "filter"
, by class parameterFilter
,
distance 3. min,max
:"numeric"
. The
minimum and maximum values of the n-dimensional rectangular
region. parameters
:"character"
,
indicating the parameters for which the rectangleGate
is
defined.filterId
:"character"
,
referencing the filter.new("rectangleGate",
...)
, by using the constructor rectangleGate
or by combining
existing rectangleGates
using the *
method. Using the
constructor is the recommended way of object instantiation: signature(x = "flowFrame", table =
"rectangleGate")
: The workhorse used to evaluate the filter on
data. This is usually not called directly by the user, but
internally by calls to the filter
methods. signature(object = "rectangleGate")
: Print
information about the filter. signature(e1 = "rectangleGate", e2 =
"rectangleGate")
: combining two rectangleGates
into one
higher dimensional representation. signature(x = "rectangleGate", i = "character")
:
Subsetting of a rectangleGate
by parameter name(s). This
is essentially the inverse to *
. n
orthogonal intervals in these
dimensions. n=1
corresponds to a range gate, n=2
to a
rectangle gate, n=3
corresponds to a box region and n>3
to a hyper-rectangular regions. Intervals may be open on one side, in
which case the value for the boundary is supposed to be Inf
or
-Inf
, respectively. rectangleGates
are inclusive, that
means that events on the boundaries are considered to be in the gate.
The constructor is designed to be useful in both direct and
programmatic usage. To use it programmatically, you may either
construct a named list or you may construct a matrix with n
columns and 2
rows. The first row corresponds to the minimal
value for each parameter while the second row corresponds to the
maximal value for each parameter. The names of the parameters are
taken from the column names or from the list names,
respectively. Alternatively, the boundaries of the
rectangleGate
can be given as additional named arguments, where
each of these arguments should be a numeric vector of length 2
;
the function tries to collapse these boundary values into a matrix. Note that boundaries of rectangleGates
where min > max
are syntactically valid, however when evaluated they will always be
empty.
rectangleGate
objects can also be multiplied using the *
operator, provided that both gates have orthogonal axes. This results
in higher-dimensional rectangleGates
. The inverse operation of
subsetting by parameter name(s) is also available.
Evaluating a rectangleGate
generates an object of class
logicalFilterResult
. Accordingly,
rectangleGates
can be used to subset and to split flow
cytometry data sets.
flowFrame
, polygonGate
,
ellipsoidGate
, polytopeGate
,
filter
for evaluation of rectangleGates
and
split
and Subset
for splitting and
subsetting of flow cytometry data sets based on that.
## Loading example data
dat <- read.FCS(system.file("extdata","0877408774.B08",
package="flowCore"))
#Create directly. Most likely from a command line
rectangleGate(filterId="myRectGate", "FSC-H"=c(200, 600), "SSC-H"=c(0, 400))
#To facilitate programmatic construction we also have the following
rg <- rectangleGate(filterId="myRectGate", list("FSC-H"=c(200, 600),
"SSC-H"=c(0, 400)))
mat <- matrix(c(200, 600, 0, 400), ncol=2, dimnames=list(c("min", "max"),
c("FSC-H", "SSC-H")))
rg <- rectangleGate(filterId="myRectGate", .gate=mat)
## Filtering using rectangleGates
fres <- filter(dat, rg)
fres
summary(fres)
## The result of rectangle filtering is a logical subset
Subset(dat, fres)
## We can also split, in which case we get those events in and those
## not in the gate as separate populations
split(dat, fres)
## Multiply rectangle gates
rg1 <- rectangleGate(filterId="FSC-", "FSC-H"=c(-Inf, 50))
rg2 <- rectangleGate(filterId="SSC+", "SSC-H"=c(50, Inf))
rg1 * rg2
## Subset rectangle gates
rg["FSC-H"]
##2d rectangleGate can be coerced to polygonGate
as(rg, "polygonGate")
Run the code above in your browser using DataLab