pauldmccarthy / fsleyes

This is a mirror. Feel free to use the issue tracker. PRs welcome.
https://git.fmrib.ox.ac.uk/fsl/fsleyes/fsleyes/
Other
22 stars 11 forks source link

AttributeError: type object 'LightBoxOpts' has no attribute 'asVoxels' #137

Closed maartenmennes closed 6 months ago

maartenmennes commented 6 months ago

new install of fsl 6.0.7.11 on Centos7 returns this error message when I want to render an image in lightboxview or try 'Show command line for scene'

This is my commandline argument:

fsleyes render -of QC_bet_T1_biascorr_brain_mask.png -slightbox -zx Z -zr 80 256 -ss 7 --hideCursor T1_biascorr.nii.gz T1_biascorr_brain_mask.nii.gz --overlayType mask --outline -w 2

This produces a black (blank) image and the following error message on the command line:

AttributeError: type object 'LightBoxOpts' has no attribute 'asVoxels' Traceback (most recent call last): File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/frame.py", line 804, in wrapper self.onViewPanelMenuItem(vp, aname, sc, **kwargs) File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/frame.py", line 954, in onViewPanelMenuItem func() File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/actions/base.py", line 222, in call return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/views/canvaspanel.py", line 372, in showCommandLineArgs ShowCommandLineAction(self.overlayList, self.displayCtx, self)() File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/actions/base.py", line 222, in call return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/actions/showcommandline.py", line 51, in showCommandLineArgs showCommandLineArgs(self.overlayList, self.displayCtx, self.panel) File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/actions/showcommandline.py", line 78, in showCommandLineArgs args = genCommandLineArgs(overlayList, displayCtx, canvas) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/actions/showcommandline.py", line 113, in genCommandLineArgs argv += parseargs.generateSceneArgs( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/parseargs.py", line 2817, in generateSceneArgs args += _generateArgs(overlayList, ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes/parseargs.py", line 2612, in _generateArgs elif not source.propertyIsEnabled(name): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes_props/properties.py", line 901, in propertyIsEnabled return self.getProp(propName).isEnabled(self) ^^^^^^^^^^^^^^^^^^^^^^ File "/data/softwareArchive/fsl-6.0.7.11/lib/python3.11/site-packages/fsleyes_props/properties.py", line 791, in getProp return getattr(cls, propName) ^^^^^^^^^^^^^^^^^^^^^^

pauldmccarthy commented 6 months ago

Hi @maartenmennes, unfortunately I forgot to add support for the new --asVoxels option in the Show command-line for scene menu item. I'll fix this for the next version.

But the command should work when you call fsleyes render directly from a terminal, e.g. (same as your command, but added --asVoxels):

fsleyes render -of QC_bet_T1_biascorr_brain_mask.png -slightbox -zx Z -zr 80 256 -ss 7 --asVoxels --hideCursor T1_biascorr.nii.gz T1_biascorr_brain_mask.nii.gz --overlayType mask --outline -w 2

If this also isn't working for you, can you share the full stack trace?

maartenmennes commented 6 months ago

Hi @pauldmccarthy, many thanks for the quick response. Yes, the --asVoxels option works from the commandline. So I'm sorted for now.