Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synchronous temporal filter workflow #311

Open
rciric opened this issue Feb 14, 2019 · 4 comments
Open

Synchronous temporal filter workflow #311

rciric opened this issue Feb 14, 2019 · 4 comments
Labels
effort:high Estimated high effort task impact:high Estimated high impact task

Comments

@rciric
Copy link
Contributor

rciric commented Feb 14, 2019

I have a workflow that applies the same temporal filtering procedure to both 4D NIfTI time series and 2D TSV time series (e.g., confounds). This is necessary to avoid frequency mismatch issues that can potentially reintroduce nuisance signals at particular frequencies during the regression/fit step.

I would like to make this workflow available, but I'm not sure what the best place for this is (niworkflows vs. niflows vs. fmriprep). In brief:

  • This would be a dependency of the Power denoising workflow that I was hoping to integrate into fmriprep down the line.
  • The workflow could also potentially be a standalone for synchronous filtering of fmriprep outputs before feeding them into fitlins.
  • If we build a separate confound regression/denoising/qcfc module, this would also be an explicit dependency for that.
  • For users who are are all right using an ideal filter/cosine basis, this workflow is generally unnecessary. I haven't really investigated the merits of the different filtering approaches, but both the cosine basis method (simultaneous filtering) and the parallel generalised filtering method implemented in this workflow should in theory get around the frequency mismatch/nuisance reintroduction problem.
@oesteban oesteban added effort:high Estimated high effort task impact:high Estimated high impact task labels Mar 12, 2019
@kfinc
Copy link

kfinc commented May 17, 2019

I'm wondering whether it would be better to incorporate synchronous filtering option into fitlins, similarly as it was done with smoothing. Choice of both smoothing and filtering parameters depends on the type of analysis you want to perform (i.e., it may be different for activation analysis, functional connectivity analysis, RSA), so I think it is fine to keep it outside preprocessing (as standalone workflow or/and within fitlins).

Have you looked into a new version of nilearn.image.clean_img? It incorporates synchronous temporal filtering, according to Lindquist et al. (2018) recommendation.

@oesteban
Copy link
Member

WDYT @effigies, should we redirect this initiative to fitlins?

@rciric is there any element from fMRIPrep that will make it difficult including this within fitlins? Where would you prefer to see this included?

@effigies
Copy link
Member

I don't think it'd be wrong to have in FitLins, but bear in mind that FitLins is more-or-less GLM-specific, and it might make more sense to have this filtering as a separate pipeline that can be used to feed into resting state and other, non-GLM analyses. If that exists as a Nipype workflow, it shouldn't be too hard for me to slide it into FitLins.

@oesteban
Copy link
Member

Let's add the workflow in niworkflows. We should also check how much overlap is there w.r.t. nilearn.image.clean_img.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort:high Estimated high effort task impact:high Estimated high impact task
Projects
None yet
Development

No branches or pull requests

4 participants