What is SBtab and how does it look like?
SBtab is a set of conventions and rules for data tables and spreadsheet files, facilitating the exchange of data in Systems Biology. These cumbersome words may easily be explained by looking at a simple example. SBtab tables can hold all sorts of data; our example contains kinetic quantities:
|!!SBtab TableID='kp_1' TableType='Quantity' TableName='Kinetic constants' SBtabVersion='1.0'|
|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|
Let us have a detailled look at the table. The first row is SBtabs declaration row. It is
always preceded by
!!SBtab, which is followed by a set of attributes. Some
attributes are mandatory, others are optional. Mandatory attributes are
(defining a unique identifier of the table, which is important in documents consisting of
more than one SBtab Table) and
TableType (defining the type of data, which is
contained in the SBtab Table). Optional attributes include an arbitrary
SBtabVersion, which defines the syntax version of SBtab that the table
adheres to. For more information on these matters and more optional attributes please see the
The second row holds the column names. These names are preceded by an exclamation mark, which
makes them controlled SBtab columns. The
SBtab validator tool can evaluate the syntax of
controlled columns, which can be very useful (e.g. if the column
!ID is not unique
or if column
!Mean holds non-numeric characters, both of which
can lead to errors when employing SBtab Tables in software tools).
All rows from three onwards are value rows and they hold the actual content
of the SBtab Table. In our example, we see here entries for kinetic constants (remember the
TableType from the declaration row, which says
The content of these rows is rather self-explaining, so we just browse through them:
!ID column holds an arbitrary identifier that must be unique within
the SBtab Table and must not holds special characters (such as '#').
defines the type of quantity that is described, while
!Compound:SBML:species:id directly link the entries to elements of a possible
SBML model that belongs to the SBtab Table. Finally,
provide the numeric value and unit for the quantity.
Equipped with this knowledge, you will be able to read and write all SBtab files. They will only differ in their attributes, column names, and value rows, all according to the sort of data that is contained in the SBtab.