-
Notifications
You must be signed in to change notification settings - Fork 2
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
Retain ICA products in output directory #10
Comments
Relating to point 3 above, what do folks think of this for the decomposition json?
The component classification algorithm (in this case AROMA or tedana) is used as a prefix before the classification or metric. Each metric has its own entry under each component. |
It is written, but I doubt it's in BEP012 format...
We want to move the decomposition to native space (#1784) so I guess the problem is actually re-implementing the AROMA workflow.
this should not be a problem, are you referring to the consistency between tedana and AROMA?
Isn't this more of a BIDS-Derivatives issue? - that said, I'll defer to experts @rciric for this particular proposal. |
I don't think re-implementing the AROMA to operate in the standard space should be a problem. Among the four criteria used in the original ICA-AROMA, the only one that could be 'difficult' is computing the percentage of variance of the spatial map in the ventricles, which in the original code is done based on the template (MNI) space. IMHO, applying the inverse transformation to bring the ventricles template to the original space should do the trick, or even relying on the ventricles segmentation on the T1-weighted image (from freesurfer or FAST). The other 3 criteria are temporal (based on the spectrum of the IC timecourse, and correlation with expansion of realignment parameters) and percentage of variance of IC map in edge-brain voxels, which only needs a brain mask computed in the original space. Does this make sense? I haven't checked the one implemented in fMRIprep, is it different from the original ICA-AROMA code. could you point me to the lines of code where both ICA is done. |
@oesteban, I've commented on that issue so hopefully we'll be able to get some momentum going there.
I can open an issue in bids-specification (or comment directly on nipreps/fmriprep#519 if @effigies would prefer) if that would be a better place to discuss the structure of the decomposition files.
@CesarCaballeroGaudes It is the original ICA-AROMA code, for now. I agree that it should be straightforward to apply the methods to native structural-space data (especially with tissue-type information available). If everyone is comfortable pursuing that change to AROMA, then we can commit the fMRIPrep ICA to native structural space.
I believe that the relevant lines are housed within the fMRIPrep AROMA workflow here: |
I don't have personal opinions on the ICA. If it works for people who use ICA to use a common MELODIC decomposition, that's fine, but it's not clear that most people will be happy with that. If we are going to reimplement ICA-AROMA, I would suggest that we do it as an independent workflow or collection of workflows (perhaps a niflow). This would allow the components to be isolated and independently reviewed, and simplify the process of quantifying the effects of the changes you're proposing. Regarding the |
I think we've generally aimed to build off of the fMRI derivatives BEP, which currently recommends a Personally, I like having the metadata file in a JSON rather than a TSV, but that's only because it feels more "BIDS-y" to me. Though I'm certainly not the expert in this discussion on that 😸 All that to say, and seconding @oesteban: Maybe we should have this conversation on that specific part of the derivatives BEP ? |
Would the niflow wrap a package or would all of AROMA be implemented purely within the workflow? The metric storage conversation can be continued at bids-standard/bids-specification#519 (comment). |
My interpretation was that people were interested in rewriting AROMA from scratch as a nipype workflow, which would allow for more flexibility to make other processing decisions regarding space and smoothing. I would assume there would be a mix of FSL interfaces and some pure Python components reimplemented as interfaces, and bundled up into ~3 sub-workflows (pre, main, post). But this is far from a plan anybody needs to follow. |
Per maintainers call today, two possible routes forward for decomposition statistics are (1) house everything in jsons (as We'll want to standardize how these jsons are structured though, and since that structure will be fMRIPrep-specific we can discuss it here.
@effigies That makes sense. I think that would be a good plan going forward, although I would love to see a pure Python implementation (which I think is possible). Hopefully I'll be able to take a crack at this workflow at some point soon. |
This can be transferred to |
We have ICA outputs now. If anyone wants us to change them, please open a new issue. |
Currently, fMRIPrep only supports one ICA-based denoising method (AROMA), in which components classified as noise are retained in the confounds tsv. However, there are also plans to support MEICA in fMRIPrep, which involves running ICA and classifying components as noise or signal (much like AROMA). To facilitate both AROMA and MEICA, along with any other ICA-based denoising algorithms one might want to apply, I propose that we output BEP012-compatible versions of the ICA outputs (i.e., the mixing matrix, component maps, and the "component table"/json). (EDIT) I realize the mixing matrix is already outputted, and I assume it's in BEP012 format, but the other elements are not.
This stems from nipreps/fmriprep#1010 (comment) and nipreps/fmriprep#1784 (comment). The general idea was accepted in those issues, but I'd like to discuss the exact settings that should be used, given that AROMA and tedana have slightly different standards for their ICAs.
Open issues:
Pinging tedana, AROMA, and BEP012 folks who might be able to weigh in:
The text was updated successfully, but these errors were encountered: