So it seems that the best thing to do is generate noise events "on the fly." I'm new to NEURON, so I coded up a very simple network of just one biophysical neuron driven by one NetStim "neuron," and I tried to see if I could get the NetStim neuron to activate at two different times which I specified in the course of integration, so that my run() procedure looks like this (cells.object(1) is the NetStim cell):
- Code: Select all
proc run(){
stdinit()
continuerun(3000)
cells.object(1).pp.start = 3001
continuerun(tstop)
showraster()
}
The NetStim template looked like this:
- Code: Select all
begintemplate NetStim_NetStim
public pp, connect2target, x, y, z, position, is_art
objref pp
proc init() {
pp = new NetStim()
pp.start = 1000
pp.number = 100
pp.noise = 0.5
}
func is_art() { return 1 }
obfunc connect2target() { localobj nc
nc = new NetCon(pp, $o1)
if (numarg() == 2) { $o2 = nc }
return nc
}
proc position(){x=$1 y=$2 z=$3}
endtemplate NetStim_NetStim
so you can see that originally the NetStim object started stimulating the biophysical neuron at t=1000 ms.
Here is the raster plot for the biophysical neuron:

Obviously, the NetStim did not turn back on at t=3001 ms like I wanted it to. It seems like there should be a way to do this, but I've read the NetStim documentation and still don't see how. I saw that NetStim can also have a NET_RECEIVE block, which would allow other neurons in the network to initiate further NetStim activity, but this is not helpful to me because I want to directly control when the NetStim object is active. I'd also like to be able to modify how long it is active within a given burst. Is this possible? And if not, what is the best approach to administer bursts of noisy stimulation "on the fly"? Thanks.

