Thoughts about modeling and result reporting

In a recent published commentary “Chen, G., Taylor, P.A., Stoddard, J., Cox, R.W., Bandettini, P.A., Pessoa, L., 2022. Sources of Information Waste in Neuroimaging: Mishandling Structures, Thinking Dichotomously, and Over-Reducing Data. Aperture Neuro 2021, 46.”, we make the following four suggestions to alleviate information waste and to improve reproducibility:

(1) abandon strict dichotomization;
(2) report full results;
(3) quantify effects;
(4) model data hierarchy.

One particular suggestion for voxel-wise modeling approach is full result reporting: avoid hard threshodling and adopt a “highlight but not hide” methodology as shown in Fig. 1F in the paper:

We believe that the hierarchical perspective helps reveal the information loss associated with two aspects of the conventional modeling approach: the implicit assumption of uniform distribution and the artificial dichotomization required in handling multiplicity. In fact, these two aspects are two sides of the same coin: the conventional modeling methodology focuses only on local relatedness among neighboring spatial units, but ignores the global information shared across the whole brain. Consequently, the various approaches of adjustment for multiple testing adopted in the field may lead to excessive penalties and overconservative inferences. For these considerations, when voxelwise analysis is performed under the conventional massively univariate framework, we believe that the Bayesian multilevel framework lends an important perspective: a threshold or a set of spatial blobs purely based on statistical evidence is only suggestive but not rigid. To avoid further information waste, any statistical evidence should be viewed – regardless of the adopted framework – as intrinsically embedded with some underlying and implicit assumptions; it should be considered as a continuum both in result reporting as well as during the research reviewing process.

This result reporting approach is more clearly illustrated in a recent manuscript:

Taylor, P.A., Reynolds, R.C., Calhoun, V., Gonzalez-Castillo, J., Handwerker, D.A., Bandettini, P.A., Mejia, A.F., Chen, G., 2022. Highlight Results, Don’t Hide Them: Enhance interpretation, reduce biases and improve reproducibility.

Hello Gang,

I have a question about point (4). You mention TRR for trial-by-trial data in your recent papers but does that mean that 3dLMEr supports trial-by-trial analysis (from 1st level extracted betas) with multiple condition and trial-by-trial covariate ?

Thanks in advance and also thanks for the amazing work put into AFNI.

David

does that mean that 3dLMEr supports trial-by-trial analysis (from 1st level extracted betas) with multiple condition and trial-by-trial covariate ?

By “trial-by-trial covariate” do you mean some behavior measure at the trial level? You can specify the model the way you prefer through the -model option in 3dLMEr.

By “trial-by-trial covariate” do you mean some behavior measure at the trial level?
Yeah it’s subjective ratings for each trial, I want to model habituation effects (like I would do for regular behavioral data).

You can specify the model the way you prefer through the -model option in 3dLMEr.
Yes that’s what I’m thinking of doing but I can seem to find any people “doing” it and I wondered if it was even possible or if there were caveats that I couldn’t think of.

David

I can seem to find any people “doing” it and I wondered if it was even possible or if there were caveats that I couldn’t think of.

Are you interested in the effect of subjective ratings? Usually there are two approaches to accounting for the trial-level association:

  1. Model it at the subject level through the “modulation” method (e.g., -stim_times_AM2 in 3dDeconvolve);
  2. Capture the trial-level effects at the subject level first (e.g., -stim_times_IM in 3dDeconvolve) and then model the trial-level association at the population level (e.g., 3dLMEr).

The difference between the two is probably small. The first approach is computationally simpler.

Yeah that exactly what I needed to know!

Thanks a bunch!

This is a really interesting proposal on result reporting, thank you very much for this.

Is there some example code on how to produce Figure 1F (Response map: highlighted) using the proposed lenient thresholding of p = 0.05 and k = 10?

Many thanks,
Stef

Hi, Stef-

This can be done with @chauffeur_afni, such as in these examples here:
https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/tutorials/auto_image/auto_@chauffeur_afni.html#ex-5-threshold-stats-voxelwise-view-effects-iii
… namely, with any example using:


    -olay_alpha Yes                                                   \
    -olay_boxed Yes                                                   \

This image is a montage of individual stats results with alpha+boxed on:
https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/tutorials/auto_image/auto_2dcat.html#ex-2-combine-stats-images-from-many-subj

–pt

Hi Paul,

Thanks for your quick reply. When specifying -olay_alpha Yes -olay_boxed Yes, is there a way to then also account for the cluster extend threshold of k =10 that was suggested in the preprint? So far, I could get Example 5[/url] to work with a lenient p=0.05 showing highlighted data, but not accounting for the suggested cluster size k=10. Likewise, I can get [url=https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/tutorials/auto_image/auto_@chauffeur_afni.html#ex-6-threshold-stats-voxelwise-clusterize-view-effects]Example 6 to work where 3dClusterize is run firstly so that the plotted overlay only contains voxels surviving p=0.05 and k=10, but then I cannot plot the sub threshold voxels. From how I understood the suggestion in the preprint, it would be ideal to present the data in a way that combines the advantages of Example 5 and 6. If you could give me pointers on how to achieve that, that would be highly appreciated.

Many thanks,
Stef

Hi, Stef-

Ah I see, that is so. In the GUI, you can both set a voxelwise threshold and clusterize and have alpha+boxed on (the latter are switched on by clicking on the [A] and [B] buttons above the threshold slider). The image could be saved from the GUI directly.

At the moment, @chauffeur_afni doesn’t combine both the voxelwise and clustering thresholding. That is probably something that could be added… though it might have to work in a slightly different way than GUI (it would be a close approximation).

–pt

Hi, Stef-

The ability to use Alpha+Boxed thresholding with both voxelwise and clusterwise thresholding has now been added to @chauffeur_afni.

If you get the latest version (AFNI_21.2.10 and higher), then you should have this. Here are a couple examples from the help, charmingly both called “E”, I now notice… The “trick” with this is that some pieces are specified in specific places—these examples might be the clearest explication of what goes where, but there is also a “Note” in the program’s help about it:
https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/programs/%40chauffeur_afni_sphx.html#clusterize-capabilities-with-alpha-boxed


E) Included Clusterizing, with Alpha+Boxed on. Also select the Olay
     (idat) and Thr (ithr) volumes descriptively, with subbrick labels.

    @chauffeur_afni                                                 \
        -ulay               anat.nii.gz                             \
        -olay               stats.nii.gz                            \
        -cbar               Reds_and_Blues_Inv                      \
        -clusterize         "-NN 1 -clust_nvox 157"                 \
        -func_range         3                                       \
        -set_subbricks      -1 "vis#0_Coef"  "vis#0_Tstat"          \
        -thr_olay_p2stat    0.001                                   \
        -thr_olay_pside     bisided                                 \
        -olay_alpha         Yes                                     \
        -olay_boxed         Yes                                     \
        -opacity            7                                       \
        -prefix             img_e                                   \
        -montx 3 -monty 3                                           \
        -set_xhairs OFF                                             \
        -label_mode 1 -label_size 4                                 \
        -no_clean


E) Included Clusterizing, with Alpha+Boxed on, similar to above, but
     1sided example.

    @chauffeur_afni                                                 \
        -pbar_posonly                                               \
        -ulay               anat.nii.gz                             \
        -olay               stats.nii.gz                            \
        -cbar               "Spectrum:yellow_to_red"                \
        -clusterize         "-NN 1 -clust_nvox 157"                 \
        -func_range 3                                               \
        -set_subbricks      -1 1 2                                  \
        -thr_olay           3.314300                                \
        -thr_olay_pside     1sided                                  \
        -olay_alpha         Yes                                     \
        -olay_boxed         Yes                                     \
        -opacity            7                                       \
        -prefix             img_f                                   \
        -montx 3 -monty 3                                           \
        -set_xhairs OFF                                             \
        -label_mode 1 -label_size 4                                 \
        -no_clean

Please let me know if anything seems awry.

–pt