Hello,
I thought I would ask a question to see if I’m missing something obvious.
I built a singularity image to run heudiconv on our cluster, using the latest release. I seem to be running into an error where the image begins running, but quickly errors out. saying that it cannot find the command dcm2niix. It also throws a warning about ‘Input terminal_output in interface Dcm2niix is deprecated.’, which may also be part of the problem.
I’ve copied the commands below, from the job request on the cluster through to the error. Any insight at all is appreciated!
-Jordan
qsub -X -I -l nodes=1:ppn=3,vmem=21gb,walltime=4:00:00
# move subject to scratch
setenv TEST sub-001
setenv SOURCE /autofs/cluster/<lab_data_directory>
setenv WORK /autofs/cluster/<my_account>
mkdir /scratch/raw_dicom && cp -r $SOURCE/dicom/$TEST /scratch/raw_dicom/
# move heuristic over to scratch.
mkdir /scratch/heuristic && cp -r $WORK/heudiconv/heuristics/*proto1*.py /scratch/heuristic/
#Move to singularity directory
cd /usr/local/bin
And here is the actual call to singularity:
compute-0-65:jq86[92] ./singularity -v --debug run \
? --bind '/scratch:/scratch' \
? $WORK/singularity_images/heudiconv/2018-01-18/nipy_heudiconv_latest*.img \
? -d '/scratch/raw_dicom/{subject}/ses-01/*/MR.*' \
? -s $TEST \
? -f /scratch/heuristic/FSMAP_convert_proto1_ses01.py \
? -c dcm2niix -b --minmeta \
? -o /scratch/$TEST
The will run for a minute or so, then report this crash:
compute-0-65:jq86[96] /opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/interfaces/base.py:451: UserWarning: Input terminal_output in interface Dcm2niix is deprecated. Will be removed or raise an error as of release 1.0.0
warn(msg)
180202-17:22:36,371 workflow INFO:
Executing node convert in dir: /tmp/dcm2niixpCBVMC/convert
180202-17:22:36,531 workflow INFO:
Running node "convert" ("nipype.interfaces.dcm2nii.Dcm2niix"), a CommandLine Interface with command:
dcm2niix -b y -z i -x n -t n -m n -f func -o /tmp/dcm2niixpCBVMC/convert -s n -v n /tmp/dcm2niixpCBVMC/convert/MR.1.3.12.2.1107.5.2.34.18001.2016101014450484033594013.
Traceback (most recent call last):
File "/opt/conda/envs/neuro/bin/heudiconv", line 11, in <module>
load_entry_point('heudiconv==0.4', 'console_scripts', 'heudiconv')()
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/cli/run.py", line 99, in main
process_args(args)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/cli/run.py", line 289, in process_args
overwrite=args.overwrite,)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/convert.py", line 164, in prep_conversion
overwrite=overwrite,)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/convert.py", line 242, in convert
tmpdir)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/convert.py", line 349, in nipype_convert
return convertnode.run()
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 407, in run
self._run_interface()
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 517, in _run_interface
self._result = self._run_command(execute)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 650, in _run_command
result = self._interface.run()
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1089, in run
runtime = self._run_interface(runtime)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/interfaces/dcm2nii.py", line 287, in _run_interface
new_runtime = super(Dcm2niix, self)._run_interface(runtime)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1688, in _run_interface
(self.cmd.split()[0], runtime.hostname))
IOError: command 'dcm2niix' could not be found on host compute-0-65.nmr.mgh.harvard.edu
I can also give the verbose output from Singularity if it would be helpful, but it’s too verbose for the board to allow it in the post!