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
WayFindR
package. 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 "Group
s"
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)