Skip to content
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

Support moving average-based PCA dimensionality estimation #51

Open
tsalo opened this issue Dec 9, 2020 · 5 comments
Open

Support moving average-based PCA dimensionality estimation #51

tsalo opened this issue Dec 9, 2020 · 5 comments

Comments

@tsalo
Copy link
Contributor

tsalo commented Dec 9, 2020

Is your feature request related to a problem? Please describe.
Using MA-PCA would serve as an alternative to the buggy MLE-PCA in scikit-learn.

Describe the solution you'd like
tedana implements MA-PCA for dimensionality reduction. We can incorporate this approach into rapidtide, whether by adding tedana as a dependency or (more likely) by copying the code over directly (with attribution, of course), since tedana has a fairly permissive license.

Describe alternatives you've considered
Currently @bbfrederick has implemented a workaround for failed MLE-PCA that chooses the components which explain 80% of the variance.

Additional context
This stems from 1308d59#r44963454.

@tsalo
Copy link
Contributor Author

tsalo commented Dec 15, 2020

I chatted with the other tedana devs and we're planning to extract the MA-PCA code from tedana into its own small package, so that way other tools (in particular rapidtide) will be able to use the methods without adding tedana as a dependency. We're just waiting to hear back from the GIFT devs (from whom we got a MATLAB-based MA-PCA implementation that we then converted to Python) about licensing and whatnot. Hopefully we'll have a separate package available for rapidtide to use soon!

@bbfrederick
Copy link
Owner

Cool!

@tsalo
Copy link
Contributor Author

tsalo commented Mar 16, 2021

We finally released mapca on PyPi, so if you're still interested this should be doable now.

@bbfrederick
Copy link
Owner

Yes, I would be!

@tsalo
Copy link
Contributor Author

tsalo commented Mar 17, 2021

The MA-PCA approach works by downsampling imaging data in image-space (i.e., as 4D arrays of shape X x Y x Z x T), so would it be possible to use nibabel Nifti1Image objects in the relevant functions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants