Getting started with SBtab

What is SBtab?

SBtab is a set of conventions for data tables and spreadsheet files, facilitating data exchange in Systems Biology. Conventions concern, for instance, formatted information about the table in the first row, standardised column names and units, and use of standard terminology (e.g., names defined by the Systems Biology Ontology), as in the following example:

!!SBtab TableType='Quantity' TableName='Kinetic constants' SBtabVersion='1.0'
!ID !QuantityType !Reaction:SBML:reaction:id !Compound:SBML:species:id !Mean !Unit
scp1 standard chemical potential F6P -1380 kJ/mol
scp2 standard chemical potential FBP -2206 kJ/mol
kcrf1 substrate catalytic rate constant R04779 0.02 1/s
kcrr1 product catalytic rate constant R04779 0.01 1/s
kmc1 Michaelis constant FBP R04779 0.5 mM
kmc2 Michaelis constant ATP R04779 0.5 mM
kmc3 Michaelis constant ADP R04779 0.1 mM
kic1 inhibitory constant ATP R04779 1 mM

What are the advantages of using SBtab?

Data tables in the form of spreadsheet or delimited text files are the most popular data format in Systems Biology. However, they are often not sufficiently structured and they lack clear naming conventions that are required for modelling.
SBtab is an attempt to establish easy-to-use formats that are both flexible and clearly structured. It comprises defined table types for different kinds of data; syntax rules for usage of names, shortnames, and database identifiers used for annotation; and standardised formulae for reaction stoichiometries. Furthermore, SBtab enables users to easily define their own table types to customise SBtab for different types of data. The predefined table types can be used to define biochemical network models and the biochemical constants therein. By modifying the definition table definitions.tsv, you can customise the SBtab format and define new table types for your data.


SBtab can be used together with a number of tools and programming languages:

MS Excel

SBtab files can be edited with MS Excel. The SBtab format concerns only the contents of cells. Other Excel functionality, such as colours, macros, or links between cells, are not supported by SBtab and should not be used to encode information. In Excel, SBtab tables can be imported from / exported to .xls and .tsv (tab-delimited) or .csv (comma-delimited) format. An Excel Add-in supporting SBtab is freely available.


SBtab files can be edited with OpenOffice and LibreOffice. As in the case of Excel, functionality such as colours, macros, or links between cells, are not supported by SBtab and should not be used to encode information. SBtab tables can be imported from / exported to .xls and .tsv (tab-delimited) or .csv (comma-delimited) format. Note that some versions of LibreOffice do not recognise the .tsv filename extension. In this case, it is recommended to simply rename the files, replacing ".tsv" by ".csv".


Python3 code for loading and saving SBtab in Python, as well as for validation and conversion to and from SBML, is available here. The python code expects SBtab files to be in tab- or comma-separated text format and supports .xls files. There is also support for pandas. The method toDataFrame() requires no arguments, and returns a pandas.DataFrame() object with the data that is in the SBtab, including the column names.


Code for importing and exporting SBtab files in MATLAB is available here. The MATLAB toolbox expects SBtab files to be in tab-separated text format and does not support .xls files.


The R project is a widespread and powerful software framework for statistical computing and graphics. We provide a simple interface that allows R users to import the SBtab python code into their R projects, manipulate SBtab objects, call Python functions from within the R environment. Code is available in the Code Section

SBML (Systems Biology Markup Language)

The conversion between SBtab and SBML (versions L2V4 or L3V1), can be done on this website or using the python tools. Details are described in the SBtab specification.

Relational databases

SBtab is structured in a way that makes it easy to express tables from relational databases in SBtab. Tables of type "Relationship" can be used to link other tables. However, the opposite is not true: SBtab does not impose normal forms, and it allows to link information in ways that would not be allowed in relational databases. However, a main feature of relational databases, unique keys for all tables, exists in SBtab. By default, each table must begin with a column whose name matches the name of the table type and whose entries serve as unique keys for the table rows. To relieve this requirement, the table attribute UniqueKeyColumn='False' must be set in the table's declaration line. Python code for setting up an SQlight database and querying it through a simple python interface is available in the Code Section.

How to cite SBtab

Lubitz T., Hahn J., Bergmann F.T., Noor E., Klipp E., Liebermeister W. (2016), SBtab: A flexible table format for data exchange in systems biology, Bioinformatics (2016)