Closed denniskb closed 5 years ago
I understand now that the timestep in Brunel is in milliseconds, so the whole params.h file makes perfect sense. I still can't wrap my head around the timestep and the synaptic weights in VA though.
Hi Dennis,
Glad to hear the Brunel parameters make sense.
In the case of the synaptic parameters for the VA model, the effect on membrane voltage is equal to the synaptic current times the membrane resistance. In turn the membrane resistance can be calculated:
membrane resistance = membrane time constant / membrane capacitance
This capacitance and time constant parameters are located here: https://github.com/nasiryahm/SNNSimulatorComparison/blob/master/Benchmarks/VogelsAbbott/genn/model.cc#L32
Once you multiply these through, it works out to an impact on the voltage in the mV scale. You should also note that the Brunel benchmark doesn't need these conversions since the synapses are voltage based.
Does that all make sense?
Dear Nasir, thank you for the clarifications. I built your code (genn-vogels), ran a 20s long simulation, outputted the spikes to a txt file and visualized them with Matlab. I noticed a pretty high network activity, so I calculated the average firing rate as:
number of spikes per sim. step / number of steps / number of neurons
which came out to ~0.14 or 14%. Shouldn't this be capped to 2% due the refractory period of 50 timesteps?
It seems to me that the timestep
inside the VA parameters.h file should be 0.1
instead of 1.0
.
Hi Dennis,
It's rather strange that you are getting high firing rates. Especially since in the iPython notebook in this repository, I check all firing rates and ISIs. You can see the notebook:
Can you check that you are using the same version of GeNN that is a submodule in this repository?
As for the time step, you are quite right, that should be 0.1. However, I am not actually using that parameter at the moment. I instead directly set the time step in the model.cc file in the GeNN folder. I should make that more transparent.
I accidentally replaces setDT(0.1
with setDT(params::timestep)
!
Ah okay! Glad to hear it worked out :) - I'll fix that in the repository later today so that the parameter is used and is set to 0.1ms.
Thank for pointing it out!
I'm trying to understand the 'parameters.h' files for VA and Brunel inside the GeNN comparison.
Thank you for clarifying!