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.HasStrictTraits
A scale that transforms the data using the
logicle
function.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 toW
it will be used.0.5
is usually a good start.- experiment¶
the
Experiment
used to estimate the scale parameters.- Type
Instance(cytoflow.Experiment)
- channel¶
If set, choose scale parameters from this channel in
experiment
. One ofchannel
,condition
orstatistic
must be set.- Type
Str
- condition¶
If set, choose scale parameters from this condition in
experiment
. One ofchannel
,condition
orstatistic
must be set.- Type
Str
- statistic¶
If set, choose scale parameters from this statistic in
experiment
. One ofchannel
,condition
orstatistic
must 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
quantiles
to 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.Normalize
instance, which normalizes values for amatplotlib
color palette.
- class cytoflow.utility.logicle_scale.MatplotlibLogicleScale(axis, **kwargs)[source]¶
Bases:
traits.has_traits.HasTraits
,matplotlib.scale.ScaleBase
A class that inherits from
matplotlib.scale.ScaleBase
, which implements all the bits formatplotlib
to 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_dims
or shape (N xinput_dims
).- Returns
The output values as NumPy array of length
input_dims
or 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_dims
or shape (N xinput_dims
).- Returns
The output values as NumPy array of length
input_dims
or shape (N xoutput_dims
), depending on the input.- Return type
array
- class cytoflow.utility.logicle_scale.LogicleMajorLocator[source]¶
Bases:
matplotlib.ticker.Locator
Determine the tick locations for logicle axes. Based on matplotlib.LogLocator
- class cytoflow.utility.logicle_scale.LogicleMinorLocator[source]¶
Bases:
matplotlib.ticker.Locator
Determine the tick locations for logicle axes. Based on matplotlib.LogLocator