Issue with minimum ISI in make_random_timing.py

Hi all,

I’m trying to use make_random_timing.py to generate stimulus timing files, but running into an issue when I try to set a minimum duration for rest. I can’t identify what I’m doing wrong or misunderstanding.

Setting any min > 0 for the rest timing class seems to increase the value used for post_stim_rest, such that the last stimulus is well before the end of the run (and the mean ISI is reduced). Minimal examples below. Where’s my mistake?

Thanks!

Dillon

Attempt to set min rest to 1s (note that rest post stim ends up as 31s, not 12s):


make_random_timing.py \
    -num_runs 1 -run_time 192 \
    -post_stim_rest 12 -rand_post_stim_rest no \
    -add_timing_class stim 6 \
    -add_timing_class rest 1 -1 -1 \
    -add_stim_class a_stim 20 stim rest \
    -seed 20181008 -prefix stim_times_issue -show_timing_stats 


ISI statistics (1 elements) :

                        total      per run
                       ------      ------------------------------
    total time          192.0       192.0
    total time: stim    120.0       120.0
    total time: rest     72.0        72.0

    rest: total isi      41.0        41.0
    rest: pre stim        0.0         0.0
    rest: post stim      31.0        31.0

    num stimuli          20          20


                         min      mean     max     stdev
                       -------  -------  -------  -------
    rest: pre-stim       0.000    0.000    0.000    0.000
    rest: post-stim     31.000   31.000   31.000    0.000

    rest: run #0 ISI     1.130    2.158    6.170    1.244

    all runs: ISI        1.130    2.158    6.170    1.244
    all runs: stimuli    6.000    6.000    6.000    0.000

No issue with min rest 0s (rest post stim is 12s as desired):


make_random_timing.py \
    -num_runs 1 -run_time 192 \
    -post_stim_rest 12 -rand_post_stim_rest no \
    -add_timing_class stim 6 \
    -add_timing_class rest 0 -1 -1 \
    -add_stim_class a_stim 20 stim rest 
    -seed 20181008 -prefix stim_times_issue -show_timing_stats 


ISI statistics (1 elements) :

                        total      per run
                       ------      ------------------------------
    total time          192.0       192.0
    total time: stim    120.0       120.0
    total time: rest     72.0        72.0

    rest: total isi      60.0        60.0
    rest: pre stim        0.0         0.0
    rest: post stim      12.0        12.0

    num stimuli          20          20


                         min      mean     max     stdev
                       -------  -------  -------  -------
    rest: pre-stim       0.000    0.000    0.000    0.000
    rest: post-stim     12.000   12.000   12.000    0.000

    rest: run #0 ISI     0.100    3.158   16.190    3.739

    all runs: ISI        0.100    3.158   16.190    3.739
    all runs: stimuli    6.000    6.000    6.000    0.000

Hi Dillon,

It took a little long to hunt this problem down. Indeed,
when specifying unlimited duration decay rest times,
the minimum periods where actually being shifted to
the end of the run, into the post-stim rest period.

This is now fixed, and I will start a new build shortly.
You should be able to get an update for this in 2-3 hours
(check “afni_history 3”, say, to see the update note).

Thanks for letting me know!

  • rick

Thanks very much!