libSBGN
Convert from any graph formatto libSBGN Convert from libSBGNto any other format
libSBGN is an open-source software library for reading, writing, validating and manipulating maps encoded in SBGN-ML, the XML serialization of the Systems Biology Graphical Notation (SBGN). SBGN is a community standard that defines a precise visual vocabulary for biological network diagrams across three complementary languages: Process Description (PD), Entity Relationship (ER) and Activity Flow (AF). The library was developed by the SBGN community and introduced in the 2012 Bioinformatics paper "Software support for SBGN maps: SBGN-ML and LibSBGN" by Martijn van Iersel, Alice Villeger and colleagues; contributors include Augustin Luna, Frank Bergmann, Sarah Boyd, Tobias Czauderna, Stuart Moodie and Matthias Koenig. It is available in Java (the primary implementation, distributed via JitPack/Maven) and a C++ binding. The repository was archived in January 2023, with Milestone 3 (May 2020) as the last release.
The data model mirrors the SBGN-ML schema (SBGN-ML) rather than a generic graph. A map holds glyphs, arcs and their geometry: glyphs are the typed visual nodes (entity pools, processes, compartments, logical operators, ports), and arcs are the typed edges (consumption, production, stimulation, inhibition, catalysis and so on). Each element carries bounding-box or point coordinates, so a document captures both the semantics and the exact layout of a diagram. An optional render extension stores styling information such as colors, gradients and fonts. Because SBGN edges are strongly typed and constrained by glyph class, this is a domain-specific pathway model, not an interchangeable property graph.
Beyond serialization, libSBGN validates maps for syntactic and semantic correctness using Schematron rule sets specific to each of the three languages, catching illegal glyph/arc combinations that a plain XML schema cannot express. It also underpins conversion between SBGN and related systems-biology formats, sitting alongside the model-centric SBML (served by libSBML-style libraries) and the pathway-database format BioPAX handled by Paxtools. In practice it is the reference I/O layer embedded in SBGN editors and viewers such as SBGN-ED, Newt and Cytoscape plugins, and it is a sibling to standards-support libraries like libSBOL in the synthetic-biology space.
Its main strength is being the canonical, spec-faithful implementation that guarantees interoperable SBGN-ML exchange between tools. The limitations are those of a narrow-scope reference library: it targets one standard rather than general graph interchange, the Java and C++ editions have diverged in feature parity, and the archived, low-activity status means it tracks SBGN-ML 0.3 without ongoing development.
Graph Formats(Input & Output)
Frequently Asked Questions
What graph file formats does libSBGN support?
See the list on this page — it shows every format libSBGN can read, write and display.
How do I import a graph into libSBGN?
Convert your file to a format libSBGN can read, then open it in libSBGN. Use GraphInOut to get a libSBGN-compatible file in seconds.
How do I convert a file so libSBGN can open it?
Use the convert links above — upload or paste your graph, pick a format libSBGN accepts and download the result, right in your browser.