# [BioC] flowCore package - logicle transformation

Mike wjiang2 at fhcrc.org
Wed Apr 16 20:44:42 CEST 2014

'Logicle' c++ class and its member functions are defined in 'logicle.h'
and 'logicle.cpp' (from original author Wayne Moore), apparently you can
use it in your c++ codes as long as you place the copyright notice ( see
example file 'hyperlog.notice.html' in the flowCore source root).
Here is how to use in c++:

vector<double> output (n);
Logicle lg = Logicle(T, W, M, A);
for (int i = 0; i < n; i++)output[i] = lg->scale(output)[i] * M ;

And Here is the R code for using logicle transformation

data(GvHD)
samp <- GvHD[[1]]

## User defined logicle function
lgcl <- logicleTransform( w = 0.5, t= 10000, m =4.5)
after <- transform(samp, `FL1-H` = lgcl(`FL1-H`), `FL2-H` = lgcl(`FL2-H`))

## check the transformed results by plotting it
densityplot(~`FL1-H`, samp)
densityplot(~`FL1-H`, after)

## Automatically estimate the logicle transformation based on the data
lgcl <- estimateLogicle(samp, channels = c("FL1-H", "FL2-H", "FL3-H",
"FL2-A", "FL4-H"))
## transform  parameters using the estimated logicle transformation
after <- transform(samp, lgcl)

## plot all channels to check the transformed results
densityplot(~., samp)
densityplot(~., after)

Mike
On 04/14/2014 12:34 AM, Elina.Alaterre at horiba.com wrote:
> Hi Mike,
>
>
> I have cytometer data with coordinates for each point. These data were
> compensated with Spillover matrix.
>
> How can I tranform these compensated data ? (I use my own C++ program to do
> that)
>
> I find in the flowCore package some C++ scripts (logicleTransform.cpp,
> Logicle.cpp, biexponential.c ...)  I do not understand their features. Can
> I use them to do the transformation ?
>
> If you have some tutorials.
>
> Also, when I use R to tranform data with the logicle transformation, I
> would like to know the functions or methods used step by step.
>
> Sincerely,
> Elina Alaterre.
>
>
>
>