Hi Rick, I wanted to follow up.
As a reminder, I have ISSS data where participants hear a sound during a silent period, followed by 3 image acquisitions. I have 6 runs with 180 time points per run (which are not continuous). Previously in this thread I was trying to find the main effect of sound > no sound. My issue with the over specified design matrix was that I was coding the baseline volumes as '1' in my matrix. When I took these out there were no collinearity errors, I didn't need a -GOFORIT, and the results look as expected.
Now I want to get trial-wise beta values for MVPA. Rather than 1 beta per trial, however, I'd like 1 beta value per TR. So, for a given trial, I'd receive 3 beta values that correspond to the three volumes that follow a stimulus onset. Because the data are not continuous,I have been using -ortvec to insert a design matrix and -glt to code the sound>no sound in the previous steps, as you suggested.
Here is a sample matrix for my sound < no sound:
1 0 0
0 1 0
0 0 1
0 0 0
0 0 0
0 0 0
1 0 0
0 1 0
0 0 1
Columns 0,1,2 correspond to the 1st, 2nd, and 3rd volumes following a stimulus onset, respectively. Then, for a sound > no sound (or baseline) I'll enter '1 1 1' into a -glt.
This works well. Now I want to get trial-level beta values (with each trial having 3 correspond beta values for the 3 volumes that follow the stimulus). I have created a matrix like this:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
However, I also have columns of all 0s that correspond to the baseline (silent) trials. It was easier to code from the timing files and I figured that they wouldn't affect anything other than giving me a warning in 3dDeconvolve.
Here is my 3dDeconvolve command:
3dDeconvolve \
-input $runs -jobs 24 \
-polort A \
-ortvec MoPar_demean.1D demean \
-ortvec MoPar_derv.1D derv \
-ortvec FIR.1D ir # impulse response matrix \
-censor censor.1D \
My full experiment consists of 6 runs, with 8 silent (baseline) trials, 4 catch trials (requiring a behavioral result, but of no interest in analysis), and 48 trials of interest per run. We are trying to analyze all of the runs at once in 3dDeconvolve. We have all of the catch trials in one column of the design matrix, and we have one column per trial per TR for each of the trials of interest (similar to the above matrix). Admittedly this is a huge matrix with 1080 rows (180 volumes per TR * 6 runs) and 1009 columns. When I run 3dDeconvolve in this way, I get hung up on this:
**** SVD avg err=0.00696691; recomputing ... new avg error=2.11461e-16 **OK**
**** SVD avg err=0.00693284; recomputing ... new avg err=0.00736581; re-recomputing the hard way ... newer avg err=7.17349e-11 **OK**
**** SVD avg err=0.00539245; recomputing ... new avg error=2.32423e-16 **OK**
**** SVD avg err=0.00784686; recomputing ... new avg err=0.00665956; re-recomputing the hard way ... newer avg err=7.17525e-11 **OK**
**** SVD avg err=0.0069601; recomputing ... new avg error=2.24406e-16 **OK**
It keeps looping through the above output after creating (and writing) the design matrix but before the voxel loop. I have no idea if there is a better way to generate trial-wise beta values in this manner, but ideally I'd like to calculate them using the same method in 3dLSS. Thank you for your help.
Dustin