Hi AFNI gurus,
I've been trying to use make_random_timing.py in a script to find optimal stimulus timing, and I wonder whether there may be a mistake in the 3dDeconvolve command that this program automatically generates (using the -save_3dd_cmd option). My goal was to iterate across multiple instances and parameters (numbers of stimuli, amount of rest period, etc.), and then run then generated 3dDecvonvolve command (which uses the -nodata option), extract the normalized standard deviation, and then sort to find the "best" stimulus timing. However, the 3dDeconvolve command that is generated uses the 'BLOCK(X,1)' stimulus waveform (for an X second duration stimulus, see below), which normalizes the convolved response to fall between 0 and 1. Thus, a slow event related timing (e.g. 1s stimulus every 15 seconds) would result in the same amplitude response as a blocked design. It seems like this would affect the normalized standard deviation reported by 3dDeconvolve -nodata, making it difficult to compare different designs. Shouldn't the response waveform be UBLOCK(X) instead? (i.e. you want the amplitude of a blocked design regressor to be larger in order to get a smaller covariance matrix and thus smaller normalized standard deviation.)
Best,
Rasmus
automatically generated by make_random_timing.py:
# -------------------------------------------------------
# create 3dDeconvolve -nodata command
3dDeconvolve \
-nodata 419 2.500 \
-polort 4 \
-concat '1D: 0 210' \
-num_stimts 3 \
-stim_times 1 stim.times.0.001_01_Positive.1D 'BLOCK(5,1)' \
-stim_label 1 Positive \
-stim_times 2 stim.times.0.001_02_Negative.1D 'BLOCK(5,1)' \
-stim_label 2 Negative \
-stim_times 3 stim.times.0.001_03_Neutral.1D 'BLOCK(5,1)' \
-stim_label 3 Neutral \
-num_glt 3 \
-gltsym 'SYM: Positive -Negative' -glt_label 1 Positive-Negative \
-gltsym 'SYM: Positive -Neutral' -glt_label 2 Positive-Neutral \
-gltsym 'SYM: Negative -Neutral' -glt_label 3 Negative-Neutral \
-x1D X.xmat.1D