Open MRPM12 opened 1 year ago
Which version of nibabel are you using and which version of TractSeg?
Thank you for your reply. The version of nibabel is 4.0.2 and the version of TractSeg seems to be 2.4. pip install TractSeg showed the following.
Requirement already satisfied: TractSeg in /home/brain/.local/lib/python3.8/site-packages (2.4) Requirement already satisfied: nibabel>=2.3.0 in /home/brain/.local/lib/python3.8/site-packages (from TractSeg) (4.0.2)
Trackvis is no longer supported by nibabel. So you can not use the output format trk_legacy
. The other output formats should work.
Otherwise you can try doing
pip install --upgrade nibabel==3.2.1
This will downgrade nibabel.
Thank you for your suggestion. I tried to change to the recommended version of nibabel and conducted TractSeg module. Then the below showed.
$ TractSeg -i Diffusion.nii.gz -o tractseg_output --raw_diffusion_input --output_type tract_segmentation
Traceback (most recent call last):
File "/home/brain/.local/bin/TractSeg", line 20, in
Is there more appropriate way to use TractSeg?
It seems that dipy does not work well with the older nibabel. I would recommend to not use trk_legacy
output format, but trk
or tck
.
Hi, I am also getting the same error with trackvis. Can I just confirm, in order to not use: trk_legacy output format, but trk or tck, should we modify your plot_utils script to do this? If so how should we go about doing this? I have tried adding the option in my command as below in a bash script:
TractSeg -i "${wkdir}/input/preproc/ses-${Sessionnum}/TractSeg/S${sub_number}/TractSeg_input/Diffusion.nii.gz" \
-o my/output/directory \
--bvals "${wkdir}/input/preproc/ses-${Sessionnum}/TractSeg/S${sub_number}/TractSeg_input/Diffusion.bvals" \
--bvecs "${wkdir}/input/preproc/ses-${Sessionnum}/TractSeg/S${sub_number}/TractSeg_input/Diffusion.bvecs" \
--tracking_format tck \
--raw_diffusion_input
But it still generates the error:
Traceback (most recent call last):
File "/home/anaconda3/envs/yh/bin/TractSeg", line 20, in
Many thanks!
While this may not be the best solution, you will need to change the source code in order to get the imports to work properly
in this file (or the equivalent location for you): /usr/local/lib/python3.10/dist-packages/tractseg/libs/fiber_utils.py
change from dipy.segment.metric import ResampleFeature
to from dipy.segment.featurespeed import ResampleFeature
change from dipy.tracking.streamline import compress_streamlines as compress_streamlines_dipy
to from dipy.tracking.streamlinespeed import compress_streamlines as compress_streamlines_dipy
for the nibabel import error, downgrading to the suggested 3.2.1 version worked for me
Hi experts.
I started to use TractSeg but am facing the following error. Is there a solution? $ TractSeg -i Diffusion.nii.gz -o tractseg_output --raw_diffusion_input --output_type tract_segmentation Traceback (most recent call last): File "/home/brain/.local/bin/TractSeg", line 20, in
from tractseg.libs import plot_utils
File "/home/brain/.local/lib/python3.8/site-packages/tractseg/libs/plot_utils.py", line 11, in
from nibabel import trackvis
ImportError: cannot import name 'trackvis' from 'nibabel' (/home/brain/.local/lib/python3.8/site-packages/nibabel/init.py)