Feature extraction

Choose feature families per channel, then merge their results using the field/cell identity. Morphology uses [None] as its channel selection.

ic.batch_calculate_features(
    [([None], "morphological"),
     (["C2", "C3"], "profiling"),
     (["C3"], "objects")],
    all_data=False, reset=True, max_mesh_size=1000,
)
features = ic.merge_dataframes(discard_morphological_nan=True)

Feature families

  • morphological measures the cell geometry and inverse-phase profiles.

  • profiling measures background-subtracted channel signal along or across the cell, plus texture.

  • objects requires detected object contours for that channel.

  • membrane uses detected-object/contour data to sample membrane-associated signal around a selected contour.

  • svm supplies phase and geometry features for quality curation.

colocalization exists in the source but is incomplete. The generic dispatch can see other helper names too; only the implemented feature families above are documented as workflow choices. The older phase mention in a docstring does not correspond to an implemented feature method.

Profiles and texture

Axial profiles sample around the midline. Mesh profiles average intensity across the width at successive positions. normalize_per_cell performs min–max normalization within that profile; a constant profile becomes zeros. This normalization removes amplitude differences between cells and should not be interpreted as an absolute fluorescence measurement.

Radial intensity distribution samples successive eroded contours and uses the cropped image intensity range for normalization. GLCM descriptors use quantized image intensities and the implementation’s background masking and matrix settings. They depend on acquisition and preprocessing as well as signal structure.

Optional data and failure behavior

all_data is method-specific. In the current source it gates detailed per-object arrays for objects; it does not suppress the profiling or membrane arrays. The Feature dictionary identifies conditional outputs.

Cells above max_mesh_size are removed from the image’s cell list. A failure in an individual feature calculation sets its discard state for that pass and records a cell error; the corresponding feature row is omitted. Other feature families can still retain a row for that identity, so a merged table can contain missing channel quantities. See Processing summaries and logging.

Repeated calculations

reset=True clears all feature tables. reset=False retains other pairs, but recalculating an existing method/channel pair replaces that pair’s table. Every feature calculation invalidates the previously merged table. Merge again before export or downstream correlation calculations. The five-channel example uses two passes to apply C2 signal shifting separately from C3–C5 measurements.