2
$\begingroup$

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).

$\endgroup$
1
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ I've started coding a Python implementation of BEADS. What do I need to include for documentation? $\endgroup$ – Galen Aug 8 '15 at 8:29
  • $\begingroup$ @Galen did you succeed in your baseline work, finally? $\endgroup$ – Laurent Duval Dec 8 '15 at 17:42
  • 1
    $\begingroup$ I was able to implement the matrix operations with dense matrices to suit my chromatography needs, but I encountered a lot issues implementing with sparse matrices. $\endgroup$ – Galen Mar 26 '16 at 18:05
1
$\begingroup$

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.

$\endgroup$
  • $\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$ – Laurent Duval Jun 22 '18 at 9:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.