diff --git a/mriqc/data/bootstrap-dwi.yml b/mriqc/data/bootstrap-dwi.yml
index eba89d69..6798ccfe 100644
--- a/mriqc/data/bootstrap-dwi.yml
+++ b/mriqc/data/bootstrap-dwi.yml
@@ -31,11 +31,6 @@ sections:
- name: Summary
reportlets:
- bids: {datatype: figures, desc: summary, extension: [.html]}
- - bids: {datatype: figures, desc: background}
- caption: This panel shows a mosaic enhancing the background around the head.
- Artifacts usually unveil themselves in the air surrounding the head, where no signal
- sources are present.
- subtitle: View of the background of the voxel-wise average of the DWI orientations
- name: DWI shells
ordering: bval
reportlets:
@@ -51,50 +46,11 @@ sections:
such as those intrinsic to SMS parallelization.
subtitle: Voxel-wise standard deviation calculated across volumes in this DWI shell,
zoomed-in covering just the brain
-- name: Extended visual report
- reportlets:
- bids: {datatype: figures, desc: background}
caption: This panel shows a mosaic enhancing the background around the head.
Artifacts usually unveil themselves in the air surrounding the head, where no signal
sources are present.
- subtitle: View of the background of the voxel-wise average of the BOLD timeseries
- - bids: {datatype: figures, desc: mean}
- subtitle: Average signal through time
- caption: The average signal calculated across the last axis (time).
- - bids: {datatype: figures, desc: airmask}
- caption: The hat-mask calculated internally by MRIQC. Some metrics will use this
- mask, for instance, to find out artifacts and estimate the spread of gaussian noise
- added to the signal. This mask leaves out the air around the face to avoid measuring
- noise sourcing from the eyeballs and their movement.
- subtitle: '«Hat»-mask'
- - bids: {datatype: figures, desc: noisefit}
- caption: The noise fit internally estimated by MRIQC to calculate the QI1 index
- proposed by Mortamet et al. (2009).
- subtitle: Distribution of the noise within the hat mask
- style:
- max-width: 450px
- - bids: {datatype: figures, desc: artifacts}
- caption: Mask of artifactual intensities identified within the hat-mask.
- subtitle: Artifactual intensities on the background
- - bids: {datatype: figures, desc: brainmask}
- caption: Brain mask as internally extracted by MRIQC. Defects on the brainmask could
- indicate problematic aspects of the image quality-wise.
- subtitle: Brain extraction performance
- - bids: {datatype: figures, desc: head}
- caption: A mask of the head calculated internally by MRIQC.
- subtitle: Head mask
- - bids: {datatype: figures, desc: segmentation}
- caption: Brain tissue segmentation, as internally extracted by MRIQC.
- Defects on this segmentation, as well as noisy tissue labels could
- indicate problematic aspects of the image quality-wise.
- subtitle: Brain tissue segmentation
- - bids: {datatype: figures, desc: norm}
- caption: This panel shows a quick-and-dirty nonlinear registration into
- the MNI152NLin2009cAsym
template accessed with
- TemplateFlow.
- subtitle: Spatial normalization of the anatomical image
- static: false
-
+ subtitle: View of the background of the voxel-wise average of this DWI shell
- name: About
nested: true
diff --git a/mriqc/reports/individual.py b/mriqc/reports/individual.py
index 17f8f949..1e2350dd 100644
--- a/mriqc/reports/individual.py
+++ b/mriqc/reports/individual.py
@@ -78,7 +78,7 @@ def _single_report(in_file):
prov["Versions_TemplateFlow"] = config.environment.templateflow_version
bids_meta = config.execution.layout.get_file(in_file).get_metadata()
- bids_meta.pop("global")
+ bids_meta.pop("global", None)
robj = Report(
config.execution.output_dir,
diff --git a/mriqc/workflows/diffusion/output.py b/mriqc/workflows/diffusion/output.py
index c947dc87..ed3198a3 100644
--- a/mriqc/workflows/diffusion/output.py
+++ b/mriqc/workflows/diffusion/output.py
@@ -96,12 +96,13 @@ def init_dwi_report_wf(name="dwi_report_wf"):
iterfield=["in_file"],
)
- mosaic_noise = pe.Node(
+ mosaic_noise = pe.MapNode(
PlotMosaic(
only_noise=True,
cmap="viridis_r",
),
- name="PlotMosaicNoise",
+ name="mosaic_noise",
+ iterfield=["in_file"],
)
if config.workflow.species.lower() in ("rat", "mouse"):
@@ -134,6 +135,18 @@ def init_dwi_report_wf(name="dwi_report_wf"):
iterfield=["in_file", "bval"],
)
+ ds_report_noise = pe.MapNode(
+ DerivativesDataSink(
+ base_directory=reportlets_dir,
+ desc="background",
+ datatype="figures",
+ allowed_entities=("bval",),
+ ),
+ name="ds_report_noise",
+ run_without_submitting=True,
+ iterfield=["in_file", "bval"],
+ )
+
def _gen_entity(inlist):
return ["00000"] + [f"{int(round(bval, 0)):05d}" for bval in inlist]
@@ -143,12 +156,16 @@ def _gen_entity(inlist):
("brainmask", "bbox_mask_file")]),
(inputnode, mosaic_stddev, [("in_stdmap", "in_file"),
("brainmask", "bbox_mask_file")]),
+ (inputnode, mosaic_noise, [("in_avgmap", "in_file")]),
(inputnode, ds_report_mean, [("name_source", "source_file"),
(("in_shells", _gen_entity), "bval")]),
(inputnode, ds_report_stdev, [("name_source", "source_file"),
(("in_shells", _gen_entity), "bval")]),
+ (inputnode, ds_report_noise, [("name_source", "source_file"),
+ (("in_shells", _gen_entity), "bval")]),
(mosaic_mean, ds_report_mean, [("out_file", "in_file")]),
(mosaic_stddev, ds_report_stdev, [("out_file", "in_file")]),
+ (mosaic_noise, ds_report_noise, [("out_file", "in_file")]),
])
# fmt: on