How to obtain signal percent change in 3dDeconvolve with hypercapnia paradigm

AFNI version info (afni -ver): AFNI_24.0.10 'Caracalla'

Hi,

I would like to compute signal percent change from a hypercapnia task. I've used the following 3dDeconvolve command:

3dDeconvolve -overwrite -input "${inputFile}" \
             -mask "${mask}" \
             -polort 1 -jobs 12 \
             -num_stimts 1 \
             -stim_label 1 ${TASK} -stim_times_AM1 1 OnsetsGasChallenge.1D 'dmUBLOCK' \
             -tout -fout \
             -bucket "test_bucket.spm.OLS.nii.gz" \
             -x1D "test.spm.xmat.1D" -xjpeg "test.spm.xmat.jpg"

where the paradigm consists on 5 min rest, 5 min block of hypercapnia and 5 min rest, so the .1D with the onset times for -stim_times_AM1 is "300:300".

My question is: are the values in the #X_coeff bricks in percent signal change (multiplied by 100)? If they are not, how can I compute them?

Thank you in advance!

Hello,
just pinning this post again for attention.
Looking forward to your advice.

Inés

Hi-

If you were using afni_proc.py with the scale block, in the step before regression your time series data would be scaled per-voxel, which we thinks makes the most sense for scaling:

The formula for scaling the time series is:

3dTstat -prefix DSET_MEAN  DSET_TIME_SERIES_IN
3dcalc \
    -a DSET_TIME_SERIES_IN                              \
    -b DSET_MEAN                                        \
    -c DSET_MASK_EPI_EXTENTS                            \
    -expr 'c * min(200, a/b*100)*step(a)*step(b)'       \
    -prefix DSET_TIME_SERIES_OUT_SCALED

The output time series has every voxel mean scaled to 100, and fluctuations represent local BOLD % signal change (with min at 0 and max at 200, bounding noise voxels).

Also, here's a note about Duration modulation (DM) blocks (3dDeconvolve).

--pt