cytoflow.operations.frame_stat#

The frame_stat module contains one class:

FrameStatisticOp – applies a function to subsets of a data set, and adds the resulting statistic to the Experiment. Unlike ChannelStatisticOp, which operates on a single channel, this operation operates on entire pandas.DataFrame.

class cytoflow.operations.frame_stat.FrameStatisticOp[source]#

Bases: HasStrictTraits

Apply a function to subsets of a data set, and add it as a statistic to the experiment.

The apply function groups the data by the variables in by, then applies the function callable to each pandas.DataFrame subset. The callable should take a pandas.DataFrame as its only parameter and return a pandas.Series whose values are float. The columns of the resulting statistic come from the index (ie, the row names) of the first pandas.Series to be returned.

name#

The operation name. Becomes the first element in the Experiment.statistics key tuple.

Type:

Str

function#

The function used to compute the statistic. Must take a pandas.DataFrame as its only argument and return a pandas.Series containing float values. The row names of this series will become the column names of the new statistic.

Type:

Callable

by#

A list of metadata attributes to aggregate the data before applying the function. For example, if the experiment has two pieces of metadata, Time and Dox, setting by = ["Time", "Dox"] will apply function separately to each subset of the data with a unique combination of Time and Dox.

Type:

List(Str)

subset#

A Python expression sent to Experiment.query() to subset the data before computing the statistic.

Type:

Str

Examples

>>> stats_op = FrameStatisticOp(name = "MeanByDox",
...                             function = lambda x: x.mean,
...                             by = ["Dox"])
>>> ex2 = stats_op.apply(ex)
apply(experiment)[source]#