deGate: 1D density gating method

View source: R/flowDensity_methods.R

deGateR Documentation

1D density gating method

Description

Find the best threshold for a single channel in flow cytometry data based on its density distribution.

Usage

deGate(obj,channel, n.sd = 1.5, use.percentile = FALSE,  percentile =NA,use.upper=FALSE, upper = NA,verbose=TRUE,twin.factor=.98,
                   bimodal=F,after.peak=NA,alpha = 0.1, sd.threshold = FALSE, all.cuts = FALSE,
                   tinypeak.removal=1/25, adjust.dens = 1,count.lim=20,magnitude=.3,slope.w=4,seq.w = 4, spar = 0.4, ...)

Arguments

obj

obj: a 'FlowFrame' object, 'CellPopulation' or 'GatingHierarchy'

channel

a channel's name or its corresponding index in the 'flow.frame'.

n.sd

an integer coefficient for the standard deviation to determine the threshold based on the standard deviation if 'sd.threshold' is TRUE.

use.percentile

if TRUE, forces to return the 'percentile'th threshold.

percentile

A value in [0,1] that is used as the percentile. The default is NA. If set to a value(n) and use.percentile=F, it returns the n-th percentile, for 1-peak populations.

use.upper

Logical. If TRUE, forces to return the inflection point based on the first (last) peak if upper=F (upper=T). Default value is set to 'FALSE'

upper

if TRUE, finds the change in the slope at the tail of the density curve, if FALSE, finds it at the head. Default value is set to 'NA'.

verbose

Logical. If TRUE, Prints a message if only one peak is found, or when inflection point is used to set the gates.

twin.factor

a value in [0,1] that is used to exclude twinpeaks

bimodal

Logical. If TRUE, it returns a cutoff that splits population closer to 50-50, when there are more than two peaks.

after.peak

Logical. If TRUE, it returns a cutoff that is after the maximum peaks, when there are more than two peaks.

alpha

a value in [0,1) specifying the significance of change in the slope being detected. This is by default 0.1, and typically need not be changed.

sd.threshold

if TRUE, uses 'n.sd' times standard deviation as the threshold. Default value is set to 'FALSE'.

all.cuts

if TRUE, returns all the identified cutoff points, i.e. potential thresholds for that channel. Default value is set to 'FALSE'.

tinypeak.removal

A number in [0,1] to exclude/include tiny peaks in density distribution.

adjust.dens

The smoothness of density in [0,Inf] to be used in density(.). The default value is 1 and should not be changed unless necessary

count.lim

minimum limit for events count in order to calculate the threshold. Default is 20, returning NA as threshold.

magnitude

A value between 0 and 1, for tracking a slope and reporting changes that are smaller than magnitude*peak_height

slope.w

window.width for tracking slope. Default is 4, calculating a slope based on 4 points before and after the current point.

seq.w

value used for making the sequence of density points, used in trackSlope.

spar

value used in smooth.spline function, used in generating the density, default is 0.4.

...

Extra arguments to be passed to smoothSpline function.

Details

deGate works for GatingHierarchy, flowFrame, CellPopulation object or a numeric vector of data. In case the input is a numeric vector, channel doesn't need to provided, but the rest of arguments can be used to tune the outcome.

Value

an integer value (vector) of cutoff(s), i.e. threshold(s), on the specified channel

Author(s)

Mehrnoush Malek <mmalekes@bccrc.ca>

See Also

getflowFrame notSubFrame flowDensity

Examples


data_dir <- system.file("extdata", package = "flowDensity")
load(list.files(pattern = 'sampleFCS_1', data_dir, full = TRUE))
#Find the threshold for CD20
cd19.gate <- deGate(f,channel="PerCP-Cy5-5-A")
# Gate out the CD20- populations using the notSubFrame
plotDens(f,c("APC-H7-A","PerCP-Cy5-5-A"))
abline(h=cd19.gate,lty=3,col=2)

mehrnoushmalek/flowDensity documentation built on Oct. 31, 2023, 1:27 a.m.