Running on a Embedded Platform


Is it doable to have cellProfiler run on a embedded platform?
Is the best strategy to create a pipeline that can work with our images, examine the modules being called and string the algorithms run by the modules together to create a program dedicated to our analysis: or are there better ways?
Can we call the pipeline in a headless mode and run our pipeline directly without a user interface and without many of the packages in a full-blown CellProfiler?


Take all of this with the caveat that I am not a software engineer (though I’ll try to make sure one of ours stops by this post):

I believe in terms of a PURE CellProfiler solution, it would be difficult and annoying to untangle the various packages etc required to make a “lightweight” CellProfiler, though running the full program headless on an embedded system should be possible as a Docker (which is how for example we handle our AWS cloud CellProfiler). It’s very possible that I’m wrong though, and that you could bypass some of the requirements by calling CellProfiler modules individually in a python script; I’m simply not sure.

You could absolutely just look at the underlying algorithms; most of CellProfiler’s complexity comes from the GUI, so a bespoke script doing just exactly the things you care about could certainly ditch many of the required packages and would be computationally much less costly (though of course at the cost of flexibility).

Our team is also working on more lightweight solutions, though my understanding is that for right now they primarily deal with measurement as opposed to segmentation. They’re significantly faster than CP though!

I hope that’s enough to begin answering your question; please let me know if I can clarify anything here!


thanks for the feedback ! … and yes would love to get a software engineers take on it as well :slight_smile:


Yeah. It’s not too bad.

You should be able to strip down the dependencies by just removing unused CellProfiler modules from the source distribution (i.e. cellprofiler/modules). CellProfiler only expects a few essential modules. If you can provide some details about your CellProfiler pipeline (i.e. what modules you’re using) and your platform (e.g. architecture) I can provide some additional advice.


I’m working on a segmentation command for Skopy. It should be released in the next few days. However, it only provides a fraction of IdentifyPrimaryObjects and IdentifySecondaryObjects. Nevertheless, it should be useful for a number of common tasks (e.g. like cell nucleus and cell membrane segmentation).


thanks, greatly appreciated. Give us a few weeks and we will have our pipeline in place, will reach out with more details then


Awesome. Do you know the architecture (e.g. ARM64)?


not yet, there are some heated discussion around that topic LOL
On a different note, do you know of any pipeline examples for identifying type/count of white blood cells (neutrophils, lymphocytes, eosinophils, monocytes, basophils). (ideally brightfield)


@Minh might have an idea.



Yes, we indeed have a complete example pipeline of identifying WBCs based on brightfield, please see it here:

You can also see the background of this study in several links provided in the README

The pipeline was built to be used with BF objects aligned in a grid, so if it’s not the case for you, please just ignore the first few modules that dealt with grids. The remaining modules i.e. EnhanceEdge, Morph, Threshold etc. would be useful for you.

To quickly download the pipeline and example images, please right-click on the button “Raw” and choose “Save link as”