-
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
Problem with tedpca #949
Comments
Thank you for noticing this. I think I see what changed. We added the following line to the command line argument parser to limit string inputs, but it prevented users from giving numbers as inputs. Our test used the API, which doesn't have this issue. I'll try to get this fixed soon. |
Please check and confirm #950 addresses this issue. I also added in code to skip the dimensionality reduction step, but I realized it caused additional problems so I removed it. My added code would just give the maximum number of components, which would likely make ICA fail since many components would just be gaussian noise. I think your existing method of setting |
Thanks Dan, when we wanted to apply changes, I tried to skip PCA but I ran into some issues, therefore, I decided to set the tedpca to a number close to 1 (I used 0.9999 but the results are similar to 0.99). A good number of components have empty maps and will not be considered. I agree with you that manipulating the pca with |
@handwerkerd Can you provide any additional detail into the additional problems caused by skipping the dimensionality reduction step? I'd still like to pursue that prospect, even if it's a little tricky code-wise. I'm a little hesitant about setting a variance threshold "close to 100%" and hoping that it does a reasonable job. If there's a lot of low-variance components due to a prior PCA, then a small change in that variance threshold eg. 99% -> 99.9% -> 99.99% might actually change the number of components considerably, and I don't have a feel for what influence that might have on the ICA. So having a full bypass and dealing with classification exclusively at the ICA is still appealing. |
@Lestropie I think setting the threshold to 99% only makes sense if estimated Gaussian noise was removed in an earlier preprocessing step. I think you are aware of that context, but I'm realizing it might not be obvious to others reading this thread. Ideally, the PCA + dimensionality estimation step should identify the minimum number of components/dimensions required to model the parts of the signal that are not Gaussian noise. That would be my ultimate goal. From a practical perspective, I'm not sure how much that matters. The practical requirement is to end up with a manageable number of components (i.e. <1/3 of the total number of volumes in my typical experience with fMRI) and where ICA reliably converges. Within tedana, any component that is not modeled by PCA is retained in the signal so there is no risk of removing task-locked information in excluded low-variance PCA components. Additionally, both of the current decision tree option skew towards keeping low variance ICA components rather than losing statistical degrees of freedom. That means that getting dimensionality estimation right means the ICA might be more accurate and opens ways to more aggressively remove undesired noise, but the worst case of getting it slightly wrong is not remove some noise. FWIW, The Does this answer your question? |
There's a lot of discussions to potentially branch out from here, but it all diverges further and further from the original purpose of this issue listing. What I might do is let this thread die naturally, explore some data more closely with @BahmanTahayori, and if I still think there's merit in the prospect of a full bypass (or maybe something else, eg. a tailored PCA rank estimation heuristic for our use case) then I'll re-raise in its own thread. |
Summary
When tedpca is set to a number (float/integer) in tedana 23 an error is reported and the process stops. Here is an example when tedpca is set to 0.99.
tedana: error: argument --tedpca: invalid choice: 0.99 (choose from 'mdl', 'kic', 'aic')
The text was updated successfully, but these errors were encountered: