Dsi_studio GLIBC_2.38

Summary of what happened:

Hi all,
I’m testing out the latest version of QSIPrep : 1.1.1. I’m testing it out on a subject that I had previously ran with version 1.0.2, which was successful. After it finished processing, I checked the HTML file. Everything looked good except for the fact that it reported 4 errors at the end (screenshot provided). I looked through the errors and they’re all related to dsi_studio and version `GLIBC_2.38’ not being found. Because of this error, what isn’t being executed? Some qc metric? Is there a way to resolve this? I don’t know how necessary it is to resolve this though, because from a quick glance at my file directory it looks like all the important outputs are there (e.g., DWI, b0 ref, T1w, etc.)

Command used (and if a helper script was used, a link to the helper script or the command generated):

/opt/conda/envs/qsiprep/bin/qsiprep \
<input_path> \
<output_path>  \
participant \
--unringing-method mrdegibbs \
--participant-label 010130 \
--output-resolution 2 \
--fs-license-file /opt/freesurfer/license.txt \
--omp-nthreads 1 \
--eddy-config <input_path>/eddy_config.json \
--bids-filter-file <input_path>/bids_filter.json \
--separate-all-dwis \
--skip-bids-validation \
-w <work_path>

Version:

1.1.1

Environment (Docker, Singularity / Apptainer, custom installation):

Apptainer

Data formatted according to a validatable standard? Please provide the output of the validator:

BIDS

Sorry don’t currently have a screenshot of validator output.

Relevant log outputs (up to 20 lines):

Traceback (most recent call last):
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 66, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 525, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_interface
    return self._run_command(execute)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 769, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node raw_src.

Cmdline:
	dsi_studio --action=src  --bval=/neuro/labs/grantlab/research/BCAS+/BIDS/Nifti/sub-010130/ses-1/dwi/sub-010130_ses-1_acq-AP_run-001_dwi.bval --bvec=/neuro/labs/grantlab/research/BCAS+/BIDS/Nifti/sub-010130/ses-1/dwi/sub-010130_ses-1_acq-AP_run-001_dwi.bvec --source=/neuro/labs/grantlab/research/BCAS+/Diffusion/preproc/test/qsiprep_work/qsiprep_1_1_wf/sub_010130_ses_1_wf/dwi_preproc_ses_1_acq_AP_run_001_wf/pre_hmc_wf/merge_and_denoise_wf/raw_merge/sub-010130_ses-1_acq-AP_run-001_dwi_merged.nii.gz --thread_count=1 --output=/neuro/labs/grantlab/research/BCAS+/Diffusion/preproc/test/qsiprep_work/qsiprep_1_1_wf/sub_010130_ses_1_wf/dwi_preproc_ses_1_acq_AP_run_001_wf/pre_hmc_wf/merge_and_denoise_wf/dwi_qc_wf/raw_src/sub-010130_ses-1_acq-AP_run-001_dwi_merged.src.gz
Stdout:

Stderr:
	dsi_studio: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /.singularity.d/libs/libGLdispatch.so.0)
	dsi_studio: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /.singularity.d/libs/libGLX.so.0)
Traceback:
	RuntimeError: subprocess exited with code 1.


Screenshots / relevant information:


Hi @scchung,

Please provide the full apptainer run preamble you used as well. Do you get a resulting image QC file? If so, can you post what column names there are, and if any values are empty/NaN?

Best,
Steven

Hi @Steven, thanks for the quick reply.
Here is the apptainer command:

    cmd = [
        "apptainer", "run", "--nv", "--cleanenv", "--containall",
        "-B", f"$HOME,{root_dir},{freesurfer_home}/license.txt:{freesurfer_license},{templateflow_home}:{templateflow_home}",
        "--env", f"TEMPLATEFLOW_HOME={templateflow_home}",
        container_path,
        nifti_dir,
        output_dir,
        "participant",
        "--unringing-method", "mrdegibbs",
        "--participant-label", participant_labels,
        "--output-resolution", "2",
        "--fs-license-file", freesurfer_license,
        "--omp-nthreads", "1",
        "--eddy-config", eddy_config,
        "--bids-filter-file", bids_filter,
        "--separate-all-dwis",
        "--skip-bids-validation",
        "-w", work_dir
    ]

From some quick research I heard that including --nv may be causing the issue, but I need to keep it if I want to run eddy_cuda.

For *confounds_timeseries.tsv, the column names are framewise_displacement, trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, eddy_stdevs, original_file, grad_x, grad_y, grad_z, bval image_mean, series_b0_mean, series_b0_correction, DWIDenoise_pre, DWIDenoise_post, DWIDenoise_change, MRDeGibbs_pre, MRDeGibbs_post, MRDeGibbs_change.

For *pepolar_qc.tsv the column names are bids_origin file, original_volume, fsl_spec, qc_score, qc_rank, selected_for_sdc.

There was also a *slice_qc.json which had an array of values.

For all of these files, I did not notice any NaN values.

Hmm, okay it looks like the image QC file, which returns summary stats for the image (that is, not volume or slice-wise) are not being produced then.

The nvidia enabling could be part of this, though I never use this so hard to tell personally. Can you try testing without nvidia to help us debug?

@mattcieslak @tsalo thoughts?

@scchung,

What is the OS for the system you’re running on?

@Adam_Raikes I’m using Ubuntu 24.04.3