cytoflow.utility.logicle_scale¶
A scale that transforms the data using the logicle function.
LogicleScale – implements IScale, the cytoflow interface for the scale.
MatplotlibLogicleScale – inherits matplotlib.scale.ScaleBase, implements
the matplotlib interface
LogicleMajorLocator – inherits matplotlib.ticker.Locator, lets matplotlib know where major
tics are along a plot axis.
LogicleMinorLocator – inherits matplotlib.ticker.Locator, lets matplotlib know where minor
tics are along a plot axis
- class cytoflow.utility.logicle_scale.LogicleScale[source]¶
Bases:
traits.has_traits.HasStrictTraitsA scale that transforms the data using the
logiclefunction.This scaling method implements a “linear-like” region around 0, and a “log-like” region for large values, with a very smooth transition between them. It’s particularly good for compensated data, and data where you have “negative” events (events with a fluorescence of ~0.)
If you don’t have any data around 0, you might be better of with a more traditional log scale.
The transformation has one parameter,
W, which specifies the width of the “linear” range in log10 decades. By default, the optimal value is estimated from the data; but if you assign a value toWit will be used.0.5is usually a good start.- experiment¶
the
Experimentused to estimate the scale parameters.- Type
Instance(cytoflow.Experiment)
- channel¶
If set, choose scale parameters from this channel in
experiment. One ofchannel,conditionorstatisticmust be set.- Type
Str
- condition¶
If set, choose scale parameters from this condition in
experiment. One ofchannel,conditionorstatisticmust be set.- Type
Str
- statistic¶
If set, choose scale parameters from this statistic in
experiment. One ofchannel,conditionorstatisticmust be set.- Type
Str
- quantiles = Tuple(Float, Float) (default = (0.001, 0.999))
If there are a few very large or very small values, this can throw off matplotlib’s choice of default axis ranges. Set
quantilesto choose what part of the data to consider when choosing axis ranges.
- W¶
The width of the linear range, in log10 decades. can estimate from data, or use a fixed value like 0.5.
- Type
Float (default = estimated from data)
- M¶
The width of the log portion of the display, in log10 decades.
- Type
Float (default = 4.5)
- A¶
additional decades of negative data to include. the default display usually captures all the data, so 0 is fine to start.
- Type
Float (default = 0.0)
References
- [1] A new “Logicle” display method avoids deceptive effects of logarithmic
scaling for low signals and compensated data. Parks DR, Roederer M, Moore WA. Cytometry A. 2006 Jun;69(6):541-51. PMID: 16604519 http://onlinelibrary.wiley.com/doi/10.1002/cyto.a.20258/full
- [2] Update for the logicle data scale including operational code
implementations. Moore WA, Parks DR. Cytometry A. 2012 Apr;81(4):273-7. doi: 10.1002/cyto.a.22030 PMID: 22411901 http://onlinelibrary.wiley.com/doi/10.1002/cyto.a.22030/full
- name = 'logicle'¶
- norm(vmin=None, vmax=None)[source]¶
A factory function that returns
matplotlib.colors.Normalizeinstance, which normalizes values for amatplotlibcolor palette.
- class cytoflow.utility.logicle_scale.MatplotlibLogicleScale(axis, **kwargs)[source]¶
Bases:
traits.has_traits.HasTraits,matplotlib.scale.ScaleBaseA class that inherits from
matplotlib.scale.ScaleBase, which implements all the bits formatplotlibto use a new scale.- name = 'logicle'¶
- get_transform()[source]¶
Returns the matplotlib.transform instance that does the actual transformation
- set_default_locators_and_formatters(axis)[source]¶
Set the locators and formatters to reasonable defaults for linear scaling.
- class LogicleTransform(**kwargs)[source]¶
Bases:
traits.has_traits.HasTraits,matplotlib.transforms.Transform- input_dims = 1¶
The number of input dimensions of this transform. Must be overridden (with integers) in the subclass.
- output_dims = 1¶
The number of output dimensions of this transform. Must be overridden (with integers) in the subclass.
- is_separable = True¶
True if this transform is separable in the x- and y- dimensions.
- has_inverse = True¶
True if this transform has a corresponding inverse transform.
- transform_non_affine(values)[source]¶
Apply only the non-affine part of this transformation.
transform(values)is always equivalent totransform_affine(transform_non_affine(values)).In non-affine transformations, this is generally equivalent to
transform(values). In affine transformations, this is always a no-op.- Parameters
values (array) – The input values as NumPy array of length
input_dimsor shape (N xinput_dims).- Returns
The output values as NumPy array of length
input_dimsor shape (N xoutput_dims), depending on the input.- Return type
array
- class InvertedLogicleTransform(**kwargs)[source]¶
Bases:
traits.has_traits.HasTraits,matplotlib.transforms.Transform- input_dims = 1¶
The number of input dimensions of this transform. Must be overridden (with integers) in the subclass.
- output_dims = 1¶
The number of output dimensions of this transform. Must be overridden (with integers) in the subclass.
- is_separable = True¶
True if this transform is separable in the x- and y- dimensions.
- has_inverse = True¶
True if this transform has a corresponding inverse transform.
- transform_non_affine(values)[source]¶
Apply only the non-affine part of this transformation.
transform(values)is always equivalent totransform_affine(transform_non_affine(values)).In non-affine transformations, this is generally equivalent to
transform(values). In affine transformations, this is always a no-op.- Parameters
values (array) – The input values as NumPy array of length
input_dimsor shape (N xinput_dims).- Returns
The output values as NumPy array of length
input_dimsor shape (N xoutput_dims), depending on the input.- Return type
array
- class cytoflow.utility.logicle_scale.LogicleMajorLocator[source]¶
Bases:
matplotlib.ticker.LocatorDetermine the tick locations for logicle axes. Based on matplotlib.LogLocator
- class cytoflow.utility.logicle_scale.LogicleMinorLocator[source]¶
Bases:
matplotlib.ticker.LocatorDetermine the tick locations for logicle axes. Based on matplotlib.LogLocator