Send to

Choose Destination
Proc Int Conf Inf Technol New Gener. 2013. doi: 10.1109/ITNG.2013.39.

Parser Combinators: a Practical Application for Generating Parsers for NMR Data.

Author information

Department of Microbial, Molecular and Structural Biology, University of Connecticut Health Center, 263 Farmington Avenue Farmington, Connecticut 06030.
Department of Computer Science / Information Technology, Western New England University, Springfield, Massachusetts.


Nuclear Magnetic Resonance (NMR) spectroscopy is a technique for acquiring protein data at atomic resolution and determining the three-dimensional structure of large protein molecules. A typical structure determination process results in the deposition of a large data sets to the BMRB (Bio-Magnetic Resonance Data Bank). This data is stored and shared in a file format called NMR-Star. This format is syntactically and semantically complex making it challenging to parse. Nevertheless, parsing these files is crucial to applying the vast amounts of biological information stored in NMR-Star files, allowing researchers to harness the results of previous studies to direct and validate future work. One powerful approach for parsing files is to apply a Backus-Naur Form (BNF) grammar, which is a high-level model of a file format. Translation of the grammatical model to an executable parser may be automatically accomplished. This paper will show how we applied a model BNF grammar of the NMR-Star format to create a free, open-source parser, using a method that originated in the functional programming world known as "parser combinators". This paper demonstrates the effectiveness of a principled approach to file specification and parsing. This paper also builds upon our previous work [1], in that 1) it applies concepts from Functional Programming (which is relevant even though the implementation language, Java, is more mainstream than Functional Programming), and 2) all work and accomplishments from this project will be made available under standard open source licenses to provide the community with the opportunity to learn from our techniques and methods.


Java; NMR; NMR-Star; component; functional-programming; parsing

Supplemental Content

Full text links

Icon for PubMed Central
Loading ...
Support Center