Cellprofiler: Simplify code paths for analyzing images (Test mode vs Analyze images)

Created on 20 Oct 2016  路  6Comments  路  Source: CellProfiler/CellProfiler

Currently, Test mode and Analyze images use two separate code paths to run a pipeline (or portion thereof).

This is not ideal because, in some cases, the behavior between the two modes is inconsistent (i.e., some 3D functions work fine in test mode but not in analyze images). And it is generally a pain to maintain/adjust them separately.

There are at least two potential solutions:
(1) Extract the shared functions so both modes have similar behavior except where divergence is definitely needed.
(2) Delete test mode and instead have an "Analyze image # [edit box]" UI element (wording and design TBD) that allows the user to type in a single image set number for processing. The entire pipeline runs as a result for that single image set, _but_ this can essentially function as test mode if the user takes advantage of an existing option: deselect all modules downstream of the module of interest (not sure what the terminology is for unchecking the boxes). This loses some amount of the functionality of test mode but offers far less maintenance/complexity burden.

So that is one point for discussion: what is so bad about option (2)? The main thing is if you have a dozen modules downstream of the one of interest, you need to click all of them one by one. Not _so_ terrible if you only do this a couple of times when developing a pipeline. But does test mode have other critical functionality or situations that would be lost w option (2)?

Bug

All 6 comments

One point of clarification: Which part of the code path is the pain to maintain: the UI elements, or something else "under the hood"?

The reason I ask is that I spend so much time in test mode (as I assume others do as well) that I'd almost prefer that Test mode be the default and the Analysis mode be re-jiggered to be a derivative of that.

I believe option (2) would have severe negative impacts on assay development. When a user wants to change a single setting, they need to run through the whole upstream pipeline? This is directly opposed to the direction CP was headed in, namely to have a more responsive interface (well, it used to be on the Roadmap, though that seems to have disappeared?). The Workspace Viewer was a first stab at this -- and would this go away too? Using other tools like ImageJ and Columbus during assay dev that have responsive (Java) interfaces would win out I fear.

Side note:

some 3D functions work fine in test mode but not in analyze images

Really? Hard for me to grok that.

When a user wants to change a single setting, they need to run through the whole upstream pipeline?

Yes, but I also should have mentioned that CP is getting faster and faster lately. But this is a great point, for some images/pipelines/computers, the upstream modules may take a substantial amount of time and (2) serves that case poorly.

some 3D functions work fine in test mode but not in analyze images
Ah, I should have said that we are having trouble making these functions work properly in both modes... and it's unfortunately a complete mystery why. So yes, it's utterly confusing how this is even possible, but we need to fix it one way or the other before we can release 3D.

Interesting point, Mark, about Test mode being the primary mode. I can't answer the Q about which part is hard to maintain/understand.

Understood @AnneCarpenter re: the speedups in CP, and most appreciated @0x00b1 and @mcquin ! Perhaps that would be enough, but I agree with @braymp that Test Mode would be my preferred default mode. Perhaps if Analysis Mode was simplified by running headless (removing display windows), would that simplify things? I think most users would be fine with (prefer?) not viewing the display windows pop up in Analysis Mode.

And then, this might get us one step closer to another dream -- a selection dialog asking "Process locally, or on AWS?" and then it would magically distribute my jobs 馃槃

@dlogan And then, this might get us one step closer to another dream -- a selection dialog asking "Process locally, or on AWS?" and then it would magically distribute my jobs

We鈥檙e very, very, very close to this!

I am on Cloud 9! hee hee!

Was this page helpful?
0 / 5 - 0 ratings