@@ -151,6 +151,16 @@ def _slice_time_ref(value, parser):
151
151
raise parser .error (f'Slice time reference must be in range 0-1. Received { value } .' )
152
152
return value
153
153
154
+ def _fallback_trt (value , parser ):
155
+ if value == 'estimated' :
156
+ return value
157
+ try :
158
+ return float (value )
159
+ except ValueError :
160
+ raise parser .error (
161
+ f'Falling back to TRT must be a number or "estimated". Received { value } .'
162
+ ) from None
163
+
154
164
verstr = f'fMRIPrep v{ config .environment .version } '
155
165
currentv = Version (config .environment .version )
156
166
is_release = not any ((currentv .is_devrelease , currentv .is_prerelease , currentv .is_postrelease ))
@@ -165,6 +175,7 @@ def _slice_time_ref(value, parser):
165
175
PositiveInt = partial (_min_one , parser = parser )
166
176
BIDSFilter = partial (_bids_filter , parser = parser )
167
177
SliceTimeRef = partial (_slice_time_ref , parser = parser )
178
+ FallbackTRT = partial (_fallback_trt , parser = parser )
168
179
169
180
# Arguments as specified by BIDS-Apps
170
181
# required, positional arguments
@@ -423,6 +434,15 @@ def _slice_time_ref(value, parser):
423
434
type = int ,
424
435
help = 'Number of nonsteady-state volumes. Overrides automatic detection.' ,
425
436
)
437
+ g_conf .add_argument (
438
+ '--fallback-total-readout-time' ,
439
+ required = False ,
440
+ action = 'store' ,
441
+ default = None ,
442
+ type = FallbackTRT ,
443
+ help = 'Fallback value for Total Readout Time (TRT) calculation. '
444
+ 'May be a number or "estimated".' ,
445
+ )
426
446
g_conf .add_argument (
427
447
'--random-seed' ,
428
448
dest = '_random_seed' ,
0 commit comments