[P] ProSper: A Python Library for Probabilistic Sparse Coding with Non-Standard Priors and Superpositions
We recently released the source code of a number of Sparse Coding algorithms under a common Python module called ProSper. ProSper contains contains a parallelised implementation of the Binary Sparse Coding (BSC) , Gaussian Sparse Coding (GSC) , Maximum Causes Analysis (MCA) , Maximum Magnitude Causes Analysis (MMCA) , Ternary Sparse Coding (TSC) , and Discrete Sparse Coding  models. All these probabilistic generative models are trained using a truncated Expectation Maximisation (EM) algorithm .
It is designed to have a uniform interface across algorithms as well as logging and reporting utilities. Therefore, it simplifies switching between the different Sparse Coding algorithms.
 M. Henniges, G. Puertas, J. Bornschein, J. Eggert, and J. Lücke (2010). Binary Sparse Coding. Proc. LVA/ICA 2010, LNCS 6365, 450-457.
 A.-S. Sheikh, J. A. Shelton, J. Lücke (2014). A Truncated EM Approach for Spike-and-Slab Sparse Coding. Journal of Machine Learning Research, 15:2653-2687.
 G. Puertas, J. Bornschein, and J. Lücke (2010). The Maximal Causes of Natural Scenes are Edge Filters. Advances in Neural Information Processing Systems 23, 1939-1947.
 J. Bornschein, M. Henniges, J. Lücke (2013). Are V1 simple cells optimized for visual occlusions? A comparative study. PLOS Computational Biology 9(6): e1003062.
 G. Exarchakis, M. Henniges, J. Eggert, and J. Lücke (2012). Ternary Sparse Coding. International Conference on Latent Variable Analysis and Signal Separation (LVA/ICA), 204-212.
 J. Lücke and J. Eggert (2010). Expectation Truncation and the Benefits of Preselection in Training Generative Models. Journal of Machine Learning Research 11:2855-2900.
 G. Exarchakis, and J. Lücke (2017). Discrete Sparse Coding. Neural Computation, 29(11), 2979-3013.