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.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home
http://arken.nmbu.no/~plesser
From: carriere.maxime93(a)gmail.com <carriere.maxime93(a)gmail.com>
Date: Tuesday, 9 July 2024 at 15:04
To: users(a)nest-simulator.org <users(a)nest-simulator.org>
Subject: [NEST Users] Order or Computation
[Some people who received this message don't often get email from
carriere.maxime93(a)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(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org