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().