| GPMLtoIgraph {WayFindR} | R Documentation |
Converting GPML FIles to Igraph Objects
Description
Takes a GPML file from WikiPathways, extracts the entities therein,
and makes minor adjustments necessary to convert it into an
igraph object. Along the way, it assigns a consistent set
of colors, line types, and shapes.
Usage
GPMLtoIgraph(xmldoc, returnLists = FALSE, debug = FALSE)
nodeLegend(x, graph)
edgeLegend(x, graph)
Arguments
xmldoc |
Either the name of an XML file meeting the
specifications of the Genomic Pathway Markup Language (GPML), or an
object of class |
returnLists |
A logical value; should the return value include the node list and edge list matrices? |
debug |
A logical value; should debugging progress information be printed? Probably best to leave it equal to FALSE. |
x |
A character string, such as "topleft" indicating where to place the legend. |
graph |
An |
Details
GPMLtoIgraph is the main function of the
WayFindRpackage. It achieves the primary goal of converting
pathways from the GPML file format to a mathematical graph, in the
format defined by the igraph package, at which point we
can apply a wide variety of graph algorithms from computer science in
order to "compute on biological pathways".
The implementation of GPMLtoIgraph relies on the utility
functions described in gpml-utility. Briefly, the algorithm
starts by collecting all nodes (DataNodes in GPML) and edges
(Interactions in GPML) from the GPML input file. However, GPML
includes two other structures with (semantic) biological
meaning. First, the GPML description includes the idea of an
(invisible) "Anchor" that allows one edge to point to another
edge. We expand those invisible target locations into full-fledged
nodes in the final graph. Second, GPML includes "Groups"
that represent protein complexes or sets of closely related genes. In
WayFindR, we represent such groups as their own nodes in the
final graph, and add "contained" edges linking in the group members.
The transformations of Anchors and Groups do not change the
fnudamental topology (in particular, the existence of cycles) of the
resulting graph.
Finally, GPML includes non-semantic features (including "Labels"
and "Shapes") that are (mis)used by some pathway authors as the
targets of edges. WayFindR converts any targeted non-semantic
features into nodes in order to preserve as much information as
possible from the original pathway in WikiPathways.
Value
The GMLtoIgraph function usually returns an igraph
object that represents the pathway defined by the input
xmlfile. If the argument returnLists = TRUE, then it
returns a list containing three components; graph is the
igraph object, nodes is a data frame containing node
information where each row is a node, and edges is a matrix
containing edge information where each row is an edge. The node and
edge information can be used to reproduce the graph in any network or
graph visualization tool that accepts such matrices to describe the
graph. The nodes data frame includes columns for color
and shape, and the edges data frame includes columns for
color and lty that are recognized and used by the
plot.igraph function.
Both nodeLegend and edgeLegend invisibly return the same
value that is returned by the legend function that is
used in the implementation.
Author(s)
Kevin R. Coombes krc@silicovore.com, Polina Bombina pbombina@augusta.edu
Examples
xmlfile <- system.file("pathways/WP3850.gpml", package = "WayFindR")
graf <- GPMLtoIgraph(xmlfile)
set.seed(13579)
L <- igraph::layout_with_graphopt
plot(graf, layout=L)
nodeLegend("topleft", graf)
edgeLegend("bottomright", graf)