Welcome to nmrstarlib’s documentation!


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


The nmrstarlib package is a Python library that facilitates reading and writing NMR-STAR formatted files used by the Biological Magnetic Resonance Data Bank (BMRB) for archival of Nuclear Magnetic Resonance (NMR) data.

The nmrstarlib package provides facilities to convert NMR-STAR formatted files into their equivalent JSONized 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 nmrstarlib package also provides facilities to create simulated peak lists for different types of standard solution and solid-state NMR experiments from chemical shifts and assignment information deposited in NMR-STAR files.

In addition, the nmrstarlib package provides methods to visualize chemical shift data.

The nmrstarlib package can be used in several ways:

  • As a library for accessing and manipulating data stored in NMR-STAR format files.
  • As a command-line tool to convert between NMR-STAR format and its equivalent JSONized NMR-STAR format, to create a large number of simulated peak lists, and also to visualize chemical shift data.


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

  • Smelter, Andrey, Morgan Astra, and Hunter NB Moseley. “A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank.” BMC Bioinformatics 18.1 (2017): 175. doi: 10.1186/s12859-017-1580-5.


The nmrstarlib 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 nmrstarlib

Install on Windows

py -3 -m pip install nmrstarlib


Import nmrstarlib library and create generator function that will yield StarFile instance(s):

>>> import nmrstarlib
>>> # "path": path_to_file / path_to_dir / path_to_archive / bmrb_id / file_url
>>> for starfile in nmrstarlib.read_files("path"):
...     print(starfile.bmrbid)         # print BMRB id of StarFile
...     print(starfile.source)         # print source of StarFile
...     print(list(starfile.keys()))   # print StarFile saveframe categories


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


This package is distributed under the MIT license.

Indices and tables