Nuisance regressors in fsl.Level1Design?

Is there a way to include nuisance regressor time series in fsl.Level1Design()? From the examples I’ve seen online, it seems that the preferred nipype way is to first filter the data with a GLM of non-convolved regressors, then do the first level on the residuals of that filter. There are some drawbacks to that approach (like losing the ability to calculate task-correlated motion) so I’d much rather include all the regressors in one model, but I haven’t found a way to do that using built-in nipype functions. (It’s straightforward to build a custom node that would call the appropriate fsl commands, but I expect I’m just missing something since this seems like a functionality that probably already exists — is it?)

Thanks!

Yes. Have a look at https://github.com/poldrack/fmri-analysis-vm/blob/master/analysis/postFMRIPREPmodelling/First%20and%20Second%20Level%20Modeling%20(FSL).ipynb

Hi, Chris,

If I’m reading your linked code correctly, SpecifyModel takes in conditions (with onsets/durations) and regressors (which are vectors with numTRs entries).

This model is then passed to the session_info field of level1design, which also specifies a convolution with the dgamma basis function.

In the documentation for level1design, here,
http://nipype.readthedocs.io/en/latest/interfaces/generated/interfaces.fsl/model.html

I don’t see any mention of the conditions being convolved and the regressors being left alone. Is this a problem with the documentation, or am I fundamentally misunderstanding something?

Thanks!
Todd

I think it’s a lack of the documentation.

Is there also a way to add regressors that need to be convolved? Or somehow set some of the predictors to be nuisance regressors after the fact?
I could add a node that gets event onsets and creates convolved regressors, then add those to the subject info, but since that’s what I’m doing anyhow with my conditions of interest, it seems like somewhat of a roundabout way.
Thanks!