Spike detection

36 views
Skip to first unread message

Laure

unread,
Jul 17, 2020, 11:49:44 AM7/17/20
to Brian
Hello,

We are comparing results from Brian and other simulation softwares and do not obtain the same spike times although the membrane voltage traces are identical. We were wondering whether this could come from the spike detection method. However, we do not find in the documentation how spikes are detected in Brian when a threshold is specified for HH-like or Moris-Lecar-like models. Could you please provide us with details on how Brian detects spikes?

Thank you in advance for the information.
Best,

Laure

Vigneswaran

unread,
Jul 19, 2020, 6:28:44 AM7/19/20
to Brian
Hi Laure,

       In Brian, when 'threshold' condition is defined, the default 'spike' event is created for that particular group automatically. The documention on NeuronGroup's threshold parameter shall help you about 'spike' event along with other options like 'reset' and 'refractory'. 
Regarding the difference you found with spike times, it would be more helpful, if you kindly give a brief details on model and parameters you used.

Thanks,
Vigneswaran

Laure Buhry

unread,
Jul 19, 2020, 11:02:06 AM7/19/20
to brians...@googlegroups.com
Hi Vigneswaran,

Thank you for your quick response. We looked extensively at the documentation, including the section you indicated, and at the class files, but it remains unclear to us whether Brian just checks if the membrane voltage, V, is above the threshold + satisfies the refractory period or also checks the derivative of  V to see how many times it crosses the threshold and with which slope. (We took the simple COBAHH example).

Thanks,

Laure


--
http://www.facebook.com/briansimulator
https://twitter.com/briansimulator
 
Please cite Brian 2: Stimberg M, Brette R, Goodman DFM (2019). Brian 2, an intuitive and efficient neural simulator. eLife, doi: 10.7554/eLife.47314.
---
You received this message because you are subscribed to a topic in the Google Groups "Brian" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/briansupport/Dc4SjIvU3V0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to briansupport...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/briansupport/e2564c83-9b5a-4286-9844-c3455aa0c01fn%40googlegroups.com.


Vigneswaran

unread,
Jul 20, 2020, 2:14:08 AM7/20/20
to Brian
Hi Laure,

      Thanks for the details. In Brian, when the threshold condition is defined by the user, it is added to a set of codes representing conditions to be checked at each time step. When the condition (threshold) is True for that particular time step, it sets `spike` and `refractory_until` attributes, defining the spike triggering and period of refractory after that respectively. Along with that, if the reset is defined, `run_on_event()` is called which simply sets the given values to state variables of that group, once the `threshold` condition is True. Something like,

for timestep in total_run_timesteps
       update state for the particular group
       . . . .
       if threshold_condition is True:   # spike event is detected
                execute run_on_event()/reset statements
                define refractory_until from refractory given

Being a rookie myself, I am not sure about the reason for the spike time difference, however, it would be helpful if you verify the time-step you used

Thanks,
Vigneswaran

Laure Buhry

unread,
Jul 21, 2020, 10:01:38 AM7/21/20
to brians...@googlegroups.com
Thank you, Vigneswaran.
We made sure we had the same time step. The inconsistency occurs with networks, where noise is high. I suspect Brian detects noises as spikes with the threshold we chose. We will look into it.
Thanks again !

Laure
Reply all
Reply to author
Forward
0 new messages