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='0.9.1'
!ID !QuantityType !Value !Unit !Compound !Reaction
scp1 standard chemical potential-1380 kJ/molF6P
scp2 standard chemical potential -2206kJ/molFBP
kcrf1 substrate catalytic rate constant0.02 1/s
kcrr1 product catalytic rate constant0.01 1/s
kmc1 Michaelis constant 0.5mMFBP R04779
kmc2 Michaelis constant0.5 mMATP R04779
kmc3 Michaelis constant0.2 mMADP R04779
kic1 inhibitory constant1 mMATP R04779

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.

  1. 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.

  2. OpenOffice/LibreOffice 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".

  3. python Python 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.

  4. MATLAB 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.

  5. R 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 here.

  6. 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.

  7. 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 here.

How to get started

  1. Have a look at some example files to get a first impression of the SBtab format.
  2. Have a look at our Frequently Asked Questions page.
  3. Learn how to describe biochemical network models in the SBtab format.
  4. Learn how to make your data tables SBtab-compliant in a few steps.
  5. Read the SBtab draft specification to learn about details of the SBtab format

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)

Main | Getting started | Specification | Validator | SBML | Customize SBtab | Code | Troubleshooting | Contact