Hello,
Did you ever figure this out? I have the same question. I have 8 different stimuli and 8 runs. Our input is a concatenation of the 8 runs using 3dTproject and we manually setup a -concat flag to tell 3dDeconvolve where the run breaks are for the 8 runs. I have 3dlss setup to loop through each stimulus and model only that specific condition with the stim_type_IM option.
3dTproject -input $(ls ${data}/sub-${subject}_task-ThalHi_run-*space-MNI152NLin2009cAsym_desc-preproc_bold*.nii.gz | sort -V) \
-mask combined_mask+tlrc.BRIK \
-polort 3 \
-ort nuisance.1D \
-prefix errts.nii.gz
3dDeconvolve -input errts.nii.gz \
-concat '1D: 0 216 432 648 864 1080 1296 1512' \
-mask combined_mask+tlrc.BRIK \
-censor censor.1D \
-x1D dcb.xmat.1D \
-local_times \
-num_stimts 8 \
-stim_times_IM 1 $stimuli[$i].1D.txt 'TENT(6, 20.4, 9)' -stim_label 1 $stimuli[$i] \
-stim_times 2 $stimuli[get_stimuli_index($i, 1)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 2 $stimuli[get_stimuli_index($i, 1)] \
-stim_times 3 $stimuli[get_stimuli_index($i, 2)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 3 $stimuli[get_stimuli_index($i, 2)] \
-stim_times 4 $stimuli[get_stimuli_index($i, 3)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 4 $stimuli[get_stimuli_index($i, 3)] \
-stim_times 5 $stimuli[get_stimuli_index($i, 4)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 5 $stimuli[get_stimuli_index($i, 4)] \
-stim_times 6 $stimuli[get_stimuli_index($i, 5)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 6 $stimuli[get_stimuli_index($i, 5)] \
-stim_times 7 $stimuli[get_stimuli_index($i, 6)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 7 $stimuli[get_stimuli_index($i, 6)] \
-stim_times 8 $stimuli[get_stimuli_index($i, 7)].1D.txt 'TENT(6, 20.4, 9)' -stim_label 8 $stimuli[get_stimuli_index($i, 7)] \
-x1D_stop \
-allzero_OK \
-jobs 4
3dLSS -input errts.nii.gz \
-matrix dcb.xmat.1D \
-prefix dcb.LSS \
-overwrite -verb