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