Membrane features

Prerequisites: Loaded channel, valid cell geometry, and detected object contours for that channel; measurements sample the reconstructed cell contour.

A failed cell calculation omits that family row and records the failure. Missing values in a merged table are not automatically zero. Numerical NaN can also arise within a returned measurement. The object retention option explicitly sets invalid mesh-dependent aggregates to NaN.

cell_perimeter

Exported column: <channel>_cell_perimeter

Meaning: Cell contour perimeter.

Calculation: Sum the distances between consecutive points of the subpixel contour. Explanation: This is the total contour length around the cell boundary in 2D.

Units: µm. Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

u.get_cell_perimeter_measurements(cropped_contour, area, px)

Calculation helpers: bactoscoop.utilities.get_cell_perimeter_measurements().

Source assignment, line 878; bactoscoop.features.Features.membrane().

contour_intensity

Exported column: <channel>_contour_intensity

Meaning: Membrane contour intensity profile.

Calculation: Sample intensity along the eroded and resampled contour and smooth the resulting profile. Explanation: This is the 1D membrane-associated signal profile that runs around the cell perimeter.

Units: Image intensity units after the family-specific preprocessing. Value shape: Array/list per cell (per object for detailed object outputs).

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

contour_intensity_profile

Source assignment, line 889; bactoscoop.features.Features.membrane().

normalized_contour_intensity

Exported column: <channel>_normalized_contour_intensity

Meaning: Normalized membrane contour intensity profile.

Calculation: Apply per-cell min-max normalization: (x - min) / (max - min). Explanation: This rescales the profile to the 0-1 range so cells can be compared independent of absolute intensity differences.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Array/list per cell (per object for detailed object outputs).

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: Within-cell min–max scaling for normalized axial/mesh/contour profiles; complemented contour intensity is transformed separately in the helper.

Current assignment expression (a tuple expression can produce several named outputs):

u.normalize_per_cell(cell.membrane_features['contour_intensity'])

Calculation helpers: bactoscoop.utilities.normalize_per_cell().

Source assignment, line 890; bactoscoop.features.Features.membrane().

complemented_contour_intensity

Exported column: <channel>_complemented_contour_intensity

Meaning: Complemented membrane contour intensity profile.

Calculation: Split the normalized contour profile into two halves, reverse one half, and average opposite positions together. Explanation: This folds the two sides of the membrane onto one common coordinate system for easier comparison.

Units: Image intensity units after the family-specific preprocessing. Value shape: Array/list per cell (per object for detailed object outputs).

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: Within-cell min–max scaling for normalized axial/mesh/contour profiles; complemented contour intensity is transformed separately in the helper.

Current assignment expression (a tuple expression can produce several named outputs):

u.get_complemented_contour_intensity(cell.membrane_features['normalized_contour_intensity'])

Calculation helpers: bactoscoop.utilities.get_complemented_contour_intensity().

Source assignment, line 893; bactoscoop.features.Features.membrane().

contour_intensity_mean

Exported column: <channel>_contour_intensity_mean

Meaning: Mean membrane contour intensity.

Calculation: Compute the requested summary statistic from contour_intensity. Explanation: This condenses the membrane-intensity profile into one interpretable number.

Units: Image intensity units after the family-specific preprocessing. Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

np.mean(contour_intensity_profile)

Source assignment, line 899; bactoscoop.features.Features.membrane().

contour_intensity_std

Exported column: <channel>_contour_intensity_std

Meaning: Standard deviation of membrane contour intensity.

Calculation: Compute the requested summary statistic from contour_intensity. Explanation: This condenses the membrane-intensity profile into one interpretable number.

Units: Image intensity units after the family-specific preprocessing. Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

np.std(contour_intensity_profile)

Source assignment, line 902; bactoscoop.features.Features.membrane().

contour_intensity_kurtosis

Exported column: <channel>_contour_intensity_kurtosis

Meaning: Kurtosis of membrane contour intensity.

Calculation: Compute the requested summary statistic from contour_intensity. Explanation: This condenses the membrane-intensity profile into one interpretable number.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

u.get_kurtosis(contour_intensity_profile)

Calculation helpers: bactoscoop.utilities.get_kurtosis().

Source assignment, line 905; bactoscoop.features.Features.membrane().

contour_intensity_skewness

Exported column: <channel>_contour_intensity_skewness

Meaning: Skewness of membrane contour intensity.

Calculation: Compute the requested summary statistic from contour_intensity. Explanation: This condenses the membrane-intensity profile into one interpretable number.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

u.get_skew(contour_intensity_profile)

Calculation helpers: bactoscoop.utilities.get_skew().

Source assignment, line 908; bactoscoop.features.Features.membrane().

contour_gradient_homogeneity

Exported column: <channel>_contour_gradient_homogeneity

Meaning: Homogeneity of contour-intensity gradients.

Calculation: Compute abs(median(abs(gradient)) - mean(abs(gradient))) on normalized_contour_intensity. Explanation: This measures how uniformly the contour signal changes around the cell perimeter.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

u.get_homogeneity(cell.membrane_features['normalized_contour_intensity'])

Calculation helpers: bactoscoop.utilities.get_homogeneity().

Source assignment, line 911; bactoscoop.features.Features.membrane().

glcm_contour_dissimilarity

Exported column: <channel>_glcm_contour_dissimilarity

Meaning: Membrane texture dissimilarity (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute sum(P(i,j) * |i-j|) across gray-level pairs, averaged over the angles used by bactoscoop. Explanation: Dissimilarity increases when neighboring pixels tend to have different intensities and is lower when neighboring pixels are more alike.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_dissimilarity

Source assignment, line 923; bactoscoop.features.Features.membrane().

glcm_contour_correlation

Exported column: <channel>_glcm_contour_correlation

Meaning: Membrane texture correlation (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute the Haralick correlation term, which measures the covariance of paired gray levels after normalization by their standard deviations. Explanation: Correlation is high when neighboring pixel intensities vary together in a predictable linear way and lower when that relationship is weak.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_correlation

Source assignment, line 926; bactoscoop.features.Features.membrane().

glcm_contour_homogeneity

Exported column: <channel>_glcm_contour_homogeneity

Meaning: Membrane texture homogeneity (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute sum(P(i,j) / (1 + (i-j)^2)) across gray-level pairs, averaged over angles. Explanation: Homogeneity is high when most co-occurrences lie near the diagonal of the GLCM, meaning neighboring pixels usually have similar intensities.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_homogeneity

Source assignment, line 927; bactoscoop.features.Features.membrane().

glcm_contour_energy

Exported column: <channel>_glcm_contour_energy

Meaning: Membrane texture energy (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute sqrt(sum(P(i,j)^2)), averaged over angles. Explanation: Energy is high when the texture is orderly and dominated by a limited number of recurring gray-level combinations, and lower when the texture is more diverse.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_energy

Source assignment, line 928; bactoscoop.features.Features.membrane().

glcm_contour_contrast

Exported column: <channel>_glcm_contour_contrast

Meaning: Membrane texture contrast (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute sum(P(i,j) * (i-j)^2) across gray-level pairs, averaged over angles. Explanation: Contrast emphasizes strong local intensity differences, so higher values indicate sharper intensity transitions or more pronounced texture variation.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_contrast

Source assignment, line 929; bactoscoop.features.Features.membrane().

glcm_contour_shannon_entropy

Exported column: <channel>_glcm_contour_shannon_entropy

Meaning: Membrane texture Shannon entropy (GLCM).

Calculation: Build the gray-level co-occurrence matrix (GLCM) for the contour-intensity profile and compute its Shannon entropy in base 2. Explanation: Shannon entropy increases when the texture is more complex or unpredictable and decreases when the co-occurrence pattern is more ordered and repetitive.

Units: Dimensionless (GLCM descriptors use quantized intensity bins). Value shape: Scalar.

Availability: emitted whenever this family calculation succeeds; all_data does not gate this key.

Normalization: No additional export-level normalization; the calculation below determines family-specific preprocessing.

Current assignment expression (a tuple expression can produce several named outputs):

glcm_contour_entropy

Source assignment, line 930; bactoscoop.features.Features.membrane().