Systems and methods for identifying and removing spikes in data sets
representing PCR growth curves or other sigmoid type curves or growth
curves. A double sigmoid function with parameters determined using a
Levenberg-Marquardt regression algorithm is used to find an approximation
to the curve, and a statistical test such as a z-test is then used to
identify spikes by identifying data points in the data set that do not
fit well with the approximation. The identified spike(s) are removed from
the data set and/or replaced with interpolated data points determined by
using data points surrounding the identified spike(s). In one aspect, a
spline interpolation process such as a cubic spline interpolation process
is used to find an approximation to the data set with the identified
spike points removed. Interpolated values to replace the spike points are
then calculated using the cubic spline interpolation approximation curve.