nipreps / fmripost-phase

An attempt at an fMRIPost workflow for handling phase data
Apache License 2.0
2 stars 1 forks source link

Complex ICA with GIFT #5

Open tsalo opened 3 months ago

tsalo commented 3 months ago

What would you like to see added in this software?

Would be cool to include complex ICA with GIFT. GIFT is a MATLAB toolbox, so this might be tough to include in a container.

Do you have any interest in helping implement the feature?

Yes

Additional information / screenshots

We might be able to base the Docker image on https://github.com/trendscenter/gift-bids and/or https://hub.docker.com/r/trends/gift-bids. Or maybe https://hub.docker.com/r/trendscenter/gift?

Relevant issue: https://github.com/trendscenter/gift/issues/25

tsalo commented 3 months ago

I might be able to base Nipype interfaces on https://github.com/trendscenter/coinstac_spatially_constrained_ica/tree/master/nipype-0.10.0/nipype/interfaces/gift

tsalo commented 1 month ago

Including the MATLAB runtime compiler in a Docker image apparently massively increases the size of the image (see https://github.com/nipreps/fmriprep/issues/3308#issuecomment-2384653597), so this might not be doable.

tsalo commented 1 month ago

Maybe I can take https://github.com/afbujan/complex_ica and bring it up to date with sklearn's FastICA.

tsalo commented 1 month ago

@bpinsard do you recall exactly how much space MCR took up in your NORDIC image? I'm finding trying to translate complex-ICA to Python difficult enough that I'm tempted to just bundle GIFT into the image.

bpinsard commented 1 month ago

The images I built using the matlab docker tools were about 3GB.

tsalo commented 1 month ago

Thanks @bpinsard! I think I might be willing to accept that kind of size for GIFT at least. I get why we want to avoid it for NORDIC in fMRIPrep though.

bpinsard commented 1 month ago

Maybe there are smarter ways to package the MCR https://hub.docker.com/search?q=matlabruntime show some non-official images with smaller sizes. When I tried using matlab tools to create the docker, it seems to bundle all the extensions that the matlab license allows, in my case all the possible extensions as this is what our university license allows. I remember also trying to find all the libraries used at run time, and prune the images from these, but this made the thing crash.