Stimulus reconstruction
The last few days I’ve been working on translating my Matlab code into Python so that I can continue some of the research I did for my PhD. I mailed my thesis just a few days ago so any time soon I should be hearing about the date of the viva. Consequently, I have some free time and I decided that learning Python while continuing the work I did for my PhD would be a good idea, hence the translation. All was fine and the translation was slowly but steadily moving forward until I came to a really hard piece of work. Signal reconstruction. The basic idea behind signal reconstruction is that if you have a system that is presented with a signal and produces an output, you can use the output to predict the original signal. This concept can be used for neurons and neural networks too.

This is how stimulus/signal reconstruction works in the context of neurons (taken from Rieke et al., 1999).
In my work, I did this by presenting a neuron or neural network with a signal, then creating a Wiener-Kolmogorov filter based on the neural activity obtained. I then use that filter to create an estimate of what the input was. The degree of commonality between the actual input signal and its estimate gives me an approximation of how much information was transferred through the system. It works and it works well. In fact, I am writing a paper about it. However, creating a WK filter in Python is not as easy as in Matlab. The calculation of the filter itself is a tricky piece of work and when you don’t know a programming language fluently, as is the case with me and Python, it becomes even trickier. I intend to crack this problem and when I do I’ll post the Python code here for public scrutiny and maybe it will help someone else too.
F. Rieke, D. Warland, R. de Ruyter van Steveninck, and W. Bialek, Spikes: Exploring theNeural Code. The MIT Press, 1999.