Using TIFGroup

Questions concerning the use of Auryn classes. If you want to contribute a howto for a given example code please consider getting write access for the Dokuwiki.
Post Reply
david
Posts: 6
Joined: Wed Mar 09, 2016 3:52 pm

Using TIFGroup

Post by david »

I am creating neuron groups using TIFGroup. I am wondering how I can manually set the parameters for these neurons. So,

- How do I set parameters for all the neurons in the group at once? The parameters I am interested in are the ones for the standard conductance-based leaky integrate-and-fire neuron, such as: resting membrane potential, reset membrane potential, time constants, firing threshold, reversal potentials, etc.
- Is it possible to set the parameters separate for each of the individual neurons once the TIFGroup is created?
- Is it possible to also do this for connections? I.e. set the synaptic time constants and synaptic conductances separately for any particular connection. Basically, in the same way that is done in simulators like Brian.
- Is it possible to change these parameters for individual neurons, neuron groups, connections, or connectivity and weights on the fly during simulation?
- Is it possible in Auryn to select certain subsets of neurons in a TIFGroup and save them in another variable to be accessed separately?
- Can weight matrices and connectivity matrices be specified separately? E.g., have a connectivity matrix with 0s and 1s where 0s represent no connectivity and 1s represent connections. And then set the weight matrix separately and for the elements where there is no connectivity, the weight is ignored for that element.

Thanks!
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Re: Using TIFGroup

Post by zenke »

david wrote: - How do I set parameters for all the neurons in the group at once? The parameters I am interested in are the ones for the standard conductance-based leaky integrate-and-fire neuron, such as: resting membrane potential, reset membrane potential, time constants, firing threshold, reversal potentials, etc.
You should check in the manual or in the source code directly. Some quantities have getters/setters other quantities might be hard coded and you might have to access the member variables directly. Quality of documentation varies a lot, but a good place to start would be the Doxygen Class Index for TIFGroup
http://www.fzenke.net/auryn/doxygen/cur ... Group.html
david wrote: - Is it possible to set the parameters separate for each of the individual neurons once the TIFGroup is created?
Not with TIFGroup no, you need to write your own neuron group. It goes against the Auryn design philosophy to make things general, because that also makes them slow.
david wrote: - Is it possible to also do this for connections? I.e. set the synaptic time constants and synaptic conductances separately for any particular connection. Basically, in the same way that is done in simulators like Brian.
The conductances you can set, they are just the connection weight. Synaptic time constants, however, are implemented postsynaptically as linear differential equations. This makes it possible to integrate all synapses as one ODE instead of 1 ODEs per synapse. You will need design different target states for each time constant. Again you will need to write a NeuronGroup which has that.
david wrote: - Is it possible to change these parameters for individual neurons, neuron groups, connections, or connectivity and weights on the fly during simulation?
Yes, once you have written these classes yourself can do anything.
david wrote: - Is it possible in Auryn to select certain subsets of neurons in a TIFGroup and save them in another variable to be accessed separately?
If you are asking for something similar to the subpopulation feature in Brian, then the answer is no. This is not possible yet, but its short listed to be implemented soon. It's a bit tricky to do that because neurons can lie on different nodes in parallel sims...
david wrote: - Can weight matrices and connectivity matrices be specified separately? E.g., have a connectivity matrix with 0s and 1s where 0s represent no connectivity and 1s represent connections. And then set the weight matrix separately and for the elements where there is no connectivity, the weight is ignored for that element.
Thanks!
That's the default behavior of SparseConnection. Typically whether or not a connection exists (the 0 and 1) are set during initialization. You can then load connectivity on top of that using the getters and setters of the connection. Note, that it is difficult to create or delete connections once the SparseMatrix is initialized. That's because Auryn keeps SparseMatrices local in memory for performance reasons. One can easily implement a Connection class in which this is possible, however, you will suffer performance.

Hope these answers help.

Cheers,

F
Post Reply