Skip to content

Commit 90f35b6

Browse files
committed
fix: udpated indexing to ensure edge cases are considered
1 parent 2410411 commit 90f35b6

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

nipype/algorithms/modelgen.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -573,19 +573,19 @@ def _gen_regress(self, i_onsets, i_durations, i_amplitudes, nscans):
573573
SCANONSET = np.round(self.inputs.scan_onset*1000)
574574
total_time = TR*(nscans-nvol)/nvol + TA*nvol + SCANONSET
575575
SILENCE = TR-TA*nvol
576-
dt = TA/10.;
576+
dt = TA/10.0
577577
durations = np.round(np.array(i_durations)*1000)
578578
if len(durations) == 1:
579579
durations = durations*np.ones((len(i_onsets)))
580580
onsets = np.round(np.array(i_onsets)*1000)
581581
dttemp = gcd(TA, gcd(SILENCE, TR))
582582
if dt < dttemp:
583583
if dttemp % dt != 0:
584-
dt = gcd(dttemp, dt)
584+
dt = float(gcd(dttemp, dt))
585585
if dt < 1:
586586
raise Exception("Time multiple less than 1 ms")
587587
iflogger.info("Setting dt = %d ms\n" % dt)
588-
npts = int(total_time/dt)
588+
npts = int(np.ceil(total_time/dt))
589589
times = np.arange(0, total_time, dt)*1e-3
590590
timeline = np.zeros((npts))
591591
timeline2 = np.zeros((npts))
@@ -605,7 +605,7 @@ def _gen_regress(self, i_onsets, i_durations, i_amplitudes, nscans):
605605
iflogger.info('response sum: %.4f max: %.4f'%(response.sum(), response.max()))
606606
iflogger.info('reg_scale: %.4f'%reg_scale)
607607
for i, t in enumerate(onsets):
608-
idx = int(t/dt)
608+
idx = int(np.round(t/dt))
609609
if i_amplitudes:
610610
if len(i_amplitudes)>1:
611611
timeline2[idx] = i_amplitudes[i]

0 commit comments

Comments
 (0)