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

SyBiOnt Extension/Replacement: Gene Ontology Term #4

Open
chrisAta opened this issue Jan 29, 2018 · 2 comments
Open

SyBiOnt Extension/Replacement: Gene Ontology Term #4

chrisAta opened this issue Jan 29, 2018 · 2 comments

Comments

@chrisAta
Copy link

chrisAta commented Jan 29, 2018

NOTE: These are abstractions of terms I think should be added, not absolutes. The details of these implementations, especially naming, are definitely up for debate, please give feedback!

Class name: Gene Ontology (GO) Term

Purpose: You have a protein or gene and want to specify one of its GO terms. More specifically, you would want it to point to a URI that describes what the GO term is.

Example use case: You have a ketoreductase enzyme with Uniprot accession P16152, and a GO term GO:0004090. This enzyme would point to a GO Term object using a new hasGOTerm predicate. This GOTerm would then point to that term's GO aspect using a new hasGOAspect predicate, and to its URI: https://www.ebi.ac.uk/QuickGO/term/GO:0004090.

goterm

Clashes: At the moment, SyBiOnt has three different classes to describe GO terms, separated into the three main GO aspects: Molecular Function, Cellular Component, and Biological Process. I would argue that having a single GO term class that then points to its respective GO aspect is a better way of representing this. It makes it easier to search for objects with a specific known GO term, because you wouldn't need to know its GO Aspect in the first place.

@djskelton
Copy link

djskelton commented Feb 2, 2018

So, if you look at the SyBiOnt KB, I think you can do this in the ontology as it stands and the information is in there. Take the following example of a protein in there. Download the turtle file and search for the following:

bo:10695 a

You'll see you the following:

rdfs:subClassOf [ a owl:Restriction ; owl:onProperty sybio:hasFunction ; owl:someValuesFrom <http://purl.org/obo/owl/GO#GO_0003700>

The information is in there, but just not in a way that I'd intuitively know how to use / query over. It's essentially saying that the bo:10695 class has a restriction on the values its sybio:hasFunction property can take to <http://purl.org/obo/owl/GO#GO_0003700>. I think, conceptually, I find it odd because I'd expect the bo:10695 to be an instance, not a subclass -- something like the following:

  1. bo:10695 a bo:374 -- i.e, an instance of the protein class, not a subclass.
  2. Add the predicate you suggested (hasGOAnnotation) or use the existing sybio:hasFunction, so you can say that a Protein hasGOAnnotation GOTerm.

I don't know what implications this has for future work, but I would make an argument that I find the ontology difficult to use because I find the sub-classing non-intuitive (for my dataset). How do others feel?

@goksel
Copy link
Contributor

goksel commented Feb 5, 2018

Let's avoid having the hasGOTerm property. It does not add much useful information. Is it a molecular function or a biological process. Why don't we use sybio:hasFunction, for example?

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