TOOL

pySBOL2

pySBOL2 is a pure-Python library implementing the Synthetic Biology Open Language (SBOL) data standard, version 2.3.0. It is developed by the SynBioDex (Synthetic Biology Data Exchange) community that maintains the SBOL standard, with support acknowledged from DARPA's Synergistic Discovery and Design program and Raytheon BBN Technologies, and is distributed under the Apache 2.0 license. It succeeds the older SWIG/C++-wrapped pySBOL binding (now deprecated) and shares lineage with the C++/Java reference libraries libSBOL and libSBOLj, offering an idiomatic Python API rather than generated wrappers around native code.

SBOL 2 is fundamentally an RDF-based, graph-structured model: every object carries a globally unique URI identity, and designs are serialized as RDF/XML triples that can be stored in ordinary RDF repositories. pySBOL2 mirrors this as a hierarchy of Python classes rooted in a Document container. ComponentDefinition objects describe the structural side of a design (DNA, RNA, protein, or small-molecule parts) together with their Sequence and SequenceAnnotation features, while ModuleDefinition objects capture the functional side, expressing regulatory and biochemical relationships through Interaction and Participation objects. Parent-child composition and cross-object references are both first-class, so a full design forms a directed labeled graph of named entities. URIs can be managed in open-world, namespace-based, or fully SBOL-compliant (versioned) modes.

In the graph-data and format-conversion landscape, pySBOL2 is the Python gateway to a domain-specific RDF vocabulary for engineered biology, comparable to how SBML and CellML serve systems-biology modelling. Because SBOL serializes to RDF/XML, documents are interoperable with general RDF tooling such as RDFLib (Python) and Jena/RIOT. pySBOL2 also bundles online and offline (Java 8+) validation and conversion between SBOL's predecessor SBOL2, SBOL1, FASTA, GenBank, and GFF3, though these sequence-format conversions are explicitly lossy. Related SynBioDex tooling includes libSBOL, libSBOLj, and SBOL Val./Conv..

Its strengths are dependency-light installation, a faithful object model of the full SBOL 2.3 specification, and native round-tripping of RDF/XML SBOL. Its main limitation is that it targets SBOL 2 only; the simplified, non-backward-compatible SBOL 3 model is handled by the separate pySBOL3 library, so SBOL 3 workflows require migration. Lossy conversion to legacy sequence formats and reliance on a Java runtime for offline validation are further practical constraints.

Graph Formats(Input & Output)

Frequently Asked Questions

What graph file formats does pySBOL2 support?

See the list on this page — it shows every format pySBOL2 can read, write and display.

How do I import a graph into pySBOL2?

Convert your file to a format pySBOL2 can read, then open it in pySBOL2. Use GraphInOut to get a pySBOL2-compatible file in seconds.

How do I convert a file so pySBOL2 can open it?

Use the convert links above — upload or paste your graph, pick a format pySBOL2 accepts and download the result, right in your browser.