ROIs from plate template


I have a scanned image of a 384w MTP that I would like to convert into ROIs (=wells). The image is about 3k x 5k pixels, bitmap, with ROIs white. Here is the problem: first, there is a memory issue (OK if I run w/o showing windows, but how come one image and 384 ROIs cause a memory issue?); second, it takes several minutes to identify the ROIs. The image is already a bitmap, and in Phototshop it takes perhaps 1 second to select all white areas, so why does it take so long to define the ROIs in CP? Is there a better way?



Hi Thorsten,

There are a few steps you can take to work with your images:

(1) 3k x 5k is a bit on the large side, especially if it’s a bitmap. CellProfiler (and the MATLAB-based code is runs from) handles files differently from Photoshop, in particular in terms of memory. MATLAB converts all images into double precision numbers which can take a lot a space for a large image.

(2) Also, in IdentifyPrimAuto, there are many more operations which the module may be doing in addition to just thresholding, i.e., object size exclusion, de-clumping, etc. It is these operations (which Photoshop doesn’t do) which probably account for much of the time/memory spent.

If you are just thresholding, and nothing else, you may want to (a) set “Discard objects outside of diameter range” to “No” (b) set Discard objects touching border" to “No” © set both “Method to distinguish clumped objects” and “Method to draw dividing lines…” to “None”. This will prevent the calculation of intermediate images which further take up memory.

(3) Last, can you use the AppyThreshold module for this case? Here, you simply set an absolute number to act as your threshold, and you’ll get a binary image as the output. You can then set an absolute threshold in IdentifyPrimAuto, along with the suggestions I mentioned above, and get your wells as objects.