The main part of the ChemSpectra software is the react-spectra-editor which displays the three types NMR, MS and IR data. The type of spectra is extracted automatically from the provided files. Depending on the extracted type, one of two layouts available for visualization is used: the line plot (NMR and IR data) or the bar graph (MS data). To edit the provided data with ChemSpectra, a control panel offers generic and data-type specific actions to analyze and configure the given data (Figs. 2 and 3). The generic actions are available for NMR, IR and MS data and allow to (1) zoom in and out (2) adjust the threshold that is given as default for each spectra type, and (3) extract the peaks and write them in a list form. With respect to the selected signals in the spectra, the user can select the amount of displayed digits for each signal and in which order the signals should be summarized (descending or ascending).
The backend part of the ChemSpectra software, the chem-spectra-app, manages the decoding and composing of spectra files, the peak-picking, and the image generation as basic parts for the transformation of the given spectra. Currently, the chem-spectra-app accepts the file extensions jcamp, jdx, and dx for NMR, IR and MS spectra, mzML and RAW files for MS spectra and FID or ZIP files for NMR spectra. If ChemSpectra is integrated to a work environment such as an ELN or repository server, the chem-spectra-app is a microservice which is in charge of all spectra-related processes, excluding storage and management (which are the main requests gated by the host web application).
Spectra editor and control panel for one dimensional 1H NMR and 13C NMR data
As the different analysis types need different actions to edit the corresponding data, ChemSpectra enables analysis specific actions in the react-spectra-editor UI. In the case of NMR data, these specific actions are the addition and/or removal of peaks, integration of signals, coupling constant and multiplicity calculation and assignment. Multiplicities are automatically inferred by known libraries[,] and are checked by additional rules to ensure the correctness of the results. The generated information such as the identified signals, coupling constants and multiplicity can be summarized in form of a signal list. Additionally, the ChemSpectra editor offers a list of the most common reference solvent shifts for 1H and 13C NMR spectra, allowing the correction of the values given by default.
Main and control panel for IR data
The IR editor and control panel offer the general three functions given for all types of spectra: adding and removing peaks, including an overview about the added and removed signals, and additionally an option to extract the given signals. Corresponding to the reporting standards for IR spectroscopy, the intensity of the identified signals (vw, w, m, s, vs) can be added to the wavenumber that is recorded. The current implementation gives the information in brackets after the corresponding wavenumber (see Fig. 4 for IR spectra in the stand-alone software).
Main and control panel for mass data
Mass spectra differ from NMR and IR spectra in that way, that they may consist of different scans for one measurement. Depending on the internal procedure of an institution, mass spectra – if they are provided digitally - are either provided as original file including all scans that were measured or are provided as one preselected scan. The ChemSpectra control panel for mass spectrometry offers therefore a dropdown menu including a list of the scans that are provided with each file. Per default, the first scan is visualized by the editor, but the user can change this setting to any scan that is more suitable for the analysis. Figure 3 illustrates the functions of ChemSpectra for mass spectra with the example 4-oxo-4H-chromene-3-carbaldehyde. The threshold line can be used to select the signals and the unselected peaks become grey to be clearly distinguishable from the selected ones. Individual signals can be selected to show the m/z value and intensity of the signal. The example shown in Fig. 3 was gained with the file format RAW (recorded with the ThermoFischer instrument QExactive Plus) demonstrating that the editor can be adapted to read and process also proprietary file formats. With respect to the FAIR data principles, data storage and further processing of proprietary file formats is not a preferred or desired procedure but in some cases, alternatives to the use of proprietary files are currently missing. Therefore, spectra editors should offer options to cover this need if possible. ChemSpectra was used to read data files of two instruments of ThermoFischer (model QExactive Plus (ESI) and Thermo Finnigan Mat 95 (EI and FAB mode)) as test-cases for data that are not given in an open file format. Since the RAW file format contains binary data, it has to be decoded before the processing with ChemSpecta is possible. For this purpose, msConvert in Proteowizard is employed to convert MS files from RAW to mzML. MsConvert in a docker container is called by the chem-spectra-app to achieve this job. mzML files are converted to JCAMP-DX using pymzML, an Open Source python mass spectrometry file parser.
Figure 3. Overview of the react-spectra-editor for mass spectrometry data applied to the file format RAW that was recorded with a ThermoFischer Modell QExactive Plus mass spectrometer for commercial 4-oxo-4H-chromene-3-carbaldehyde. The selection options for the available scans are shown.
Stand-alone version
In its stand-alone version, ChemSpectra runs with an additional UI –the chem-spectra-client– that allows the user to add input or retrieve output as an alternative to a connection of other resources or target systems. The chem-spectra-client UI provides three functions in addition to the react-spectra-editor: (1) a file management to upload the data to be visualized/analyzed, (2) notifications to the user and (3) a text output that is generated to be copied for a further use of the generated data (Fig. 4).
Figure 4. The ChemSpectra UI as stand-alone version used for the visualization of an IR spectrum of commercial 4-oxo-4H-chromene-3-carbaldehyde, uploaded as JCAMP-DX (*.dx) file. Highlighted are the UI parts (A) file upload and user input panel for the analysis and editing of spectra, (B) react-spectra-editor and additional information to view the results and (C) text output panel. The notifications are not shown.
Embedded implementation
Depending on the desired interactions, the implementation with another web application such as an ELN or repository requires additional efforts for system-specific adaptations. For an implementation with Chemotion ELN, which is described here exemplarily, different work processes of the ELN have to be merged with ChemSpectra including the direct use of files that were generated from analytical instruments. In addition, challenges such as data persistence, supporting the storage of data for the full data life cycle, and a workflow management need to be considered. In this regard, embedding ChemSpectra into the Chemotion ELN was realized by keeping the original input files and adding the newly composed files as persisted data. The original files stored without any modifications are an important resource for any future referencing issues, while the composed files are kept to avoid the need for repeated analyses. Additionally, two images are generated: a low resolution thumbnail for preview and a higher resolution for the reuse for example in publications. Both images are regenerated every time a user edits a spectrum. The embedding of the ChemSpectra editor results in the availability of a set of file formats that can be generated fully automatically without the input of the user or edited if further actions are desired. Figure 5 shows with the example of an 1H NMR spectroscopy file, how the implementation with the analysis section of Chemotion ELN is realized, giving three relevant files for the user: an original file (*.zip), a user-edited version (*.edit.jdx) and an image file (*.edit.png). A direct benefit of the implementation of ChemSpectra with an ELN is the transfer of the gained data analysis to the ELN. This allows the fast analysis of spectroscopic data and the fast and error-free documentation of the obtained results.