I am also trying to get heudiconv to work using Singularity. I have it working using Docker, and the following command lines:
docker run --rm -it -v /media/danella/DATA1/BEAM:/base nipy/heudiconv:latest -d /base/Dicom/sub-{subject}/ses-{session}//.dcm -o /base/Nifti_temp/ -f convertall -s 103 -ss pre -c none
docker run --rm -it -v /media/danella/DATA1/BEAM:/base nipy/heudiconv:latest -d /base/Dicom/sub-{subject}/ses-{session}//.dcm -o /base/Nifti_temp/ -f /base/Nifti/code/convert_BEAM.py -s 103 -ss pre -c dcm2niix -b
I attempted to convert this to singularity using the following code (where DATA_RAW has been defined as “base” above:
singularity run -B ${DATA_RAW}:${HOME}/data ${HOME}/heudiconv-unstable.simg -d ${HOME}/data/Dicom/sub-{subject}/ses-{session}//.dcm -o ${HOME}/data/Nifti_temp/ -f convertall -s 103 -ss pre -c none
singularity run -B ${DATA_RAW}:${HOME}/data ${HOME}/heudiconv-unstable.simg -d ${HOME}/data/Dicom/sub-{subject}/ses-{session}//.dcm -o ${HOME}/data/Nifti_temp/ -f ${HOME}/data/Nifti/code/convert_BEAM.py -s 103 -ss pre -c dcm2niix -b
The first item of code runs, and the .heudiconv directory is created. However, the second part crashes following conversion of the first run, with the following error code:
ERROR: Embedding failed: [Errno 1] Operation not permitted: ‘/home/danella/data/Nifti_temp/sub-103/ses-pre/func/sub-103_ses-pre_task-cogert1_run-001_bold.json’
INFO: Post-treating /home/danella/data/Nifti_temp/sub-103/ses-pre/func/sub-103_ses-pre_task-cogert1_run-001_bold.json file
Traceback (most recent call last):
File “/opt/miniconda-latest/bin/heudiconv”, line 11, in
load_entry_point(‘heudiconv’, ‘console_scripts’, ‘heudiconv’)()
File “/src/heudiconv/heudiconv/cli/run.py”, line 127, in main
process_args(args)
File “/src/heudiconv/heudiconv/cli/run.py”, line 323, in process_args
dcmconfig=args.dcmconfig,)
File “/src/heudiconv/heudiconv/convert.py”, line 199, in prep_conversion
dcmconfig=dcmconfig,)
File “/src/heudiconv/heudiconv/convert.py”, line 318, in convert
treat_infofile(scaninfo)
File “/src/heudiconv/heudiconv/utils.py”, line 256, in treat_infofile
set_readonly(filename, False)
File “/src/heudiconv/heudiconv/utils.py”, line 389, in set_readonly
os.chmod(path, new_perms)
PermissionError: [Errno 1] Operation not permitted: ‘/home/danella/data/Nifti_temp/sub-103/ses-pre/func/sub-103_ses-pre_task-cogert1_run-001_bold.json’
I am a complete newbie when it comes to Singularity, so any assistance would be much appreciated!