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