[flowCore] linearization of logarithmic data seems to be calculated wrong
Entering edit mode
max.zhao • 0
Last seen 3.8 years ago

I am currently implementing some features for working with logarithmic flow cytometry data in python and have been using the flowCore library and the FCS3.1 specification as guidelines.

The linearization of logarithmic channels depend on the $PnE parameter, which contains f1 and f2. F1 specifies the log range and f2 the minimal value on the linearized scale matching the zero value on the log scale. (This can be referenced in the FCS3.1 documentation.)

Thus a sample value can be calculated via 10^(x*f1/range) * f2. This is also given as an example in the FCS3.1 documentation.

In flowCore this is implemented as 10^((x*f1/range)*f2). This would - in my understanding - wrongly scale the obtained log scale values. Eg an f2 minimum of 0.1 could only map to 1 on the scale. Which does not seem correct.

Here the source code snipplet for reference: dat[,i] <- 10^((dat[,i]/range[i])*ampli[i,1])

Is the implementation in flowCore wrong or are the examples in the FCS3.1 guidelines wrong?

I am not sure, whether this is the correct place for a bug report. I would be glad for any help in this issue.

flowcore flowcytometry • 513 views
Entering edit mode
Jiang, Mike ★ 1.3k
Last seen 7 weeks ago
(Private Address)

 flowCore currently implemented as 10^((x*f1/range), I just added f2 (https://github.com/RGLab/flowCore/commit/62d261828f5db530f5705b7228f87e420f97fd82), please check out the latest github trunk and let me know if the data looks correct before I push it to BioC. (I don't have the test case for this particular data)


Login before adding your answer.

Traffic: 335 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6