Skip to content
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

ODK dropping some terms when generating OBO file (apparently) due to co-occuring obselescence axioms #437

Closed
chris-grove opened this issue Feb 15, 2019 · 4 comments

Comments

@chris-grove
Copy link

While working on the C. elegans Phenotype Ontology:

https://github.com/obophenotype/c-elegans-phenotype-ontology

I noticed that the OBO file(s) being generated by running the standard ontology development kit pipeline are not including as official terms some, but not all, obsolete terms present in the OWL file. Upon troubleshooting it seems clear that obsolete terms that have BOTH a "has_obsolescence_reason" (IAO_0000231) axiom (I always use the "terms_merged" (IAO_0000227) value with this relation) AND a "term_replaced_by" (IAO_0100001) axiom are not getting dumped in the OBO file as a stand alone term. If I remove either of those axioms for a given term and re-generate the OBO file using the local ODK makefile, the resulting OBO file now includes the term. Seems like a bug, but maybe this is expected behavior?

The makefile being used is:

https://github.com/obophenotype/c-elegans-phenotype-ontology/blob/master/src/ontology/Makefile

@matentzn and I discussed and he suggested I post this ticket here.

@cmungall
Copy link
Contributor

This is the expected behavior, if it's a merge then it only shows up in the obo file as alt_id

@matentzn
Copy link
Contributor

Oh my bad then. We can close the issue here, but I will ask you again at the next ODK meeting.

@chris-grove
Copy link
Author

chris-grove commented Feb 19, 2019

@cmungall
OK, thanks for the clarification. I do have a few follow up questions then:

  1. It seems, then, that there is an "irreversible" loss of information when OWL gets converted to OBO by ODK, as the term ID will no longer be associated with it's "obsolete ...." term name nor its "OBSOLETE ..." definition, but only as an alt ID of the replacement term? This info would not be recovered in a 'round trip' conversion from the OBO back to the OWL file.

  2. I can see that there are many terms in the Gene Ontology OWL file:

http://purl.obolibrary.org/obo/go.owl

that are obsolete and have been replaced by another term, but are still getting dumped into the OBO file:

purl.obolibrary.org/obo/go.obo

My understanding was that this constitutes a merge, but maybe that is my misunderstanding. From my experience described above, it would seem that these terms are making it into the ODK-generated OBO file by virtue of the fact that they do not also have a:

has_obsolescence_reason (IAO_0000231) terms_merged (IAO_0000227)

annotation axiom. An example is the term "obsolete DNA unwinding factor" (GO:0030039) which, in the go.owl file, has the annotation axioms:

'term replaced by' (IAO_0100001) GO:0006268
owl:deprecated true

and in the OBO file gets dumped as:

[Term]
id: GO:0030039
Name: obsolete DNA unwinding factor
namespace: molecular_function
alt_id: GO:0017152
def: "OBSOLETE (was not defined before being made obsolete)." [GOC:jl]
comment: This term was made obsolete because it does not represent a true molecular function.
synonym: "DNA unwinding factor" EXACT []
is_obsolete: true
replaced_by: GO:0006268

So, is this not a merged term? Does the annotation axiom:

has_obsolescence_reason (IAO_0000231) terms_merged (IAO_0000227)

have a special meaning that makes it so that the OBO file doesn't generate the term and only places it as an alt_ID?

At WormBase, we would like to make sure that GO and phenotype terms (any ontology terms really) that are obsolete due to a merge get adequately displayed to our users so they can clearly see that a term ID:

(A) has become obsolete
(B) has an obsolete label
(C) has an obsolete definition
(D) has been replaced by a particular term

so as to make sure that users can trace back any old IDs to their original information and their replacement term.

I spoke to @vanaukenk this morning and she pointed out two other possibly relevant tickets:

owlcollab/protege-obo-plugin#7
owlcollab/oboformat#21

Thanks!

@chris-grove
Copy link
Author

We've decided to drop the

has_obsolescence_reason (IAO_0000231) terms_merged (IAO_0000227)

axiom for now so that the OBO serialization is good for our downstream parser. Closing ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants