Single or multiple NetCon objects per synapse?

The basics of how to develop, test, and use models.
Post Reply
Eelke Spaak
Posts: 10
Joined: Tue Oct 21, 2008 4:43 am

Single or multiple NetCon objects per synapse?

Post by Eelke Spaak »

I have just started coding a model in NEURON, and while I have a lot of programming experience (especially object-oriented), HOC is at times a bit confusing to me. In particular, the way declarations, initializations and references are handled is not exactly what I would expect from an OOP point of view. This is just a disclaimer that I thought I'd include in my first post on these forums: there might be stupid things in my HOC code and/or questions :)

Now, for my question. In some HOC code of a model similar to the one that I am developing, I noticed that, in order to model multiple incoming synapses on a single soma-only cell, only a single Exp2Syn object was attached to the soma of the post-synaptic cell and that multiple NetCon objects had this Exp2Syn as their target. Is this the best way to model multiple incoming synapses on a single section? My intuition would be to create one Exp2Syn object and one NetCon object per synaptic connection.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Single or multiple NetCon objects per synapse?

Post by ted »

As you doubtless already know, the original hoc was a toy interpreter whose source code was Appendix 3 of Kernighan and Pike's "The UNIX Programming Environment." Michael Hines added the stuff that makes it useful for constructing representations of biological neurons (sections, and NMODL for adding new biophysical mechanisms and other extensions to hoc), and objects (see http://www.neuron.yale.edu/neuron/stati ... n/obj.html, which is an almost-finished document; chapter 13 of The NEURON Book fills in the gaps). NEURON's hoc is a bit like the talking dog--"who cares that it's a poor conversationalist; the miracle is that it says anything at all." hoc's deficiencies are one reason for the addition of Python as an alternative interpreter, although to be fair there are some things that are more convenient to do in hoc than in Python.
in order to model multiple incoming synapses on a single soma-only cell, only a single Exp2Syn object was attached to the soma of the post-synaptic cell and that multiple NetCon objects had this Exp2Syn as their target.
It's the best way to represent multiple afferent axons converging onto a single class of synapses that are attached to an electrically compact cell. Each instance of Exp2Syn can have its own equilibrium potential and its own two time constants to govern the dynamics of its conductance. One Exp2Syn is sufficient for a computational implementation of a conceptual model in which an electrically compact cell is the target of a single class of synapses (all of which have identical equilibrium potentials and dynamics). And it would be the most efficient implementation because it contributes only a single pair of ODEs to the system equations. But if your conceptual model involves multiple synaptic classes, each of which has its own equilibrium potential and/or dynamics, your computational model would need a separate Exp2Syn instance for each class.

If the cell is not electrically compact, it would be necessary to represent it with multiple compartments. In NEURON this is done by assigning a value > 1 to the discretization parameter nseg (preferably an odd number, but that's another story). If the synapses are distributed over the entire surface of the cell, then each segment would need its own Exp2Syn instance(s).

Welcome to the community of NEURON users, Eelke!
Eelke Spaak
Posts: 10
Joined: Tue Oct 21, 2008 4:43 am

Re: Single or multiple NetCon objects per synapse?

Post by Eelke Spaak »

Thank you for your very clear and helpful reply!

Following your remark, I did play a bit with Neuron and Python (which, since I'm on Windows Vista (don't shoot me), was not very easy to get working with my own Python version for IDE integration). It does seem to work pretty well, but since I actually ended up wrapping every second or so statement in h("blabla"), I am now back to using 'good old' HOC. When I have more time, i.e., when my model is finished, I might put some work into trying to extend and improve the Python integration.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Single or multiple NetCon objects per synapse?

Post by ted »

not very easy to get working with my own Python version for IDE integration
Perhaps others would be interested in how you did this, if you have time to share it. Use of NEURON + Python is still relatively new, and the number of people with such expertise is rather small.
Post Reply