Welcome to mwtab’s documentation!


License information Current library version Supported Python versions Documentation status Travis CI status Code coverage information Citation link


The mwtab package is a Python library that facilitates reading and writing files in mwTab format used by the Metabolomics Workbench for archival of Mass Spectrometry (MS) and Nuclear Magnetic Resonance (NMR) experimental data.

The mwtab package provides facilities to convert mwTab formatted files into their equivalent JSON ized representation and vice versa. JSON stands for JavaScript Object Notation, an open-standard format that uses human-readable text to transmit data objects consisting of attribute-value pairs.

The mwtab package can be used in several ways:

  • As a library for accessing and manipulating data stored in mwTab format files.
  • As a command-line tool to convert between mwTab format and its equivalent JSON representation.


When using mwtab package in published work, please cite the following paper:

  • Smelter, Andrey and Hunter NB Moseley. “A Python library for FAIRer access and deposition to the Metabolomics Workbench Data Repository.” Metabolomics 2018, 14(5): 64. doi: 10.1007/s11306-018-1356-6.


The mwtab package runs under Python 2.7 and Python 3.4+. Use pip to install. Starting with Python 3.4, pip is included by default.

Install on Linux, Mac OS X

python3 -m pip install mwtab

Install on Windows

py -3 -m pip install mwtab

Upgrade on Linux, Mac OS X

python3 -m pip install mwtab --upgrade

Upgrade on Windows

py -3 -m pip install mwtab --upgrade


>>> import mwtab
>>> # Here we use ANALYSIS_ID of file to fetch data from URL
>>> for mwfile in mwtab.read_files("1", "2"):
...      print("STUDY_ID:", mwfile.study_id)
...      print("ANALYSIS_ID:", mwfile.analysis_id)
...      print("SOURCE:", mwfile.source)
...      print("Blocks:", list(mwfile.keys()))


Read the User Guide and the mwtab Tutorial on ReadTheDocs to learn more and to see code examples on using the mwtab as a library and as a command-line tool.

File Formatting Issues

Currently there are 5 files that are failing to parse due to formatting issues within them:

  • ST000258_AN000410.txt

    • extra tab character on line 360 (‘MS_ALL_DATA:UNITS tt’)
  • ST000365_AN000598.txt

    • ST:EMAIL line is broken on line 53, 54 (‘ST:EMAIL n@unc.edu’)
    • extra tab on line 155 (‘NMR_BINNED_DATA:UNITStppmt’)
  • ST000445_AN000696.txt

    • extra tab character on line 135 (‘CH:CHROMATOGRAPHY_SUMMARY ttThe gradient composition was changed linearly from 50% to 100% solvent B’)
  • ST000901_AN001467.txt

    • extra tab character on lines 61-78 (‘SP:SAMPLEPREP_SUMMARY tPreparation of SPE on vacuum manifold: 1.tClean 60 mg Oasis HLB (Waters) spe …’)
  • ST000902_AN001468.txt

    • Header line is broken into two lines on lines 1-2 (‘#METABOLOMICS WORKBENCH hover_20170726_173354 DATATRACK_ID:1171n STUDY_ID:ST000902 ANALYSIS_ID:AN001468’)


This package is distributed under the BSD license.

Indices and tables