Preprocessing multi-echo data with RABIES? #299
Replies: 3 comments 6 replies
-
Hey David, thanks for reaching out on this. I have not worked with multi-echo data myself, and I am not aware that someone has done it before with RABIES, but there is definitely interest in integrating this in RABIES. Best, |
Beta Was this translation helpful? Give feedback.
-
@Gab-D-G Just a heads-up that I'm working on a multi-echo preprocessing pipeline over in this repository following guidelines from tedana and fmriprep. Because my primary goal right now is to get this pipeline set up such that I can preprocess my own data, I’ve been a bit nonchalant in my approach, but I’d be happy to work with you and the rest of the team to refine the code and improve the compatibility with the rest of RABIES so that these edits can eventually be folded into the main repo. As of right now, I'm able to preprocess my own multiecho data without any errors, but I'm limited in my ability to test out various parameters as I'm working on my personal PC (so limited compute power) and haven't gotten around to building a docker image (and I'm running into some dependency issues that prevent me from running certain workflows, like inhomogeneity correction). I’d be happy to start integrating those other workflows/pipelines with the multi-echo pipeline, but given that I had to make a number of changes to the overall organization of the main and bold processing workflows to make them multi-echo compatible, I think it would make sense to get your feedback on my current edits before building out those functionalities. I think the biggest change is probably how bold files are indexed and processed- because tedana recommends applying motion correction parameters from the first echo to subsequent echoes, I’ve serialized the processing of multiple echoes for a given run (while hopefully retaining parallel processing of different runs, but I can’t check this yet due to the aforementioned limitations) using workflow clones. I imagine there’s probably a more elegant way of doing this with iterables and joinnodes/mapnodes, but I’m still learning the ropes of nipype and haven’t yet figured out a better solution. Because tedana recommends saving normalization for once the echoes are optimally combined into a single nifti, I’ve added transformation workflows that independently perform motion realignment (in which all echoes are realigned according to parameters estimated from the first echo) and coregistration/normalization (in which the optimally combined nifti is registered and normalized without repeating another motion realignment step.). There appears to still be some debate re: whether or not this approach is optimal (vs. combining all the transformations into a single step), and some users might want to analyze derivatives from individual echoes, so I’ve retained the original combined resampling step as well. I have a list of features I’d like to implement for my own processing which I’ll continue to work on, but I’ll hold off on bigger stuff until I hear back from you. Please let me know if you notice any significant issues that limit the compatibility between my repo and the rest of RABIES, and also if you’d like me to organize the multi-echo development better (e.g., by creating a task list or similar). Thanks so much! |
Beta Was this translation helpful? Give feedback.
-
Hi David, First of all, sorry for being so slow to come back to you on this. I was on vacation, and then had to catch up with various things. Secondly, thank you so much for sharing this, this is awesome!! I am definitely interested in figuring out how to integrate this appropriately into the main repository. I don't think it will be very challenging, but we'll have to work together. First of all let's clarify what the multiecho workflow will need so we're on the same . Here's my understanding for what's needed:
Please correct me if I'm misinterpreting or missing anything, but assuming this is correct, here are the modifications I envision to achieve this optimally:
If the recommendations above are sufficient, the updates would not be substantial. Let me know what you think, and if these sound reasonable to you, we can follow up in more details, and perhaps initiate a pull request to help us work on this together. Finally, would you recommend somewhere to access multi-echo data for testing? It would probably help me to get my hand on some data to understand the needs. |
Beta Was this translation helpful? Give feedback.
-
Hi all,
I've just started to collect multi-echo data and would like to eventually preprocess those data with RABIES for consistency with my single-echo datasets. I was wondering if any RABIES users have already figured out a solid pipeline that incorporates RABIES and multi-echo-specific software (e.g., tedana, AFNI's meica.py), and/or if there's any interest in building multi-echo compatibility into RABIES preprocess itself. I imagine the latter wouldn't be too difficult (basically, just adapting motion realignment to use only parameters from the first echo and then running the rest of the pipeline on a single, optimally combined dataset), but I figured I should check here first before diving into all that.
Thanks!
-David
Beta Was this translation helpful? Give feedback.
All reactions