Feedback on AFNI fMRI Analysis Pipeline

Hi everyone,

I’m hoping to get some feedback on my AFNI fMRI analysis pipeline and confirm whether I’m approaching this correctly.

I’ve been troubleshooting this for the past 5 months because I’m seeing more bilateral activation in several patients who had previously been scanned, compared with their earlier analyses. I’ve spent quite a bit of time trying to identify what could be causing this difference.

I’ve attached my current pipeline/script for review. Could someone please take a look and let me know if there are any issues with the preprocessing, registration, timing, or GLM steps that could potentially contribute to increased bilateral activation?

I would especially appreciate feedback on whether the overall pipeline is appropriate for this type of task-based fMRI analysis and whether there are any steps I should modify or verify. FMRI analysis - Google Docs

Thank you for your help.

Hi-

By briefly looking at the code there, it looks like most steps are geared around per-subject FMRI analysis, from skullstripping an anatomical to various alignments, slice time adjustment, motion adjustment, and regression modeling. That is precisedly the set of items we would recommend for managing with afni_proc.py, with functionality described here:

We would strongly recommend going that route, rather than trying to manage the programming details yourself. This will be much more extensible and easily shareable, as you manage the major processing steps and add in details. Indeed, it looks like you have perhaps followed some steps/options that afni_proc.py would provide? While that is positive, running afni_proc.py should be far more convenient, and also provide a quality control HTML to help you guide your checks, as described here:

Would that seem feasible to try?

--pt

I’ve been troubleshooting this for the past 5 months because I’m seeing more bilateral activation in several patients who had previously been scanned, compared with their earlier analyses. I’ve spent quite a bit of time trying to identify what could be causing this difference.

Just to clarify: are you re-analyzing the same dataset with an updated pipeline, or are these newly acquired scans being compared against an older dataset?

Assuming it’s the same dataset with a revised pipeline:

  • Pipeline changes: What specific steps or parameters changed between the old and new pipelines (e.g., spatial smoothing/FWHM, alignment cost functions, non-linear warp to template, motion adjustment, modeling strategy)?

  • Nature of bilateral activation: Is the increased bilateral activation driven by higher BOLD response magnitude (beta/percent signal change), stronger statistical evidence (t-values), or spatial spread due to smoothing/resampling?

  • Task design: Could you share a few details about the experimental setup (e.g., task conditions, trial duration, number of repetitions, block vs. event-related)?

Gang Chen

Thank you PT. I am running afni_proc.py right now. will get back with the results

Good afternoon Dr. Chen,

The new analysis is from newly acquired scans on the United Imaging 3T PET/MRI scanner, while the older scans were acquired on a Philips 3T scanner. same subjects diff time point same tasks .

We noticed the increased bilaterality through the laterality index, with differences in both BOLD response strength and the laterality index.

The task is a block-design paradigm with 20-second ON blocks, preceded by a 14-second OFF period.

Regards,
JP

Hi, JP-

Certainly different scanners can have different quirks.

When looking at any results---esp. something like laterality---it will be useful to use transparent thresholding, as discussed here:

--pt

You can use our new tool, asymm_report.csh for analysis of the volumes and surface areas over all left and right ROIs. Here's an example for extracting left and right regions for an asymmetry analysis with the MCA marmoset cerebellum atlas.

asymm_report.csh -input $sub \
   -right_list rightlist.1D  -left_list leftlist.1D \
   -reportfile  ${asymm_dir}/${subname}_asymm.txt -isosurf_dir $isosurf_dir  \
   -isosurf_base $subname  -make_isosurfs \
   -surf_patch -surf_patch_smooth 0.3 -make_patch_surface -dec_places 3

You can see an overview about this tool here: