AFNI Message Board

Dear AFNI users-

We are very pleased to announce that the new AFNI Message Board framework is up! Please join us at:

https://discuss.afni.nimh.nih.gov

Existing user accounts have been migrated, so returning users can login by requesting a password reset. New users can create accounts, as well, through a standard account creation process. Please note that these setup emails might initially go to spam folders (esp. for NIH users!), so please check those locations in the beginning.

The current Message Board discussion threads have been migrated to the new framework. The current Message Board will remain visible, but read-only, for a little while.

Sincerely, AFNI HQ

History of AFNI updates  

|
October 23, 2021 09:23AM
Dear all,

I have a question concerning 3dPeriodogram and its use for the calculation of the Fast Fourier Transform (FFT) to subsequently calculate the Power-Law Exponent (PLE).

Question 1: What value (or range of values) is reasonable for the -nfft option? The number of time steps in the runs is 360 and 1180, respectively. Bandpassing is 0.02 to 0.2 Hz for both runs.
Question 2: How should I adjust my FFT ideal file (the file which contains one column of values) for my FFT script?

The problem is that the result of my FFT and final PLE calculations leads to values which are far too low both in single subjects and when averaging over more than 20 subjects. For example, the average PLE for one ROI at rest is 0.0045, while it should be around +1 or higher. This is the case for both single voxel as well as ROI based average PLE values.

However, when I inspect the results of the FFT via the AFNI Gui, the graph looks fine (it really does look like a propery transform of the time-series into its frequency-domain).

I am not sure if this is due to faulty set values for both the nfft and/or the range (here 4..95) that was chosen from the ideal file for the FFT. Please let me know what you think. Any input is welcome, since I am stuck with this problem for weeks now.

Philipp


I also show you my FFT script subsequently:


# Fast Fourier Transform (FFT) - Transformation of the time-series into its frequency domain
directory=/volumes/sandisk/fmri/dataset/subjects
directory_PLE=/volumes/sandisk/fmri/dataset/info
for subject in Subject1 Subject2 Subject3 Subject4 Subject5 Subject7 Subject8 Subject9 Subject10 Subject11 Subject12 Subject13 Subject14 Subject15 Subject16 Subject17 Subject18 Subject19 Subject20 Subject21 Subject22 Subject23 Subject24 Subject25
do
mkdir $directory/$subject/FFT_PLE_RestingState
for fMRIruns (errts.${subject}_Rest.anaticor+tlrc)
do
cd $directory/$subject/Preprocessing_RestingState
echo "Processing $subject ..."

3dPeriodogram \
-nfft 192 \
-prefix $directory/$subject/FFT_PLE_RestingState/FFT.$fMRIruns $fMRIruns

1deval \
-a $directory_PLE/FFT_ideal.1D'{4..95}' \
-expr 'log(a)' \
> $directory/$subject/FFT_PLE_RestingState/FFT.1D

done
done

# Logarithm of Amplitude/Power log(P) y-axis
directory=/volumes/sandisk/fmri/dataset/subjects
for subject in Subject1 Subject2 Subject3 Subject4 Subject5 Subject7 Subject8 Subject9 Subject10 Subject11 Subject12 Subject13 Subject14 Subject15 Subject16 Subject17 Subject18 Subject19 Subject20 Subject21 Subject22 Subject23 Subject24 Subject25
do
for fMRIruns (FFT.errts.${subject}_Rest.anaticor+tlrc)
do
cd $directory/$subject/FFT_PLE_RestingState
echo "Processing $subject ..."

3dTcat \
-prefix BP.$fMRIruns \
$fMRIruns'[4..95]'

3dTsmooth \
-hamming 7 \
-prefix Smooth.BP.$fMRIruns \
BP.$fMRIruns

3dcalc \
-prefix Log_Y.Smooth.BP.$fMRIruns \
-a Smooth.BP.$fMRIruns \
-expr '-log(a)'

done
done

# Linear Regression Line between log(F) and log(P)
directory=/volumes/sandisk/fmri/dataset/subjects
for subject in Subject1 Subject2 Subject3 Subject4 Subject5 Subject7 Subject8 Subject9 Subject10 Subject11 Subject12 Subject13 Subject14 Subject15 Subject16 Subject17 Subject18 Subject19 Subject20 Subject21 Subject22 Subject23 Subject24 Subject25
do
for fMRIruns (Log_Y.Smooth.BP.FFT.errts.${subject}_Rest.anaticor+tlrc)
do
cd $directory/$subject/FFT_PLE_RestingState
echo "Processing $subject ..."
3dfim+ \
-input $fMRIruns \
-ideal_file FFT.1D \
-out 'Fit Coef' \
-bucket PLE.$fMRIruns
done
done



Edited 1 time(s). Last edit at 10/23/2021 09:25AM by Philipp.
Subject Author Posted

3dPeriodogram and the Fast Fourier Transform: nfft question

Philipp October 23, 2021 09:23AM

Re: 3dPeriodogram and the Fast Fourier Transform: nfft question

Philipp October 26, 2021 04:59AM

Re: 3dPeriodogram and the Fast Fourier Transform: nfft question

RWCox October 26, 2021 11:28AM