Cargando…

A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank

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 biolog...

Descripción completa

Detalles Bibliográficos
Autores principales: Smelter, Andrey, Astra, Morgan, Moseley, Hunter N. B.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: BioMed Central 2017
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5356280/
https://www.ncbi.nlm.nih.gov/pubmed/28302053
http://dx.doi.org/10.1186/s12859-017-1580-5
_version_ 1782515795255885824
author Smelter, Andrey
Astra, Morgan
Moseley, Hunter N. B.
author_facet Smelter, Andrey
Astra, Morgan
Moseley, Hunter N. B.
author_sort Smelter, Andrey
collection PubMed
description 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. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1186/s12859-017-1580-5) contains supplementary material, which is available to authorized users.
format Online
Article
Text
id pubmed-5356280
institution National Center for Biotechnology Information
language English
publishDate 2017
publisher BioMed Central
record_format MEDLINE/PubMed
spelling pubmed-53562802017-03-22 A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank Smelter, Andrey Astra, Morgan Moseley, Hunter N. B. BMC Bioinformatics Software 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. ELECTRONIC SUPPLEMENTARY MATERIAL: The online version of this article (doi:10.1186/s12859-017-1580-5) contains supplementary material, which is available to authorized users. BioMed Central 2017-03-17 /pmc/articles/PMC5356280/ /pubmed/28302053 http://dx.doi.org/10.1186/s12859-017-1580-5 Text en © The Author(s). 2017 Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.
spellingShingle Software
Smelter, Andrey
Astra, Morgan
Moseley, Hunter N. B.
A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title_full A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title_fullStr A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title_full_unstemmed A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title_short A fast and efficient python library for interfacing with the Biological Magnetic Resonance Data Bank
title_sort fast and efficient python library for interfacing with the biological magnetic resonance data bank
topic Software
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5356280/
https://www.ncbi.nlm.nih.gov/pubmed/28302053
http://dx.doi.org/10.1186/s12859-017-1580-5
work_keys_str_mv AT smelterandrey afastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank
AT astramorgan afastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank
AT moseleyhunternb afastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank
AT smelterandrey fastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank
AT astramorgan fastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank
AT moseleyhunternb fastandefficientpythonlibraryforinterfacingwiththebiologicalmagneticresonancedatabank