Getting MRIQC to run on a mac within Docker

Summary of what happened:

Hey experts

new to a lot of this docker and nipy ecosystem, so bear with me.

i’m running an m1 mac trying to get MRIQC to work on a single BIDS-validated subject, particularly interested in structural IQMs.

while that’s running, in a conda environment in the terminal i run:

docker run -it nipreps/mriqc:latest --version
and get
MRIQC v23.1.0rc0

then i run the following command which errors out, also saying i’m using a different version of MRIQC.

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

docker run -it --rm \
-v /Users/storrisi/Desktop/BIDS_learning/20221119_HEMI_manualBids_4mriqc:/data:ro \
-v /Users/storrisi/Desktop/BIDS_learning/20221119_HEMI_manualBids_4mriqc/MRI_QC_Out:/out \
poldracklab/mriqc:latest /data /out participant --participant_label 02

Version:

Environment (Docker, Singularity, custom installation):

i’ve installed docker desktop version 4.20.1

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

Relevant log outputs (up to 20 lines):

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

You are using MRIQC v0.16.1+81.g0093e62.dirty, and a newer version is available: 23.0.1.
230611-20:38:59,217 cli IMPORTANT:

    Running MRIQC version 0.16.1+81.g0093e62.dirty:
      * BIDS dataset path: /data.
      * Output folder: /out.
      * Analysis levels: ['participant'].

230611-20:39:01,924 nipype.utils WARNING:
	 A newer version (1.8.4) of nipy/nipype is available. You are using 1.6.1
230611-20:39:09,704 nipype.utils WARNING:
	 A newer version (1.8.4) of nipy/nipype is available. You are using 1.6.1
Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/opt/conda/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/lib/python3.8/site-packages/mriqc/cli/workflow.py", line 21, in build_workflow
    retval["workflow"] = init_mriqc_wf()
  File "/opt/conda/lib/python3.8/site-packages/mriqc/workflows/core.py", line 22, in init_mriqc_wf
    workflow.add_nodes([fmri_qc_workflow()])
  File "/opt/conda/lib/python3.8/site-packages/mriqc/workflows/functional.py", line 43, in fmri_qc_workflow
    from niworkflows.interfaces.utils import SanitizeImage
ModuleNotFoundError: No module named 'niworkflows.interfaces.utils'

Screenshots / relevant information:

I still get that error even after, while inside the conda environment, i’ve “pip install niworkflows”. the output below also states that i’m using MRIQC v0.16.1+81.g0093e62.dirty. what might be going on? i apologize if this is a simple path or environment issue or if i maybe even installed the wrong version of mriqc. and of course let me know if you need any more info. THANKS!

Hi @stbmtx,

I have relabeled your post as software support and reorganized your post to fit in with the software support post template. Please post software support questions under this category in the future.

^ That was in your docker run command that gave you the error. This should be nipreps/mriqc:latest instead.

Best,
Steven

thank you so much Steven
that worked, sheesh sort of a dumb mistake on my part
and i’ll use the software support questions boilerplate next time; no prob
thanks again!

All good, happens to the best of us!

1 Like