cytoflow.operations.bleedthrough_piecewise¶

class
cytoflow.operations.bleedthrough_piecewise.
BleedthroughPiecewiseOp
[source]¶ Bases:
traits.has_traits.HasStrictTraits
Warning
THIS OPERATION IS DEPRECATED.
Apply bleedthrough correction to a set of fluorescence channels.
This is not a traditional bleedthrough matrixbased compensation; it uses a similar set of singlecolor controls, but instead of computing a compensation matrix, it fits a piecewiselinear spline to the untransformed data and uses those splines to compute the correction factor at each point in a mesh across the color space. The experimental data is corrected using a linear interpolation along that mesh: this is much faster than computing the correction factor for each cell indiviually (an operation that takes 5 msec each.)
To use, set up the
controls
dict with the single color controls; callestimate()
to parameterize the operation; check that the bleedthrough plots look good with theplot()
method of theBleedthroughPiecewiseDiagnostic
instance returned bydefault_view()
; and then callapply()
with anExperiment
.Warning
THIS OPERATION IS DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE. TO USE IT, SET :attr:`ignore_deprecated` TO ``True``. IF YOU HAVE A USE CASE WHERE THIS WORKS BETTER THAN THE LINEAR BLEEDTHROUGH CORRECTION, PLEASE EMAIL ME OR FILE A BUG.

controls
¶ The channel names to correct, and corresponding singlecolor control FCS files to estimate the correction splines with. Must be set to use estimate().
Type: Dict(Str, File)

num_knots
¶ The number of internal control points to estimate, spaced logevenly from 0 to the range of the channel. Must be set to use estimate().
Type: Int (default = 12)

mesh_size
¶ The size of each axis in the mesh used to interpolate corrected values.
Type: Int (default = 32)

ignore_deprecated
¶ Type: Bool (default = False)
Notes
We use an interpolationbased scheme to estimate corrected bleedthrough. The algorithm is as follows:
 Fit a piecewiselinear spline to each singlecolor control’s bleedthrough into other channels. Because we want to fit the spline to untransfomed data, but capture both the negative, positivelinear and positivelog portions of a traditional flow data set, we distribute the spline knots evenly on an hlogtransformed axis for each color we’re correcting.
 At each point on a regular mesh spanning the entire range of the instrument, estimate the mapping from (raw colors) –> (actual colors). The mesh points are also distributed evenly along the hlogtransformed color axes; this captures negative data as well as positive This is quite slow: ~30 seconds for a mesh size of 32 in 3space. Remember that additional channels expand the number of mesh points exponentially!
 Use these estimates to paramaterize a linear interpolator (in linear space, this time). There’s one interpolator per output channel (so for a 3channel correction, each interpolator is R^3 –> R). For each measured cell, run each interpolator to give the corrected output.
Examples
Create a small experiment:
>>> import cytoflow as flow >>> import_op = flow.ImportOp() >>> import_op.tubes = [flow.Tube(file = "tasbe/rby.fcs")] >>> ex = import_op.apply()
Create and parameterize the operation
>>> bl_op = flow.BleedthroughPiecewiseOp() >>> bl_op.controls = {'Pacific BlueA' : 'tasbe/ebfp.fcs', ... 'FITCA' : 'tasbe/eyfp.fcs', ... 'PETxRedYGA' : 'tasbe/mkate.fcs'} >>> bl_op.ignore_deprecated = True
Estimate the model parameters
>>> bl_op.estimate(ex)
Plot the diagnostic plot
>>> bl_op.default_view().plot(ex)
Apply the operation to the experiment
>>> ex2 = bl_op.apply(ex)

estimate
(experiment, subset=None)[source]¶ Estimate the bleedthrough from the singlechannel controls in
controls

apply
(experiment)[source]¶ Applies the bleedthrough correction to an experiment.
Parameters: experiment (Experiment) – the old_experiment to which this op is applied Returns:  A new
Experiment
with the bleedthrough subtracted out.  Corrected channels have the following additional metadata
  **bleedthrough_channels** (List(Str)) – The channels that were used to correct this one.
  **bleedthrough_fn** (Callable (Tuple(Float) –> Float)) – The function that will correct one event in this channel. Pass it the values specified in bleedthrough_channels and it will return the corrected value for this channel.
 A new


class
cytoflow.operations.bleedthrough_piecewise.
BleedthroughPiecewiseDiagnostic
[source]¶ Bases:
traits.has_traits.HasStrictTraits
Plots a scatterplot of each channel vs every other channel and the bleedthrough spline

op
¶ The operation whose parameters we’re viewing. If this instance was created with
BleedthroughPiecewiseOp.default_view()
, this attribute is already set for you.Type: Instance(BleedthroughPiecewiseOp)

subset
¶ Only plot this subset of the bleedthrough controls.
Type: str (default = None)
