# Izhikevich 2003 implementation in docs

**URL:** <https://brian.discourse.group/t/izhikevich-2003-implementation-in-docs/763>\
**Category:** Science, Projects, and Showcases\
**Tags:** synapses\
**Created:** [4 August 2022 15:01 UTC](https://brian.discourse.group/t/izhikevich-2003-implementation-in-docs/763 "2022-08-04T15:01:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![elias](https://yyz2.discourse-cdn.com/free1/user_avatar/brian.discourse.group/elias/32/444_2.png) [@elias](https://brian.discourse.group/u/elias)\
**Post date:** [4 August 2022 15:01 UTC](https://brian.discourse.group/t/izhikevich-2003-implementation-in-docs/763/1 "2022-08-04T15:01:27Z")

</div>

The implementation of Izhikevich 2003 model [provided in the Brian2 documentation](https://brian2.readthedocs.io/en/stable/examples/frompapers.Izhikevich_2003.html) uses a multiple pathway for the synapses:

```auto
S = Synapses(
    N,
    N,
    "w : 1",
    on_pre={"up": "I += w", "down": "I -= w"},
    delay={"up": 0 * ms, "down": 1 * ms},
)

```

If I read this correctly, the membrane potential increases `w` when the pre-synpatic spike occurs and then decreases `w` 1ms afterwards. For inhibitory synapses, it correspondingly decreases and then increases.

I’m wondering why the post-synaptic activity is not simply implemented as an increase in the membrane voltage via the variable `v`, `on_pre="v += w"`? Notably, since they clock is set 1ms. Both approaches seem to produce qualitatively similar —although not indentical— results.

Except for this, the rest of the implementation seems to exactly follow [Izhikevich own implementation](https://www.izhikevich.org/publications/net.m). Maybe @aesagtekin or @schmitts could shed some light?

---

<div class="post-metadata">

**Author:** ![aesagtekin](https://yyz2.discourse-cdn.com/free1/user_avatar/brian.discourse.group/aesagtekin/32/412_2.png) [@aesagtekin](https://brian.discourse.group/u/aesagtekin)\
**Post date:** [7 August 2022 13:58 UTC](https://brian.discourse.group/t/izhikevich-2003-implementation-in-docs/763/2 "2022-08-07T13:58:52Z")

</div>

Hello,

In Izhikevich’s original code, the simulation’s resolution changes the results quantitatively. For more, you can check: " Reproducing Polychronization: A Guide to Maximizing the Reproducibility of Spiking Network Models", chapter 3.4.4.

To prevent this, @schmitts implemented the multiple pathway code block. Now, even if you change the resolution of the simulation, the results of it will remain quantitatively similar. This multiple pathway code block is similar to the abovementioned paper’s “locked resolution” simulations.

---

<div class="post-metadata">

**Author:** ![elias](https://yyz2.discourse-cdn.com/free1/user_avatar/brian.discourse.group/elias/32/444_2.png) [@elias](https://brian.discourse.group/u/elias)\
**Post date:** [8 August 2022 17:20 UTC](https://brian.discourse.group/t/izhikevich-2003-implementation-in-docs/763/3 "2022-08-08T17:20:21Z")

</div>

I see, that’s a clever solution. Thanks for the clarification!
