XP:biological process xp regulation
This page details the "standard" regulation cross-product. This is the subset of internal BP x BP + BP x MF cross-product that can be trivially derived from parsing terms of the form "(negative/positive) regulation of P", where P is named in GO.
When these cross-product definitions are derived, we can use a reasoner to ensure consistency within the GO. Currently the cross-product definitions live outside the main GO, and are generated every night by the OboEdit semantic parser.
Currently we are applying the reasoner results in large batches and also periodocially. The first iteration fixed >1000 links in the regulation graph in GO. We will be moving the cross-product definitions into the ontology as soon as OE2 is released.
There is more detail on this page; however, some of it is historical:
- 1 Methods
- 2 Results
- 3 Availability
- 4 Future Plans
- 5 Tracker Items
- 6 See Also
The following parser grammar is implemented in the OBO-Edit2 semantic parser:
- negative regulation of P -> biological_regulation THAT negatively_regulates P
- regulation of P -> biological_regulation THAT regulates P
- positive regulation of P -> biological_regulation THAT positively_regulates P
We can use this to derived explicit necessary and sufficient conditions for a subset of regulation terms that follow a very regular form.
Relationship to other XPs
This XP subset only contains the basic regulation terms - i.e. those that can be parsed by the rule above
The Obol grammar has more complex parsing rules: obol_biological_process_xp_self, particularly for handling multi-species regulation terms. However, this overall a much more difficult problem so we separate these out into different XP subsets.
Areas of potential overlap are:
[Term] id: GO:0002045 ! regulation of cell adhesion involved in intussusceptive angiogenesis intersection_of: GO:0030155 ! regulation of cell adhesion intersection_of: part_of GO:0002041 ! intussusceptive angiogenesis
This is an example of recursive decomposition. If we take bp_xp_self and bp_xp_regulation_of_process together, we get
- regulation of cell adhesion during intussusceptive angiogenesis =def (regulation of cell adhesion) that part_of (intussusceptive angiogenesis)
- regulation of cell adhesion =def biological regulation that regulates cell adhesion
Only the second one belongs in the regulation xp set
[Term] id: GO:0052539 ! positive regulation by symbiont of defense-related host cell wall thickening intersection_of: GO:0065007 ! biological regulation intersection_of: OBO_REL:regulated_by obol:symbiont ! symbiont intersection_of: positively_regulates GO:0052386 ! cell wall thickening intersection_of: regulates_process_in obol:host ! host intersection_of: positively_regulates GO:0006952 ! defense response
As should be evident, these multi-species interaction xps are rather complex so it makes sense to partition these off from the more trivial regulation of X standard regulation terms.
[Term] id: GO:0019228 ! regulation of action potential in neuron intersection_of: GO:0001508 ! regulation of action potential intersection_of: OBO_REL:unfolds_in CL:0000540 ! neuron
Although clearly a regulation term, this falls within the domain of BP x CL as it references a term in the OBO Cell ontology. We certainly don't want to mix up external XPs with the more straightforward internal XPs
This uses the Uberon ontology
[Term] id: GO:0021804 ! negative regulation of cell adhesion in the ventricular zone intersection_of: GO:0007162 ! negative regulation of cell adhesion intersection_of: OBO_REL:unfolds_in UBERON:XAO_0000021-ZFA_0001083 ! ventricular zone
Similar to the CL case above, this time gross anatomy
For now we do not parse these. Instead we require any "activation of X" term to have an is_a parent "positive_regulation of X" declared in GO. The parent term will be parsed.
This is specified in obo with a transitive_over tag. Together with the xp definitions, this is enough for the reasoner to infer the link shown in blue:
The first pass resulted in 1000 links being repaired in GO based on reasoner results
The second pass resulted in another 2000
At this time, the xp definitions are not stored in the main gene_ontology_write.obo file (although this would be ideal). Instead, a nightly process executed at Berkeley runs both the OBO-Edit2 semantic parser and the reasoner.
The results are here:
They can be browsed here:
This is cases where we have RoX is_a RoY, yet there is no declared or inferred relation between X and Y. Although logically a relation between X and Y is not entailed, the chances are there is an issue that needs to be resolved here.
The current methodology of generating nightly reports and having editors look through them and manually fix the GO is clunky and time-consuming.
convert to XPs in batch using OE2 semantic parser - editors check the above report and fix missing links
Implementation plan, post OboEdit2.0 release
Manage the XPs directly in the main .obo file
The regulation is_a links could be maintained in either repair mode or automatically by the reasoner.
If we choose to do the latter we would first strip all inferrable is_a links from the editors version of the file. The editors would use OE with the reasoner constantly on. When the editors version is 'deployed' (i.e. a copy is made in the public directories) then obo2obo would run the reasoner and realize all the is_a links so the general user would not need the reasoner.
Alternatively, we could choose to redundantly state the is_a links in the editors version too. The editors would use OE in repair mode - this means that they would invoke the reasoner at a time of their choosing, and then use the "Edit/Assert implied links" to selectively add missing links
To see a test of what the former would look like, point OBO-Edit at this URL (or download):
This is an example of GO with the regulation xps added and the inferrable is_a links stripped out.
With the reasoner off, the regulation terms should appear "flat" in the visual displays. With the reasoner on they will be placed correctly.
In the NR file, the stanzas look like this:
[Term] id: GO:0000414 name: regulation of histone H3-K36 methylation namespace: biological_process def: "Any process that modulates the frequency, rate or extent of the covalent addition of a methyl group to the lysine at position 36 of histone H3." [GOC:krc] intersection_of: GO:0065007 ! biological regulation intersection_of: regulates GO:0010452 ! histone H3-K36 methylation
Note the lack of an is_a to GO:0031060 ! regulation of histone methylation
That's OK - the reasoner infers it dynamically
Alternate plan: OBO-Edit1
This plan is designed to allow us to press ahead with OE1 (see OBO-Edit:Why_xps_wont_work_for_GO_in_OE1).
We will take the less conservative step of abandoning Repair Mode and going with reasoner constantly-on mode FOR EDITORS ONLY. The reasoner will be run in batch mode to make the public version of the ontology. Just like for SO. (add link to SO xp docs here)
Caveat on using on-the-fly reasoner mode: we can always move the main file to repair mode for the regulation xps, but what about when external xps come along? This may prove too big a burden on the reasoner. but we will be somewhat committed to repair mode