Learn R Programming

flowCore (version 1.38.2)

biexponentialTransform: Compute a transform using the 'biexponential' function

Description

The 'biexponential' is an over-parameterized inverse of the hyperbolic sine. The function to be inverted takes the form biexp(x) = a*exp(b*(x-w))-c*exp(-d*(x-w))+f with default parameters selected to correspond to the hyperbolic sine.

Usage

biexponentialTransform(transformationId="defaultBiexponentialTransform", a = 0.5, b = 1, c = 0.5, d = 1, f = 0, w = 0, tol = .Machine$double.eps^0.25, maxit = as.integer(5000))

Arguments

transformationId
A name to assign to the transformation. Used by the transform/filter integration routines.
a
See the function description above. Defaults to 0.5
b
See the function description above. Defaults to 1.0
c
See the function description above. Defaults to 0.5 (the same as a)
d
See the function description above. Defaults to 1 (the same as b)
f
A constant bias for the intercept. Defaults to 0.
w
A constant bias for the 0 point of the data. Defaults to 0.
tol
A tolerance to pass to the inversion routine (uniroot usually)
maxit
A maximum number of iterations to use, also passed to uniroot

Value

Returns values giving the inverse of the biexponential within a certain tolerance. This function should be used with care as numerical inversion routines often have problems with the inversion process due to the large range of values that are essentially 0. Do not be surprised if you end up with population splitting about w and other odd artifacts.

See Also

transform

Examples

Run this code
# Construct some "flow-like" data which tends to be hetereoscedastic.
data(GvHD)
biexp  <- biexponentialTransform("myTransform")

after.1 <- transform(GvHD, transformList('FSC-H', biexp))

biexp  <- biexponentialTransform("myTransform",w=10)
after.2 <- transform(GvHD, transformList('FSC-H', biexp))

opar = par(mfcol=c(3, 1))
plot(density(exprs(GvHD[[1]])[, 1]), main="Original")
plot(density(exprs(after.1[[1]])[, 1]), main="Standard Transform")
plot(density(exprs(after.2[[1]])[, 1]), main="Shifted Zero Point")

Run the code above in your browser using DataLab