I am dealing with some multiband data (TR=1.25s) which shows highly exaggerated FD values, so I am hesitating to use these FD values to define censoring of timepoints. I came across this ABCD paper titled “Correction of respiratory artifacts in MRI head motion estimates”, which talks about respirationinduced motion which might not be real motion. One approach used in the paper is to conduct notch filter on the motion estimates (bandwidth: 0.31Hz and 0.43Hz). The paper itself is difficult to follow, so I am wondering if anyone has experience doing such a filter on the motion estimates. In addition, it doesn’t seem that this notch filter is being done on the BOLD timeseries itself. Would it be useful to report mean FD, max FD, etc. based on notch filtered FD values? In addition, can censoring of timepoints be now defined on the notch filtered FD values?
just wanted to bump this thread to see if anyone has any advise, thank you
From a very quick skim of the methods section, it appears that the notch filter was applied to the motion estimates only. You can build a notch filter in scipy using the dedicated iirnotch
function. You’ll need 3 parameters: w0
, Q
, and fs
. We can determine appropriate values for those parameters from the manuscript:

w0
is the frequency to remove; from my reading, I believe that the authors report a median value of 0.31 Hz. 
Q
is a “quality factor”, defined asQ = w0/bw
. The authors report a bandwidth of 0.43 Hz, soQ
can be estimated as 0.31/0.43. 
fs
is the sampling frequency, which is the reciprocal of the data’s TR.  Note that the authors remark “…as different populations and age groups
have different respiratory rates (Wallis et al., 2005), the FF filter should be tailored to the
population being studied.” Thus, it would be better to estimatew0
andQ
for the specific population that you’re studying. You’d need some respiratory measure from the sample in order to do this: the authors use the median respiration rate as cutoff frequencyw0
and the combined width of quartiles 2 and 3 as bandwidthbw
.  To apply the filter both forward and backward as the authors recommend (prevents phase delay but doubles the filter order), you’d use
filtfilt
instead offilter
.  If you have respiratory belt data, you can perform subjectspecific estimates of
w0
andQ
, but the authors suggest that the subjectspecific approach might not be reliable.  You can sanity check your results by computing the power spectra before and after filtering and noting whether peaks in the respiratory band are appropriately attenuated.
Note that I’ve only cursorily skimmed the methods, so input from somebody with a more informed perspective would be welcome. I’ll try and look into the paper in more detail to report on how this approach impacts motion reporting and censoring.
2 Likes