Libraries and tools:

  1. mtest is a Python library to perform the robust two-sample test based on model selection that was introduced in our spontaneous activity paper and is described in more details this preprint.
    Author: Pietro Berkes (2011)
  2. neuro-kl is a collection of Python and Matlab functions to estimate the KL divergence between discrete probability distribution. The method is based on a Bayesian estimator, as described in the supplementary material of this paper.
    Authors: Pietro Berkes and Dmitriy Lisitsyn (2011)
  3. big_O is a Python module to estimate the time complexity of Python code from its execution time. It can be used to analyze how functions scale with inputs of increasing size.
    Author: Pietro Berkes (2011)
  4. Modular toolkit for Data Processing (MDP). MDP is a Python data processing framework. Implemented algorithms include: Principal Component Analysis (PCA), Independent Component Analysis (ICA), Slow Feature Analysis (SFA), Independent Slow Feature Analysis (ISFA), Growing Neural Gas (GNG), Factor Analysis, Fisher Discriminant Analysis (FDA), Gaussian Classifiers, and Restricted Boltzmann Machines.
    Authors: Pietro Berkes and Tiziano Zito (2004-2007);
    Pietro Berkes, Niko Wilbert, and Tiziano Zito (2008-2010);
    Pietro Berkes, Zbigniew Jedrzejewski-Szmek, Rike-Benjamin Schuppner, Niko Wilbert, Tiziano Zito (2011)
  5. qforms-tk is a Matlab toolbox that implements the algorithms to analyze quadratic forms described in (Berkes and Wiskott, 2005).
    Author: Pietro Berkes (2005)
  6. sfa-tk: Slow Feature Analysis Toolkit for Matlab. sfa-tk is a Matlab implementation of the Slow Feature Analysis algorithm.
    Author: Pietro Berkes (2004)
  7. Java Rapid Genetic Programming. jrgp is a set of free software Genetic Programming tools written in Java and jython. It features a graphical interface to setup and run GP-simulations and a tool that simplifies the definition of a GP-problem.
    Authors: Pietro Berkes and Samuele Pedroni (2002)

Simulations and other scientific code:

  1. Python decorator that allows to examine the internal variables of a Python function after execution, very useful for debugging and to analyze the intermediate results of an algorithm.
  2. At NIPS 2008 we proposed a way to analyze neural dependencies using Poisson copulas. Here is some Matlab code demonstrating how is works.
  3. I wrote some simple Python code to train Deep Belief Networks for the workshop on advanced probabilistic techniques.
  4. Matlab program to perform simulations with the temporal slowness model of self-organization of complex-cell receptive fields described in (Berkes and Wiskott 2002, 2003, 2005).
    Author: Pietro Berkes (2005)


  1. While at Gatsby, I wrote a small script called kali to send a series of task to remote machines with free processors and memory. It is based on previous code by Iain Murray, and uses pexect. I fear it is too Gatsby-centric to be used out-of-the-box somewhere else, but it should be easy to adapt to your needs.

    Gatsby insiders can read detailed instructions in the internal wiki.