ExportToSpreadsheet Assertion Error

I have a pipeline that works on my CP Windows client (v2.0.0 dded8ac). When this pipeline is transferred and run in headless mode on our Linux cluster (CP v2.x.11364) it hangs at the ExportToSpreadsheet module with an assertion error. The CP version on the Linux cluster differs from the windows one. What do you think I should do? Thanks, Ioannis

Below are the generated runtime CP errors.

Subversion revision: 11353
Times reported are CPU times for each module, not wall-clock time
Tue Oct 8 23:43:17 2013: Image # 1, module LoadData # 1: 2.72 sec (bg)
Tue Oct 8 23:43:20 2013: Image # 1, module IdentifyPrimaryObjects # 2: 26.93 sec (bg)
Tue Oct 8 23:43:47 2013: Image # 1, module IdentifySecondaryObjects # 3: 16.56 sec
Tue Oct 8 23:44:04 2013: Image # 1, module IdentifyTertiaryObjects # 4: 2.25 sec
Tue Oct 8 23:44:06 2013: Image # 1, module MeasureObjectNeighbors # 5: 12.71 sec (bg)
Tue Oct 8 23:44:19 2013: Image # 1, module MeasureImageIntensity # 6: 0.35 sec (bg)
Tue Oct 8 23:44:19 2013: Image # 1, module MeasureObjectIntensity # 7: 22.10 sec (bg)
Tue Oct 8 23:44:41 2013: Image # 1, module MeasureObjectIntensity # 8: 12.33 sec (bg)
Tue Oct 8 23:44:54 2013: Image # 1, module MeasureImageIntensity # 9: 0.59 sec (bg)
Tue Oct 8 23:44:54 2013: Image # 1, module CalculateMath # 10: 0.00 sec (bg)
Tue Oct 8 23:44:55 2013: Image # 1, module CalculateMath # 11: 0.01 sec (bg)
Tue Oct 8 23:44:55 2013: Image # 1, module CalculateMath # 12: 0.01 sec (bg)
Tue Oct 8 23:44:55 2013: Image # 1, module ExportToSpreadsheet # 13: 0.00 sec
Uncaught exception in CellProfiler.py
Traceback (most recent call last):
File “/usr/prog/cellprofiler/2.x.11364/CellProfiler.py”, line 445, in
measurements_filename = None if not use_hdf5 else args[0])
File “/usr/prog/cellprofiler/2.x.11364/cellprofiler/pipeline.py”, line 1115, in run
initial_measurements = measurements):
File “/usr/prog/cellprofiler/2.x.11364/cellprofiler/pipeline.py”, line 1200, in run_with_yield
measurements.next_image_set(image_number, erase=True)
File “/usr/prog/cellprofiler/2.x.11364/cellprofiler/measurements.py”, line 216, in next_image_set
self.erase(object_name, self.image_set_number)
File “/usr/prog/cellprofiler/2.x.11364/cellprofiler/measurements.py”, line 220, in erase
del self.hdf5_dict[object_name, feature_name, image_set_number]
File “/usr/prog/cellprofiler/2.x.11364/cellprofiler/utilities/hdf5_dict.py”, line 206, in delitem
assert feature_exists
TEST Cell by Cell dataV2.cp (11.9 KB)


I’m confused about your version numbers – v2.0.0 dded8ac is from June of 2013 but SVN v2.x.11364 is from 2011! I wouldn’t remotely expect a recent pipeline to be backwards compatible and run on 11364 (before the current release, which is quite old itself). Or am I reading this incorrectly? We switched from svn to git a couple years ago, so our revision numberings are a bit screwy, so hopefully I have this wrong.

If my assumption is correct, you could checkout and use svn 11364 on your local machine, and manually translate your current pipeline. Or you could update your cluster version, which is not a fun prospect, I understand. So the former is likely easier.

Let us know,

Thanks David;
You are correct in every respect. Indeed confusing and indeed dangerous to mix newer versions of pipelines with older versions of CellProfiler.

I was thrown off by the fact that I had tried to validate the pipeline by opening it in the same desktop client whose headless version generated the errors I reported.
No warnings were displayed and the pipeline was re-saved from the client to insure that would execute OK. Still the assertion error persisted.

HOWEVER, when we re-run the pipeline with the most recent trunk version (Version: 2013-10-11T14:03:25 Unknown rev. / 20131011140325) it completed successfully.
So the issue is resolved for the time being, and has increased our attention to better version management.

In UI mode, CP normally produces a warning window if a newer version of CP is opening an older pipeline; this warning can be dismissed permanently if the user chooses. I don’t think the same is the case if a new pipeline is opened with an old version of CP; you can imagine that checking for this might be difficult, esp. if the versioning format changed.

Ioannis: Can you think of a way that this should have been reported to prevent this problem?