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

Errors related to robot conversion of vo #144

Open
bgyori opened this issue Feb 28, 2023 · 1 comment
Open

Errors related to robot conversion of vo #144

bgyori opened this issue Feb 28, 2023 · 1 comment

Comments

@bgyori
Copy link
Contributor

bgyori commented Feb 28, 2023

Currently, for

get_ontology('vo', force=False, strict=False, version='1.1.198')

we get a robot error.

There are three potential issues related to this that I want to bring up:

  1. When I try to load vo via PyOBO in a Python environment, the error that robot shows is not visible, we only see a generic:
CalledProcessError: Command '['robot', 'merge', '-i', '/Users/ben/.data/pyobo/raw/vo/1.1.198/vo.owl', 'convert', '-o', 
'/Users/ben/.data/pyobo/raw/vo/1.1.198/vo.obo']' returned non-zero exit status 1.

When running the same robot command from the command line outside Python, I found that robot actually displays a lot of
useful context:

OBO STRUCTURE ERROR Ontology does not conform to OBO structure rules:
...
For details see: http://robot.obolibrary.org/errors#obo-structure-error
...

Could robot's output be captured and logged upon erroring by bioontologies or pyobo?

  1. Robot has a --check false flag that allows ignoring some OBO errors, including the one above. I don't see a way to make PyOBO use it in any easy way since this arg would have to be passed through several levels of the call stack. In any case, from the command line I was able to run the above robot command with the --check false option and it produced a very reasonable looking vo.obo.

  2. When I then go back to PyOBO, it would ideally not attempt to regenerate vo.obo from vo.owl given that I manually generated it already, but it attempts to call robot again and errors. Should it check if vo.obo already exists and just use it unless forced to refresh it?

@cthoyt
Copy link
Member

cthoyt commented Feb 28, 2023

Ideally I would like to switch this processing completely to go through OBO Graph JSON format, since if we're going to do the hard work of running ROBOT, we might as well try and get the unambiguous version of the data instead of trying to shove it into OBO flat file format, which we then have to parse again

I tried the --check=false with IOBC and got results that weren't very useful for the OBO parser. I'm worried that disabling this will create content that doesn't get handled well. I tried this for VO too and agree that it looks reasonable, but it's hard to tell since ROBOT doesn't report much useful feedback. The times I've asked for ROBOT to be improved, they've said this just comes from OWLAPI and there isn't much steam on improving that, so we're mostly out of luck

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

2 participants