xcp_d.utils.confounds module
Confound matrix selection based on Ciric et al. 2007.
- xcp_d.utils.confounds.filter_motion(data, TR, motion_filter_type, band_stop_min, band_stop_max, motion_filter_order)[source]
Filter translation and rotation motion parameters.
- Parameters:
data ((T, R) numpy.ndarray) – Data to filter. T = time, R = motion regressors The filter will be applied independently to each variable, across time.
TR (
float) – Repetition time of the BOLD run, in seconds.motion_filter_type ({None, “lp”, “notch”}) – Type of filter to use for removing respiratory artifact from motion regressors.
If None, no filter will be applied.
If the filter type is set to “notch”, frequencies between
band_stop_minandband_stop_maxwill be removed with a notch filter. In this case, bothband_stop_minandband_stop_maxmust be defined.If “lp”, frequencies above
band_stop_minwill be removed with a Butterworth filter. In this case, onlyband_stop_minmust be defined. If not “notch” or “lp”, an exception will be raised.band_stop_min (
floator None) – Lower frequency for the motion parameter filter, in breaths-per-minute (bpm). Motion filtering is only performed ifmotion_filter_typeis not None. If used with the “lp”motion_filter_type, this parameter essentially corresponds to a low-pass filter (the maximum allowed frequency in the filtered data). This parameter is used in conjunction withmotion_filter_orderandband_stop_max.Here is a list of recommended values, based on participant age:
Age Range (years)
Recommended Value
< 1
30
1 - 2
25
2 - 6
20
6 - 12
15
12 - 18
12
19 - 65
12
65 - 80
12
> 80
10
When
motion_filter_typeis set to “lp” (low-pass filter), another commonly-used value for this parameter is 6 BPM (equivalent to 0.1 Hertz), based on Gratton et al.[1].band_stop_max (
floator None) – Upper frequency for the motion parameter filter, in breaths-per-minute (bpm). Motion filtering is only performed ifmotion_filter_typeis not None. This parameter is only used ifmotion-filter-typeis set to “notch”. This parameter is used in conjunction withmotion_filter_orderandband_stop_min.Here is a list of recommended values, based on participant age:
Age Range (years)
Recommended Value
< 1
60
1 - 2
50
2 - 6
35
6 - 12
25
12 - 18
20
19 - 65
18
65 - 80
28
> 80
30
motion_filter_order (
int) – Number of filter coefficients for the motion parameter filter. Motion filtering is only performed ifmotion_filter_typeis not None. This parameter is used in conjunction withband_stop_maxandband_stop_min. For “lp” filters, the order is divided by 2 as filtfilt applies the filter twice. For “notch” filters, the order is divided by 4 as iirnotch is a second-order filter and filtfilt applies the filter twice.
- Returns:
data – Filtered data. Same shape as the original data.
- Return type:
(T, R) numpy.ndarray
Notes
Low-pass filtering (
motion_filter_type = "lp") is performed with a Butterworth filter, as in Gratton et al.[1]. The order of the Butterworth filter is determined bymotion_filter_order, although the original paper used a first-order filter. Since filtfilt applies the filter twice, motion_filter_order is divided by 2 before applying the filter. The original paper also used zero-padding with a padding size of 100. We use constant-padding, with the default padding size determined byscipy.signal.filtfilt().Band-stop filtering (
motion_filter_type = "notch") is performed with a notch filter, as in Fair et al.[2]. This filter uses the mean of the stopband frequencies as the target frequency, and the range between the two frequencies as the bandwidth. Because iirnotch is a second-order filter and filtfilt applies the filter twice, motion_filter_order is divided by 4 before applying the filter. The filter is applied with constant-padding, using the default padding size determined byscipy.signal.filtfilt().References
- xcp_d.utils.confounds.load_motion(confounds_df, TR, motion_filter_type=None, band_stop_min=None, band_stop_max=None, motion_filter_order=4)[source]
Load the six basic motion regressors (three rotations, three translations).
- Parameters:
confounds_df (pandas.DataFrame) – The confounds DataFrame from which to extract the six basic motion regressors.
TR (
float) – Repetition time of the BOLD run, in seconds.motion_filter_type ({None, “lp”, “notch”}) – Type of filter to use for removing respiratory artifact from motion regressors.
If None, no filter will be applied.
If the filter type is set to “notch”, frequencies between
band_stop_minandband_stop_maxwill be removed with a notch filter. In this case, bothband_stop_minandband_stop_maxmust be defined.If “lp”, frequencies above
band_stop_minwill be removed with a Butterworth filter. In this case, onlyband_stop_minmust be defined. If “lp” or “notch”, that filtering will be done in this function. Otherwise, no filtering will be applied.band_stop_min (
floator None) – Lower frequency for the motion parameter filter, in breaths-per-minute (bpm). Motion filtering is only performed ifmotion_filter_typeis not None. If used with the “lp”motion_filter_type, this parameter essentially corresponds to a low-pass filter (the maximum allowed frequency in the filtered data). This parameter is used in conjunction withmotion_filter_orderandband_stop_max.Here is a list of recommended values, based on participant age:
Age Range (years)
Recommended Value
< 1
30
1 - 2
25
2 - 6
20
6 - 12
15
12 - 18
12
19 - 65
12
65 - 80
12
> 80
10
When
motion_filter_typeis set to “lp” (low-pass filter), another commonly-used value for this parameter is 6 BPM (equivalent to 0.1 Hertz), based on Gratton et al.[1].band_stop_max (
floator None) – Upper frequency for the motion parameter filter, in breaths-per-minute (bpm). Motion filtering is only performed ifmotion_filter_typeis not None. This parameter is only used ifmotion-filter-typeis set to “notch”. This parameter is used in conjunction withmotion_filter_orderandband_stop_min.Here is a list of recommended values, based on participant age:
Age Range (years)
Recommended Value
< 1
60
1 - 2
50
2 - 6
35
6 - 12
25
12 - 18
20
19 - 65
18
65 - 80
28
> 80
30
motion_filter_order (
int) – Number of filter coefficients for the motion parameter filter. Motion filtering is only performed ifmotion_filter_typeis not None. This parameter is used in conjunction withband_stop_maxandband_stop_min. For “lp” filters, the order is divided by 2 as filtfilt applies the filter twice. For “notch” filters, the order is divided by 4 as iirnotch is a second-order filter and filtfilt applies the filter twice.
- Returns:
motion_confounds_df – The six motion regressors. The three rotations are listed first, then the three translations. Plus rmsd, and possibly filtered motion regressors.
- Return type:
References