"NoneType" Object Has No Attribute "Check"

Trying to analyze 3D volumes of cells in a monolayer. Following the cell profiler example pipeline. This works well on example data (obviously, but suggests my Cell Profiler 4 is setup correctly). When I bring in my own two channel (WGA stain and DAPI stained) TIF files, and try RescaleIntensity I get the following in the terminal viewer:

Failed to run module RescaleIntensity
Traceback (most recent call last):
File “cellprofiler\gui\pipelinecontroller.py”, line 3361, in do_step
File “cellprofiler\modules\rescaleintensity.py”, line 444, in display
File “cellprofiler\gui\utilities\figure.py”, line 90, in wrapper
File “cellprofiler\gui\figure_figure.py”, line 1685, in subplot_imshow
File “cellprofiler\gui\figure_figure.py”, line 1265, in get_imshow_menu
AttributeError: ‘NoneType’ object has no attribute ‘Check’

I also get an error pop up claiming

Error while processing RescaleIntensity:
‘NoneType’ object has no attribute ‘Check’.
Do you want to stop processing?

Images were acquired in Olympus Cell Sens V2.3; with a hammamatsu ORCA Flash 4. VSI files were converted to single channel TIF using BioFormats importer in ImageJ. All images are 2048x2048px. I tried downsizing to 50% and images still failed.
XY = 325nm, Z = 570nm from a 20x obj.
C0001 = WGA membrane stain, C0002 = DAPI

Has anyone ran into this problem before and if so how did you resolve it?

basic from scratch.cpproj (612.5 KB)

Images are large, here is a drive link https://drive.google.com/drive/folders/1VnB1KtouoHu2AQIRL5KEJHGzX2D_Qzng?usp=sharing

Hi @kmurph59,

I tried your pipeline & images. Though I successfully reproduce the error, not able to resolve it. Sorry about that. My suggestion would to check x, y & z relative pixel spacing. Also here are few link which might of some help,



@bcimini
Regards,
Lakshmi
www.wakoautomation.com

1 Like

@lakshmi

Thank you very much for taking time out of your day to assist. I’ll go ahead and try modifying the values. Your comment also makes me think I should try a single plane in 2D to help address your hypothesis. I will work on this now and report back.

Ack, I’ll take a look into this bug when I get time. For now you should be able to work around this by disabling the figure preview for the RescaleIntensity module (“close the eye”).

1 Like

Thank you David! @lakshmi advised me to look at the spacing. I tried a few things.

First, taking a single Z plane exported from cellSens program generated single plane images from my .VSI file’s zstack. I separated by channel and stack. I imported a single DAPI image into the basic pipeline only containing rescaleintensity and was able to successfully generate a figure and have CP do the math.

Next, I took all these single plane .tif images and reconstructed a stack using BioFormats importer and re-saved that out as a .tif stack. Bringing this into CP resulted in the same error as before.

Further, I modified the voxel params in the properties window of ImageJ for the original .tif stacks Olympus cellSens generated from the .vsi acquisition files and for my ImageJ reconstructed stacks from the last step. I set pixel height and width as 0.325 and voxel depth as 0.570; the calibrated nm/pixel values from my stack. This did not solve the problem in the pipeline.

It seems to be something about 3D stacks from Olympus VSI files turned TIFF. The example data from CP website on 3D analysis works fine for me. I will try to dig up some Leica stacks so I can test 3D stacks from .lif files to .tif using LASX. Maybe it is a manufacturer specific problem?

It’s likely to be related to the file format, but the error itself is happening within the display engine. I hopefully will be able to come up with a patch that’ll prevent it from crashing when it meets this particular kind of image in the future.

1 Like

@kmurph59,

Thanks for trying.

@DStirling & @kmurph59 I tried by closing the eyes, it worked with the rescale intensity, but subsequently I tried EnhanceSuppressFeature module & got the following error.

Regards,
Lakshmi
www.wakoautomation.com

Hi All, I exported a TIF stack to images from LASX 512x512px, generated a 3D stack from the images in BioImporter via ImageJ. The module works well with TIF from LASX/Leica. I previously tried this approach with a TIFF series from cellSens/Olympus and it fails. Like @DStirling pointed out, this is clearly a file format issue related to the way cellSens writes out TIFF.

Perhaps there is some software I am unware of that can rewrite a TIFF, disregarding or rewriting any pre-existing metadata or file structure.

I’ve looked into it a bit further and it turns out that the problems are arising because CellProfiler is mistakenly considering volumes as colour images. It’s not specific to the format, but this particular format then ends up breaking the viewer. I should have a patch ready for the next version.

@DStirling thanks for your persistence in finding an answer! Is there a temporary fix I can use on my dataset now? Or will I have to wait for the next update (not sure on that timeline, but my guess is a way out as V4 was just released).

A temporary fix (albeit not ideal) would be to try running without figure displays. You could extract a single plane in something like ImageJ then perhaps use that to tune your parameters. Alternatively you could build from source and try the draft pull request I just made for this.

I expect we’ll put together a 4.0.8 release in early January once everyone is back from the holidays. Sorry it’ll be a wait!

1 Like

Last time I bother @DStirling today. I rolled back to 3.1.9 and the images are processing. Not sure what changed between releases. Definitely not a nice GUI you can scroll through like in 4.0.7, but I’ll try processing on the V3 platform until your next patch is released. Thanks to you and your team.

Had the same issue (‘NoneType’ object has no attribute ‘Check’). for zvi stack in 4.0.7. Not quite sure it’s related to the file format in my case:

  • Changing the stack format before CP still gets the same error for any module as long as their display is set to on (turning off the display stops the error and the step completes just fine).
  • Resizing down the stack prevents the error, and the display can be set to on without any issue, regardless of the module. This also depends on the resolution: the original user’s stack (1388x1040) systematically crashes when the module’s display is on. Resizing down x0.8 or below works just fine, resizing down x0.85 doesn’t.
  • Other oir stack work fine, but again, those are 512x512.
    One work around: resize down all inputs at the start of the pipeline, set all steps & parameters as chosen, resize up objects at the end of the pipeline, then do measurements ++ with display off.
    It should also work just fine to tune the pipe with downsized images and display on, then eliminate the downsizing and turn off all display. Except it’s not possible (almost…) to then verify step by step the impact of not resizing on all modules.