2.13.5 Peaks and Baseline

This section deals with Origin's X-Functions that perform peak and baseline calculations, especially valuable for analyses pertaining to spectroscopy.

X-Functions For Peak Analysis

The following table lists the X-Functions available for peak analysis. You can obtain more information on these functions from the X-Function Reference help file.

Name Brief Description

Perform peak analysis with a pre-saved Peak Analyzer theme file.

paMultiY Perform batch processing of peak analysis on multiple Y datasets

Pick peaks.


Fit multiple peaks.


Create baseline anchor points.


Interpolate the baseline anchor points to create baseline.


Subtract existing baseline dataset from source data.


Smooth the input prior to performing peak analysis.


Perform integration on the selected range or peak.

For peaks that do not require baseline treatment or other advanced options, you can also use peak functions to perform nonlinear fitting. For more information on non-linear fitting from script, please see the Curve Fitting section.

The following sections provide examples on peak analysis.

Creating a Baseline

This example imports a sample data file and creates baseline anchor points using the blauto X-Function.

filepath$ = "Samples\Spectroscopy\Peaks on Exponential Baseline.dat";
fname$ = system.path.program$ + filepath$;
//Create 20 baseline anchor points
range rData = (1,2), rBase =(3, 4);
blauto iy:=rData number:=20 oy:=rBase;

Plot the data and anchor points in same graph:

// plot a line graph of the data
plotxy rData 200 o:=[<new>];
// plot baseline pts to same layer as scatter 
plotxy rBase 201 color:=2 o:=1!;

Finding Peaks

This example uses the pkFind X-Function to find peaks in XY data:

// Import sample pulse data
fname$ = system.path.program$ + "Samples\Spectroscopy\Sample Pulses.dat";
// Find all positive peaks above a peak height value of 0.2
range rin=(1,2);
range routx = 3, routy=4;
pkfind iy:=rin dir:=p method:=max npts:=5 filter:=h value:=0.2
       ocenter:=<none> ocenter_x:=routx ocenter_y:=routy;

Now graph the data as line plot and the peak x,y as scatter:

plotxy iy:=rin plot:=200;
// Set x output column as type X and plot the Y column
routx.type = 4; 
plotxy iy:=routy plot:=201 color:=2 o:=1;

Integrating and Fitting Peaks

X-Functions specific to the goals of directly integrating peaks, or fitting multiple peaks, do not exist. Therefore, to perform peak fitting or integration, one must first use the Peak Analyzer dialog to create and save a theme file. Once a theme file has been saved, the pa or paMultiY X-Functions can be utilized to perform integration and peak fitting from script.