Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

pyMCR: A Python Library for Multivariate Curve Resolution Analysis



Charles H. Camp


In this work, a new software library is presented for performing multivariate curve resolution (MCR)analysis, a chemometric method for elucidating signatures of analytes ("endmember extraction") and their relative abundance (regression) from a series of mixture measurements, without necessarya priori knowledge of abundances or signatures of the analytes for each of the input measurements. This software library, written in Python, enables users to create an MCR processing pipeline with their choice ofconstraints (e.g., non-negative abundances), their choice of regressors, such as least-squares or ridge regression, and their choice of error functions to minimize. Further, users can apply different constraints and regressors for endmember extraction and regression. Finally, this library enables users to use their own developed constraints, regressors, and error functions or import them from existing libraries.
Journal of Research (NIST JRES) -


chemometrics, endmember extraction, multivariate curve resolution, quantitative analysis, spectral unmixing.


Camp, C. (2019), pyMCR: A Python Library for Multivariate Curve Resolution Analysis, Journal of Research (NIST JRES), National Institute of Standards and Technology, Gaithersburg, MD, [online], (Accessed May 27, 2024)


If you have any questions about this publication or are having problems accessing it, please contact

Created June 23, 2019, Updated March 1, 2021