-
Notifications
You must be signed in to change notification settings - Fork 95
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
[REF] Remove unused arguments and simplify CLI #163
Conversation
Codecov Report
@@ Coverage Diff @@
## master #163 +/- ##
==========================================
- Coverage 52.96% 52.65% -0.31%
==========================================
Files 32 32
Lines 1903 1899 -4
==========================================
- Hits 1008 1000 -8
- Misses 895 899 +4
Continue to review full report at Codecov.
|
CircleCI is failing because GSR is no longer being performed, which means that the files Also since T1c-GSR is no longer performed by default, the files |
- Add arguments label and verbose to fitmodels_direct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great ! There are a lot of big changes in here, and it even might make sense to split into two PRs. Overall I had some stylistic comments and a few questions on choices we're making. Thanks for starting this !
default=False) | ||
parser.add_argument('--strict', | ||
dest='strict', | ||
parser.add_argument('--gscontrol', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure why we have both gscontrol
and global_denoise
arguments. Could you explain what's the benefit, here ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GSR (gscontrol_raw
) and T1c-GSR (gscontrol_mmix
) are both run by default on the data, rather than treated as competing alternatives to one another. Also, since GSR is run within the pipeline, while T1c-GSR (and someday GODEC, dGSR with rapidtide, etc.) is run after, as a sort of post-processing step.
That said, we can clean this up. Maybe we could allow multiple global denoising steps? E.g.,
--global_denoise gsr t1c
if you want to run both.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think I'd prefer that ! Since they're both aimed at the same outcome, it would make more sense to group them together, in my mind. WDYT ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can do that, but I'm still a little wary of the argument name. Can you think of anything better that global_denoise
, denoise
, or ws_denoise
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I liked gs_control
! Since it's "controlling" global signal, through various means :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That works, I think. The other methods we'd ultimately consider include rPCA, GODEC, dynamic GSR with rapidtide, aCompCor, and tCompCor. The only ones where gs_control
(maybe gscontrol
?) would seem kind of weird are aCompCor and tCompCor, but it's not too much of a stretch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, if we're integrating into larger pipelines, many of those already do aCompCor and tCompCor !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's true, and aCompCor actually can't be integrated into tedana without information we don't want to require, although I imagine that a number of denoising steps will need to go inside of tedana the same way that GSR and T1c-GSR are done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd suggest that we can cross that bridge once we fully integrate into some of the larger pipelines :)
It looks like we're still adding new individual echo outputs:
I thought we moved that to the binder-related PR ? Or is this an older CI output ? |
That's from moving |
Ah I see -- yeah I guess by using |
OK, I just want to review the generated artifacts and then I think this would be good to merge ! Do you mind if I squash and merge ? |
There are a lot of mini-commits, so that's fine with me. To be honest, since we're working to make PRs contained and sort of single-effect changes, I'd love to switch to squash and merge generally. I always make so many commits to check the CI that I feel bad about merging normally. |
OK, I checked the files and I think this looks good ! Only remaining issue: we need to update the expected outputs here. Since these will now differ by dataset, we should probably create a separate file for each dataset with the correct filenames -- this will actually be better in the long-run, since it means we'll test more options ! |
Okay, it should be good now. |
Ref. #161, #162.
Changes proposed in this pull request:
tedica
from 200 to 5000, to match how many we ran withmdp
(see No convergence after 5000 steps #144).conv
argument fromtedica
and workflow, to use FastICA's default tolerance.cost
argument, to use FastICA's default (logcosh
).denoiseTEs
toverbose
, which will be expanded to toggle output of many intermediate and less-used files, as discussed in Reduce intermediate outputs #17.filecsdata
andstrict
.gscontrol
argument to toggle minimum image regression (t1c
) and global signal regression (gsr
). One or more algorithms can be used, but the default is to use none.