Infrared spectra
>Introduction
Infrared spectroscopy (IR) is a spectroscopic technique dealing with the infrared region of the electromagnetic spectrum (wavelengths between 700 nm and 1 mm). It is widely used to characterize and study chemicals. The IR spectrum can be visualized in a graph of infrared light absorbance or transmittance (%) with respect to the frequency or wavelength given in wavenumber (cm⁻¹). Infrared spectroscopy exploits the fact that molecules absorb specific frequencies of light characteristic of their structure. The absorption occurs at the resonant frequency which corresponds to the vibrational frequency of the molecule, associated to a particular normal mode of motion and bond type.
Analyze
Upload and visualize spectra
In this view there are different ways to upload an IR spectrum in either a JCAMP or a text file format.
How to upload a file
In this view, it is possible to upload one or more spectra of a target sample by drag/drop either a JCAMP-DX or a text file. An individual spectrum can be visualized and analyzed by clicking on its name in the "List of files". Several spectra can also be compared. The information about the chosen sample can be found in the colored window on the right.
Upload spectrum
You can upload a spectrum in 3 different ways:
- by dragging your files and then dropping them in the designated zone.
- by clicking on the upload zone and selecting the files to upload.
- by copying the spectrum into the clipboard and then pasting it using CTRL+V (or ⌘+V on MacOS).
The format of the file to be uploaded should be JCAMP-DX (extension .dx or .jdx), this is the usual format used on most IR spectrophotometers.
Once the spectrum is uploaded you can visualize it by clicking on its name and manipulate it.
How to manipulate a spectrum.
Manipulating the spectrum
Once uploaded, you can select the spectrum on the right in the List of files tab. Once selected the spectrum will appear in the Analyse spectrum tab.
You can manipulate the graph in the following ways:
- SHIFT + drag on the graph to translate it
- Click + drag to zoom in on the selected window
- Double click to return to default view
- Scroll the mouse wheel to rescale the y-axis of the spectrum
- SHIFT + double click to zoom out progressively
When loading an IR spectrum, the application is aware if it was acquired in transmittance or absorbance mode. If you want to switch between the two modes, you may click on the toggle icon shown below.
The application will remember your preferred mode for the next time.
Don't forget to Save data
before leaving the page!
Peak picking
It is possible to manually peak picking on an infrared spectrum by holding down the ALT
key, and then left-clicking on the peaks of interest.
Informations about the manual peak picking.
Peak picking
It is possible to manually pick peaks in a spectrum by holding down the ALT
key, and then left-clicking on the peaks of interest.
The application will systematically look for the strongest signal close to the wavelength that has been clicked. The peaks will be stored in a separate tab.
The algorithm automatically classifies the peaks.
The application will systematically look for the strongest signal close to the wavelength that has been clicked.
The peak will then be displayed under IR peaks.
Alternatively, the system allows to perform peak picking automatically within a certain range and signal-to-noise ratio.
Informations about the auto peak picking.
Auto peak picking
The system can automatically pick peaks of interest for a specific range of wavenumbers with a defined noise level using Auto peak picking
tab.
Auto peak picking is based on the Savitzky Golay filter.
The signal strength is given automatically. The categorization S
, m
and w
is done automatically based on the highest and lowest selected peak. S
for strong, m
for medium and w
for weak.
In the table below the spectra, you can see the results of the peak picking. You can assign to each peak a name and you can delete unwanted peaks.
All peak wavenumbers and intensities are reported in a compact format ready for publication.
Apply mathematical tools to the spectra.
Preprocessing
Filters
You can apply the following filters
to the spectra to enhance the visualization. The modifications include the following:
Center Mean
: subtract the mean from every variable observation in the dataset, so that the new variable's mean is centered at 0.Center Median
: subtract the median from every variable observation in the dataset, so that the new variable's median is centered at 0`Divide by SD
: divide every variable observable in the dataset by the standard deviation yields a distribution with a standard deviation equal to 1.Normed
: Specify a value in thevalue
field and select the type of normalization:Sum to value
: normalize the integral under the curve so that it sums to the specified value.Absolute sum to value
: normalize the integral under the curve so that the absolute sum sums to the specified value.Max to value
: normalize the maximum value to the specified value.
Rescale (x to y)
: rescale the graph such that the y-values fit between specified minimum and maximum values.First derivative
: calculate the first derivative of the spectra.Second derivative
: calculate the second derivative of the spectra.Third derivative
: calculate the third derivative of the spectra.Savitzky-Golay
: smooth the spectra and calculate derivatives based on the following parameters:Window
: smoothing window size, must be an odd number, greater than 5.Derivative
: derivative order.Polynomial
: the degree of the polynomial used to calculate the Savitzky-Golay.
AirPLS baseline
: baseline correction using adaptive iterative reweighed penalized least squares algorithm.Iterative polynomial baseline
: baseline correction using iterative polynomial fitting algorithm.Rolling average baseline
: baseline correction using a rolling average.Rolling median baseline
: baseline correction using a rolling median.Rolling ball baseline
: baseline correction using a rolling ball.Ensure growing X values
: ensure that the x-values are in increasing order.Function on X
: apply a function to the x-values. For example,log(x)
.Function on Y
: apply a function to the y-values. For example,log10(y+1)
.Calibrate X
: calibrate the x-values with the parametersfrom
,to
,nbPeak
andtargetX
.Pareto normalization
: Pareto scaling, which uses the square root of standard deviation as the scaling factor, circumvents the amplification of noise by retaining a small portion of magnitude information. 10.1016/j.molstruc.2007.12.026
One classical preprocessing algorithm is Standard Normal Variate (SNV). This preprocessing can be achieved by selecting the 2 options Center mean
and Divide by SD
.
Selecting the range
A certain range of x-values can be selected to show only a part of the spectrum using Range
.
Exclusions
Depending on the analysis, some regions should be removed using Exclusions
in order to improve the visualization.
Number of points
Number of points
can be changed to reduce the number of points in the spectra.
For instance, centering the mean and dividing by the standard deviation is a common practice in the IR spectra. This can be performed by successively applying the Center Mean
and the Divide by SD
filters. Filters are added in the order that we set them.
Compare
You can compare multiple IR spectra by first opening up an IR spectrum, and then clicking Compare
on top of the IR spectrum.
After which, under List of selected entries, you can choose the other molecule which has the spectrum that you would like to compare. Then choose the IR spectrum you would like to be plotted under List of IR spectra. (check animation below)
The spectra will then be both displayed on top of each other. You can also freely hide selected graphs and change the color by clicking the color bar.
How to show/hide spectra.
Visualising spectra
If you wish to see only certain spectra, it is possible to selectively hide (or delete) them.
In order to do so, use the buttons on the top panel of the displayed spectra list.
You can also change the color of an individual spectrum in the displayed spectra tab with a double click.
In many tables it is possible to select which columns to display. This is achieved by clicking on the icon.
After clicking on the icon a dialog box opens that allows to add a new column.
There are 5 parameters to fill for a new column:
- name: the column name. This will be displayed as the header to the column.
- rendererOptions: options that allows among other to format numbers. One very useful formatter is
numeral
(see after) - width: number of pixels for the specific column. May stay empty for automatic layout.
- forceType: select how to display complex values (see later)
- jpath: where to find the information to display in the column
In order to add a new column you need to select the jpath
using the hierarchical drop down menu.
Columns can be moved or rearranged as well.
rendererOptions: numeral
number
,
Value to format | rendererOptions | Result |
---|---|---|
12.345678 | numeral:'#.##' | 12.34 |
12.3 | numeral:'#.00' | 12.30 |
0.3 | numeral:'#.0 %' | 30.0 % |
forceType
In the database some values are stored as an object that needs to be displayed to the user in an intuitive way.
For example the unit
type will store in the database the value using as units SI
(we convert the data to the units defined by the 'standard international') and specify in which units the user would like to display the data. So in the following example we are in fact storing the value -150°C by storing the value in SI (Kelvin) and specifying that the user wants to see it in °C.
{
"SI": 123.15,
"unit": "°C"
}
Another example is the valueUnits
type that will store the data in 2 different properties
(value
and unit
). In this case the value is stored in the specified units and there is no conversions.
{
"value": 123,
"units": "°C"
}
While this way to store the data in the database is very practical it is not the way that the user would like to see his results. We have therefore the possibility to forceType
: define how the user would like to see the results.
Other types include mf
. This formatter allows to correctly display a molecular formula that is stored in the database as "C10H20O3". i.e. it will put the numbers in subscript (C₁₀H₂₀O₃).