SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications

Abstract Background Software for nuclear magnetic resonance (NMR) spectrometers offer general functionality of instrument control and data processing; these applications are often developed with non-scripting languages. NMR users need to flexibly integrate rapidly developing NMR applications with em...

Full description

Bibliographic Details
Main Authors: Zao Liu, Zhiwei Chen, Kan Song
Format: Article
Language:English
Published: BMC 2021-12-01
Series:BMC Bioinformatics
Subjects:
Online Access:https://doi.org/10.1186/s12859-021-04492-y
_version_ 1818383712473055232
author Zao Liu
Zhiwei Chen
Kan Song
author_facet Zao Liu
Zhiwei Chen
Kan Song
author_sort Zao Liu
collection DOAJ
description Abstract Background Software for nuclear magnetic resonance (NMR) spectrometers offer general functionality of instrument control and data processing; these applications are often developed with non-scripting languages. NMR users need to flexibly integrate rapidly developing NMR applications with emerging technologies. Scripting systems offer open environments for NMR users to write custom programs. However, existing scripting systems have limited capabilities for both extending the functionality of NMR software’s non-script main program and using advanced native script libraries to support specialized application domains (e.g., biomacromolecules and metabolomics). Therefore, it is essential to design a novel scripting system to address both of these needs. Result Here, a novel NMR scripting system named SpinSPJ is proposed. It works as a plug-in in the Java based NMR spectrometer software SpinStudioJ. In the scripting system, both Java based NMR methods and original CPython based libraries are supported. A module has been developed as a bridge to integrate the runtime environments of Java and CPython. The module works as an extension in the CPython environment and interacts with Java via the Java Native Interface. Leveraging this bridge, Java based instrument control and data processing methods of SpinStudioJ can be called with the CPython style. Compared with traditional scripting systems, SpinSPJ better supports both extending the non-script main program and implementing advanced NMR applications with a rich variety of script libraries. NMR researchers can easily call functions of instrument control and data processing as well as developing complex functionality (such as multivariate statistical analysis, deep learning, etc.) with CPython native libraries. Conclusion SpinSPJ 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/spinspj .
first_indexed 2024-12-14T03:10:43Z
format Article
id doaj.art-28e3d667f2644345b74004f6ef0459aa
institution Directory Open Access Journal
issn 1471-2105
language English
last_indexed 2024-12-14T03:10:43Z
publishDate 2021-12-01
publisher BMC
record_format Article
series BMC Bioinformatics
spelling doaj.art-28e3d667f2644345b74004f6ef0459aa2022-12-21T23:19:16ZengBMCBMC Bioinformatics1471-21052021-12-0122111410.1186/s12859-021-04492-ySpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applicationsZao Liu0Zhiwei Chen1Kan Song2State Key Laboratory of Magnetic Resonance and Atomic and Molecular Physics, Wuhan Center for Magnetic Resonance, Wuhan Institute of Physics and Mathematics, Innovation Academy for Precision Measurement Science and Technology, Chinese Academy of SciencesDepartment of Electronic Science, Fujian Provincial Key Laboratory of Plasma and Magnetic Resonance Research, Xiamen UniversityZhongke-Niujin MR Tech Co. LtdAbstract Background Software for nuclear magnetic resonance (NMR) spectrometers offer general functionality of instrument control and data processing; these applications are often developed with non-scripting languages. NMR users need to flexibly integrate rapidly developing NMR applications with emerging technologies. Scripting systems offer open environments for NMR users to write custom programs. However, existing scripting systems have limited capabilities for both extending the functionality of NMR software’s non-script main program and using advanced native script libraries to support specialized application domains (e.g., biomacromolecules and metabolomics). Therefore, it is essential to design a novel scripting system to address both of these needs. Result Here, a novel NMR scripting system named SpinSPJ is proposed. It works as a plug-in in the Java based NMR spectrometer software SpinStudioJ. In the scripting system, both Java based NMR methods and original CPython based libraries are supported. A module has been developed as a bridge to integrate the runtime environments of Java and CPython. The module works as an extension in the CPython environment and interacts with Java via the Java Native Interface. Leveraging this bridge, Java based instrument control and data processing methods of SpinStudioJ can be called with the CPython style. Compared with traditional scripting systems, SpinSPJ better supports both extending the non-script main program and implementing advanced NMR applications with a rich variety of script libraries. NMR researchers can easily call functions of instrument control and data processing as well as developing complex functionality (such as multivariate statistical analysis, deep learning, etc.) with CPython native libraries. Conclusion SpinSPJ 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/spinspj .https://doi.org/10.1186/s12859-021-04492-yNMRSoftwareScriptJavaCPythonInstrument control
spellingShingle Zao Liu
Zhiwei Chen
Kan Song
SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
BMC Bioinformatics
NMR
Software
Script
Java
CPython
Instrument control
title SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
title_full SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
title_fullStr SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
title_full_unstemmed SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
title_short SpinSPJ: a novel NMR scripting system to implement artificial intelligence and advanced applications
title_sort spinspj a novel nmr scripting system to implement artificial intelligence and advanced applications
topic NMR
Software
Script
Java
CPython
Instrument control
url https://doi.org/10.1186/s12859-021-04492-y
work_keys_str_mv AT zaoliu spinspjanovelnmrscriptingsystemtoimplementartificialintelligenceandadvancedapplications
AT zhiweichen spinspjanovelnmrscriptingsystemtoimplementartificialintelligenceandadvancedapplications
AT kansong spinspjanovelnmrscriptingsystemtoimplementartificialintelligenceandadvancedapplications