I'm very new to neuron, having just gone through the tutorial by Gillies and Sterratt (http://www.anc.ed.ac.uk/school/neuron/). I'm trying to build a complex neural network that has multiple neuron types. For each neuron, I would like to have both a constant injected current (IClamp) and also a Poisson synaptic input (NetStim object connecting to an ExpSyn).
My question is, what are the best practices for doing this? Since each neuron will have its own Poisson source, it would make sense to me to stick these in the cell template as below. This seems to work; however, I wasn't able to find any examples of code online with people doing this, so I was wondering if it is taboo in NEURON for some reason. For example, could there perhaps be issues with the Poisson events not being independent?
Last question: Is there any way to avoid setting pp.number = 1e9, and instead just force the NetStim to just spike indefinitely?
Thanks a lot!
Dave
Code: Select all
begintemplate LTS_L5cell
public soma, nclist, ncpp
create soma
objectvar nclist
// for Poisson input
objref pp, ncpp
objectvar ppsyn
proc init() {
create soma
nclist = new List()
soma {
nseg = 1
diam = 18.8 //these values shouldn't matter
L = 18.8 //these values shouldn't matter
insert hh_in
ena = 50 //From Lee 2013
ek = -95 //From Lee 2013
gnabar_hh_in = 0.100
gkbar_hh_in = 0.080
insert pas
e_pas=-67 //From Lee 2013
g_pas = 0.0001 //From Lee 2008
insert KM
gkmbar_KM = 0.004
cm=1.0 // units uF/cm2
}
// Poisson input soma
ppsyn = new ExpSyn(0)
// for Poisson input
pp = new NetStim(.5)
pp.interval = 10
pp.number = 1e9 //hack - better way to do this?
pp.start = 10
pp.noise = 1
ncpp = new NetCon(pp,ppsyn)
ncpp.weight = 0.5
ncpp.delay = 1
}
endtemplate LTS_L5cell
nLTS_L5cells = 1
objectvar LTS_L5cells[nLTS_L5cells]
for i = 0, nLTS_L5cells-1 {
LTS_L5cells[i] = new LTS_L5cell()
}
objectvar LTS_L5stim[nLTS_L5cells]
for i = 0, nLTS_L5cells-1 {
LTS_L5cells[i].soma {
LTS_L5stim[i] = new IClamp(0.5)
LTS_L5stim[i].del = 1000
LTS_L5stim[i].dur = 1000
LTS_L5stim[i].amp = 0.003
}
}