Question regarding 3dfim+ and 3dDeconvolve baseline

I’m trying to compare output from two different afni modules which I thought given the same input would give me identical (or close) output for the baseline model. I look at the subbrick generated by “-out ‘Baseline’” in 3dfim+ and the “Pol#0_Coef” subbrick from 3dDeconvolve and I have differences between the two in some voxels that are minimal (i.e., at the first or second decimal place) and some that are relatively large (in the tens place). I was wondering if the programs might be doing something differently or if “Baseline” in 3dfim+ doesn’t mean what I think it means. Example code is below:

####################################################################################################
3dfim+
-input ${study}.${activeSubject}.CVR.preproc.3x3x3.GB6+tlrc
-ideal_file ${activeSubject}.ETCO2.optimal.1D
-polort 2 -fim_thr 0.0
-out ‘Fit Coef’ -out ‘Correlation’ -out ‘Baseline’
-bucket ${output_dir}/${study}.${activeSubject}.CVR.3dfim_ETCO2.GB6

3dDeconvolve
-input ${study}.${activeSubject}.CVR.preproc.3x3x3.GB6+tlrc
-polort 2
-num_stimts 1

-stim_label 1 “ETCO2” -stim_file 1 ${activeSubject}.ETCO2.optimal.1D

-xsave
-bout -fout -rout -vout
-x1D ${output_dir}/${study}.${activeSubject}.CVR.3dDecon_ETCO2
-errts ${output_dir}/${study}.${activeSubject}.CVR.ER.3dDecon_ETCO2.GB6
-bucket ${output_dir}/${study}.${activeSubject}.CVR.DC.3dDecon_ETCO2.GB6

Hi Andrew,

Those should be theoretically the same, but are certainly
not computed using the same code. Results might depend
on the condition number of the regression matrix and on the
data itself. 3dfim+ is ancient and is no longer maintained or
recommended.

  • rick

An update:

It looks like when you demean the stim_file in 3dDeconvolve (doesn’t matter in 3dfim+), the “Pol#0_Coef” subbrick from 3dDeconvolve matches the subbrick generated by “-out ‘Average’” in 3dfim+ and not the one generated by “-out ‘Baseline’”. I know the program is ancient, but unfortunately it is the most efficient method for accomplishing what I am trying to do with my data.

Since 3dfim+ is no longer being supported, I was wondering if we could also put in a feature request. Namely, could 3dDeconvolve handle a family of functions like 3dfim+ to select the coefficients to match the best fit from a family of ideal regressors? We are performing an experiment in which participants breath a medical grade gas mixture. Due to differences in breathing rates and physiology, we need to input the same regressor with several temporal offsets. The ‘Best Index’ that 3dfim+ provides is actually of interest to us here because we are interested in the maximal fit (‘Fit Coef’) across all indexes as well as the timing of that best fit.