A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
Related Experiment Video
Updated: Mar 6, 2026

Registered Bioimaging of Nanomaterials for Diagnostic and Therapeutic Monitoring
Published on: December 9, 2010
Andrey Smelter1,2, Morgan Astra3, Hunter N B Moseley4,5,6,7
1School of Interdisciplinary and Graduate Studies, University of Louisville, Louisville, KY, 40292, USA.
Background:
The Biological Magnetic Resonance Data Bank (BMRB) is a public repository of Nuclear Magnetic Resonance (NMR) spectroscopic data of biological macromolecules. It is an important resource for many researchers using NMR to study structural, biophysical, and biochemical properties of biological macromolecules. It is primarily maintained and accessed in a flat file ASCII format known as NMR-STAR. While the format is human readable, the size of most BMRB entries makes computer readability and explicit representation a practical requirement for almost any rigorous systematic analysis.
Results:
To aid in the use of this public resource, we have developed a package called nmrstarlib in the popular open-source programming language Python. The nmrstarlib's implementation is very efficient, both in design and execution. The library has facilities for reading and writing both NMR-STAR version 2.1 and 3.1 formatted files, parsing them into usable Python dictionary- and list-based data structures, making access and manipulation of the experimental data very natural within Python programs (i.e. "saveframe" and "loop" records represented as individual Python dictionary data structures). Another major advantage of this design is that data stored in original NMR-STAR can be easily converted into its equivalent JavaScript Object Notation (JSON) format, a lightweight data interchange format, facilitating data access and manipulation using Python and any other programming language that implements a JSON parser/generator (i.e., all popular programming languages). We have also developed tools to visualize assigned chemical shift values and to convert between NMR-STAR and JSONized NMR-STAR formatted files. Full API Reference Documentation, User Guide and Tutorial with code examples are also available. We have tested this new library on all current BMRB entries: 100% of all entries are parsed without any errors for both NMR-STAR version 2.1 and version 3.1 formatted files. We also compared our software to three currently available Python libraries for parsing NMR-STAR formatted files: PyStarLib, NMRPyStar, and PyNMRSTAR.
Conclusions:
The nmrstarlib package is a simple, fast, and efficient library for accessing data from the BMRB. The library provides an intuitive dictionary-based interface with which Python programs can read, edit, and write NMR-STAR formatted files and their equivalent JSONized NMR-STAR files. The nmrstarlib package can be used as a library for accessing and manipulating data stored in NMR-STAR files and as a command-line tool to convert from NMR-STAR file format into its equivalent JSON file format and vice versa, and to visualize chemical shift values. Furthermore, the nmrstarlib implementation provides a guide for effectively JSONizing other older scientific formats, improving the FAIRness of data in these formats.
More Related Videos
05:49Use of Magnetic Resonance Imaging and Biopsy Data to Guide Sampling Procedures for Prostate Cancer Biobanking
Published on: October 10, 2019
07:24Paramagnetic Relaxation Enhancement for Detecting and Characterizing Self-Associations of Intrinsically Disordered Proteins
Published on: September 23, 2021
Related Concept Videos
Applications Of NMR In Biology
Magnetic Resonance Imaging
Nuclear Magnetic Resonance (NMR): Overview
NMR spectroscopy generates a spectrum where the characteristic absorption frequencies of the sample are...
Proteomics
Proteomics is the study of proteomes' function. It involves the large-scale systematic study of the proteome to denote the protein complement expressed by a genome. Scientist Mark Wilkins coined the term...
Magnetic Susceptibility and Permeability
When diamagnetic materials are placed under an external magnetic field, the moments opposite to the field are induced. Hence, the susceptibility for diamagnets has a minimal negative value of 10-5–10-6. Since...
NMR Spectrometers: Radiofrequency Pulses and Pulse Sequences