ValueError: Out of range float values are not JSON compliant: nan

41 views
Skip to first unread message

Andrea Ivan Costantino

unread,
Apr 30, 2024, 9:47:35 AMApr 30
to mriqc-users
Hi all,

I have been trying to run mriqc on my BIDS dataset (no errors on the BIDS validator) without success. This is the error I get:
```
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Finished "measures", elapsed time 1.250092s.
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Finished "PlotArtmask", elapsed time 1.75107s.
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.ds_report_segm" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/ds_report_segm".
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Executing "ds_report_segm" <mriqc.interfaces.DerivativesDataSink>
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Finished "ds_report_segm", elapsed time 0.008578s.
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.ComputeIQMs.provenance" in "/scratch/mriqc_wf/anatMRIQC/ComputeIQMs/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii.gz/provenance".
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Executing "provenance" <mriqc.interfaces.reports.AddProvenance>
2024-04-30 13:42:33 | INFO     | nipype.workflow  | [Node] Finished "provenance", elapsed time 0.05966s.
2024-04-30 13:42:34 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.ComputeIQMs.ComputeQI2" in "/scratch/mriqc_wf/anatMRIQC/ComputeIQMs/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii.gz/ComputeQI2".
2024-04-30 13:42:34 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.PlotAirmask" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii.gz/PlotAirmask".
2024-04-30 13:42:34 | INFO     | nipype.workflow  | [Node] Executing "ComputeQI2" <mriqc.interfaces.anatomical.ComputeQI2>
2024-04-30 13:42:34 | INFO     | nipype.workflow  | [Node] Executing "PlotAirmask" <nireports.interfaces.mosaic.PlotContours>
2024-04-30 13:42:34 | INFO     | nipype.workflow  | [Node] Finished "ComputeQI2", elapsed time 0.198214s.
2024-04-30 13:42:35 | INFO     | nipype.workflow  | [Node] Finished "PlotAirmask", elapsed time 1.504745s.
2024-04-30 13:42:35 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.PlotArtmask" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii.gz/PlotArtmask".
2024-04-30 13:42:35 | INFO     | nipype.workflow  | [Node] Executing "PlotArtmask" <nireports.interfaces.mosaic.PlotContours>
/opt/conda/lib/python3.11/site-packages/nilearn/plotting/displays/_slicers.py:420: UserWarning: empty mask
  xmin_, xmax_, ymin_, ymax_, zmin_, zmax_ = get_mask_bounds(
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Finished "PlotArtmask", elapsed time 1.621175s.
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.ds_report_headmask" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii.gz/ds_report_headmask".
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Executing "ds_report_headmask" <mriqc.interfaces.DerivativesDataSink>
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Finished "ds_report_headmask", elapsed time 0.011241s.
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.ds_report_noisefit" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/ds_report_noisefit".
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Executing "ds_report_noisefit" <mriqc.interfaces.DerivativesDataSink>
2024-04-30 13:42:37 | INFO     | nipype.workflow  | [Node] Finished "ds_report_noisefit", elapsed time 0.020344s.
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.ds_report_airmask" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/ds_report_airmask".
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Executing "ds_report_airmask" <mriqc.interfaces.DerivativesDataSink>
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Finished "ds_report_airmask", elapsed time 0.008918s.
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.anat_report_wf.ds_report_artmask" in "/scratch/mriqc_wf/anatMRIQC/anat_report_wf/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/ds_report_artmask".
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Executing "ds_report_artmask" <mriqc.interfaces.DerivativesDataSink>
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Finished "ds_report_artmask", elapsed time 0.015726s.
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Setting-up "mriqc_wf.anatMRIQC.ComputeIQMs.datasink" in "/scratch/mriqc_wf/anatMRIQC/ComputeIQMs/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/datasink".
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Executing "datasink" <mriqc.interfaces.bids.IQMFileSink>
2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Finished "datasink", elapsed time 0.024675s.
2024-04-30 13:42:38 | WARNING  | nipype.workflow  | Storing result file without outputs
2024-04-30 13:42:38 | WARNING  | nipype.workflow  | [Node] Error on "mriqc_wf.anatMRIQC.ComputeIQMs.datasink" (/scratch/mriqc_wf/anatMRIQC/ComputeIQMs/_in_file_..data..sub-01..anat..sub-01_space-MNI152NLin2009cAsym_res-2_desc-preproc_T1w.nii/datasink)
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/mriqc/engine/plugin.py", line 579, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node datasink.

Traceback:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/nipype/interfaces/base/core.py", line 397, in run
    runtime = self._run_interface(runtime)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/mriqc/interfaces/bids.py", line 188, in _run_interface
    json.dumps(
  File "/opt/conda/lib/python3.11/site-packages/simplejson/__init__.py", line 395, in dumps
    **kw).encode(obj)
          ^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 300, in encode
    chunks = list(chunks)
             ^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 714, in _iterencode
    for chunk in _iterencode_dict(o, _current_indent_level):
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 645, in _iterencode_dict
    yield _floatstr(value)
          ^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 351, in floatstr
    raise ValueError(
ValueError: Out of range float values are not JSON compliant: nan


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/bin/mriqc", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/mriqc/cli/run.py", line 178, in main
    mriqc_wf.run(**_plugin)
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/workflows.py", line 638, in run
    runner.run(execgraph, updatehash=updatehash, config=self.config)
  File "/opt/conda/lib/python3.11/site-packages/mriqc/engine/plugin.py", line 214, in run
    self._send_procs_to_workers(updatehash=updatehash, graph=graph)
  File "/opt/conda/lib/python3.11/site-packages/mriqc/engine/plugin.py", line 582, in _send_procs_to_workers
    self._clean_queue(
  File "/opt/conda/lib/python3.11/site-packages/mriqc/engine/plugin.py", line 259, in _clean_queue
    raise RuntimeError(''.join(result['traceback']))
RuntimeError: Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/mriqc/engine/plugin.py", line 579, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node datasink.

Traceback:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/nipype/interfaces/base/core.py", line 397, in run
    runtime = self._run_interface(runtime)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/mriqc/interfaces/bids.py", line 188, in _run_interface
    json.dumps(
  File "/opt/conda/lib/python3.11/site-packages/simplejson/__init__.py", line 395, in dumps
    **kw).encode(obj)
          ^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 300, in encode
    chunks = list(chunks)
             ^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 714, in _iterencode
    for chunk in _iterencode_dict(o, _current_indent_level):
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 645, in _iterencode_dict
    yield _floatstr(value)
          ^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/simplejson/encoder.py", line 351, in floatstr
    raise ValueError(
ValueError: Out of range float values are not JSON compliant: nan


2024-04-30 13:42:38 | INFO     | nipype.workflow  | [Node] Finished "segmentation", elapsed time 19.16503s.
```

Any idea on how to resolve?

here is my docker call:

```
docker run -it --rm \
    -v /data/projects/chess/data/BIDS/derivatives/fmriprep:/data:ro \
    -v /data/projects/chess/data/BIDS/derivatives/mriqc:/out \
    -v /home/eik-tb/Desktop/temp_mriqc:/scratch \
    nipreps/mriqc:latest /data /out participant \
    --participant-label sub-01 \
    --nprocs 16 --mem-gb 40 --float32 \
     --work-dir /scratch \
     --verbose-reports --resource-monitor -vv
You are using MRIQC v24.0.0.dev0+g4d96184d.d20240320, and a newer version is available: 24.0.0.
240430-13:29:02,182 cli IMPORTANT:
 ------------------------------------------------------------------
         Running MRIQC version 24.0.0.dev0+g4d96184d.d20240320
         ------------------------------------------------------------------
           * BIDS dataset path: /data.
           * Output folder: /out.
           * Analysis levels: ['participant'].
         ------------------------------------------------------------------
```

Thanks,
Andrea

Gonzalo Castro Leal

unread,
May 20, 2024, 12:25:09 PMMay 20
to mriqc-users
Hi Andrea,

I do not know if you still need the help. I came across this post of yours because I was running into a similar issue. Funnily enough, another post you made on git hub a few years back gave me a clue. It might be that the .json sidecars of your images have some fields assigned as Nan (e.g. this is one that was causing me issues: "researchGroup": Nan). If you overwrite them, its all good.

Hope this helps!
Gonzalo
Reply all
Reply to author
Forward
0 new messages