Skip to content

Commit fbbfbd0

Browse files
committed
ENH: Restore STC reporting to summary
1 parent 4d35109 commit fbbfbd0

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

fmriprep/interfaces/reports.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
\t\t\t<li>Repetition time (TR): {tr:.03g}s</li>
6565
\t\t\t<li>Phase-encoding (PE) direction: {pedir}</li>
6666
\t\t\t<li>{multiecho}</li>
67+
\t\t\t<li>Slice timing correction: {stc}</li>
6768
\t\t\t<li>Susceptibility distortion correction: {sdc}</li>
6869
\t\t\t<li>Registration: {registration}</li>
6970
\t\t\t<li>Non-steady-state volumes: {dummy_scan_desc}</li>
@@ -189,6 +190,7 @@ def _generate_segment(self):
189190

190191

191192
class FunctionalSummaryInputSpec(TraitedSpec):
193+
slice_timing = traits.Enum(False, True, 'TooShort', desc='Slice timing correction used')
192194
distortion_correction = traits.Str(
193195
desc='Susceptibility distortion correction method', mandatory=True
194196
)
@@ -229,7 +231,15 @@ class FunctionalSummary(SummaryInterface):
229231

230232
def _generate_segment(self):
231233
dof = self.inputs.registration_dof
232-
# #TODO: Add a note about registration_init below?
234+
if isdefined(self.inputs.slice_timing):
235+
stc = {
236+
True: 'Applied',
237+
False: 'Not applied',
238+
'TooShort': 'Skipped (too few volumes)',
239+
}[self.inputs.slice_timing]
240+
else:
241+
stc = 'n/a'
242+
# TODO: Add a note about registration_init below?
233243
reg = {
234244
'FSL': [
235245
'FSL <code>flirt</code> with boundary-based registration'
@@ -272,6 +282,7 @@ def _generate_segment(self):
272282

273283
return FUNCTIONAL_TEMPLATE.format(
274284
pedir=pedir,
285+
stc=stc,
275286
sdc=self.inputs.distortion_correction,
276287
registration=reg,
277288
tr=self.inputs.tr,

fmriprep/workflows/bold/fit.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,14 @@ def init_bold_fit_wf(
311311
run_without_submitting=True,
312312
)
313313
summary.inputs.dummy_scans = config.workflow.dummy_scans
314+
if config.workflow.level == "full":
315+
# Hack. More pain than it's worth to connect this up at a higher level.
316+
# We can consider separating out fit and transform summaries,
317+
# or connect a bunch a bunch of summary parameters to outputnodes
318+
# to make available to the base workflow.
319+
summary.inputs.slice_timing = (
320+
bool(metadata.get("SliceTiming")) and "slicetiming" not in config.workflow.ignore
321+
)
314322

315323
func_fit_reports_wf = init_func_fit_reports_wf(
316324
# TODO: Enable sdc report even if we find coregref

0 commit comments

Comments
 (0)