XP:biological process xp regulation: Difference between revisions

From GO Wiki
Jump to navigation Jump to search
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page details the "standard" regulation cross-products. This is the subset of cross-products that can be trivially derived from parsing terms of the form (negative/positive) regulation of P, where P is named in GO.
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.
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.  


So far this is done at periodic intervals. The first iteration fixed >1000 links in the regulation graph in GO
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:
There is far more detail on this page; however, some of it is historical:


[[Regulation_cross-products]]
[[Regulation_cross-products]]
Line 14: Line 13:
The following parser grammar is implemented in the OBO-Edit2 semantic parser:
The following parser grammar is implemented in the OBO-Edit2 semantic parser:


* negative regulation of P -> biological_regulation THAT negatively_regulates P
* negative regulation of P -> biological_regulation THAT [[negatively_regulates]] ''P''
* regulation of P -> biological_regulation THAT regulates P
* regulation of P -> biological_regulation THAT [[regulates]] ''P''
* positive regulation of P -> biological_regulation THAT positively_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.
We can use this to derived ''explicit'' [[necessary and sufficient conditions]] for a subset of regulation terms that follow a very regular form.


The [[Obol]] grammar has more complex parsing rules: [http://code.open-bio.org/svnweb/index.cgi/blipkit/view/trunk/packages/obol/src/obol_biological_process_xp_self.pro obol_biological_process_xp_self], particularly for handling multi-species regulation terms. However, this overall a much more difficult problem so we separate this out into a separate wiki project page: [[XP:biological_process_xp_multi_organism_process]]
 
=== 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: [http://code.open-bio.org/svnweb/index.cgi/blipkit/view/trunk/packages/obol/src/obol_biological_process_xp_self.pro 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:
 
==== [[XP:biological_process_xp_self]] ====
 
Example:
 
<pre>
[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
</pre>
 
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''' =<sub>def</sub> ('''regulation of cell adhesion''') ''that'' [[part_of]] ('''intussusceptive angiogenesis''')
* '''regulation of cell adhesion''' =<sub>def</sub> '''biological regulation''' ''that'' [[regulates]] '''cell adhesion'''
 
Only the second one belongs in the regulation xp set
 
==== [[XP:biological_process_xp_multi_organism_process]] ====
 
Example:
 
<pre>
[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
</pre>
 
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.
 
==== [[XP:biological_process_xp_cell]] ====
 
Example:
 
<pre>
[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
</pre>
 
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
 
==== [[XP:biological_process_xp_uberon]] ====
 
This uses the [[Uberon]] ontology
 
Example:
 
<pre>
[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
</pre>
 
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.
 
=== Reasoning ===
 
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:
 
[[Image:regulation-of-immune.png]]


== Results ==
== Results ==


The first pass resulted in 1000 links being repaired in GO based on reasoner results
The first pass resulted in 1000 links being repaired in GO based on reasoner results
The second pass resulted in another 2000


== Availability ==
== Availability ==
Line 33: Line 115:


* [http://www.geneontology.org/scratch/regulates_xp_live scratch/regulates_xp_live]
* [http://www.geneontology.org/scratch/regulates_xp_live scratch/regulates_xp_live]
They can be browsed here:
* [http://www.obofoundry.org/obo/biological_process_xp_regulation biological_process_xp_regulation]


See the [http://www.geneontology.org/scratch/regulates_xp_live/README README]. In particular the [http://www.geneontology.org/scratch/regulates_xp_live/go_reglive_withPosNeg_noPF-newlinks.txt newlinks report]. This report will become obsolete once the regulation xps are in the main ontology.
See the [http://www.geneontology.org/scratch/regulates_xp_live/README README]. In particular the [http://www.geneontology.org/scratch/regulates_xp_live/go_reglive_withPosNeg_noPF-newlinks.txt newlinks report]. This report will become obsolete once the regulation xps are in the main ontology.
=== Abduced Links ===
[http://www.geneontology.org/scratch/regulates_xp_live/go_reglive_withPosNeg_noPF-abduced-links.txt 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.
[[Image:regulation-of-cell-adhesion-abductive.png]]


== Future Plans ==
== Future Plans ==
Line 52: Line 147:
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.
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
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


=== 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]]).
To see a test of what the former would look like, point OBO-Edit at this URL (or download):


We will take the less conservative step of abandoning [[OBO-Edit:Reasoner Repair Mode|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)
* [http://www.geneontology.org/scratch/regulates_relations_examples/go_regtest_withPosNeg_noPF-NR.obo regulates_relations_examples/go_regtest_withPosNeg_noPF-NR.obo]
 
We first need to do testing
 
Point OBO-Edit at this URL (or download):


* [http://www.geneontology.org/scratch/regulates_relations_examples/go_regtest_withPosNeg_noPF-NR.obo regulates_relations_examples/go_regtest_withPosNeg_noPF-NR.obo]
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.
With the reasoner off, the regulation terms should appear "flat" in the visual displays. With the reasoner on they will be placed correctly.
Line 83: Line 173:


That's OK - the reasoner infers it dynamically
That's OK - the reasoner infers it dynamically
[[Image:go-xp-ref-ote.jpg]]
=== 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 [[OBO-Edit:Reasoner Repair Mode|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
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

Latest revision as of 16:29, 19 January 2009

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:

Regulation_cross-products

Methods

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:

XP:biological_process_xp_self

Example:

[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

XP:biological_process_xp_multi_organism_process

Example:

[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.

XP:biological_process_xp_cell

Example:

[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

XP:biological_process_xp_uberon

This uses the Uberon ontology

Example:

[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

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.

Reasoning

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:

Results

The first pass resulted in 1000 links being repaired in GO based on reasoner results

The second pass resulted in another 2000

Availability

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:

[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

Tracker Items

See Also