Application Programming Interface

An application programming interface (API) which consists of two libraries, the Python library PyEnzyme, and the Java library JEnzyme, which support reading, writing, editing, merging, and visualization of EnzymeML documents.

API description

The API uses the SBML syntax and naming conventions which are familiar to enzymologists to be implemented into EnzymeML. The basic concept of the two libraries is the usage of multiple dictionaries, in which proteins, reactants, units, and reactions are stored. They are indexed by internal IDs to prevent duplicates and ensure that they can always be traced back from reactions and vice versa. This allows an application to load multiple EnzymeML documents and filter them by user-defined properties, such as all reactions in which a certain reactant participates.

All functions were optimised to require no further knowledge of either Java or Python, such that users only have to adapt to the EnzymeML syntax.

Application-specific thin API layer

In order to make EnzymeML accessible to a specific application, a thin API layer maps between the object layers of the API and of the application. An application-specific thin API layer can either be used to import or export EnzymeML documents.

To create a thin API layer, two templates are provided which can be customised to read or write relevant attributes. The first template contains all code needed to extract information contained in an EnzymeML document. The user will decide which code is needed for the specific application and will do the mapping. The second template provides all code needed to create an EnzymeML document.

The easy-to-use syntax allows fast and easy access to all information of an EnzymeML document as well as its creation. In the Use cases, we demonstrate the usage of the API for the integration of three applications: COPASI, STRENDA DB and SABIO-RK.