0

I'm creating a college app that plots Flow Cytometry data in an XY Graph. It looks like this:

enter image description here

It works fine for linear plots, but when I need to use logarithmic plots, I cannot represent data that is less than 0 as the log of a negative number is undefined.

So what is the accepted way of representing negative numbers on a log scale in Flow Cytometry?

One option is to add a constant value to all the values so that the smallest value is .001. However, I've seen existing flow cytometry software and it doesnt look like they are using this method (at least to my untrained eye). So what's the generally accepted method to use?

EDIT

This is not a duplicate of this question. I'm specifically asking what's the accepted way to represent negative numbers on a log scale in Flow Cytometry - not generally how to represent negative numbers on a log scale. The context - Flow Cytometry for blood analysis - is extremely important as its quite subjective, and makes this a different question.

EDIT This article suggest something called 'logicle' to display negative values. Seems to be a combination of linear and log.

ludgo
  • 465
  • 1
  • 6
  • 13
Mark
  • 4,428
  • 14
  • 60
  • 116
  • This is NOT a duplicate, I've explained why. Please remove the duplicate tag – Mark Oct 16 '16 at 13:13
  • I voted to re-open, so this is not an R tag post, anymore? – zx8754 Oct 16 '16 at 15:05
  • @zx8754 no, it never should have been, i mistakenly tagged it initially – Mark Oct 16 '16 at 15:33
  • I would use logicle as it is supported by previous use, particularly if you can find other recent research that uses this method to display negative values. – Vince Oct 17 '16 at 14:12
  • @Vince thanks. I've only actually found that paper which suggests logicle. Im not actually sure what the professional software is doing. I've even spoke to users of the software and they too arent sure how the negative values are displayed - they just know they are! – Mark Oct 17 '16 at 17:10
  • Maybe these will help: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4761345/, https://www.ncbi.nlm.nih.gov/pubmed/16604519, http://onlinelibrary.wiley.com/doi/10.1002/cyto.a.20258/pdf. Code for transformation appears to be: https://github.com/Bioconductor-mirror/flowCore/blob/e6de2aa309aa646489d7ad14087c5074bb4202b2/src/logicleTransform.cpp. – Vince Oct 17 '16 at 17:22
  • Thanks - ill go with logicle so – Mark Oct 18 '16 at 07:17
  • https://meta.stackexchange.com/a/127655/316262 – Neuron Jul 11 '18 at 01:25

2 Answers2

0

Following articles support the use of logicle:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4761345

http://www.ncbi.nlm.nih.gov/pubmed/16604519

http://www.onlinelibrary.wiley.com/doi/10.1002/cyto.a.20258/pdf

Code for transformation appears to be available here:

https://www.github.com/Bioconductor-mirror/flowCore

Vince
  • 3,325
  • 2
  • 23
  • 41
0

Since the question was NOT limited to Logicle only, I provide a wider range of options.

Problem formulation:
Quite often, an increase in measured cytometry marker expression tends to be coupled with exponential values growth. Logical consequent step would be to apply logarithmic transformation. (The purpose is the data can be visualized for gating, or the transformation is just a part of data pre-process.) Since you cannot log any negative number, different log-like functions have been developed, often based on so called bi-exponential functions.

Some commonly used transformations (ref. also scientific papers):

  1. Inverse Hyperbolic Sine

arcsinh
for every real x

Used by Cytobank.
Many memorable publications in mass cytometry (like the most cited publication with search phrase “mass cytometry” at Google Scholar in 2017) use arcsinh as well.

Be aware of the term cofactor, arcsinh is applied like:

arcsinh transformation

  1. Logicle

  2. Hyperlog

Another helpful, non-academic source.

ludgo
  • 465
  • 1
  • 6
  • 13