Bioinformatics, 32(13), 2016, 2067–2068
doi: 10.1093/bioinformatics/btw102
Advance Access Publication Date: 26 February 2016
Applications Note

NMRPro: an integrated web component forinteractive processing and visualizationof NMR spectra
Ahmed Mohamed*, Canh Hao Nguyen and Hiroshi Mamitsuka
Bioinformatics Center, Institute for Chemical Research, Kyoto University, Kyoto, Japan*To whom correspondence should be addressed.
Associate Editor: Jonathan Wren
Received on October 5, 2015; revised on February 8, 2016; accepted on February 18, 2016

Abstract
Summary: The popularity of using NMR spectroscopy in metabolomics and natural products has
driven the development of an array of NMR spectral analysis tools and databases. Particularly, web
applications are well used recently because they are platform-independent and easy to extend
through reusable web components. Currently available web applications provide the analysis ofNMR spectra. However, they still lack the necessary processing and interactive visualization functionalities. To overcome these limitations, we present NMRPro, a web component that can be easily incorporated into current web applications, enabling easy-to-use online interactive processingand visualization. NMRPro integrates server-side processing with client-side interactive visualization through three parts: a python package to efficiently process large NMR datasets on the serverside, a Django App managing server-client interaction, and SpecdrawJS for client-side interactivevisualization.
Availability and implementation: Demo and installation instructions are available at http://mamitsu
kalab.org/tools/nmrpro/Contact: mohamed@kuicr.kyoto-u.ac.jp
Supplementary information: Supplementary data are available at Bioinformatics online.

1 Introduction
Nuclear magnetic resonance (NMR) spectroscopy is indispensible
for structure identification of chemical compounds, becoming a crucial part of metabolomics and natural products studies. Web applications are attractive environments for analysis and storage of NMR
spectra because (i) web is a platform-independent highly interactiveenvironment and (ii) existing web applications can be easily extended through integrating ‘web components’, such as JavaScript
libraries and web services, to provide additional functionalities.
Online processing and interactive visualization of spectra are necessary functionalities for all NMR web applications (Mohamed et al.,2015). However, web applications for NMR analysis such asMetaboAnalyst (Xia et al., 2012), MetaboHunter (Tulpan et al., 2011)
and COLMAR (Zhang and Br€
uschweiler, 2007) require NMR spectra
to be processed offline beforehand. Also, interactive investigation ofNMR spectra in databases such as HMDB (Wishart et al., 2013) requires raw spectra to be downloaded and visualized offline.
Although processing and interactive visualization of NMR spectra are needed for web applications, web components providing thesefunctionalities are still lacking. In fact, previously used Java applet
components, such as JSpecView (Lancashire, 2007) and Nemo, sufferfrom security concerns and require installation of additional software. Also, although the recently developed jsNMR (Vosegaard,2015) and SpeckTackle (Beisken et al., 2015) offer JavaScript-based
visualization, they have very limited processing functionalities.
The development of web components for processing NMR spectra is hampered by three challenges caused by the large size of NMR
spectra: (i) processing of large datasets is computationally intensive,
requiring server-side integration. (ii) A compressed spectral format,
required for efficient transfer across the Web, is lacking. (iii)
Visualization of large number of spectral data points presents aC The Author 2016. Published by Oxford University Press. All rights reserved. For Permissions, please e-mail: journals.permissions@oup.com
V2067

Downloaded from https://academic.oup.com/bioinformatics/article-abstract/32/13/2067/1743257 by KYOTO UNIVERSITY Medical Library user on 17 June 2019

Systems biology

2068

2 Component architecture
The general application architecture (Fig. 1) consists of three main
subcomponents, NMRPro python package, Django-NMRPro Appand SpecdrawJS. Below, we discuss the role of each subcomponent.

2.1 Python package
NMRPro python package consists of two main parts: (i) core part,providing four classes for programmatic representation of NMR
spectra, which keep necessary information about the spectra andprocessing history and (ii) plugins, which provide functions necessary for automatic spectral processing (Fig. 1). Each plugin also contains a GUI information entry, which is displayed in the webbrowser on the client-side, allowing the user to customize processing
parameters. The plugin architecture allows extensibility of thesubcomponent by installing new plugins on the server-side, and theGUI is updated automatically to match installed plugins.

2.2 Django App
Django framework enables the development software packages,‘Apps’, that can be directly integrated into existing web applications,interfacing between python processing functionalities and client-sidevisualization. Django App controls the interaction between the server and client-side by managing three roles: (i) efficient transfer ofspectral to client-side, using a scaled down and compressed format
that can be read in the web browser, utilizing PNG image compression (see supplement, Fig. S1). (ii) Storage and retrieval of user spectra for processing on the server-side. (iii) Aggregation of server-side
plugins and sending their GUI information to the client-side.

2.3 SpecdrawJSSpecDrawJS is a platform-independent JavaScript library for visualization of 1D and 2D NMR spectra (Fig. 2). SpecdrawJS can be used infour different configurations, static view, interactive view, full client-side
and connected modes, with functionalities ranging from static visualization to full interactive processing (see supplement, Table S1 for details).
To enable visualization of NMR datasets, SpecdrawJS improvesvisualization performance by implementing two approaches: (i)Reducing the number of points in an NMR spectra using topologypreserving line simplification algorithm. NMR spectra are reduced
to the number of rendered pixels in the browser without affecting
the perceived spectral shape. (ii) Parallel programming using newly
introduced web-worker technology.

3 Conclusion
We present NMRPro, an extensible web component that can be easily integrated in current web applications and databases, providing
NMR processing and visualization functionalities. Future work is toextend NMRPro by implementing new plugins to add further functionalities such as covariance NMR and multivariate analysis forwider application in metabolomics and natural products.

Fig. 1. Component architecture of NMRProFunding
MEXT KAKENHI 24300054
Conflict of Interest: none declared.

References

Fig. 2. SpecdrawJS visualization. (a) 1D NMR dataset. (b) 2D NMR spectrum

Beisken,S. et al. (2015) SpeckTackle: JavaScript charts for spectroscopy.
J. Cheminf., 7, 17.
Lancashire,R.J. (2007) The JSpecView Project: an Open Source Java viewer andconverter for JCAMP-DX, and XML spectral data files. Chem. Central J., 1, 31.
Mohamed,A. et al. (2015) Current status and prospects of computational resources for natural product dereplication: a review. Brief. Bioinf.,
doi:10.1093/bib/bbv042.
Tulpan,D. et al. (2011) MetaboHunter: an automatic approach for identification ofmetabolites from 1H-NMR spectra of complex mixtures. BMC Bioinf., 12, 400.
Vosegaard,T. (2015) jsNMR: an embedded platform-independent NMR spectrum viewer. Magn. Reson. Chem., 53, 285–290.
Wishart,D.S. et al. (2013) HMDB 3.0 – the human metabolome database in2013. Nucleic Acids Res., 41, D801–D807.
Xia,J. et al. (2012) MetaboAnalyst 2.0—a comprehensive server for metabolomic data analysis. Nucleic Acids Res., 40, W127–W133.
Zhang,F. and Br€
uschweiler,R. (2007) Robust deconvolution of complex mixturesby covariance TOCSY spectroscopy. Angew. Chem. Int. Ed., 46, 2639–2642.

Downloaded from https://academic.oup.com/bioinformatics/article-abstract/32/13/2067/1743257 by KYOTO UNIVERSITY Medical Library user on 17 June 2019

computational load on users’ computers. Automatic reduction ofdata points is needed.
We present NMRPro, an open-source easy-to-integrate webcomponent for processing and visualization of NMR data, which ishighly extensible to include new functionalities according to theneeds of each application. NMRPro consists of three integrated
parts, (i) Python package with extensible functionality plugins forserver-side spectral processing, (ii) Django App for spectral compression and managing communication between server- and clientsides and (iii) SpecdrawJS, a JavaScript library for visualization of
1D and 2D NMR datasets. Advantages over existing tools are summarized in the supplement (Tables S1 and S2).

A.Mohamed et al.