Open djskelton opened 6 years ago
This may add further complexity. Why do we go from simple Reaction ->hasReactant or hasProduct -> Compound relationships to the proposed representation. SPARQL will surely be more complex with the proposal.
I don't think it necessarily adds complexity to the SPARQL:
select ?enzyme
where{
?enzyme catalyzesReaction ?reaction.
?reaction hasRPPair ?rppair.
?rppair hasTransformationPattern
From my experience with lab / industry applications, people tend to say 'I want an enzyme that will degrade compound Y' (without fully specifying a specific mechanism or co-factors). Consider, as an example, that we want an enzyme that could hydroxylate a compound that has an aromatic ring (the transformation pattern); in this use case the co-factors are NADPH, oxygen, and a proton whereas in this case it is NAD. The abstraction of ReactantProductPair allows us to capture the same type of transformation occurring under different mechanisms / cofactors (even in cases where reactions are unbalanced).
I'm not proposing this as a replacement for Reaction ->hasReactant or hasProduct -> Compound relationships, but rather an addition that extends the potential use-cases for SyBiOnt.
To facilitate linking together of reactions, I would like to propose the addition of the following classes:
By representing reactions as being composed of one or multiple ReactantProductPairs, each with a TransformationPattern, then we have a basis on which to link similar reactions. This would open up the potential for some powerful integration and SPARQL queries on databases using the SyBiOnt ontology. For example:
There are different ways of representing TransformationPatterns (e.g., molecular path changes, molecular sub-graph changes, application of SMIRKS / reaction SMARTS), and so I would propose that these represent different sub-classes of transformation patterns. Other ontologies do something similar (see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3632090/), but this is for a specific approach to transformation patterns, rather than having a general class (TransformationPattern) which can then be subclassed.