I have been looking around on Google, and I have not been able to find an explanation of how to do baseline placement in chromatography. what are some algorithms for placing a baseline on a chromatogram, how do those algorithms work. (Referral to Python implementations are welcome).
2 Answers
In some physico-chemistry methods, baselines can be modelled by closed-form lineshapes. This is not typically the case for chromatography, and it can be even worse depending on the type of chromatography (gaz, liquid).
So you have to rely on some morphological properties that you believe valid for your type of signal. You can model the background by a given polynomial, assume derivability of the peaks, etc. And then fit, or optimize a cost function.
In a recent work, we have modeled gaussian peaks as sparse with sparse derivative. We add that peaks are typically positive. Then we suppose that the baseline is smooth enough to remain after the use of a low-pass filter. Finally, we consider Gaussian noise, yet it works with Poisson noise as well.
The BEADS (Baseline Estimation And Denoising w/ Sparsity) method is described, and compared with two other methods in "Chromatogram baseline estimation and denoising using sparsity (BEADS)", by Xiaoran Ning, Ivan W. Selesnick, Laurent Duval, in Chemometrics and Intelligent Laboratory Systems, December 2014, http://dx.doi.org/10.1016/j.chemolab.2014.09.014.
We have made the associated Matlab toolbox available in Matlab. Contributed versions in C++, R, and Python are made available through the companion BEADS page.
-
$\begingroup$ @Galen did you succeed in your baseline work, finally? $\endgroup$ Commented Dec 8, 2015 at 17:42
I implemented BEADS in python and validate with Matlab code. Here is the function: https://github.com/hsiaocy/Beads. Hopefully, there are not many issues happened when using.
-
1$\begingroup$ Thank you for your contribution. I have added it to the generic BEADS page, where you can find other implementations laurent-duval.eu/… $\endgroup$ Commented Jun 22, 2018 at 9:59