-
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
Incorrect implementation and/or description of adaptive_mask #679
Comments
If we care about patterns of echoes, rather than the first X echoes, then we'll need to evaluate all subsets of echoes if we want to incorporate r-squared (i.e., #543), which is a lot to do. We'll need to figure out some shortcuts... We'll also need to figure out the best way to incorporate our adaptive mask thresholds. For example, in a five echo dataset, if the fourth echo is the only good one, which two echoes do we use for |
A summary from today's call:
|
Improvements we can make:
|
Continuing from #679 (comment) (specifically # 2), I checked the pattern of flagged echoes in a 5-echo run I have on hand. Specifically, I used the mask-limited version of the adaptive mask proposed in #1060. Here's the number of voxels following each pattern (0 means a good echo, 1 means a bad echo):
There are definite jumps in frequency for sequential good echoes (e.g., first three echoes are good, last two are bad), such as '10000': 8087, '11000': 9596, '11100': 10106, '11110': 5562, '11111': 175259. However, there are also a lot of voxels that exhibit non-sequential patterns (e.g., '11101': 2949). I think this broadly replicates what I found in Logan's 8-echo dataset. |
Summary
I was reviewing
make_adaptive_mask()
recently, and I noticed that the documentation and implementation don't line up. Specifically, the docstring implies that the adaptive_mask reflects the last echo with good signal, while the implementation indicates that it's the total number of echoes with good signal.Additional Detail
Here's the part that sums good echoes instead of identifying the last good one:
tedana/tedana/utils.py
Lines 91 to 93 in 1a45f12
When I directly checked which echoes had "bad data" in Logan's eight-echo data, according to the current implementation, the
adaptive_mask
generally had a value of 7 (indicating that the first 7 of 8 echoes are good), but the actual bad echoes were all either the first or second one!If anyone has a good rationale for this behavior, please respond.
Next Steps
The text was updated successfully, but these errors were encountered: