Version 2.0.1
|
Download CV Peak Finder 2 291 Kb |
Download Sample Data File 35 Kb |
A program that locates small peaks in Cyclic Voltammetry (CV) data, fits and subtracts baseline using polynomial fitting, and calculates peak potential, peak height, and peak area.
Sample screenshot from CV Peak Finder, version 2.0.1

Download Instructions:
Installation Requirements:
Operating System: Windows 95/98/NT/Me/2000/XP
Disk space: < 1 Mb
Windows Installer: Version 1.5 or higher
Windows Installer 2.0 for Windows NT 4.0 and Windows 2000
Or
Windows Installer 2.0 for Windows 95, Windows 98, and Windows Me
Unless you have already upgraded to Microsoft .NET Framework Version 1.1, you probably do not have it installed (or only have version 1.0 installed, for Windows 2000 and Windows XP).
You can check to see if you already have the .NET Framework Version 1.1 installed by clicking Start on your Windows desktop, selecting Control Panel, and then double-clicking the Add or Remove Programs icon. When that window appears, scroll through the list of applications. If you see Microsoft .NET Framework 1.1 listed, the latest version is already installed and you do not need to install it again.
Alternatively, you can look for the .NET Framework folders on your hard drive, to see which exact version you have installed. Look in C:/Windows/Microsoft.NET/Framework to see if the v1.1.4322 folder exists. If it does, then you likely have the newest version of the .NET Framework installed.
Unzip the zipped CVPF2.zip, to uncompress the installation file CVPF2.msi. Double-click on CVPF2.msi. Follow the Windows Installer instructions, and upon successful installation, the CV Peak Finder program will be installed in the proper directory (i.e. Program Files), and a shortcut will be placed on your desktop and in your Start Menu.
Un-installation Instructions:
The Input (CV Data) files for CV Peak Finder 2 should be text (.txt) files. The data should be in columns (Potential, (V) in column 1; Current (A) in column 2) and should be comma-separated. CH Instruments (CHI) analysis software allows exporting of data files to text files. Make sure the correct text options have been selected.
1. The raw data is smoothed by an adjacent averaging algorithm. The user selects an "Adjacent Average Range", such as 61-points. If 61-points is selected, each data point is replaced by the average of itself, the 30 preceeding data points, and the subsequent 30 data points. This action truncates the data range by 30 (in this case) points at each end of the data. Larger Adjacent Average Range will result in more smoothing (might be required for very noisy data) but results in more distortion (broadening) of peak features. Smaller Adjacent Average Range will result in less smoothing (might obscure peak after derivatives) but introduces less distortion (broadening) of peak features.
2. A derivative is calculated for the smoothed raw data. The derivative at each point is calculated as the slope from the preceeding point.
3. The first derivative data is smoothed by another adjacent average, just as in step 1 above.
4. A derivative is taken of the smoothed first derivative data (just as in step 2 above).
5. The second derivative data is smoothed by another adjacent average, just as in step 1 above.
6. A local extrema search is performed on the smoothed second derivative data. For positive-scan direction (V increases during scan), a local minimum in smoothed second derivative indicates a peak in the raw data. For negative scan direction (V decreases during scan), a local maximum in smoothed second derivative indicates a peak in the raw data. The local extrema search is performed by a "moving window" approach; the user selects a "Minimum Peak Separation", and a data point in smoothed second derivative is only considered a peak if it (1) has the proper direction (minimum for positive scan direction, maximum for negative scan direction) and (2) is the most extreme (positive or negative, depending on scan direction) data point within +/- "minimum peak separation" data points.
If CV Peak Finder is finding too many peaks, try increasing the Minimum Peak Separation and/or increasing the Adjacent Average Range. If CV Peak Finder is not finding any peaks, try decreasing the Minimum Peak Separation and/or decreasing the Adjacent Average Range.
7. The peak with the most extreme second derivative is selected (by default) as the peak of interest. Other peaks can be selected.
8. The selected peak can be fit with a polynomial baseline. The order of the polynomial can be selected, and the range around the peak to be ignored/fit can be selected.
9. Every time the baseline is recalculated, the baseline-subtracted voltammogram is calculated and displayed (and can be saved as a .txt file) and the baseline-subtracted peak height (A) and peak area (C) are calculated and displayed.
The program now comes with help files (not yet 100% completed) that explain how to use the program and how to properly adjust parameters to obtain the best fit and best data.
Cyclic Voltammetry Peak Determination
Quantitative analysis of electroactive species through cyclic voltammetry (CV), even in the most elementary fashion, first involves the determination of peak potentials (Ep). When CV peaks are sufficiently sharp and intense, they are easily identified as local extrema. For example, the CV data may be analyzed by a "moving rectangle" approach, as in the "Pick Peak Tool" included in the Origin Pro data analysis program (OriginLab Corp., Northampton, MA).
This approach is illustrated in Figure 1. The amplitude is defined as the difference between the y-values of the global maximum and minimum of the entire data set. The rectangle height is set by the user as a percentage of the amplitude (50% in this example). The rectangle width is set by the user as a percentage of the range of x-values (30% in this example). The rectangle is progressively shifted through the data set, with either the lower left or right corner of the rectangle placed on the data point at the left or right end of the rectangle with the higher value (for positive peak determination). If the local maximum inside the rectangle extends beyond the top of the rectangle, it is determined to be a peak, as shown in Figure 1.


The "moving rectangle" approach does not detect peaks, however, when the peak is broad and weak and the slope of the baseline is large, as demonstrated in Figure 2. (A fourth-order polynomial fit has been drawn to guide the eye and to highlight the peak at approximately -0.23 V.) This approach fails because the peak y-value is actually lower in value than an endpoint, and is not the local maximum (Figure 2); the endpoint of the rectangle is actually the local maximum. The peak is so broad and weak that the shift in the baseline over the range of the peak is larger than the peak itself. In such cases, a more sophisticated determination of peaks is required.
Second Derivatives May Identify Non-Local Extrema Peaks
The peak at approximately -0.23 V in Figure 2 cannot be identified by the "moving rectangle" method because the peak is broad and weak while the baseline slope is large, such that the peak is not a local extrema. Nonetheless, with a smooth polynomial curve drawn to guide the eye, the peak is readily identifiable. The peak is distinguishable, primarily, due to a difference in the curvature of the data point around the peak. This suggests that the second derivative of the data, which is proportional to the curvature, can be used to identify the peak.
Second Derivative Peak Determination Requires Data Smoothing
Unfortunately, in experimental CV data, the level of noise complicates analysis through second derivatives. As seen in Figure 3 (same data as Figure 2), the raw data points include sufficient noise to make the second or even first derivative (shown) hopelessly noisy. In fact, the derivative enhances the noise in the data set. Smoothing of the data is required for peaks in the second derivative to be observable.

There are several possible data smoothing techniques that may be employed. The first is adjacent averaging or moving window averaging. In this method, each data point is replaced by the average of itself, the nL data points to the left, and the nR data points to the right. The resulting smoothed data can be referred to as the (1 + nL + nR)-point adjacent average. For example, if nL = nR = 30, the raw data is smoothed to a 61-point adjacent average. Some bias is introduced in adjacent averaging, especially for narrow peaks. Peak height is reduced while peak width is broadened. However, the peak area is preserved, and if nL and nR are equal then the peak position is preserved.
A second alternative data smoothing technique is the Savitzky-Golay filter. As in adjacent averaging, a moving window scans across the data points. However, instead of replacing each data point by the average within the moving window, in a Savitzky-Golay filter each data point is replaced by the value of a polynomial fit to the data within the moving window. The major advantage of Savitzky-Golay filters over adjacent averaging is performance for very sharp peaks, for which adjacent averaging creates the greatest distortions in peak height and width. However, for broad features, Savitzky-Golay filters achieve less smoothing.
A third smoothing technique is the fast Fourier transform (FFT) filter. Using a low-pass filter, the high frequency noise is eliminated, allowing only broad, low frequency features to pass through. There are two disadvantages to this technique. First, the cutoff frequency value must be chosen carefully to eliminate noise yet retain features. Secondly, in CV data, the baseline is often of rather unusual shape, and is not easily reproduced through FFT filtering.
Alternatively, a gap derivative may be calculated from the raw data. In a gap derivative, the slope is calculated not between adjacent points, but between points separated by a defined gap (e.g. between (xi, yi) and (xi+j, yi+j), where j is greater than 1). Selection of the gap size is critical: too small of a gap size will not offer any significant advantage over the simple derivative, while too large of a gap size may obscure the local features of the data.
Adjacent Average Smoothing Allows Second Derivative Peak Determination
For CV data with broad, weak peaks (where local extrema tests fail to identify peaks), adjacent average smoothing appears to be a simple, yet effective method for removing noise. To illustrate this point, raw data and a 41-point adjacent average are presented in Figure 4 (same data as Figures 2 and 3) and a first derivative of the smoothed data is presented in Figure 5.


When compared to the first derivative results in Figure 3, those in Figure 5 are much improved. Significant first derivative features in the region near -0.23 V are retained after noise reduction by adjacent averaging.
However, before a second derivative may be taken, the data must be smoothed again. As shown in Figure 6, another 41-point adjacent average of the first derivative data sufficiently removes noise such that a second derivative may be calculated.

It is worth mentioning that the moving window size must be chosen carefully. A window size too large will result in excessive distortion of the height and width of true features, while a window size too small will result in inadequate noise reduction and obscure derivative data.
Now that the first derivative has been smoothed, the second derivative may be calculated straightforwardly. As shown in Figure 7, the second derivative shows a local minimum (negative second derivative, corresponding to concave down) near -0.232 V. Yet a third 41-point Adjacent Average, performed on the second derivative data (shown in Figure 8) allows clear identification of the peak at -0.232 V. Although the minimum in the second derivative data is clearly visible even in the non-smoothed second derivative data, accurate assignment of peak position is best performed after a third and final adjacent averaging has been performed.


Conclusions
For broad, weak peaks in cyclic voltammetry data, simple peak identification through local extrema selection often fails. This occurs when, in the region of the peak, the magnitude of signal change due to background slope is greater than the magnitude of the peak. Although such peaks cannot be identified as local extrema, they may be identified through differences in curvature, or second derivatives. Before first and second derivatives are calculated, the raw data must be smoothed by one of many noise reduction techniques. Adjacent averaging, while crude in comparison to Savitzky-Golay or fast Fourier transform filter methods, preserves peak area and peak center position while significantly distorting peak height and peak width only for narrow, sharp peaks (which are readily found by local extrema searches). A final adjacent averaging of the calculated second derivative allows rapid identification of the peak (as a local extrema in the second derivative) and determination of peak position.
Although identification of peaks and determination of peak potentials is only the first step in quantitative CV analysis, it is a necessary first step for more complex analyses. For example, peak separations (DEp) are easily found from peak potentials. Furthermore, once the peak regions have been identified, the surrounding raw data may be treated as background data points, allowing baseline corrections through polynomial fits, for example. If baseline subtraction can be performed, then peak intensities and areas are easily calculated. It is hoped that upon adoption of a combined adjacent averaging and second derivative technique for peak determination, quantitative analysis of CV data may be performed for even the smallest of signals.