Learn R Programming

curvHDR (version 1.2-2)

curvHDRfilter: Filtering via the curvHDR method.

Description

Filter univariate or bivariate data using the curvHDR method. The motivating application is flow cytometry, where the filters endeavour to mimic human-perceived gates.

Usage

curvHDRfilter(x, HDRlevel, growthFac = NULL, signifLevel = 0.05,
              bwFac = 1, gridsize = NULL, removeDebri = TRUE,
              minSampSize = NULL, HpiGridSize = NULL, quiet = TRUE,
              graphChk = FALSE)

Value

data

the input data (for use in plotting).

insideFilter

logical variable indicating the rows of the input data matrix corresponding to points inside the curvHDR filter.

polys

the curvHDR filter. Depending on the dimension d this is a list of intervals (d=1), polygons (d=2) or polyhedra (d=3).

HDRlevel

highest density region level

Arguments

x

array containing the input data, typically corresponding to flow cytometric measurements. x should either be a numerical vector (univariate input data) or a matrix or data frame having 1-3 columns.

HDRlevel

number between 0 and 1 corresponding to the level of the highest density region within each high curvature region.

growthFac

growth factor parameter. High curvature regions are grown to have `volume' growthFac times larger than the original region.The default value of growthFac is 5^(d/2) where d is the dimension of the input data.

signifLevel

number between 0 and 1 corresponding to the significance level for curve region determination. The default value of signifLevel is 0.05.

bwFac

bandwidth factor. The default bandwidth is multiplied by bwFac. The default value of bwFac is 1.

gridsize

vector of number of grid points in each direction

removeDebri

Boolean flag for removal of `debri' points in the input data. The default value of removeDebri is true.

minSampSize

curvHDR regions with less than minSampSize are excluded. The default value of minSampSize is 50*(2^(d-1)) where d is the dimension of the input data.

HpiGridSize

gridsize used for plug-in bandwidth selection in the case where the input data is trivariate. The default value of HpiGridSize is rep(21,3).

quiet

Boolean flag for `quiet' running. If quiet is FALSE then progress reports on during filter determination are given. The default value of quiet is TRUE

graphChk

Boolean flag for graphical checking. If graphChk is TRUE then graphical displays for each stage of the curvHDRfilter() are sent to the screen. At the first stage, the input data are plotted. Then the high negative curvature regions are shown in purple. This is followed by a display, in green, of the growthFac-magnifications of the convexified high negative curvature regions. The final gates, corresponding to highest density regions for each green region, are shown in blue. The default value of graphChk is FALSE

Author

G. Luta, U. Naumann and M.P. Wand

References

Naumann, U., Luta, G. and Wand, M.P. (2009).
The curvHDR method for gating flow cytometry samples.
BMC Bioinformatics, 11:44, 1-13.

See Also

plot.curvHDRfilter

Examples

Run this code
library(curvHDR)

# Univariate curvHDR examples:

xUniv <- c(rnorm(1000,-2),rnorm(1000,2))

gate1a <- curvHDRfilter(xUniv)
plot(gate1a)
print(gate1a$poly) # List of intervals that define gate1a.
if (FALSE) print(gate1a$insideFilter)  # Indicators of inclusion of
                                     # xUniv inside gate1a.


gate1b <- curvHDRfilter(xUniv,HDRlevel=0.5)
plot(gate1b)
print(gate1b$poly) # List of intervals that define gate1b. 
if (FALSE) print(gate1b$insideFilter) # Indicators of inclusion of
                                     # xUniv inside gate1b.


# Bivariate curvHDR examples:

xBiva <- cbind(c(rnorm(1000,-2),rnorm(1000,2)),
               c(rnorm(1000,-2),rnorm(1000,2)))

if (FALSE) gate2a <- curvHDRfilter(xBiva)
plot(gate2a)
print(gate2a$poly) # List of polygon vertices that define gate2a.
print(gate2a$insideFilter) # Indicators of inclusion of
                             # xBiva inside gate2a.


if (FALSE) {
gate2b <- curvHDRfilter(xBiva,HDRlevel=0.5)
plot(gate2b)
print(gate2b$poly)           # List of polygon vertices that define gate2b.
print(gate2b$insideFilter)   # Indicators of inclusion of
                             # xBiva inside gate2b.
}

# Trivariate curvHDR examples:

if (FALSE) {
xTriv <- cbind(c(rnorm(1000,-2),rnorm(1000,2)),
               c(rnorm(1000,-2),rnorm(1000,2)),
               c(rnorm(1000,-2),rnorm(1000,2)))

gate3a <- curvHDRfilter(xTriv)
plot(gate3a)
print(gate3a$poly)         # List of polyhedron elements that define gate3a.
print(gate3a$insideFilter) # Indicators of inclusion of
                           # xTriv inside gate3a.
}

if (FALSE) {
gate3b <- curvHDRfilter(xTriv,HDRlevel=0.5)
plot(gate3b)
print(gate3b$poly)          # List of polyhedron elements that define gate3b.
print(gate3b$insideFilter)  # Indicators of inclusion of
                            # xTriv inside gate3b.
}

Run the code above in your browser using DataLab