Previously I demonstrated how to represent and simulate models of individual neurons using Python. In this next series of articles I'm going to show how Python can be used to simulate connected networks of spiking neurons. Modeling and evaluating these networks can give us an insight into how populations of neurons in the brain interact to give rise to various observed phenomena. Lateral and feedback recurrent networks are of particular interest for computational simulation as attempting to analytically describe these systems quickly becomes intractable. First I'm going to start off with some of the most basic recurrent networks. Read the rest of this entry »
-
Spiking Neural Networks in Python (Part 1)
| March 6, 2011 -
Neural Modeling with Python (Part 5)
| February 22, 2011
We've seen how Python can be an effective tool for simply and efficiently implementing and simulating four different neural models using Python: leaky Integrate-and-fire, Hodgkin-Huxley, Izhikevich, and active compartments. However, other than some convenience methods and simple tricks, these examples could have been done in MATLAB without too much pain for an experienced user. So where does Python really stand out? In my first post I argued that a major advantage of Python is it's power and flexibility as a general programming language. In this case, its extensibility has allowed it to become the interface of choice for many powerful neural simulator tools. Read the rest of this entry »Comments: Leave a commentCategories: Computing, Neurobiology -
Neural Modeling with Python (Part 4)
| February 11, 2011
So far I've presented three different models for simulating neural spiking dynamics. A key assumption that was made but never stated in each of these examples was that the neuron we were modeling had no defined morphology. In other words, we were looking at models that assumed the neuron was a dimensionless sphere or point. These point neurons can be very effective for studying the behavior of large-scale spiking neural networks (e.g. Izhikevich), but are impractical if you want to investigate how anatomical features of a neuron contribute to signal propagation. For this we return to the Hodgkin-Huxley model and cable theory. Read the rest of this entry »Comments: Leave a commentCategories: Computing, Neurobiology -
Neural Modeling with Python (Part 3)
| February 2, 2011
So far we've looked at how to simulate a simple LIF model neuron and a complex Hodgkin-Huxley model neuron. The LIF neuron is computationally simple but physiologically implausible, while Hodgkin-Huxley gives us a very good representation of actual neural dynamics but is parameter-heavy and computationally expensive. An intriguing compromise between the two exists -- one that can generate a wide variety of observed neural spiking behavior while doing so with limited computational demand. It is called the quadratic integrate-and-fire model neuron, or simply Izhikevich neuron. Read the rest of this entry »Comments: 1 CommentCategories: Computing, Neurobiology -
Neural Modeling with Python (Part 2)
| January 26, 2011
In my last post, I demonstrated how to simulate and plot a simple leaky integrate-and-fire (LIF) neuron using Python. The LIF neuron provides a simple representation of a spiking neuron, but lacks biological plausibility especially when it comes to the actual spike generation. A neural model that does have a solid foundation in physiology is that originally proposed by Alan Hodgkin and Andrew Huxley in 1952. Read the rest of this entry »Comments: Leave a commentCategories: Computing, Neurobiology -
Neural Modeling with Python (Part 1)
| January 19, 2011
Representing the function and behavior of neurons in software is one of the core activities of computational neuroscience. As neurons communicate via electrochemical currents, this is typically accomplished through modeling the dynamical nature of the neuron's electrical properties. Several models treat the neuron as an equivalent electrical circuit, with its membrane potential described by one or more differential equations. In order to simulate the response of the neuron to various stimuli, these equations are numerically solved over some time interval for a given pattern of input current. There are several methods for numerically solving differential equations, and for the purpose of this series, I'm going to use the forward Euler method because it's one of the easiest to implement and understand while providing sufficient stability.So, without further ado, let's start simulating some neurons in Python! Read the rest of this entry »
-
Biologically Realistic Neural Models on GPU
| October 27, 2010
By Anatoli Gorchetchnikov, Heather Ames, Massimiliano Versace.The last post on GPU made me think of a project Anatoli Gorchetchnikov, Heather Ames and myself embarked on in 2006 when we got really interested in general purpose computing on graphic processing cards. At the time, there was no CUDA or OpenGL available: programming GPUs was really tough. But we tried, with some very good results, to port some of the models we used on GPUs. Here is how we did it. Read the rest of this entry »
Comments: Leave a commentCategories: Computing, Neurobiology -
ARM processors and neural networks
| July 13, 2010
If you had doubts before starting to read Neurdon, I think that by now you have come to the realization that there are as many neuroscientists that use computers than computer scientists that want to "use" neuroscience. This post is another example of the latter: Steve Furber, Professor of Computer Engineering at the University of Manchester and leader of the team that designed the the 32bit ARM microprocessor, is trying to build a large-scale neural simulator out of ARM processors. Read the rest of this entry » -
Plastic synapses in a stable brain
| February 2, 2010
One of the major themes in the SyNAPSE project is developing chips that can learn meaningful information, and preserve it over time. In other words: memristors can learn, but we need to ensure that they are stably learning something useful for the system they are embedded in. Some help to solve this technological problem comes from neuroscience. The question of how can the cerebral cortex develop stable memories while at the same time incorporating new information through an organism lifetime has been a central theme in many research groups. The talk posted on Neurdon describes one of these approaches. Read the rest of this entry »
Comments: Leave a commentCategories: Computing, Neurobiology -
Why simulating a cat when we can simulate a human (or even more!)
| November 26, 2009
When I read (and wrote about) the recent controversy between Modha and Markram, I had this inescapable déjà vu feeling....weird, where did I hear that somebody already simulated a "brain" of the scale of the human brain? Of course!.... Eugene Izhikevich, a very bright (and VERY funny) neuroscientist that, in 2007, visited our center CELEST. During that visit, he showed what at that time (in 2005, and may be up to today) was one of the "largest scale" neural simulation. Read the rest of this entry »