Skip to content

Commit 3e77638

Browse files
committed
Merge remote-tracking branch 'upstream/maint/24.1.x'
2 parents b6c7b95 + 433d42d commit 3e77638

File tree

5 files changed

+47
-24
lines changed

5 files changed

+47
-24
lines changed

CHANGES.rst

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,36 @@
1+
24.1.2 (To be determined)
2+
=========================
3+
Bug fix release in the 24.1.x series.
4+
5+
* FIX: Ensure fieldmap is resampled correctly in report (#3387)
6+
7+
18
24.1.1 (October 10, 2024)
29
=========================
310
Bug fix release in the 24.1.x series.
411

512
Precomputed functional derivatives were not being correctly detected,
613
and a couple fixes for rare issues.
714

8-
* FIX: Remove checks for unit zooms and symmetric rotations in template warp (#3376)
9-
* FIX: Stop excluding FS minc_modify_header used during fallback registration (#3372)
10-
* FIX: Repair search for precomputed bold references (#3370)
11-
* FIX: Repair search for precomputed transforms (#3369)
15+
* FIX: Remove checks for unit zooms and symmetric rotations in template warp (#3376)
16+
* FIX: Stop excluding FS minc_modify_header used during fallback registration (#3372)
17+
* FIX: Repair search for precomputed bold references (#3370)
18+
* FIX: Repair search for precomputed transforms (#3369)
19+
1220

1321
24.1.0 (September 16, 2024)
1422
===========================
1523
New feature release in the 24.1.x series.
1624

1725
Handling of gradient echo fieldmaps is improved.
1826

19-
* FIX: Select volumetric dseg.tsv from recent TemplateFlow releases (#3257)
20-
* RF: Adapt to less T1w-centric smriprep (#3333)
21-
* RF: Use acres over vendored data loader (#3323)
22-
* DOC: Add benchmark page (#3312)
23-
* MAINT: Move to tox to simplify test/CI setup (#3326)
24-
* CI: Fix expected outputs for fieldmaps (#3321)
27+
* FIX: Select volumetric dseg.tsv from recent TemplateFlow releases (#3257)
28+
* RF: Adapt to less T1w-centric smriprep (#3333)
29+
* RF: Use acres over vendored data loader (#3323)
30+
* DOC: Add benchmark page (#3312)
31+
* MAINT: Move to tox to simplify test/CI setup (#3326)
32+
* CI: Fix expected outputs for fieldmaps (#3321)
33+
2534

2635
24.0.1 (July 16, 2024)
2736
======================

fmriprep/cli/parser.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,6 @@ def _to_gb(value):
105105
units = value[len(digits) :] or 'M'
106106
return int(digits) * scale[units[0]]
107107

108-
def _drop_sub(value):
109-
return value[4:] if value.startswith('sub-') else value
110-
111108
def _process_value(value):
112109
import bids
113110

@@ -205,7 +202,7 @@ def _slice_time_ref(value, parser):
205202
'--participant_label',
206203
action='store',
207204
nargs='+',
208-
type=_drop_sub,
205+
type=lambda label: label.removeprefix('sub-'),
209206
help='A space delimited list of participant identifiers or a single '
210207
'identifier (the sub- prefix can be removed)',
211208
)

fmriprep/reports/core.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,12 @@ def generate_reports(
7676

7777
if isinstance(subject_list, str):
7878
subject_list = [subject_list]
79+
if isinstance(session_list, str):
80+
session_list = [session_list]
7981

8082
errors = []
8183
for subject_label in subject_list:
84+
subject_label = subject_label.removeprefix('sub-')
8285
# The number of sessions is intentionally not based on session_list but
8386
# on the total number of sessions, because I want the final derivatives
8487
# folder to be the same whether sessions were run one at a time or all-together.
@@ -95,7 +98,7 @@ def generate_reports(
9598
else:
9699
# Beyond a threshold, we separate the anatomical report from the functional.
97100
bootstrap_file = data.load('reports-spec-anat.yml')
98-
html_report = f'sub-{subject_label.lstrip("sub-")}_anat.html'
101+
html_report = f'sub-{subject_label}_anat.html'
99102

100103
report_error = run_reports(
101104
output_dir,
@@ -121,12 +124,11 @@ def generate_reports(
121124
subject=subject_label, **filters
122125
)
123126

124-
# Drop ses- prefixes
125-
session_list = [ses[4:] if ses.startswith('ses-') else ses for ses in session_list]
127+
session_list = [ses.removeprefix('ses-') for ses in session_list]
126128

127129
for session_label in session_list:
128130
bootstrap_file = data.load('reports-spec-func.yml')
129-
html_report = f'sub-{subject_label.lstrip("sub-")}_ses-{session_label}_func.html'
131+
html_report = f'sub-{subject_label}_ses-{session_label}_func.html'
130132

131133
report_error = run_reports(
132134
output_dir,

fmriprep/utils/bids.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def validate_input_dir(exec_env, bids_dir, participant_label, need_T1w=True):
217217
# Limit validation only to data from requested participants
218218
if participant_label:
219219
all_subs = {s.name[4:] for s in bids_dir.glob('sub-*')}
220-
selected_subs = {s[4:] if s.startswith('sub-') else s for s in participant_label}
220+
selected_subs = {s.removeprefix('sub-') for s in participant_label}
221221
bad_labels = selected_subs.difference(all_subs)
222222
if bad_labels:
223223
error_msg = (

fmriprep/workflows/bold/outputs.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -316,14 +316,26 @@ def init_func_fit_reports_wf(
316316
mem_gb=1,
317317
)
318318

319+
fmap_boldref = pe.Node(
320+
ApplyTransforms(
321+
dimension=3,
322+
default_value=0,
323+
float=True,
324+
invert_transform_flags=[True],
325+
interpolation='LanczosWindowedSinc',
326+
),
327+
name='fmap_boldref',
328+
mem_gb=1,
329+
)
330+
319331
# SDC1
320332
sdcreg_report = pe.Node(
321333
FieldmapReportlet(
322334
reference_label='BOLD reference',
323335
moving_label='Fieldmap reference',
324336
show='both',
325337
),
326-
name='sdecreg_report',
338+
name='sdcreg_report',
327339
mem_gb=0.1,
328340
)
329341

@@ -360,19 +372,23 @@ def init_func_fit_reports_wf(
360372
name='ds_sdc_report',
361373
)
362374

363-
# fmt:off
364375
workflow.connect([
365376
(inputnode, fmapref_boldref, [
366377
('fmap_ref', 'input_image'),
367378
('coreg_boldref', 'reference_image'),
368379
('boldref2fmap_xfm', 'transforms'),
369380
]),
381+
(inputnode, fmap_boldref, [
382+
('fieldmap', 'input_image'),
383+
('coreg_boldref', 'reference_image'),
384+
('boldref2fmap_xfm', 'transforms'),
385+
]),
370386
(inputnode, sdcreg_report, [
371387
('sdc_boldref', 'reference'),
372-
('fieldmap', 'fieldmap'),
373388
('bold_mask', 'mask'),
374389
]),
375390
(fmapref_boldref, sdcreg_report, [('output_image', 'moving')]),
391+
(fmap_boldref, sdcreg_report, [('output_image', 'fieldmap')]),
376392
(inputnode, ds_sdcreg_report, [('source_file', 'source_file')]),
377393
(sdcreg_report, ds_sdcreg_report, [('out_report', 'in_file')]),
378394
(inputnode, sdc_report, [
@@ -382,8 +398,7 @@ def init_func_fit_reports_wf(
382398
(boldref_wm, sdc_report, [('output_image', 'wm_seg')]),
383399
(inputnode, ds_sdc_report, [('source_file', 'source_file')]),
384400
(sdc_report, ds_sdc_report, [('out_report', 'in_file')]),
385-
])
386-
# fmt:on
401+
]) # fmt:skip
387402

388403
# EPI-T1 registration
389404
# Resample T1w image onto EPI-space

0 commit comments

Comments
 (0)