network with biophysical and artificial neurons

Moderator: wwlytton

Post Reply
atknox
Posts: 5
Joined: Wed Aug 26, 2015 2:07 pm

network with biophysical and artificial neurons

Post by atknox » Tue Sep 15, 2015 11:11 am

I've been working some with the network laid out by Destexhe in "Spike-and-Wave Oscillations Based on the Properties of GABAB Receptors." There are 4 layers of 100 biophysical cells (cortical excitatory and inhibitory, thalamocortical and thalmic reticular nucleus) connected by saturating GABAa, GABAb, and AMPA synapses (as described in the neuron book in section 10.1.7). To speed up the network, I wanted to replace some of the cortical cells with point process Izhikevich neurons.

I would like to keep the saturating synapses, each of which is a point process that generates a current, and use them as inputs to the Izhikevich neurons, which are also point processes with an Iin term for synaptic input. Is there an intuitive way to do this? I apologize if it's a question that has an obvious answer or if it's something that no one in their right mind would try to do. I'm also happy to provide more information if it would help answer the question.

Thanks,
Andrew

ted
Site Admin
Posts: 5652
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: network with biophysical and artificial neurons

Post by ted » Tue Sep 15, 2015 1:52 pm

atknox wrote:I've been working some with the network laid out by Destexhe in "Spike-and-Wave Oscillations Based on the Properties of GABAB Receptors."
You mean the one described in this publication?
Destexhe, A.
Spike-and-wave oscillations based on the properties of GABA-B receptors
Journal of Neuroscience, 1998, 18, 9099-9111
To speed up the network, I wanted to replace some of the cortical cells with point process Izhikevich neurons.
Interesting idea. It is useful to consider the possible computational savings vs. various costs.
1. Differential equations are expensive; most other calculations are cheap.
2. Fixed time step integration of HH-style equations can use a very efficient approach that is purely algebraic. This means that the computational costs lie in numerical integration of the ODEs that govern membrane potential, and the ODEs that describe the dynamics of synaptic conductances.

The model cells described in Destexhe's paper have only one compartment, so his network model has only one voltage ODE per model cell. Most of the NEURON-based implementations of model cells that reuse Izhikevich's equations that I have seen involve one or two ODEs. So no real savings here. And you're going to have to attach synaptic mechanisms to your new model cells, and ensure that they have the proper dynamics. That's going to be difficult unless you use the same synaptic mechanisms that Destexhe did, and that means preserving one or two ODEs per synaptic point process. No gain here either.

There is one exception of which I am aware: a remarkable file called izhi2007a.mod, which you'll find in ModelDB entry 39948. You'll have to wade through it yourself to decide whether it can respond to synaptic inputs in a way that is sufficiently close to the synaptic mechanisms used by Destexhe. Maybe Bill Lytton can help you with that. And you'll have to decide whether its parameters can be set in such a way that it emulates the intrinsic properties of Destexhe's four cell classes. Good luck with that!

Assuming success to this point, you'll then have to establish that a network model based on your new model cells is a reasonable surrogate for Destexhe's model because it produces results that are "sufficiently" close to those that are generated by Destexe's model. Starting to sound like any run time savings would be at the cost of expending the most expensive time of all: yours.

Maybe it makes more sense to consider parallelizing your model. Have you tried multithreaded execution? Shouldn't require any changes to your source code (as long as your mod files are threadsafe), and could be good for an easy 2-4 fold speedup. Alternatively, if you need to run a lot of simulations (e.g. for parameter space exploration), a bulletin-board style parallelization might be helpful.

atknox
Posts: 5
Joined: Wed Aug 26, 2015 2:07 pm

Re: network with biophysical and artificial neurons

Post by atknox » Tue Sep 15, 2015 2:34 pm

Thanks for the reply!
You mean the one described in this publication?
Destexhe, A.
Spike-and-wave oscillations based on the properties of GABA-B receptors
Journal of Neuroscience, 1998, 18, 9099-9111
That's the one.
2. Fixed time step integration of HH-style equations can use a very efficient approach that is purely algebraic...The model cells described in Destexhe's paper have only one compartment, so his network model has only one voltage ODE per model cell.
I didn't realize that this was the case. Knowing this, I absolutely agree that it's not worth the time it would take to change the model.
Maybe it makes more sense to consider parallelizing your model. Have you tried multithreaded execution?
I haven't explored multithreaded execution in neuron yet, but sounds like it's time to learn :)

ted
Site Admin
Posts: 5652
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: network with biophysical and artificial neurons

Post by ted » Tue Sep 15, 2015 3:42 pm

See viewtopic.php?f=22&t=1476 for a discussion of how to use the GUI's Parallel Computing tool. Start the tool after your model's setup code has completed, but before calling run(). The "multisplit" option is not relevant to your model. Assuming you're using a PC or Mac that has N cores, and that your model has sufficient complexity to benefit from multithreaded execution, you'll find that increasing # threads will help your simulations run faster. Activating "Cache Efficient" is also likely to help. There will be a point at which further increases in # threads produces less and less benefit, depending on your model. After you find a number of threads that works well for you, save the configured ParallelComputeTool to a .ses file. Then you can add a load_file() statement to your model source code that is called right after model setup but before run().

You'll also want to read this
https://www.neuron.yale.edu/neuron/stat ... xt.Threads
and verify that your mod files are threadsafe. If you have questions about a particular mod file, don't hesitate to ask.

Post Reply