@@ -12,6 +12,8 @@ class FieldmapReportletInputSpec(reporting.ReportCapableInputSpec):
12
12
reference = File (exists = True , mandatory = True , desc = 'input reference' )
13
13
fieldmap = File (exists = True , mandatory = True , desc = 'input fieldmap' )
14
14
mask = File (exists = True , desc = 'brain mask' )
15
+ out_report = File ('report.svg' , usedefault = True ,
16
+ desc = 'filename for the visual report' )
15
17
16
18
17
19
class FieldmapReportlet (reporting .ReportCapableInterface ):
@@ -31,13 +33,17 @@ def _run_interface(self, runtime):
31
33
32
34
def _generate_report (self ):
33
35
"""Generate a reportlet."""
36
+ import numpy as np
34
37
NIWORKFLOWS_LOG .info ('Generating visual report' )
35
38
36
39
refnii = load_img (self .inputs .reference )
37
40
fmapnii = load_img (self .inputs .fieldmap )
38
41
contour_nii = load_img (self .inputs .mask ) if isdefined (self .inputs .mask ) else None
39
42
mask_nii = threshold_img (refnii , 1e-3 )
40
43
cuts = cuts_from_bbox (contour_nii or mask_nii , cuts = self ._n_cuts )
44
+ fmapdata = fmapnii .get_fdata ()
45
+ vmax = max (fmapdata .max (), abs (fmapdata .min ()))
46
+ thres = np .percentile (fmapdata [fmapdata > 0 ], 5 )
41
47
42
48
# Call composer
43
49
compose_view (
@@ -53,7 +59,9 @@ def _generate_report(self):
53
59
label = 'fieldmap (Hz)' ,
54
60
contour = contour_nii ,
55
61
compress = False ,
56
- plot_params = {'cmap' : 'coolwarm' }),
62
+ plot_params = {'cmap' : 'coolwarm' ,
63
+ 'vmax' : vmax ,
64
+ 'vmin' : - vmax }),
57
65
out_file = self ._out_report
58
66
)
59
67
0 commit comments