cytoflow.operations.xform_stat¶
Transforms a statistic. xform_stat
has one class:
TransformStatisticOp
– apply a function to a statistic, making a new statistic.
- class cytoflow.operations.xform_stat.TransformStatisticOp[source]¶
Bases:
traits.has_traits.HasStrictTraits
Apply a function to a statistic, creating a new statistic. The function can be applied to the entire statistic, or it can be applied individually to groups of the statistic. The function should take a
pandas.Series
as its only argument. Return type is arbitrary, but a to be used with the rest ofcytoflow
it should probably be a numeric type or an iterable of numeric types.As a special case, if the function returns a
pandas.Series
with the same index that it was passed, it is interpreted as a transformation. The resulting statistic will have the same length, index names and index levels as the original statistic.- name¶
The operation name. Becomes the first element in the
Experiment.statistics
key tuple.- Type
Str
- statistic¶
The statistic to apply the function to.
- Type
Tuple(Str, Str)
- function¶
The function used to transform the statistic.
function
must take apandas.Series
as its only parameter. The return type is arbitrary, but to work with the rest ofcytoflow
it should probably be a numeric type or an iterable of numeric types.. Ifstatistic_name
is unset, the name of the function becomes the second in element in theExperiment.statistics
key tuple.- Type
Callable
- statistic_name¶
The name of the function; if present, becomes the second element in the
Experiment.statistics
key tuple.- Type
Str
- by¶
A list of metadata attributes to aggregate the input statistic before applying the function. For example, if the statistic has two indices
Time
andDox
, settingby = ["Time", "Dox"]
will applyfunction
separately to each subset of the data with a unique combination ofTime
andDox
.- Type
List(Str)
- fill¶
Value to use in the statistic if a slice of the data is empty.
- Type
Any (default = 0)
Examples
>>> stats_op = ChannelStatisticOp(name = "Mean", ... channel = "Y2-A", ... function = np.mean, ... by = ["Dox"]) >>> ex2 = stats_op.apply(ex) >>> log_op = TransformStatisticOp(name = "LogMean", ... statistic = ("Mean", "mean"), ... function = np.log) >>> ex3 = log_op.apply(ex2)
- apply(experiment)[source]¶
Applies
function
to a statistic.- Parameters
experiment (
Experiment
) – TheExperiment
to apply the operation to- Returns
The same as the old experiment, but with a new statistic that results from applying
function
to the statistic specified instatistic
.- Return type