-
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
Add ability to re-run ICA when no/few BOLD components are found #662
Comments
Not the fanciest implementation but we could add a while or a for loop (I'm thinking 2 iterations max) that only runs for a second time if the number of BOLD components is below a certain threshold. |
Good point. We could put that in the workflow function, although the ICA function would need to return the seed and/or number of restarts. Something like.... bad_decomp = True
n_restarts = 0
while bad_decomp:
ica_results, n_restarts = ica_function(seed, maxrestarts=(maxrestarts - n_restarts))
comptable, n_bold_comps = decision_tree(ica_results)
seed += n_restarts
if n_bold_comps > 2:
bad_decomp = False |
That looks good but I would limit the number of restarts. We don't want |
We already have a limit on restarts ( |
Oh, I didn't see |
Summary
When no BOLD components are detected by the decision tree, it is possible that the ICA simply failed to produce components that adequately dissociated BOLD and non-BOLD signal sources by chance. Changing the random seed can help with this. It would be awesome to be able to feed information from the decision tree back into the decomposition (combining with the
maxit
andmaxrestart
parameters) to restart the decomposition with an updated seed.This would require a substantial refactor, and would probably best work with an object-oriented approach...
Additional Detail
This stems from #659. In that case, changing the random seed was helpful in some subjects.
Next Steps
The text was updated successfully, but these errors were encountered: