Hi Maxime,
I don’t quite understand what you mean by “the computation of the inihibition occurs before the inhibition”.
A typical update loop for a NEST model (here simplified from iaf_psc_alpha) looks like this, where y3_ is the membrane potential:
S_.y3_ = V_.P30_ * ( S_.y0_ + P_.I_e_ ) + V_.P31_ex_ * S_.dI_ex_ + V_.P32_ex_ * S_.I_ex_ + V_.P31_in_ * S_.dI_in_
+ V_.P32_in_ * S_.I_in_ + V_.expm1_tau_m_ * S_.y3_ + S_.y3_;
S_.I_ex_ = V_.P21_ex_ * S_.dI_ex_ + V_.P22_ex_ * S_.I_ex_;
S_.dI_ex_ *= V_.P11_ex_;
S_.dI_ex_ += V_.EPSCInitialValue_ * input[ Buffers_::SYN_EX ];
S_.I_in_ = V_.P21_in_ * S_.dI_in_ + V_.P22_in_ * S_.I_in_;
S_.dI_in_ *= V_.P11_in_;
S_.dI_in_ += V_.IPSCInitialValue_ * input[ Buffers_::SYN_IN ];
if ( S_.y3_ >= P_.Theta_ )
{
S_.y3_ = P_.V_reset_;
kernel().event_delivery_manager.send( *this, SpikeEvent(), lag );
}
// set new input current
S_.y0_ = input[ Buffers_::I0 ];
The first line updates the membrane potential based on the differential equation for the membrane potential, using the values of the membrane potential and the state variables for the excitatory and inhibitory synapses from the previous time step.
The second block then updates the state variables for the excitatory synapses according to the ODEs and then adds the new input arriving during the time step. This input by definition always arrives at the end of the time step, since spikes are emitted at the end of time steps. The thirds block does the same for inhibitory synapses.
The fourth block checks for threshold crossings, resetting and emitting a spike if necessary.
The final block updates current input for the next time step. This could also have been placed before the threshold check.
For mathematical details on the update and the order of update lines, see
Rotter, S., & Diesmann, M. (1999). Exact digital simulation of time-invariant linear systems with applications to neuronal modeling. Biol Cybern, 81, 381–402.
Best, Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser Departmend Head
Department of Data Science Faculty of Science and Technology Norwegian University of Life Sciences PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560 Email hans.ekkehard.plesser@nmbu.nomailto:hans.ekkehard.plesser@nmbu.no Home http://arken.nmbu.no/~plesser
From: carriere.maxime93@gmail.com carriere.maxime93@gmail.com Date: Tuesday, 9 July 2024 at 15:04 To: users@nest-simulator.org users@nest-simulator.org Subject: [NEST Users] Order or Computation [Some people who received this message don't often get email from carriere.maxime93@gmail.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
Hello everyone,
I am trying to replicate our brain-constrained model to NEST. In our model the computation of the inhibition occurs before the inhibition. I believe it's the other way round in NEST. I was wondering, where the order of computation was implemented in NEST and if that was possible to change it.
Best,
Maxime _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org