Netstim.Noise=>How does it work?

Anything that doesn't fit elsewhere.
Post Reply
OJAG

Netstim.Noise=>How does it work?

Post by OJAG »

Hi Ted,

I have a stream of spikes delivered to the cells in one due population and one crucial parameter to be modified is the level of randomness i.e.the Netstim.noise variable.

For me it is clear, and according to the algorithm, that if Netstim.noise=0 all my target cells receive spikes at t=n*Netstim.interval. with n an integer.
In the other hand, if Netstim.noise=1 then each of these cells receive individual spike-streams with intervals following a poissonian negative exponential distribution.

But what is no clear for me is what happen with intermediate values I mean, noise = (0,1) -noise within to this OPEN interval-, since in this case each spike==event is delivered at intervals:
invl = (1. - noise)*mean + noise*mean*erand()

and erand being.

Code: Select all

FUNCTION erand() {
VERBATIM
	if (_p_donotuse) {
		/*
		:Supports separate independent but reproducible streams for
		: each instance. However, the corresponding hoc Random
		: distribution MUST be set to Random.negexp(1)
		*/
		_lerand = nrn_random_pick(_p_donotuse);
	}else{
		/* only can be used in main thread */
		if (_nt != nrn_threads) {
hoc_execerror("multithread random in NetStim"," only via hoc Random");
		}
ENDVERBATIM
		: the old standby. Cannot use if reproducible parallel sim
		: independent of nhost or which host this instance is on
		: is desired, since each instance on this cpu draws from
		: the same stream
		erand = exprand(1)
VERBATIM
	}
ENDVERBATIM
}
Having into account these elements my question is:
Does it mean that if for instance Netstim.noise=0.1 10% of the total number of spikes will be poisson-like distributed, or are they (10% of these spikes) just randomly distributed using an random UNIFORM generator, without being poissonian?

Or does it mean that indeed the 0.1 i.e the 10% of the total number of spikes are poisson-like distributed starting to count the interval from the previously delivered spike?



Could you please explain a little bit in detail how do you handle with this parameter?

Thanks a lot in advance,

Oscar Javier
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Netstim.Noise=>How does it work?

Post by ted »

Hi, Oscar. The documentation for NetStim
http://www.neuron.yale.edu/neuron/stati ... ml#NetStim
contains this paragraph:
Fractional noise, 0 <= noise <= 1, means that an interval between spikes consists of a fixed interval of duration
(1 - noise)*interval
plus a negexp interval of mean duration
noise*interval
Note that the most likely negexp interval has duration 0.
Does that help?
OJAG

Re: Netstim.Noise=>How does it work?

Post by OJAG »

Hi Ted,
Thanks for your reply. I think this is much more clear but according to this is it right to conclude that for instance when my noise=0.1 10% of the total number of spikes follow a negexp distribution and the rest are completely deterministic?

b. I still don't understand why should the most likely negexp interval have duration 0.?


Thanks a lot again.


Oscar Javier
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Netstim.Noise=>How does it work?

Post by ted »

OJAG wrote:is it right to conclude that for instance when my noise=0.1 10% of the total number of spikes follow a negexp distribution and the rest are completely deterministic?
No. Let's analyze this description:
Fractional noise, 0 <= noise <= 1, means that an interval between spikes consists of a fixed interval of duration (1 - noise)*interval plus a negexp interval of mean duration noise*interval.
Consider a NetStim with start = 0 and 0 < noise <= 1

Define t0 = (1-noise)*interval

The ISI probability density function is
0 for t < t0 {{{ this is the "fixed interval of duration (1 - noise)*interval }}}
and
(1/(interval - t0))*exp(-(t-t0)/(interval - t0)) for t>= t0 {{{ this is the "negexp interval of mean duration noise*interval" }}}

So, after a NetStim generates an event, it is guaranteed to remain silent for at least t0 ms. Only when t>t0 ms does the probability of generating another event become nonzero.
I still don't understand why should the most likely negexp interval have duration 0.
Given a continuous random variable x, the likelihood that x lies in the range [x1, x2] (i.e. the probability that x1 <= x <= x2) is the integral of the random variable's probability density function (PDF) over the range [x1, x2]. If a continuous random variable x is governed by the "negative exponential distribution" (also called the "exponential distribution"), its PDF is
(1/lambda)*exp(-x/lambda)
where lambda > 0. This PDF is maximum at x = 0. If you perform repeated measurements whose values are governed by the negexp distribution, you will find that most of your measurements are near 0. If you increase the number of measurements you make, and the precision with which you make them, you will find that even more of your measurements are even closer to 0. In the limit, as the number and precision of measurements increases, the values that you measure will converge to 0. Another way of saying this is "the most likely interval is 0".
Post Reply