-
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
[ENH] Generate BIDS Derivatives-compatible outputs #691
Conversation
Also rename the T1-like effect map.
Just going with "components" for predicted values and averaging weights per component.
I know, I'm very confident.
I'm still wary of global variables, so I was thinking that a new EDIT: Here is the current, not-yet-functional idea. |
That seems fine to me. Then if we want to add outputs (for example, writing metrics to I'm not particularly scared of global variables in this context because they're truly global, though, and then this output generator will also effectively be a global variable. I'd be curious to hear what @emdupre and @handwerkerd think. |
I just skimmed @tsalo's |
Just a +1 from me for the class-based approach, here. You're definitely right @jbteves that we've generally avoided classes, and I at least can confess to being wary of bringing them in prematurely (having seen how quickly they can grow in complexity). But in this case I think a class has the dual benefit of being a bit easier to conceptually track in the long run (!), and putting us on a firm footing away from global-scope-creep. |
I'm on board with moving to a class-based approach if everyone else is, then. It's certainly more elegant than what I merged into here 🙂. That said, I wonder if we should open an issue to discuss/specify the full interface since it would be a paradigm shift. I also wonder if we should go ahead and merge this as something of a temporary fix while we hash out the details? The output generator class opens up quite a few possibilities for how we handle output, and this set of changes is relatively contained (though I admit I introduced quite a bit of scope creep already 😬): it focuses exclusively on images and metric data/metadata. Right now, the report and figure generation is completely out of the scope of this PR even with my changes, but a full OutputGenerator would handle those as well, I assume. It would also presumably fill in the dataset description, which requires more file-tracking. It could be a very large set of changes at the end. Thoughts? |
I'm fine if someone opens an issue to expand the discussion on an overall structure for I/O and UI. Even if having a coherent plan for UI & I/O may be a bit premature, having a place for the discussion might guide some decisions. That said, I think we have a fairly clear path forward for this PR. I wouldn't want that discussion to hold up finishing and merging this PR. |
I was able to make progress on #711 this past weekend, but I wasn't able to get it ready for review. As such, I'm happy to move forward with this PR as-is (after we address #718 and #721 and release 0.0.10, of course), and then merge #711 into main instead. @jbteves if you have the time and interest to tackle #711, I would appreciate the help. If not, then no pressure! |
Sorry, to clarify, the order you'd like is:
? RE: working on #711, sure, I can take that over for you this week. I'm taking a short week though so I may not report further on progress until early next week instead. |
If I had gotten #711 ready in time, then that's the order I would have preferred. Since it's not ready, though, I'm happy with:
It really depends on how fast we can get the necessary reviews for #718 and #721, and when we'll be able to get #711 ready (which may depend on how much time you have for it). |
Alright, that makes sense. Thanks for the clarification. Could we mark this as ready for review, review it, and then plan on merging in #711 if it's finished by next Friday, or else just going ahead and merging this, and then retargeting #711 to main? That seems like a pretty decent timeline for me. |
* Initial work on a class. * Clean up. * More work. * Revert mistake. * [FIX] Adds f_max to right place (#712) Moves f_max thresholding to the step where the R2/S0 maps are written out, rather than just before kappa/rho calculation. * [FIX] Calculate Kappa and Rho on full F-statistic maps (#714) * Calculate rho and kappa on full maps. * Add missing test outputs. * Revert changes to outputs. * Fill out docstrings for file-writing class. * More work. * [MAINT] Drop 3.5 support and begin 3.8 and 3.9 support (#721) * Drop 3.5 support and add 3.8/3.9 support. * Drop 3.5 tests and add 3.8/3.9 tests. * Update installation instructions. * Progress on refactor * Fix some errors * Fix style * Switch to fstrings where possible * Update tedana/io.py Co-authored-by: Taylor Salo <tsalo006@fiu.edu> * Update tedana/io.py Co-authored-by: Taylor Salo <tsalo006@fiu.edu> * Address @handwerkerd docstring review * Replace generator with io_generator Co-authored-by: Joshua Teves <jbtevespro@gmail.com> Co-authored-by: Joshua Teves <joshua.teves@nih.gov>
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.
Is constants.py
no longer used? I think it's a vestige from before we switched to the class structure.
@tsalo just want your confirmation before I merge this behemoth. |
Thanks for the heads up. Since we just made a release, I don't think we're under any pressure to release anything immediately after merging this, so I'm happy to see this merged today, and then we can triple check everything before 0.0.11 (or 0.1.0, depending on how we feel). |
Closes #146 and closes #649.
Changes proposed in this pull request: