-
Notifications
You must be signed in to change notification settings - Fork 168
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
[SCHEMA][ENH] Remove atlas entity and replace it with seg in prep of BEP038 #1579
Conversation
Removed the atlas entity and added a seg (segmentation) entity instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest that for now we get rid of the Atlas
metadata field altogether. It's under-specified, and BIDS permits unknown terms.
I will submit a PR against your branch to edit the spec text.
I have too much involvement here to validate anything -- just FYI I updated the derivatives guidelines and BEP38 with 'seg' and propose for future ref atlas (Atlas is defined as per Merrian-Webster, a bound collection of maps (i.e. labelled brain regions) and metadata (tables, or textual matter)) |
Hi folks, thanks @melanieganz for starting the process and @effigies and @CPernet for comments!
Just to add how an
|
ENH: Remove Atlas metadata, update imaging derivatives text around seg-
The object key should be the long version of the name. name is what is seen in the entity _<name>-<value>_. And display_name is generally capitalized, imagining someone might write a GUI with a drop-down menu in it. Co-authored-by: Chris Markiewicz <[email protected]>
The double-newline ensures that a newline is rendered. Co-authored-by: Chris Markiewicz <[email protected]>
will to get more green on the CI side |
Codecov ReportPatch and project coverage have no change.
Additional details and impacted files@@ Coverage Diff @@
## master #1579 +/- ##
=======================================
Coverage 87.83% 87.83%
=======================================
Files 16 16
Lines 1356 1356
=======================================
Hits 1191 1191
Misses 165 165 ☔ View full report in Codecov by Sentry. |
LGTM |
This also looks good to me! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't know much about atlases but the process and the general arguments make sense to me.
be used to specify the masked structure | ||
(see [Common image-derived labels](#common-image-derived-labels)), | ||
and the `Atlas` metadata SHOULD be defined. | ||
If the mask is an ROI mask derived from an atlas segmentation, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if there's a more extended discussion required here regarding "atlas" vs. "template" or "brain" vs. "structure".
Say one derives a brain mask by registering to a template image and then applying the inverse transformation to a brain mask defined with respect to the template image. This is an entirely valid ROI mask. Two issues however:
- The main precedent I'm aware of, fMRIPrep, uses
_desc-brain
rather than_label-brain
. - In my mind, there was no "atlas" used in this process. An "atlas", to me, requires a plurality of labels.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any problems with this passage. @Lestropie, I don't understand your example:
Say one derives a brain mask by registering to a template image and then applying the inverse transformation to a brain mask defined with respect to the template image. This is an entirely valid ROI mask.
This example entirely refers to a "brain mask" which to me is not an ROI, but an image defining brain/non-brain. Hence I would never call the input or output a "ROI mask".
I may be out of sync with this PR, but to me "ROI" implies a sub-"region" and excludes a brain mask.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it's sufficiently unambiguous and unanimous that "ROI" = "subset of brain", then that is true. However I'm not 100% convinced that's the case; I don't see why the brain couldn't be considered a "region" of interest with respect to the whole image, just as could be eg. the skull or face.
If yours were to be an accepted definition, specifically in the context of a brain imaging data structure, especially if it were to instruct that different entities be used for ROI masks vs. not-ROI masks, perhaps that necessitates inclusion in the definition dictionary. The only relevant reference I can find is the "Type
" metadata field, which lists "Brain
" and "ROI
" as being two separate things, but is fairly hidden away.
To put more explicitly the consequence of the point: is there a reason why the _label-
entity "SHOULD" doesn't just apply to _mask.
suffix data, regardless of whether it is a "ROI" derived from an "atlas" (over and above the potential ambiguity of those two terms)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this thread may be getting a bit off-topic. The goal of this particular change is simply to use the phrase "atlas segmentation" instead of "atlas". If you would like to make a clarification that is consistent with the existing definition (modulo the removal of this narrowly defined atlas), that would be in-scope for this PR.
If you think the existing text is insufficiently clear, then I would respectfully ask that we postpone that discussion until this one is complete, or at least move it to a new issue/PR.
This is currently doing an outright erasure of the
|
we actually did consider
As you mentioned, parcellation is defined as discrete surface segmentation, which is also why we thought use seg as general segmentation (probabilistic in volume for instance) which follows the current definition. PS: I am happy that we discuss parc vs seg but removing atlas as currently defined :-) and because we did discuss this, we not totally against it either |
I'm supportive of this change. Personally, I always viewed "atlas", without qualification, as referring to a template space (e.g. MNI, fslaverage_lr), and took care to use "ROI atlas" if referring to an image with integer values that defined regions. |
Co-authored-by: Robert Smith <[email protected]>
Thanks for this comment @Lestropie; we tried to make this clear above, but I can see it isn't. |
Just a little historical digging: In retrospect, adding a new entity without much broader comment from a BEP that was not in the process of being finalized was a serious mistake. I personally think it would be a shame if BIDS was held up by my mistake, as the merging maintainer. As to deprecation, this would require new features in either the legacy validator or the upcoming schema validator. Part of the purpose of this is to establish whether this would be a disruptive change; if nobody is using this feature yet, or everybody has been treating it as experimental pending BEP17, then the benefit of that additional work is questionable. And if it is highly disruptive, then we may need to consider more significant changes such as pushing forward with a backwards-incompatible BIDS 2.0 as quickly as possible. |
We've been treating the feature as experimental pending BEP17 |
Just to clarify, would this proposal also (eventually) change For example BEP 012 specifies the following for ROI time series: I currently make heavy use of |
Yes. |
Dear all, are there any more comments regarding this or do you have any more objections before we merge this? |
@Lestropie Have your questions/points been adequately addressed? |
@effigies In the middle of a workshop so can't do a huge response, but basically yes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the absence of objection, let's go ahead.
I will go ahead with this then! |
During the BIDS derivative meeting in June, the atlas BEP0038 was thoroughly discussed. You can see a summary of the discussions here.
The outcome of this discussion was that the concept of an atlas is broader than what the current atlas entity defines it to be, so we would like to replace the current atlas entity which was basically representing a segmentation of a derived dataset with the entity "seg" instead. Currently, we define what segmentation is in the spec but do not use segmentation as an entity.
This opens up the possibility for the atlas BEP038 to re-define the atlas entity in a broader sense and to allow it to e.g. be used like a subject in itself.
Examples of the use of the seg entity in a derivative would then be:
The label would then identify which segmentation was used, e.g. DKT, HarvardOxford, etc.
Note also two things of relevance to this discussion:
"atlas" is defined twice in the specification, once as an entity and once as a metadata concept. This will also be necessarily updated by BEP038 in a separate issue.
In the derivatives spec we define parcellations explicitly as discrete surface segmentations, so while originally the use of "parc" as an entity was discussed as well "seg" seems more appropriate and broader.
The following screenshots summarize the changes to the specification, as compared with the current latest: