Donuts

cellprofiler

#1

Do you have any suggestions about identifying and measuring cells in an image such as this one? The cells look like donuts with a dark region in the middle.
Thanks,
Tony



#2

Hi Tony,

Non-fluorescent images, including brightfield, DIC, and phase-contrast (which kind is this example?), are notoriously hard to segment, as I’m sure you have learned. See this topic for one possible solution http://www.cellprofiler.org/forum/viewtopic.php?f=2&t=492

We have in development modules for transforming DIC images so that they are easier to segment, as well as a Circular Hough transform module which is good for finding, obviously, circular objects like yours. Hopefully in our next CP release (no ETA just yet) we’ll have these fully tested and ready to go.

David


#3

David,
We developed a pipeline using ‘find edges’ and ‘unify objects’ to find and measure Jurkat cells in phase contrast images. We compared the area measurements form 5 images of cells, obtained with this pipeline with measurements obtained by manually outlining the cells. The agreement was quite good but the pipeline seemed to miss some cells and the distribution was slightly skewed towards smaller size. Do you have any suggestions for troubleshooting this and improving the pipeline?
Regards,
Tony

Saved Pipeline, in file edges1PIPE.txt, Saved on 31-Mar-2009

Pixel Size: 1

Pipeline:
LoadImages
ColorToGray
FindEdges
SaveImages
SpeedUpCellProfiler
IdentifyPrimAutomatic
UnifyObjects
MeasureObjectAreaShape
FilterByObjectMeasurement
MeasureObjectAreaShape
ExportToExcel
SpeedUpCellProfiler

Module #1: LoadImages revision - 2
How do you want to load these files? Text-Exact match
Type the text that one type of image has in common (for TEXT options), or their position in each group (for ORDER option): con420
What do you want to call these images within CellProfiler? image1
Type the text that one type of image has in common (for TEXT options), or their position in each group (for ORDER option). Type “Do not use” to ignore: Do not use
What do you want to call these images within CellProfiler? (Type “Do not use” to ignore) Do not use
Type the text that one type of image has in common (for TEXT options), or their position in each group (for ORDER option): Do not use
What do you want to call these images within CellProfiler? Do not use
Type the text that one type of image has in common (for TEXT options), or their position in each group (for ORDER option): Do not use
What do you want to call these images within CellProfiler? Do not use
If using ORDER, how many images are there in each group (i.e. each field of view)? 3
What type of files are you loading? individual images
Analyze all subfolders within the selected folder? No
Enter the path name to the folder where the images to be loaded are located. Type period (.) for default image folder. .
Note - If the movies contain more than just one image type (e.g., brightfield, fluorescent, field-of-view), add the GroupMovieFrames module. .

Module #2: ColorToGray revision - 1
What did you call the image to be converted to Gray? image1
How do you want to convert the color image? Combine
COMBINE options: n/a
What do you want to call the resulting grayscale image? image1
Enter the relative contribution of the red channel 1
Enter the relative contribution of the green channel 1
Enter the relative contribution of the blue channel 1
SPLIT options: n/a
What do you want to call the image that was red? Type N to ignore red. N
What do you want to call the image that was green? Type N to ignore green. N
What do you want to call the image that was blue? Type N to ignore blue. N

Module #3: FindEdges revision - 3
What did you call the image in which you want to find edges? image1
What do you want to call the image with edges identified? binary1
Enter an absolute threshold in the range [0,1], or type ‘‘Do not use’’ to calculate automatically. Do not use
Enter the Threshold Adjustment Factor, or leave it = 1. 1
Choose an edge-finding method: Sobel
For RATIO method, enter the filter size (in pixels): 8
For RATIO method, do you want the output image to be binary (black/white) or grayscale? Binary
For SOBEL and ROBERTS methods, do you want edge thinning? No
For SOBEL and PREWITT methods, which edges do you want to find? All
For LoG and CANNY methods, enter the value of sigma. Use ‘‘Do not use’’ to calculate automatically. Do not use
For CANNY method, enter the low threshold. Use ‘‘Do not use’’ to calculate automatically. Do not use

Module #4: SaveImages revision - 14
What did you call the images you want to save? If you would like to save an entire figure, enter the module number here binary1
Which images’’ original filenames do you want use as a prefix for these new images’’ filenames? Your choice MUST be images loaded directly with a Load module. Alternately, type N to use sequential numbers for the file names, or type =DesiredFilename to use the single file name you specify (replace DesiredFilename with the name you actually want) for all files (this is required when saving an avi movie). image1
Enter text to append to the image name, type N to use sequential numbers, or leave “Do not use” to not append anything. N
In what file format do you want to save images (figures must be saved as fig, which is only openable in Matlab)? jpg
Enter the pathname to the directory where you want to save the images. Type period (.) for default output directory or ampersand (&) for the directory of the original image. .
Enter the bit depth at which to save the images (Note: some image formats do not support saving at a bit depth of 12 or 16; see Matlab’‘s imwrite function for more details.) 8
Do you want to always check whether you will be overwriting a file when saving images? Yes
At what point in the pipeline do you want to save the image? When saving in avi (movie) format, choose Every cycle. Every cycle
If you are saving in avi (movie) format, do you want to save the movie only after the last cycle is processed (enter ‘‘L’’), or after every Nth cycle (1,2,3…)? Saving movies is time-consuming. See the help for this module for more details. L
Do you want to rescale the images to use a full 8 bit (256 graylevel) dynamic range (Y or N)? Use the RescaleIntensity module for other rescaling options. No
For grayscale images, specify the colormap to use (see help). This is critical for movie (avi) files. Choosing anything other than gray may degrade image quality or result in image stretching. gray
Enter any optional parameters here (’‘Quality’’,1 or ‘‘Quality’’,100 etc.) or leave “Do not use” for no optional parameters. Do not use
Update file names within CellProfiler? See help for details. No
Do you want to create subdirectories in the output directory to match the input image directory structure? (Note: This option cannot be used with the “N” or “=DesiredFilename” option above) No
Warning! It is possible to overwrite existing files using this module! n/a

Module #5: SpeedUpCellProfiler revision - 5
Output files should be saved every Nth cycle (1,2,3,…). Note: the output file is always saved after the first or last cycle is processed, no matter what is entered here. 1
Do you want to clear the memory (may not be compatible with some modules)? Yes
If yes, which images would you like to remain in memory? binary1
binary1
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use

Module #6: IdentifyPrimAutomatic revision - 12
What did you call the images you want to process? binary1
What do you want to call the objects identified by this module? objects
Typical diameter of objects, in pixel units (Min,Max): 10,100
Discard objects outside the diameter range? No
Try to merge too small objects with nearby larger objects? No
Discard objects touching the border of the image? Yes
Select an automatic thresholding method or enter an absolute threshold in the range [0,1]. To choose a binary image, select “Other” and type its name. Choosing ‘‘All’’ will use the Otsu Global method to calculate a single threshold for the entire image group. The other methods calculate a threshold for each image individually. “Set interactively” will allow you to manually adjust the threshold during the first cycle to determine what will work well. binary1
Threshold correction factor 1
Lower and upper bounds on threshold, in the range [0,1] 0,1
For MoG thresholding, what is the approximate fraction of image covered by objects? 0.01
Method to distinguish clumped objects (see help for details): None
Method to draw dividing lines between clumped objects (see help for details): None
Size of smoothing filter, in pixel units (if you are distinguishing between clumped objects). Enter 0 for low resolution images with small objects (~< 5 pixel diameter) to prevent any image smoothing. 0
Suppress local maxima within this distance, (a positive integer, in pixel units) (if you are distinguishing between clumped objects) 0
Speed up by using lower-resolution image to find local maxima? (if you are distinguishing between clumped objects) Yes
Enter the following information, separated by commas, if you would like to use the Laplacian of Gaussian method for identifying objects instead of using the above settings: Size of neighborhood(height,width),Sigma,Minimum Area,Size for Wiener Filter(height,width),Threshold Do not use
What do you want to call the outlines of the identified objects (optional)? Do not use
Do you want to fill holes in identified objects? Yes
Do you want to run in test mode where each method for distinguishing clumped objects is compared? No

Module #7: UnifyObjects revision - 1
What did you call the objects you want to filter? objects
What do you want to call the relabeled objects? objects1
Distance within which objects should be unified 10
Grayscale image the intensities of which are used to determine whether to merge (optional, see help) None

Module #8: MeasureObjectAreaShape revision - 3
What did you call the objects that you want to measure? objects1
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Would you like to calculate the Zernike features for each object (with lots of objects, this can be very slow)? No

Module #9: FilterByObjectMeasurement revision - 5
Which object would you like to filter by, or if using a Ratio, what is the numerator object? objects1
What do you want to call the filtered objects? objects2
Which category of measurements would you want to filter by? AreaShape
Which feature do you want to use? (Enter the feature number or name - see help for details) 1
For INTENSITY, AREAOCCUPIED or TEXTURE features, which image’'s measurements do you want to use (for other measurements, this will only affect the display)? binary1
For TEXTURE, RADIAL DISTRIBUTION, OR NEIGHBORS features, what previously measured size scale (TEXTURE OR NEIGHBORS) or previously used number of bins (RADIALDISTRIBUTION) do you want to use? 1
Minimum value required: 1000
Maximum value allowed: 18000
What do you want to call the outlines of the identified objects (optional)? Do not use

Module #10: MeasureObjectAreaShape revision - 3
What did you call the objects that you want to measure? objects2
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Would you like to calculate the Zernike features for each object (with lots of objects, this can be very slow)? No

Module #11: ExportToExcel revision - 1
Which objects do you want to export? objects2
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use

Module #12: SpeedUpCellProfiler revision - 5
Output files should be saved every Nth cycle (1,2,3,…). Note: the output file is always saved after the first or last cycle is processed, no matter what is entered here. 1
Do you want to clear the memory (may not be compatible with some modules)? Yes
If yes, which images would you like to remain in memory? Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use
Do not use





#4

Hi Tony,

Would you mind posting your pipeline .mat file directly? It is easier for us to see the pipeline’s effects in action on these example images.

Thanks,
David


#5

David,
Here is the .mat file.
Many thanks,
Tony
edgesPIPE.mat (1.44 KB)