biolink / ontobio

python library for working with ontologies and ontology associations
https://ontobio.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
118 stars 30 forks source link

There should be a way to exclude some GO rules when parsing a GAF file #544

Open valearna opened 3 years ago

valearna commented 3 years ago

To generate the Alliance gene descriptions, I'm loading GO obo file and the GAF files for the MODs with ontobio, but GO rule 26 is skipping IBA annotations. Is there a way to exclude a specific rule when parsing the GAFs? I'm happy to work on a PR if needed.

dustine32 commented 3 years ago

Hey @valearna! I used to have this problem too. Somewhere in the AssocParserConfig there is a paint attribute that can be set to True to allow IBA annotations. Oh here it is: https://github.com/biolink/ontobio/blob/0ec3aa6fea9d4492a9873a4b9b394c4866f741b6/ontobio/io/assocparser.py#L197 Let me know if you need more info!

valearna commented 3 years ago

Thanks @dustine32!

cmungall commented 3 years ago

I find it surprising that filtering is the default behavior!

GO team - remember ontobio is a general purpose framework that includes functionality for things like parsing GAFs. We of course want to use this general purpose framework to do things like implement specific rules such as filtering IBA from non-paint sources when run in a specific context.

Even for our own internal GOC purposes this default behavior could come back and bite us. Let us say we rewrite the solr loadiing in python. If we load the outputs of the pipeline then if we do not remember the magic flag we will accidentally filter

@valearna - thanks for the report we will prioritize fixing the behavior!

kltm commented 3 years ago

To clarify maybe, the general/default case should not apply the rules, the optional/GO cases should be explicitly turned on. A fix here for us then would look like shifting the default behavior and adding the hooks to turn what we want on at need.

valearna commented 3 years ago

Thanks again for checking my PR on agr_loader @cmungall. I've set the attribute paint=True and now everything works as expected. I agree that it would be much more intuitive to have the attribute set to True by default.

cmungall commented 3 years ago

...and we should use a more meaningful flag name! paint=True is the height of GO jargon!