Est. 2007 Beginner

GPML

The Graphical Pathway Markup Language - an XML vocabulary that grew out of the GenMAPP desktop tool to store biological pathway diagrams as both pictures and machine-readable, database-linked models.

Created by Originated in the GenMAPP project of Bruce Conklin's laboratory at the Gladstone Institutes, and developed since by the PathVisio and WikiPathways teams at the Gladstone Institutes and the Department of Bioinformatics (BiGCaT) at Maastricht University. The GPML schema repository currently lists Martina Kutmon, Finterly Hu, Anders Riutta and Alex Pico as developers, with Martijn van Iersel, Thomas Kelder and Saurabh Kumar as former contributors

Paradigm Declarative markup: an XML application, defined by W3C XML Schema, that describes a pathway diagram as a set of positioned graphical objects carrying database cross-references, annotations and literature citations
Typing Statically validated against an XSD schema; element content and attributes are typed by XML Schema simple types and enumerations, with no computation or evaluation of any kind
First Appeared The earliest schema published in the official GPML repository is GPML2007; its own annotation describes it as the GenMAPP version 2.0 pathway schema, which places the design work in the mid-2000s
Latest Version GPML2021, released around July 2021 and read and written by the LibGPML library. GPML2013a remains widely deployed, since it was the format WikiPathways used from 2013 onward

GPML is an XML markup language for biological pathway diagrams. It solves an awkward problem: a pathway drawing is simultaneously a picture that a biologist reads and a formal model that software needs to compute over. Most formats pick a side. Vector formats like SVG keep the picture and lose the biology; systems-biology formats like SBML keep the biology and lose the layout. GPML deliberately keeps both, storing the coordinates, colours and line styles of every object next to the database identifiers, literature citations and interaction semantics that make the drawing analysable.

The acronym has been expanded two ways over its life. Early schemas and most of the literature call it the GenMAPP Pathway Markup Language, after the desktop application it came from. The current documentation and the GPML2021 schema call it the Graphical Pathway Markup Language, reflecting a format that long ago outgrew its original host program.

History and origins

GPML’s ancestry runs through GenMAPP, the Gene Map Annotator and Pathway Profiler. GenMAPP began around 2000 as a prototype in Bruce Conklin’s laboratory at the J. David Gladstone Institutes in San Francisco, with a first public release, GenMAPP 1.0, in 2002. Its purpose was to let biologists paint microarray expression data onto hand-drawn pathway diagrams and see which parts of a pathway had changed. Diagrams lived in a proprietary binary format with the extension .mapp, readable only by GenMAPP itself on Windows.

That was tenable while GenMAPP was the only consumer of the data and fatal as soon as it was not. GenMAPP 2.0 followed in 2004, and its pathway schema is the direct source of GPML. The provenance is still legible in the schema files: the earliest version kept in the official repository, GPML2007, carries the documentation string “GenMAPP version 2.0 Pathway Schema version 1.0”, along with the note that all graphics measurements are in centimeters - a unit choice inherited from a tool built for printing pathway diagrams rather than for the web.

GPML was designed to be backwards compatible with MAPP, in the specific sense that anything expressible in a MAPP file can be expressed in GPML and existing pathways can be converted. That compatibility requirement is why the format is so unapologetically graphical. It was not designed from first principles as an ontology of biochemistry; it was designed to losslessly carry an existing archive of drawings into an open, parseable, cross-platform world, and to add annotation on top.

Two 2008 projects turned that into an ecosystem. PathVisio, an open-source Java reimplementation of the GenMAPP idea developed at Maastricht University and the Gladstone Institutes, adopted GPML as its native format and was described in BMC Bioinformatics in 2008. WikiPathways launched in the same year as a wiki where the research community curates pathways collaboratively, with a GPML document behind every page. From that point GPML stopped being an application file format and became an interchange standard.

Design philosophy

Three commitments shape the language.

The drawing is the model. A GPML file is a flat list of graphical objects with explicit coordinates. There is no separate abstract layer that a renderer then lays out. When a curator moves a box, the file changes. This is the opposite of the SBML approach, and it is why GPML pathways look like the figures in a review article rather than like automatically generated graphs.

Identity comes from external databases. A node labelled TP53 means nothing on its own. GPML attaches an Xref to it, giving a database name and an identifier - Ensembl, Entrez Gene, HGNC, ChEBI, HMDB and so on - so that downstream tools can map the node to whatever identifier space their data uses. This indirection, supported in practice by the BridgeDb identifier-mapping framework, is what makes a GPML pathway usable as an analysis target rather than only as a picture.

Provenance travels with the content. Literature citations, comments and curation metadata are part of the document. In GPML2013a and earlier this is done by embedding BioPAX PublicationXref records inside a <Biopax> element and pointing at them with BiopaxRef; GPML2021 replaces this with native Citations, Annotations and Evidences collections. Either way, a pathway carries the evidence for its own claims.

Anatomy of a GPML document

The root element is Pathway, carrying the name, organism and schema namespace. Inside it, GPML2013a defines a compact vocabulary:

ElementRole
DataNodeA biological entity - gene product, protein, metabolite, pathway - with an Xref
InteractionA connection between entities, with Point endpoints and optional Anchor attachment sites
GraphicalLineA line with no biological meaning, used for decoration and grouping
LabelFree text on the canvas
ShapeRectangles, ovals, arcs and cell-compartment shapes used as visual context
GroupA complex or logical grouping of other elements
StateA modification such as a phosphorylation, drawn attached to its parent node
GraphicsPosition, size, colour, font and line style, present on nearly every element
Biopax / BiopaxRefEmbedded literature references and the pointers to them

A minimal fragment in the GPML2013a dialect looks like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
<Pathway xmlns="http://pathvisio.org/GPML/2013a"
         Name="Example signalling" Organism="Homo sapiens">
  <DataNode TextLabel="TP53" GraphId="a1b2c" Type="GeneProduct">
    <Graphics CenterX="220.0" CenterY="140.0" Width="80.0" Height="20.0"
              ZOrder="32768" FontSize="10" Valign="Middle"/>
    <Xref Database="Ensembl" ID="ENSG00000141510"/>
  </DataNode>
  <DataNode TextLabel="MDM2" GraphId="d4e5f" Type="GeneProduct">
    <Graphics CenterX="220.0" CenterY="240.0" Width="80.0" Height="20.0"
              ZOrder="32768" FontSize="10" Valign="Middle"/>
    <Xref Database="Ensembl" ID="ENSG00000135679"/>
  </DataNode>
  <Interaction GraphId="idff01">
    <Graphics ZOrder="12288" LineThickness="1.0">
      <Point X="220.0" Y="150.0" GraphRef="a1b2c" RelX="0.0" RelY="1.0"/>
      <Point X="220.0" Y="230.0" GraphRef="d4e5f" RelX="0.0" RelY="-1.0"
             ArrowHead="Arrow"/>
    </Graphics>
    <Xref Database="" ID=""/>
  </Interaction>
</Pathway>

Everything characteristic of the language is visible here. Coordinates are absolute and mandatory. Identity is delegated to Ensembl. Endpoints are anchored to nodes by GraphRef with relative offsets, so a connection survives its endpoints being dragged around. And an Xref with empty attributes is perfectly legal - GPML tolerates unannotated content, because a half-curated pathway is better than none, and curation is expected to be incremental.

Evolution

The schema versions are named for their years, and each is a distinct XML namespace, which makes version detection trivial for parsers:

  • GPML2007 - http://genmapp.org/GPML/2007, the original published schema
  • GPML2008a - http://genmapp.org/GPML/2008a
  • GPML2010a - http://genmapp.org/GPML/2010a
  • GPML2013a - http://pathvisio.org/GPML/2013a, introduced on WikiPathways in July 2013 and the long-lived workhorse version. The repository also ships a GPML2013a-fuller variant, which its maintainers describe as reflecting the GPML actually used between 2013 and 2017 more accurately than the nominal schema does
  • GPML2017 - a draft version that appears in the schema repository but was reportedly never adopted as a release
  • GPML2021 - http://pathvisio.org/GPML/2021, the current version, released around July 2021

The 2013 move from the genmapp.org namespace to pathvisio.org marks the point where the format’s centre of gravity shifted from the original Gladstone application to the PathVisio and WikiPathways community. GPML2021 is the largest structural change in the language’s history: it introduces container elements (DataNodes, Interactions, Labels, Shapes, Groups), promotes Author, Annotation, Citation and Evidence to first-class schema types, adds a Description element on the pathway, and retires the embedded BioPAX block. The accompanying LibGPML library exists precisely because the two dialects differ enough that hand-rolled parsers are a liability; it handles reading, writing and conversion between versions.

The tooling followed the same arc. PathVisio 3, published in PLOS Computational Biology in February 2015, added a plugin system so that importers, exporters and analysis modules could be written independently of the editor. PathVisio 4 is built on the 3.x architecture plus LibGPML, and targets a workflow in which pathway models are submitted directly as pull requests to the wikipathways-database GitHub repository.

Current relevance

GPML is not dormant, though it is easy to see why it might look that way from outside bioinformatics: it has no package manager, no conference, no benchmarks, and its schema has changed only a handful of times - four revisions between 2007 and 2013, then nothing until 2021. What it has is a live corpus. The WikiPathways 2024 database paper, published in November 2023, reports approximately 1,900 human-curated and reviewed pathways spanning roughly 27 species, all stored as GPML, with homology mapping generating a much larger secondary collection for vertebrate model organisms. Monthly snapshots are published in GPML alongside GMT, SVG and RDF derivatives.

The infrastructure around it has been modernised rather than replaced. WikiPathways migrated from MediaWiki to Jekyll and GitHub Pages, putting pathway curation under ordinary version control with continuous integration - GPML files are now reviewed in pull requests like source code, which is arguably the most natural home a diagram-as-text format could have found. The classic WikiPathways site has been made read-only, with its retirement announced for 1 May 2026.

Where GPML sits in the wider standards landscape is worth stating plainly. SBML and BioPAX are richer and more formal about biochemistry; SBGN specifies a rigorous visual grammar. GPML is looser than all three, and that looseness is the point - it is a curation format, designed so that a bench biologist with a review article and an afternoon can produce something structured enough to compute over. Converters between GPML and the stricter formats exist, and GPML’s role in practice is usually the human-facing end of that pipeline.

A note on the name

Three unrelated things share the acronym, and search engines mix them freely:

  • GPML, the pathway markup language described here
  • GPML, the GPlates Markup Language, a GML application for plate-tectonic and geological feature data
  • GPML, the Gaussian Processes for Machine Learning toolbox for MATLAB and Octave, which accompanies the Rasmussen and Williams textbook published by MIT Press in 2006 - software, not a markup language

A fourth, reportedly an XML standard for interchanging genetic programming trees, has also been proposed in the genetic-programming literature. Encyclopedia entries that file GPML under machine learning have almost certainly collided with one of the latter two; the markup language with a 2000s origin and an XML schema is the pathway one.

Why it matters

GPML is a good case study in what a domain-specific markup language is actually for. It was not designed by a standards committee reasoning about the ontology of biology. It was extracted from a working application, under a hard backwards-compatibility constraint, to get an existing body of curated knowledge out of a proprietary binary blob and into text that anyone could parse. That origin explains its shape - the centimetre measurements, the absolute coordinates, the tolerance for empty annotations - and it also explains its longevity. Two decades on, the drawings still open, the identifiers still resolve, and the corpus has moved from a Windows desktop tool to a wiki to a Git repository without ever being re-authored.

For anyone building a format for a specialised community, the lesson is that the interesting design work happens at the boundary between what humans want to draw and what machines need to read. GPML chose to serve both, accepted the redundancy that entails, and got a durable archive out of the bargain.

Timeline

2000
GenMAPP - the Gene Map Annotator and Pathway Profiler - is created as a prototype in Bruce Conklin's laboratory at the J. David Gladstone Institutes in San Francisco. GPML does not exist yet, but the pathway model it would later encode is being worked out here
2002
GenMAPP 1.0 is released, supporting analysis of DNA microarray data on pathway diagrams for several model organisms, reportedly including human, mouse, rat and yeast. Diagrams are stored in the proprietary binary MAPP format, which is tied to the Windows desktop application
2004
GenMAPP 2.0 becomes available around this time - the release is dated to the mid-2000s, with the "GenMAPP 2" paper following in Genome Biology in 2007. Its pathway schema becomes the direct basis of GPML: the annotation inside the earliest published GPML schema still reads "GenMAPP version 2.0 Pathway Schema version 1.0", and states that all graphics measurements are in centimeters
2007
GPML2007, the earliest schema version kept in the official GPML repository, is published in the namespace http://genmapp.org/GPML/2007. The acronym at this point stands for GenMAPP Pathway Markup Language, and the format is designed to be backwards compatible with MAPP so that existing pathways can be converted
2008
Two papers put GPML on a public footing: PathVisio, an open-source Java pathway editor that uses GPML as its native format, is described in BMC Bioinformatics, and WikiPathways launches as a community-curated pathway wiki in which every page is backed by a GPML file. The GPML2008a schema is released the same year
2010
GPML2010a is released, continuing the annual-ish schema revision cycle in the genmapp.org namespace
2013
GPML2013a is released and, according to the WikiPathways release notes, introduced on the site in July 2013. It moves the namespace to http://pathvisio.org/GPML/2013a and settles the element vocabulary - Pathway, DataNode, Interaction, GraphicalLine, Label, Shape, Group, State, Anchor, Xref and an embedded Biopax block - that most existing tooling still parses
2015
PathVisio 3, described in PLOS Computational Biology in February 2015, adds a plugin architecture on top of the GPML core, letting third parties add importers, exporters and analysis modules without touching the editor itself
2021
GPML2021 is released around July of that year, together with LibGPML for reading, writing and converting files. The schema is restructured: annotations, citations, evidences and authors become first-class collections instead of an embedded BioPAX blob, elements are grouped into container lists such as DataNodes and Interactions, and the expansion of the acronym is now given as Graphical Pathway Markup Language
2023
WikiPathways moves off MediaWiki to a Jekyll and GitHub Pages infrastructure. The WikiPathways 2024 database paper, published in November 2023, reports approximately 1,900 human-curated and reviewed pathways covering roughly 27 species - still stored in GPML - and confirms GPML as the archival format alongside GMT, SVG and RDF distributions
2026
The classic WikiPathways site is read-only, with retirement announced for 1 May 2026, and GPML curation moves to pull requests against the wikipathways-database repository on GitHub

Notable Uses & Legacy

WikiPathways

The community pathway database stores every curated pathway as a GPML file. Contributors edit diagrams in PathVisio or the web editor, and the GPML source is the canonical record from which the SVG, GMT and RDF distributions are generated

PathVisio

The open-source Java pathway editor, maintained at Maastricht University, uses GPML as its native save format. Drawing a pathway, attaching database identifiers to nodes and overlaying experimental data all operate on the GPML document in memory

GenMAPP

The original Windows microarray-on-pathways tool that gave GPML its name and its first acronym expansion. GPML replaced GenMAPP's binary MAPP format and was designed to be convertible from it, so the legacy pathway archive survived the transition

Cytoscape

The network visualization platform can import GPML through apps published on the Cytoscape App Store - the WikiPathways app and related GPML importers - letting pathway diagrams drawn in PathVisio be analysed alongside interaction networks from other sources

rWikiPathways and Bioconductor workflows

R users pull GPML documents from WikiPathways through the rWikiPathways package to drive gene set enrichment and pathway-overlay analyses, treating the markup as a data source rather than a drawing

Language Influence

Influenced By

XML BioPAX

Running Today

Run examples using the official Docker image:

docker pull
Last updated: