First-level GLM using Nilearn: high-pass filtering, cosine drift model and cosine_XX regressors in the design matrix


I’m reading about removing low-frequency drifts from fMRI data. Actually, there was a similar question here: First-level GLM using FSL: how to incorporate high-pass filtering and regressors?. As far as I understood, there are two options:

Then in Nilearn there is function nilearn.glm.first_level.FirstLevelModel, where we can specify drift model as polynomial, cosine or none.
The questions:

  1. It is the same as including cosine_XX regressors in the design matrix?
  2. If yes, then why high_pass parameter is used only if drift_model is ‘cosine’ (default=0.01)? Shouldn’t we skip high-pass filtering if we use cosine drift model?
  3. Would it be redundant to use drift_model = cosine and then also include cosine_XX confounds in the design matrix?


I think, I found an answer. Drint model in nilearn.glm.first_level.FirstLevelModel is indeed the same as cosine_XX confounds from fMRIPrep. Information: Nilearn: Statistical Analysis for NeuroImaging in Python — Machine learning for NeuroImaging
So i think it should be included only once: either from fMRIPrep or directly from the first level.

  1. I think the answer is yes (assuming that you use the same cutoff)
  2. high_pass represents a frequency cut (in Hz), ie, the bound of the frequency-domain filter use. SO this makes sense only when drift_model is cosine.
  3. Yes, I would advise not to do so. simply use drift_model=None


@bthirion, couldn’t we use drift_model='polynomial' in addition to the cosine_XX regressors from fmriprep in the same FirstLevelModel to account for additional drifts? Would that be reasonable or is there a reason against doing it?

Polynomial and cosine drift regressors have the same role: capturing slowly varying signals in the data. I don’t see the value of having both. Also beware that this could make the design redundant (the design matrix would be non-invertible), hence estimation would be ill-posed.
Apart from that, there is no particular issue in having redundant drifts.
My 2c,