  Background: Software is an important windows to offer a variety of complex
instrument control and data processing for nuclear magnetic resonance (NMR)
spectrometer. NMR software should allow researchers to flexibly implement
various functionality according to the requirement of applications. Scripting
system can offer an open environment for NMR users to write custom programs
with basic libraries. Emerging technologies, especially multivariate
statistical analysis and artificial intelligence, have been successfully
applied to NMR applications such as metabolomics and biomacromolecules.
Scripting system should support more complex NMR libraries, which will enable
the emerging technologies to be easily implemented in the scripting
environment. Result: Here, a novel NMR scripting system named "NMRPy" is
introduced. In the scripting system, both Java based NMR methods and original
CPython based libraries are supported. A module was built as a bridge to
integrate the runtime environment of Java and CPython. It works as an extension
in CPython environment, as well as interacts with Java part by Java Native
Interface. Leveraging the bridge, Java based instrument control and data
processing methods can be called as a CPython style. Compared with traditional
scripting system, NMRPy is easier for NMR researchers to develop complex
functionality with fast numerical computation, multivariate statistical
analysis, deep learning etc. Non-uniform sampling and protein structure
prediction methods based on deep learning can be conveniently integrated into
NMRPy. Conclusion: NMRPy offers a user-friendly environment to implement custom
functionality leveraging its powerful basic NMR and rich CPython libraries. NMR
applications with emerging technologies can be easily integrated. The scripting
system is free of charge and can be downloaded by visiting
http://www.spinstudioj.net/nmrpy.
