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

hcp_fix doesn't apply any hp filter to CIFTI if do_motion_regression=FALSE #108

Closed
coalsont opened this issue Apr 23, 2019 · 0 comments · Fixed by #157
Closed

hcp_fix doesn't apply any hp filter to CIFTI if do_motion_regression=FALSE #108

coalsont opened this issue Apr 23, 2019 · 0 comments · Fixed by #157

Comments

@coalsont
Copy link
Member

Restarted from #107.

Background: In the v4.0.0 HCPpipelines version of ICAFIX/hcp_fix, we added the capability to control whether the motion parameters were regressed out of the data as part of the fix-cleaning (via the do_motion_regression argument). [Prior to that (e.g., v3.27.0 and earlier), regression of the motion parameters was always applied].

FIX was originally written for volume (NIFTI) data, with the assumption that any high-pass filtering was applied prior to FIX itself. Thus, FIX originally only needed to worry about applying the same hp filter to the motion regressors, and thus in the fix script, the -h argument (to specify the filter) was made a subargument to the -m flag (that instructs fix to apply motion regression).

When the CIFTI format came along, the hp filtering of the CIFTI dtseries data was implemented in the context of fix_3_clean (called by the fix script to implement the actual cleaning of the data). But the -h argument in fix stayed a subargument to the -m flag.

Problem: While fix_3_clean has the capability to independently apply motion regression and an hp filter to the CIFTI dtseries, the fix script itself does not support that -- unless one requests motion regression, there is no mechanism in fix itself for filtering the dtseries.

Consequently, if running the v4.0.0 version of hcp_fix with something like the following
hcp_fix <data> 2000 FALSE
the volume (NIFTI) data will be filtered by the requested hp=2000 filter (since that is done in hcp_fix script itself), but the CIFTI dtseries data will not get filtered at all (due to the setting of FALSE for the do_motion_regression argument). Insidiously in this situation, a cleaned CIFTI file will still be generated, and the file name will in fact be labeled hp2000_clean.dtseries.nii, even though an hp=2000 filter wasn't actually applied to it!!

Suggested solution: Split -m and -h into independent arguments in the fix script. (Ideally, in the FIX distribution itself).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant