Skip to content

docker - FSLOUTPUTTYPE not set in container

Hello,

It looks like FSLOUTPUTTYPE is not set in the Docker container. Of course, this is easy enough to fix outside of updating the container (e.g., export SINGULARITYENV_FSLOUTPUTTYPE=NIFTI_GZ), but figured I would make you aware of it.

Expected Behavior

omni_pipeline continuing without error

Actual Behavior

ERROR:: Environment variable FSLOUTPUTTYPE is not set!
Please make sure that the appropriate configuration file is sourced by your shell (e.g. by putting it in .profile).
e.g. bash or sh users add the line ". ${FSLDIR}/etc/fslconf/fsl.sh"
e.g. tcsh or csh users add the line "source ${FSLDIR}/etc/fslconf/fsl.csh"
[2023-07-03 18:47:42,885] INFO: Error in subprocess call: flirt -out anat_proc_2_align_anat/sub-01_run-01_T2w_debias_t1space_edge.nii.gz -ref anat_proc_2_align_anat/sub-01_run-01_T1w_debias_edge.nii.gz -in anat_proc_2_align_anat/sub-01_run-01_T2w_debias_edge.nii.gz -dof 6 -cost corratio -interp sinc -omat anat_proc_2_align_anat/t2_to_t1_xfm.mat -v 
 None


input_args: {'output_path': 'anat_proc_2_align_anat', 't1_debias': 'anat_proc_1_debias/sub-01_run-01_T1w_debias.nii.gz', 't2_debias': 'anat_proc_1_debias/sub-01_run-01_T2w_debias.nii.gz', 'ref': 'T1', 'program': 'fsl'}


pipeline_results: {'t1_debias': 'anat_proc_1_debias/sub-01_run-01_T1w_debias.nii.gz', 't2_debias': 'anat_proc_1_debias/sub-01_run-01_T2w_debias.nii.gz', 'output_path': 'anat_proc_2_align_anat', 'ref': 'T1', 'program': 'fsl'}


[2023-07-03 18:47:42,887] INFO: Changed working directory to: /om2/vast/gablab/smeisler/nsd_bids
Traceback (most recent call last):
  File "/usr/local/bin/omni_pipeline", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/omni/scripts/pipeline.py", line 108, in main
    bids_proc(**vars(args))
  File "/usr/local/lib/python3.8/dist-packages/omni/pipelines/bids.py", line 227, in bids_proc
    function_to_run(output_path, t1=t1.path, t2=t2.path, func=func.path, metadata=func.get_metadata(), **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 168, in wrapped
    return func(output_path, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/omni/pipelines/preprocessing.py", line 40, in pre_proc
    anat_results = anat_proc(anat_output, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 168, in wrapped
    return func(output_path, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 207, in wrapped
    return func(*mod_args, **mod_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 399, in wrapped
    return func(output_path, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 259, in wrapped
    return func(*mod_args, **mod_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/omni/pipelines/anat/processing.py", line 136, in anat_proc
    anat_pipeline.run(t1=t1, t2=t2)
  File "/usr/local/lib/python3.8/dist-packages/memori/pipeline.py", line 107, in run
    raise error
  File "/usr/local/lib/python3.8/dist-packages/memori/pipeline.py", line 99, in run
    stage_to_run.run(**input_args)
  File "/usr/local/lib/python3.8/dist-packages/memori/stage.py", line 204, in run
    outputs = self.function_to_call(**self.stage_input_args)
  File "/usr/local/lib/python3.8/dist-packages/memori/helpers.py", line 168, in wrapped
    return func(output_path, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/omni/pipelines/anat/align.py", line 153, in align_anat
    flirt(
  File "/usr/local/lib/python3.8/dist-packages/omni/interfaces/fsl.py", line 38, in flirt
    return run_process(
  File "/usr/local/lib/python3.8/dist-packages/omni/interfaces/common.py", line 36, in run_process
    raise exception
  File "/usr/local/lib/python3.8/dist-packages/omni/interfaces/common.py", line 33, in run_process
    subprocess.run(process_string, stdout=stdout, check=True, shell=True)
  File "/usr/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'flirt -out anat_proc_2_align_anat/sub-01_run-01_T2w_debias_t1space_edge.nii.gz -ref anat_proc_2_align_anat/sub-01_run-01_T1w_debias_edge.nii.gz -in anat_proc_2_align_anat/sub-01_run-01_T2w_debias_edge.nii.gz -dof 6 -cost corratio -interp sinc -omat anat_proc_2_align_anat/t2_to_t1_xfm.mat -v' returned non-zero exit status 1.

Steps to Reproduce the Problem

  1. singularity build synth_2023.2.1.img docker://vanandrew/omni:2023.2.1
  2. singularity exec -e --containall -B /path/to/bids/ synth_2023.2.1.img omni_pipeline /path/to/bids/ /path/to/bids/derivatives/synth/

Specifications

Apptainer 1.1.3 on Linux CentOs7

Edited by Steven Meisler