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...
Autores principales: | , , |
---|---|
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 |