Manually remove region

It would be useful if we were able to look at highlighted objects and be able to manually remove any objects we deem unfit for analysis.

Hello,
Thanks for the suggestion. This could certainly be useful for many low-throughput image analysis pipelines.

Because we are focused at the moment on high-throughput imaging it’s unlikely we will get to this anytime soon… it might be more practical to implement your suggestion in a downstream data exploration software package rather than in the image processing step itself. In other words, would it actually be useful to have CellProfiler pause once during each cycle, in the middle of the pipeline, and wait for you to inspect each image and indicate which objects to remove (with no chance to go back later and change your mind or remove more objects)? Seems like downstream might be a better place to do the analysis. What do you think?

Anne

It would be great to have such a module. I am trying to use Cellprofiler to analyze various cancer sections (stained with H&E) and the biggest problem so far is that identifyPrim module highlights some false nuclei. Overall it does an excellent job and only a few false nuclei are present in general. But I need to find a way to remove them completely.

Perhaps we could create an EditObjectsManually module that pauses and waits for user input to select objects to be excluded. I’ve put it on our TO DO list, but my guess is that it will be a while til we get to it. What’s the timeline for your project? If we did this 6 months from now, would it be useless for you?

And, please specify what you would specifically like: My guess is that you’d like a window to open during each cycle that shows all the objects, and you just click anywhere within an object to remove it? Or should each object have a number written on top of it and you type in the number? Or some other mode of input? Let us know what you think and any other ideas so that we can design it well from the beginning. (I imagine someday we might add options to add, split or merge objects, too, but that’s a bit more complicated).

Anne

Thank you for your reply. I think ideally the program can display an image with all current objects highlighted (similar to the “outline overlay” module output), and then the user can click on each false object (anywhere within the object) to delete them.

I think there may be another, potentially easier, way to implement this functionality. This would be particularly useful for images with only a small number of objects. Can you modify identifyPrimManual and identifyPrim modules slightly and sort of combined them? For example, if the user can first manually select objects (not drawing the entire outline, but only clicking once on each individual nucleus), then runs identifyPrim in the old fashion, but now ask it to only return qualified objects highlighted by user. I.e, instead of deleting, the user pre-selects objects. My guess is the code would be relatively easy to write, since you only need to another filter to identifyPrim based on user-highlighted pixels.

I probably need to do this project within the next few months. But I can see a huge potential value of this functionality. Nuclear morphometry is an interesting topic for diagnostic pathologists. Most publications I know use commercial softwares like ImagePro, BD CAS, Zeiss Axiovision, and Autocyte. I believe Cellprofiler can do the job just as well. Depending on the specimen (organ, tumor type, biopsy vs excision), the number of images and number of nuclei may not be large, but accuracy is key. Since there can be various artifacts on a glass slide (pigments, foreign bodies, folds, etc), it is important for us to be able to manually add/delete objects.

I think directly clicking on highlighted objects (maybe with the option to zoom in first) is much better than typing numbers.

A contrasting opinion: I was thinking about implementing something like this downstream of CellProfiler Analyst to enable a quick quality check on identification of a (so far) computationally tricky but human-recognizable phenotype (“this looks good, except these two are positives and this one is negative – click click click, next!”). Doing this in the up-front analysis stream would add no value for my application.

Makes sense, thanks for the comment. By the way, are you already using the “Classify” function of CellProfiler Analyst to do machine learning to score the phenotype? Then the step you describe is downstream of that?

Yes, downstream of the Classifier. Feeding the data back in to the classifier process would be good, too, though I think quality of image segmentation is more limiting than the size of the data set. I haven’t actually done or thought really hard about any of this, though.

The original request, for a module to allow manual removal of objects identified by CellProfiler, is currently being worked on and will be released soon! Someday, it might be more sophisticated to allow splitting and merging of objects as well (if there is demand for this?), but for now our plan is to at least allow objects to be removed by clicking. Stay tuned.
Anne

I didn’t realise this was a requested module and I simply just stumbled upon it on the new release.

Let me just say, I’m so glad you guys decided to develop this sooner rather than later!
It has helped me a lot! Even though I have to edit each cycle, I will obtain more accurate results.

One question: Is it possible to draw dividing lines between clumped objects (my case, nuclei) where CP fails?

Thanks heaps!
Regards

Ah, drawing dividing lines manually is the “splitting/merging” capability I alluded to. Sounds like there is at least one person who wants this. Anyone else?
Anne

[quote=“Anne Carpenter”]Ah, drawing dividing lines manually is the “splitting/merging” capability I alluded to. Sounds like there is at least one person who wants this. Anyone else?
Anne[/quote]

Count me in! I desperately need this function. For now I have to manually draw a white line between overlapped cells (or nuclei) in Photoshop, or simple erase the clump, to make the result more accurate. It’s a pain in the neck.
Jie

I’d also like this option of splitting/merging

thanks for your hard work!

[quote=“Anne Carpenter”]Ah, drawing dividing lines manually is the “splitting/merging” capability I alluded to. Sounds like there is at least one person who wants this. Anyone else?
Anne[/quote]

ME TOO, ME TOO, ME TOO!!!
Thanks for all the great work you guys are doing!!! It is extremely useful!!

[quote=“Anne Carpenter”]The original request, for a module to allow manual removal of objects identified by CellProfiler, is currently being worked on and will be released soon! Someday, it might be more sophisticated to allow splitting and merging of objects as well (if there is demand for this?), but for now our plan is to at least allow objects to be removed by clicking. Stay tuned.
Anne[/quote]

For those who are interested: CellProfiler 2.0 (available from our website) has implemented an EditObjectsManually module which allow the user to manually remove specific objects from each image via a point-and-click interface.

Regards,
-Mark