Measuring size and shape of small fungal spores

I am new to CP but for what I saw I think is a great tool. I am writing because a cannot resolve a problem. I am trying to count and measure the size and shape of fungal spores. Differently from other cases I have read in this forum, these spores are tiny (approx 0.5x3 um) and tend to clump. I developed a simple pipeline that performs a decent job but I cannot separate well clumped spores. I am wondering if there is any way to either get CP to recognize the individual objects in these tiny clusters or to exclude them from the count. I have attached a couple of pics and the pipeline. Spores were stained to get a better contrast


Thank you

If the different options to distinguish clumped object in DetectPrimaryObjects don’t work for you, you can always MeasureObjectSizeShape afterwards and then in the next step, filter objects by size based on the measurement (FilterObjects with Category: AreaShape, Measurement: Area is a possibility).

Small note: you need to upload the images to a web server and link to their URL. You can use ImageShack (just google it) or similar services.

Ok my fault. I am not sure if I need to link the images between url tags or img tags. I will try the URL

By the way here is the pipeline I am using

CellProfiler Pipeline:

    File type to be loaded:individual images
    File selection method:Text-Exact match
    Number of images in each group?:3
    Type the text that the excluded images have in common:Do not use
    Analyze all subfolders within the selected folder?:None
    Input image file location:Default Input Folder\x7CNone
    Check image sets for missing or duplicate files?:Yes
    Group images by metadata?:No
    Exclude certain files?:No
    Specify metadata fields to group by:
    Select subfolders to analyze:
    Image count:1
    Text that these images have in common (case-sensitive):.tiff
    Position of this image in each group:1
    Extract metadata from where?:None
    Regular expression that finds metadata in the file name:^(?P<Plate>.*)_(?P<Well>\x5BA-P\x5D\x5B0-9\x5D{2})_s(?P<Site>\x5B0-9\x5D)
    Type the regular expression that finds metadata in the subfolder path:.*\x5B\\\\/\x5D(?P<Date>.*)\x5B\\\\/\x5D(?P<Run>.*)$
    Channel count:1
    Group the movie frames?:No
    Grouping method:Interleaved
    Number of channels per group:3
    Load the input as images or objects?:Images
    Name this loaded image:DNA
    Name this loaded object:Nuclei
    Retain outlines of loaded objects?:No
    Name the outline image:LoadedImageOutlines
    Channel number:1
    Rescale intensities?:Yes

    Select the input image:DNA
    Conversion method:Split
    Image type\x3A:Channels
    Name the output image:OrigGray
    Relative weight of the red channel:1
    Relative weight of the green channel:1
    Relative weight of the blue channel:1
    Convert red to gray?:Yes
    Name the output image:OrigRed
    Convert green to gray?:Yes
    Name the output image:OrigGreen
    Convert blue to gray?:Yes
    Name the output image:OrigBlue
    Channel count:1
    Channel number\x3A:Red\x3A 1
    Relative weight of the channel:1
    Image name\x3A:Channel1

    Raise the power of the result by:2
    Multiply the result by:1
    Add to result:0
    Set values less than 0 equal to 0?:Yes
    Set values greater than 1 equal to 1?:Yes
    Ignore the image masks?:No
    Name the output image:ImageAfterMath
    Image or measurement?:Image
    Select the first image:Channel1
    Multiply the first image by:1
    Image or measurement?:Image
    Select the second image:
    Multiply the second image by:1

    Select the input image:ImageAfterMath
    Name the output image:IllumBlue
    Select how the illumination function is calculated:Regular
    Dilate objects in the final averaged image?:No
    Dilation radius:1
    Block size:60
    Rescale the illumination function?:Yes
    Calculate function for each image individually, or based on all images?:Each
    Smoothing method:Fit Polynomial
    Method to calculate smoothing filter size:Automatic
    Approximate object size:10
    Smoothing filter size:10
    Retain the averaged image for use later in the pipeline (for example, in SaveImages)?:No
    Name the averaged image:IllumBlueAvg
    Retain the dilated image for use later in the pipeline (for example, in SaveImages)?:No
    Name the dilated image:IllumBlueDilated
    Automatically calculate spline parameters?:Yes
    Background mode:auto
    Number of spline points:5
    Background threshold:2
    Image resampling factor:2
    Maximum number of iterations:40
    Residual value for convergence:0.001

    Select the input image:ImageAfterMath
    Name the output image:CorrBlue
    Select the illumination function:IllumBlue
    Select how the illumination function is applied:Divide

    Select the input image:ImageAfterMath
    Name the primary objects to be identified:conidia
    Typical diameter of objects, in pixel units (Min,Max):22,60
    Discard objects outside the diameter range?:Yes
    Try to merge too small objects with nearby larger objects?:No
    Discard objects touching the border of the image?:Yes
    Select the thresholding method:Otsu Adaptive
    Threshold correction factor:1.2
    Lower and upper bounds on threshold:0.0,1
    Approximate fraction of image covered by objects?:0.01
    Method to distinguish clumped objects:Laplacian of Gaussian
    Method to draw dividing lines between clumped objects:Intensity
    Size of smoothing filter:10
    Suppress local maxima that are closer than this minimum allowed distance:7
    Speed up by using lower-resolution image to find local maxima?:Yes
    Name the outline image:PrimaryOutlines
    Fill holes in identified objects?:Yes
    Automatically calculate size of smoothing filter?:Yes
    Automatically calculate minimum allowed distance between local maxima?:Yes
    Manual threshold:0.0
    Select binary image:None
    Retain outlines of the identified objects?:Yes
    Automatically calculate the threshold using the Otsu method?:No
    Enter Laplacian of Gaussian threshold:0.4
    Two-class or three-class thresholding?:Two classes
    Minimize the weighted variance or the entropy?:Weighted variance
    Assign pixels in the middle intensity class to the foreground or the background?:Foreground
    Automatically calculate the size of objects for the Laplacian of Gaussian filter?:Yes
    Enter LoG filter diameter:5
    Handling of objects if excessive number of objects identified:Continue
    Maximum number of objects:500
    Select the measurement to threshold with:None

    Select objects to measure:conidia
    Calculate the Zernike features?:Yes

    Select or enter the column delimiter:Tab
    Prepend the output file name to the data file names?:Yes
    Add image metadata columns to your object data file?:No
    Limit output to a size that is allowed in Excel?:Yes
    Select the columns of measurements to export?:Yes
    Calculate the per-image mean values for object measurements?:No
    Calculate the per-image median values for object measurements?:No
    Calculate the per-image standard deviation values for object measurements?:No
    Output file location:Default Output Folder\x7CNone
    Create a GenePattern GCT file?:No
    Select source of sample row name:Metadata
    Select the image to use as the identifier:None
    Select the metadata to use as the identifier:None
    Export all measurements, using default file names?:Yes
    Press button to select measurements to export:Image\x7CScaling_DNA,Image\x7CThreshold_OrigThreshold_conidia,Image\x7CThreshold_SumOfEntropies_conidia,Image\x7CThreshold_WeightedVariance_conidia,Image\x7CThreshold_FinalThreshold_conidia,conidia\x7CAreaShape_Perimeter,conidia\x7CAreaShape_FormFactor,conidia\x7CAreaShape_Orientation,conidia\x7CAreaShape_Area,conidia\x7CAreaShape_Solidity,conidia\x7CAreaShape_Zernike_1_1,conidia\x7CAreaShape_Zernike_0_0,conidia\x7CAreaShape_Zernike_3_1,conidia\x7CAreaShape_Zernike_3_3,conidia\x7CAreaShape_Zernike_2_0,conidia\x7CAreaShape_Zernike_2_2,conidia\x7CAreaShape_Zernike_5_1,conidia\x7CAreaShape_Zernike_5_5,conidia\x7CAreaShape_Zernike_5_3,conidia\x7CAreaShape_Zernike_4_0,conidia\x7CAreaShape_Zernike_4_2,conidia\x7CAreaShape_Zernike_4_4,conidia\x7CAreaShape_Zernike_7_1,conidia\x7CAreaShape_Zernike_7_5,conidia\x7CAreaShape_Zernike_7_3,conidia\x7CAreaShape_Zernike_7_7,conidia\x7CAreaShape_Zernike_6_0,conidia\x7CAreaShape_Zernike_6_2,conidia\x7CAreaShape_Zernike_6_4,conidia\x7CAreaShape_Zernike_6_6,conidia\x7CAreaShape_Zernike_9_1,conidia\x7CAreaShape_Zernike_9_3,conidia\x7CAreaShape_Zernike_9_5,conidia\x7CAreaShape_Zernike_9_7,conidia\x7CAreaShape_Zernike_9_9,conidia\x7CAreaShape_Zernike_8_0,conidia\x7CAreaShape_Zernike_8_2,conidia\x7CAreaShape_Zernike_8_4,conidia\x7CAreaShape_Zernike_8_6,conidia\x7CAreaShape_Zernike_8_8,conidia\x7CAreaShape_EulerNumber,conidia\x7CAreaShape_Compactness,conidia\x7CAreaShape_Extent,conidia\x7CAreaShape_Eccentricity,conidia\x7CAreaShape_MinorAxisLength,conidia\x7CAreaShape_MajorAxisLength,conidia\x7CAreaShape_Center_Y,conidia\x7CAreaShape_Center_X,conidia\x7CNumber_Object_Number
    Data to export:Do not use
    Combine these object measurements with those of the previous object?:No
    File name:DATA.csv
    Use the object name for the file name?:Yes

You may want to do the following:

  • Select Intensity and Intensity as the declumping/dividing line methods respectively.
  • Uncheck the “Automatically calculate size of smoothing filter?” and “Automatically calculate minimum allowed distance between local maxima?” settings and start adjusting the values manually. I suspect the values that are being automatically used to too high, so you may want to start adjusting them downwards.Perhaps start with 1/4 of the lower diameter bound for both.

If you want to exclude larger clumps from the count, you can always specify the higher typical diameter bound in IdentifyPrimaryObjects.