XP:biological process xp regulation

From GO Wiki
Jump to: navigation, search

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:



The following parser grammar is implemented in the OBO-Edit2 semantic parser:

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:



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



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.



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


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

Activation terms

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.


Note that the regulates relation is transitive_over part_of. i.e. if A regulates B and B part_of C then A regulates C.

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:

See the README. In particular the newlinks report. This report will become obsolete once the regulation xps are in the main ontology.

Abduced Links

abduced-links report

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.


Future Plans

The current methodology of generating nightly reports and having editors look through them and manually fix the GO is clunky and time-consuming.

Current SOP

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:

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

Tracker Items

See Also