ontobio icon indicating copy to clipboard operation
ontobio copied to clipboard

Generate closure of ontology for use in writing slim

Open dustine32 opened this issue 5 years ago • 2 comments

Sorry if there's already functionality like this in ontobio:

Use case is generating a new Panther slim from an Ontology object. We first load the whole GO, run some heuristic to select what terms we want, then make a subontology from these nodes and pass this to the GraphRenderer for writing an OBO file.

Initially attempting these steps, I get an OBO file with an incomplete relation set. For example, we selected to keep GO terms GO:0015485 (cholesterol binding) and GO:0005488 (binding) but none of the intermediate terms (e.g. GO:0043178 "alcohol binding") connecting them through is_a relations. And so, because there isn't an explicit GO:0015485 is_a GO:0005488 edge in the graph, the relation doesn't get written to the OBO output.

@cmungall @dougli1sqrd Got any idea of existing code that would do this? I can try filling it into ontobio if the answer is "no". Thanks!

dustine32 avatar Sep 14 '18 00:09 dustine32

There is an open ticket in robot: https://github.com/ontodev/robot/issues/302

You can do this now with owltools, though owltools is deprecated for command line ontology processing, the intent is to move all ontology processing commands into robot; but it should work for your purposes for now. See the example at the above linked ticket.

cmungall avatar Sep 15 '18 00:09 cmungall

Awesome thanks @cmungall ! This is exactly what I'm looking for. I'll give it a shot.

Last Friday I wrote something that seemed to do the trick using ontobio, but it was extremely slow. Took 3-4 hours to fill in a slim of about 2700 terms. I'll push the branch to see if you guys think it's worth keeping at all.

dustine32 avatar Sep 18 '18 05:09 dustine32