Activating netcons

Moderator: wwlytton

Post Reply
pascal
Posts: 106
Joined: Thu Apr 26, 2012 11:51 am

Activating netcons

Post by pascal »

I am working to revise some code I've been given, and I noticed a curious block:

Code: Select all

	synR.uniform(5, 10) 	
	co   = pnm.nclist
	
	for ltr(xo, co) {		
		sprint(cmd, "%s", xo.postcell)		
		if(strcmp(cmd, "NULLobject")!=0) {			
			sprint( cmd, "%s.active(1)", xo )			
			cvode.event(synR.repick(), cmd)    //makes NetCon[#] active at random times within 250, 750   	
		}
	}
When this code is commented out, at least some (and I think all) of the synaptic connections do not work--the neurons do not "talk to each other." It appears that this code is activating every single synapse in the network. Am I correct? And if so, why is this necessary? Shouldn't netcons be active by default?
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Activating netcons

Post by ted »

pascal wrote:I am working to revise some code I've been given
Looks pretty clever to me. The author of the code should be also be clever enough to answer your questions (too bad there aren't comments that explain what's going on).
When this code is commented out, at least some (and I think all) of the synaptic connections do not work--the neurons do not "talk to each other." It appears that this code is activating every single synapse in the network. Am I correct?
Lots of assumptions and questions here. The truth is difficult to determine from the provided code example; this is only a disclaimer and not a request for you to provide complete source code. Here are some inferences and questions that might help you discover how your program is working.

Presumably pnm.nclist is a List whose elements refer to NetCons. If you can discover how it was constructed, you can not only verify this inference, but also discover whether any or all of these NetCons are attached to presynaptic cells.

What exactly does "ltr( )" do? It isn't a hoc keyword or part of NEURON's standard run library. Does it select particular elements from pnm.nclist? If so, which ones?

The block of statements with which "ltr( )" is associated suggests that there is a collection of NetCons that are ordinarily inactive, and that any one of these that is actually attached to a target and also meets some other criterion (related to how Itr( ) itself works) will be switched to its active state and then forced to deliver an event at some random time in the interval [5,10] (NOT [250,750] as stated in the single comment in this code example)..
why is this necessary? Shouldn't netcons be active by default?
(1) Why? Good question. You'll have to ask the person who wrote the code. (2) "Shouldn't . . . " looks like a rhetorical question. For a meaningful answer you must try to discern the intent of the person who wrote the code in the first place. One possible guess: was the network setup code was written to set up all-to-all connections, with the intention that the actual functional connectivity would be governed by putting some NetCons in their active state and leaving others inactive? The Programmer's Reference says only that the default state of a NetCon is inactive if its target is NULLobject; however, it is indeed the case that the default state is active if the target is an artificial spiking cell or a point process described by NMODL code that contains a NET_READY block.
Post Reply