Interest in co-developing a library for Positive Matrix Factorization (PMF)

Positive Matrix Factorization (PMF; Paatero, 1997) is a factorization method commonly used in the environmental sciences since unlike nonnegative matrix factorization (NMF), it utilizes known uncertainties to weight the residuals throughout the optimization. It is potentially an algorithm that could see wide-spread use; however, the only two commonly used algorithms are proprietary (Paatero’s costs ~$650 and you have to email him to get it…). I’ve thought about implementing it in Python for a while, but haven’t really had a reason to for my own personal research (I’m a PhD candidate at MIT).

I’ve been an occasional Julia user since ~v0.4 when I took 18.0651 and thought Julia would be the optimal choice since I seem to recall it handles sparse matrices well. Is there anyone with more of a math and/or Julia background that would be interested in co-developing a Julia package for this?


Hi dhhagan, I am potentially interested.
I’m a research associate at UC Davis working on aerosol research.
My background is in statistics and math (BA from Berkeley). As you know, PMF is widely used in the atmospheric sciences. I was hoping to find a Python or R implementation of this algorithm as I use it for my research. I had to settle for a Igor Pro (not open source) implementation done by the Jimenez group for a very specific purpose (PMF-AMS Analysis Guide - Jimenez Group Wiki).

Frankly, I’m not familiar at all with Julia at all but I have been looking to learn and would be interested in contributing to such project. I’ve been programming in one way or another for a 3 years in R and Python. I also recently read the original PMF paper by Paatero.


I am also very interested in this project. I am in my final year of my PhD from Institute of Atmospheric Physics, Chinese Academy of Sciences. I’ve been using Igor for 5 years. However, the EPA-PMF requires a Windows-based PC and the PMF developed in Igor are not publicly available. I want to apply PMF to my environmental data and

However, I am new to Julia and Python. I am very enthusiastic about this potential project.

Are there any papers which detail the algorithms? My guess is this would be a well received contribution to the ecosystem. I wouldn’t go paying for the code - way more fun to understand the algorithms and write it yourself :).