nii2dcm
nii2dcm copied to clipboard
dunamai RuntimeError and UnboundLocalError: local variable 'nZ' referenced before assignment
Thanks for your work on nii2dcm! I'm considering integrating this as part of my QSM processing toolbox, QSMxT.
However, I'm having problems using it in my miniconda setup:
(qsmxt) ~/.../data/qsmtest/qsm: nii2dcm sub-1_ses-20231020_part-phase_T2Starw_romeo-unwrapped_normalized_pdf_rts_twopass_ref.nii dicom-output-directory/ --dicom-type MR
Traceback (most recent call last):
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/bin/nii2dcm", line 5, in <module>
from nii2dcm.__main__ import cli
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/nii2dcm/__main__.py", line 9, in <module>
from nii2dcm._version import __version__
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/nii2dcm/_version.py", line 2, in <module>
__version__ = Version.from_git().serialize(metadata=False, style=Style.SemVer)
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/dunamai/__init__.py", line 1058, in from_git
_detect_vcs(vcs)
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/dunamai/__init__.py", line 355, in _detect_vcs
raise RuntimeError(
RuntimeError: This does not appear to be a Git project
It is related somehow to the dunamai package. Any idea what could be causing this?
I tried initialising a git repository in the local directory to see if that could be a workaround, but then I have a new problem:
(qsmxt) ~/.../data/qsmtest/qsm: nii2dcm -d MR sub-1_ses-20231020_part-phase_T2Starw_romeo-unwrapped_normalized_pdf_rts_twopass_ref.nii dicom-output-directory/
Traceback (most recent call last):
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/bin/nii2dcm", line 8, in <module>
sys.exit(cli())
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/nii2dcm/__main__.py", line 55, in cli
run_nii2dcm(
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/nii2dcm/run.py", line 38, in run_nii2dcm
nii2dcm_parameters = nii2dcm.nii.Nifti.get_nii2dcm_parameters(nii)
File "/home/ashley/neurodesktop-storage/miniconda3/envs/qsmxt/lib/python3.8/site-packages/nii2dcm/nii.py", line 38, in get_nii2dcm_parameters
nInstances = nZ*nF
UnboundLocalError: local variable 'nZ' referenced before assignment
Looking at your code in nii.py
, I can see that this is happening because of the dimensions of my file:
>>> nii.header['dim']
array([ 3, 164, 205, 205, 0, 0, 0, 0], dtype=int16)
Which will not be handled correctly by the initialization code:
https://github.com/tomaroberts/nii2dcm/blob/09d20e02f61da2aa5e7a2e57bd420828021f0d92/nii2dcm/nii.py#L29C1-L35C58
My file is a 3D volume with 205 slices, each with dimensions 164x205. It is a quantitative susceptibility map with floating-point values in the range of about -4 to +3, with most values around zero.