This page will be used for discussion on how to extend BioPAX to allow storage of visual information on top of the biological model. I tried to make a summary of the ideas that have been proposed so far in our email threads and added my own ideas about a possible implementation. If you have comments, please modify the text below directly and add discussion items marked with a timestamp/username (using ~~~~). -[[User:Thomas|thomas]] 16:22, 19 June 2008 (CEST)
== BioPAX + Coordinates ==
Extend the BioPAX OWL model directly with support for visual information on top of the model. One way to do this is to add a set of utility classes that allow you to link visual information to other classes:
* view
* ELEMENT: reference to a viewElement
* viewElement
* X, Y: coordinates of the element in the view
* MODEL: reference to a BioPAX element (e.g. physicalEntityParticipant)
This approach makes it possible to create multiple views for the same BioPAX model. Below is an example of a simple BioPAX model representing the [http://www.reactome.org/cgi-bin/eventbrowser?DB=gk_current&FOCUS_SPECIES=Homo%20sapiens&ID=114284& Reactome reaction] that represents the release of Cytochrome C from the mitochondria. Note that I left out a lot of code to make it more readable.
{{{
Release of Cytochrome c from mitochondriamitochondrial intermembrane spacecytosolUniProt:P99999 Cytochrome c
}}}
Using the new classes, a view for this BioPAX model could then be defined by the code below:
{{{
25251251257575
}}}
This will allow a viewer (e.g. Cytoscape) to layout the nodes according to predefined coordinates:
[[Image(Reactome_cyc_transport.png)]]
=== Discussion ===
* I added the X and Y coordinates as elements, since that seems to be the default in BioPAX. Maybe it would be more clear if they are attributes (4040120120655500
}}}
Note that I left out a lot of SVG code (e.g. the style attributes) to make the example readable.
When rendered by a viewer, it would look something like this:
[[Image(800px-Test-svg.png)]]
This approach would allow any tool to draw a view of a BioPAX model easily, using the available SVG libraries in different programming languages.
Note that in this example, I made the coordinates used in the SVG snipped relative to the location of the viewElement. This would make it easy to include/exclude parts of a view into other views.
=== Discussion ===
== BioPAX + GPML ==
Don't extend BioPAX directly, but make a connection between BioPAX and GPML. Similar to SVG, but now using GPML as visual format.
=== Discussion ===