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...
Main Authors: | , , |
---|---|
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 |