-
Notifications
You must be signed in to change notification settings - Fork 30
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
Small fixes to the new bridge pipeline #3122
Conversation
Update to the latest version of the SSSOM plugin. This fixes a bug with the mapping cardinality filter that caused a large part of the CL-ZFA mappings to be ignored. We also use the new features of that version to ensure that the generated mapping sets have a license and an ID.
For the technically inclined, this (collapsed) comment explains why the CL-to-ZFA bridge is currently not complete (TL;DR: because of a bug in the SSSOM plugin, fixed in 0.6.1).The SSSOM/T ruleset that generates the bridging axioms contains, at the beginning, two generic rules:
The first rule takes any mapping whose object is not a UBERON or CL term and excludes it from any further processing (in effect, it’s as if the mapping was simply discarded). This is necessary because we collect mappings from different sources and a particular mapping set may contain more than just mappings to UBERON or CL. For example, the ZFA mapping set contains mappings between ZFA and CL (that we want) but also mappings between ZFA and TAO (that we don’t care about). This rule eliminates the mappings with anything else than UBERON or CL, so that we don’t have to worry about their presence in the rest of the process. The second rule excludes any mapping that does not have a cardinality of So far so good, but the problem is that, up to version 0.6.0 (included), the SSSOM plugin for ROBOT was calculating the cardinality of the mappings only once, just after collating all the input mapping sets into a single set and before applying any rule. To understand how it is a problem, consider the following mappings:
When the cardinality is calculated, these mappings are identified as When the first rule above is applied, the mapping with TAO is excluded, since it is a mapping with an object that is neither a UBERON term nor a CL term. But because cardinality is only calculated once, the remaining mapping with CL:0000017 is still considered to be a And that is how many of the ZFA-CL mappings were ignored in the first version of the new pipeline! Sorry about that. (Though it was still better than the old pipeline, which ignored all the ZFA-CL mappings.) The fix is simply to ensure that, when we need to filter on cardinality (when a SSSOM/T rule has a |
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.
Looks great, can't see anything suspicious!
Of course, all the suspicious stuff is hidden away in the code of the SSSOM plugin! 😈 |
This PR amends the recently introduced SSSOM-based bridge pipeline to use the latest version (0.6.1) of the SSSOM plugin for ROBOT. This allows to: