How to run group analysis when BOLD response is modeled with multiple basis functions
When the BOLD response is characterized with multiple effect estimates, group analysis could be tricky. One may consider suppressing the multiplicity of effect estimates through the area under the curve (AUC) approach and adopt the conventional avenue of group analysis, but that convenience goes with the following caveats:
1) Such a group analysis is suboptimal in the first place counteracting the original goal of modeling the BOLD shape subtleties. In other words, it may well occur that group or condition difference exists in response shape but AUC fails to reveal such a subtle difference.
2) In addition to the fact that AUC represents the BOLD response shape with only one value, the summation across time points could be problematic when undershoot occurs (negative effect estimates at the beginning and end of BOLD response).
If BOLD response shape is of interest at group level, multiple effect estimates over the response span at the temporal grids need to be brought to the analysis. With TENTzero, TENT or CSPLIN as the basis functions in 3dDeconvolve or 3dREMLfit, this is straightforward since the regression coefficients can be directly used at group level. However, with other basis functions such as SPMG3, you need to reassemble the BOLD response and then take the effect estimates at the time grids for group analysis.
As the understanding about perception and cognition deepens, the typical strategy of modeling the BOLD response with a presumed response curve with a fixed shape (same across brain regions, across all sorts of tasks or conditions, across subjects and groups) may become unable to reveal the nuances of brain responses. Instead accurately modeling the BOLD response could be necessary, and the adoption of multiple basis functions in characterizing the temporal change of the brain response could be better appreciated. The alternative approach of taking effect estimates at multiple consecutive time locations to group level has been generally considered very difficult, but that seems to be partially a misconception. As the following sections show, with more group analysis approaches become available, the hurdles are not really insurmountable, and the major inconveniences at group level, compared to modeling the BOLD response with an inflexible shape, are the following:
1) One extra explanatory variable for the time locations needs to be modeled.
2) One may, but not always, need to use an obscure and computationally heavy program such as 3dLME or 3dMVM (soon to come). Sometimes 3dANOVA3 can even handle it easily (see below).
3) Visualization of the group effect is a little bit more strenuous.
When only one group of subjects is involved under one condition or task
3dLME (currently under beatification) is the best approach, and the setup instructions can be found at the 3dLME webpage here. Alternatively 3dANOVA2 -type 3 could be employed for this case, but simulations indicate 3dLME performs better both in controlling false positives and in achieving statistical power.
How to compare BOLD response shape across groups or conditions?
Surprisingly the analysis in this case is much easier than one may believe. The approach is similar to the typical group analysis except the following aspects:
1) One additional explanatory variable should be considered. Let's call that factor Time, coding the number of time grids at which the BOLD response shape is expressed.
2) When comparing the BOLD response shape across groups (or conditions), it is the interaction of Group and Time (or Group and Condition) to which one should pay attention, and the interaction significance is tested with an F-statistic.
3) To further explore the details of the response shape difference across groups or conditions, the response shape estimated at each time grid at group level needs to be obtained.
More specifically, to demonstrate the above three aspects, I will use 3dANOVA3 -type 5 and set up an example to detect the group difference in terms of response shape:
3dANOVA3 -type 5 \ # type 5 for group comparison
-alevels 2 \ # 2 groups of subjects
-blevels 7 \ # 7 tents
-clevels 15 \ # 15 subjects in each group
-dset 1 1 1 ctl_s1+tlrc'[t#0_Coef]' \ # effect estimate at each time point from control group
-dset 1 2 1 ctl_s1+tlrc'[t#1_Coef]' \
...
-dset 1 7 1 ctl_s1+tlrc'[t#6_Coef]' \
...
-dset 1 1 15 ctl_s15+tlrc'[t#0_Coef]' \
-dset 1 2 15 ctl_s15+tlrc'[t#1_Coef]' \
...
-dset 1 7 15 ctl_s15+tlrc'[t#6_Coef]' \
-dset 1 1 1 ctl_s1+tlrc'[t#0_Coef]' \
-dset 1 2 1 ctl_s1+tlrc'[t#1_Coef]' \
...
-dset 1 7 1 ctl_s1+tlrc'[t#6_Coef]' \
...
-dset 1 1 15 ctl_s15+tlrc'[t#0_Coef]' \
-dset 1 2 15 ctl_s15+tlrc'[t#1_Coef]' \
...
-dset 1 7 15 ctl_s15+tlrc'[t#6_Coef]' \
-dset 2 1 1 pat_s1+tlrc'[t#0_Coef]' \ # effect estimate at each time point from patient group
-dset 2 2 1 pat_s1+tlrc'[t#1_Coef]' \
...
-dset 2 7 1 pat_s1+tlrc'[t#6_Coef]' \
...
-dset 2 1 15 pat_s15+tlrc'[t#0_Coef]' \
-dset 2 2 15 pat_s15+tlrc'[t#1_Coef]' \
...
-dset 2 7 15 pat_s15+tlrc'[t#6_Coef]' \
-dset 2 1 1 pat_s1+tlrc'[t#0_Coef]' \
-dset 2 2 1 pat_s1+tlrc'[t#1_Coef]' \
...
-dset 2 7 1 pat_s1+tlrc'[t#6_Coef]' \
...
-dset 2 1 15 pat_s15+tlrc'[t#0_Coef]' \
-dset 2 2 15 pat_s15+tlrc'[t#1_Coef]' \
...
-dset 2 7 15 pat_s15+tlrc'[t#6_Coef]' \
-fa GrpEff \ # group diff in the sense of area under the curve (UAC)
-fb TimeEff \ # not of interest
-fab GrpTimeInteraction \ # this F-stat shows the group difference in overall response
-Abcontr 1 : 1 0 0 0 0 0 0 ctl_t0 \ # group effect at each time grid for control group
-Abcontr 1 : 0 1 0 0 0 0 0 ctl_t1 \ # -aBcontr can be used too in a similar fashio
...
-Abcontr 1 : 0 0 0 0 0 0 1 ctl_t6 \
-Abcontr 2 : 1 0 0 0 0 0 0 pat_t0 \ # group effect at each time grid for patient group
-Abcontr 2 : 0 1 0 0 0 0 0 pat_t1 \
...
-Abcontr 3 : 0 0 0 0 0 0 1 pat_t6 \
-aBcontr 1 -1 : 1 \ # group difference at each time point
-aBcontr 1 -1 : 2 \
...
-aBcontr 1 -1 : 7 \
-bucket GrpDiffOfShape
In the output the F-statistic for the interaction between Group and Time would provide an overall assessment for the group difference of BOLD response shape. However, this omnibus test does not reveal the specifics of the group difference: which group has higher or lower response at which which period of time? To answer that question, one has to dig into those sub-bricks from the -Abcontr (or -aBcontr) option, and sort out the details. One may extract those sub-bricks of group effect estimate at voxel level into a separate file, and then use the Graph button on the AFNI viewer to examine the subtleties. Or plot out the BOLD response curve at each ROI identified from the interaction F-statistic.
The other two F-statistics can be ignored: the F-statistic for Group basically corresponds to the area under the curve (AUC) approach, and the F-statistic for Time tests whether there is difference across all the time points regardless the groups.
The above example can be easily modified to the situation of comparing BOLD response across conditions with 3dANOVA3 -type 4.
What about those sophisticated scenarios?
Most of the sophisticated scenarios can be handled in a similar fashion with 3dMVM (coming soon), and they include:
1) unequal number of subjects across groups;
2) comparing BOLD response shape across groups and conditions simultaneously;
3) more than one within-subject (or repeated-measures) factor involved;
4) more explanatory variables including quantitative variables such as age, IQ, etc.
The following is a 3dMVM script that analyzes the situation where the BOLD response was modeled with multiple basis functions at individual subject level. In addition, there are one between-subjects (Group) and one within-subject (Condition) variable. Furthermore, the variable corresponding to the number
of basis functions, Time, is also a within-subject variable. In the end, the F-statistics for the interactions of Group:Condition:Time, Group:Time, and
Condition:Time are of specific interest. And these interactions can be further explored with GLTs in 3dMVM. For example, the F-statistic for Group:Time indicates whether there is any response shape difference across the groups. The specific reshape difference can be sorted out with the results from the first 8 GLT tests.
3dMVM -prefix Example3 -jobs 4 \
-model Group \
-wsVars 'Condition*Time' \
-num-glt 32 \
-gltLabel 1 old_t0 -gltCode 1 'Group : 1*old Time : 1*t0' \
-gltLabel 2 old_t1 -gltCode 2 'Group : 1*old Time : 1*t1' \
-gltLabel 3 old_t2 -gltCode 3 'Group : 1*old Time : 1*t2' \
-gltLabel 4 old_t3 -gltCode 4 'Group : 1*old Time : 1*t3' \
-gltLabel 5 yng_t0 -gltCode 5 'Group : 1*yng Time : 1*t0' \
-gltLabel 6 yng_t1 -gltCode 6 'Group : 1*yng Time : 1*t1' \
-gltLabel 7 yng_t2 -gltCode 7 'Group : 1*yng Time : 1*t2' \
-gltLabel 8 yng_t3 -gltCode 8 'Group : 1*yng Time : 1*t3' \
...
-gltLabel 17 old_face_t0 -gltCode 17 'Group : 1*old Condition : 1*face Time : 1*t0' \
-gltLabel 18 old_face_t1 -gltCode 18 'Group : 1*old Condition : 1*face Time : 1*t1' \
-gltLabel 19 old_face_t2 -gltCode 19 'Group : 1*old Condition : 1*face Time : 1*t2' \
-gltLabel 20 old_face_t3 -gltCode 20 'Group : 1*old Condition : 1*face Time : 1*t3' \
...
-dataTable \
Subj Group Condition Time InputFile \
s1 old face t0 s1+tlrc'[face#0_beta]' \
s1 old face t1 s1+tlrc'[face#1_beta]' \
s1 old face t2 s1+tlrc'[face#2_beta]' \
s1 old face t3 s1+tlrc'[face#3_beta]' \
...
s40 yng house t0 s40+tlrc'[house#0_beta]' \
s40 yng house t1 s40+tlrc'[house#1_beta]' \
s40 yng house t2 s40+tlrc'[house#2_beta]' \
s40 yng house t3 s40+tlrc'[house#3_beta]'
Last modified 2012-10-25 11:39