fsleyes
fsleyes copied to clipboard
Cannot import .trk file
Hi,
I would like to use ortho view to overlay T1 with tractograms I have built. However, after I try to load .trk file a pop-up window appears three times stating that:
An error occurred initialising the display for test.trk
Details: 'NoneType' object has not attribute 'compileShaders'
Tracebacks from the command line:
ERROR status.py 161: reportIfError - Error initialising display: An error occurred initialising the display for test.trk
ERROR status.py 161: reportIfError - Error initialising display: An error occurred initialising the display for test.trk
WARNING idle.py 578: __idleLoop - Idle task wrapper crashed - AttributeError: 'NoneType' object has no attribute 'compileShaders'
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 157, in reportIfError
yield
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 157, in reportIfError
yield
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsl/utils/idle.py", line 576, in __idleLoop
task.task(*task.args, **task.kwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
WARNING idle.py 578: __idleLoop - Idle task wrapper crashed - AttributeError: 'NoneType' object has no attribute 'compileShaders'
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 157, in reportIfError
yield
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsl/utils/idle.py", line 576, in __idleLoop
task.task(*task.args, **task.kwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
WARNING idle.py 578: __idleLoop - Idle task wrapper crashed - AttributeError: 'NoneType' object has no attribute 'compileShaders'
Traceback (most recent call last):
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsl/utils/idle.py", line 576, in __idleLoop
task.task(*task.args, **task.kwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes_widgets/utils/status.py", line 178, in wrapper
func(*wargs, **wkwargs)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/slicecanvas.py", line 622, in create
globj = glresources.get(self.globjectId(overlay),
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/resources.py", line 111, in get
return set(key, createFunc(*args, **kwargs))
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/globject.py", line 98, in createGLObject
return ctr(overlay, overlayList, displayCtx, threedee)
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 59, in __init__
self.compileShaders()
File "/usr/local/fsl/fslpython/envs/fslpython/lib/python3.8/site-packages/fsleyes/gl/gltractogram.py", line 309, in compileShaders
fslgl.gltractogram_funcs.compileShaders(self)
AttributeError: 'NoneType' object has no attribute 'compileShaders'
My setup: OS: Windows 10 + Ubuntu @ WSL2 FSLEyes: 1.4.5 installed with FSL on WSL2 filesystem Both nii.gz T1 and trk files are located outside the WSL2 filesystem, although T1 loads fine.
Is there a way to overcome this?
Hi @mkorycinski, the tractogram visualisation feature requires OpenGL at least 2.1 or newer - my guess is that your system is currently restricted to using OpenGL 1.4 - you can check this in the FSLeyes About dialog, or at the command-line via the glxinfo
command.
Updating your system to support a newer version of OpenGL is a bit of a black art I'm afraid. You should ensure that you have the latest version of mesa installed (you can install/update indirectly by updating the mesa-utils
package on Ubuntu).
On Windows 10/WSL, you may also need to adjust some options in your X server, or use a different X server. What X server are you using at the moment? Mobaxterm or vcxsrv are the best options that I am aware of (although I do not have much Windows experience, nor even access to a Windows machine).
If you have the option of upgrading to Windows 11, it has a built-in Wayland server, so there is no need to install/use a separate X server.
Hi,
Yes, indeed I am using OpenGL 1.4. As far as X server goes, I am using VcXsrv with settings recommended in FSL installation guide.
Thank you for your reply, I will try to update OpenGL to 2.1.