Skip to content

Commit a79e924

Browse files
committed
Adding input type <spikeGeneratorRefPoisson>
1 parent 55835d9 commit a79e924

File tree

5 files changed

+49
-5
lines changed

5 files changed

+49
-5
lines changed

LEMSexamples/LEMS_NML2_Ex16_Inputs.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,19 @@
2929
<Include file="../examples/NML2_Inputs.nml"/>
3030

3131
<network id="net1">
32-
<population id="izhPop" component="RS" size="12"/>
32+
<population id="izhPop" component="RS" size="13"/>
3333

3434
<population id="spikeArrPop" component="spkArr" size="1"/>
3535
<population id="spikeGenRegularPop" component="spikeGenRegular" size="1"/>
3636
<population id="spikeGenPoissonPop" component="spikeGenPoisson" size="1"/>
37+
<population id="spikeGenRefPoissonPop" component="spikeGenRefPoisson" size="1"/>
3738
<population id="spikeGenRandomPop" component="spikeGenRandom" size="1"/>
3839

3940
<explicitInput target="izhPop[0]" input="pulseGen0" destination="synapses"/>
4041
<explicitInput target="izhPop[1]" input="sg0" destination="synapses"/>
4142
<explicitInput target="izhPop[2]" input="rg0" destination="synapses"/>
4243
<explicitInput target="izhPop[3]" input="vClamp0" destination="synapses"/>
44+
4345
<explicitInput target="izhPop[8]" input="poissonFiringSyn" destination="synapses"/>
4446
<explicitInput target="izhPop[9]" input="ci0" destination="synapses"/>
4547
<explicitInput target="izhPop[10]" input="transPoissonFiringSyn" destination="synapses"/>
@@ -49,6 +51,7 @@
4951
<synapticConnection from="spikeGenRegularPop[0]" to="izhPop[5]" synapse="syn1" destination="synapses"/>
5052
<synapticConnection from="spikeGenRandomPop[0]" to="izhPop[6]" synapse="syn1" destination="synapses"/>
5153
<synapticConnection from="spikeGenPoissonPop[0]" to="izhPop[7]" synapse="syn1" destination="synapses"/>
54+
<synapticConnection from="spikeGenRefPoissonPop[0]" to="izhPop[12]" synapse="syn1" destination="synapses"/>
5255
</network>
5356

5457
<!-- End of NeuroML2 content -->
@@ -82,9 +85,12 @@
8285
</Display>
8386

8487
<Display id="d40" title="Ex16: Izhikevich cell, spiking inputs, time since spikes" timeScale="1ms" xmin="-20" xmax="320" ymin="-5" ymax="45">
85-
<Line id ="Regular spike gen t since" quantity="spikeGenRegularPop[0]/tsince" scale="1ms" color="#3fffaa" timeScale="1ms"/>
86-
<Line id ="Poisson spike gen t since" quantity="spikeGenRandomPop[0]/tsince" scale="1ms" color="#3ff9999" timeScale="1ms"/>
87-
<Line id ="Spike array t since" quantity="spikeArrPop[0]/tsince" scale="1ms" color="#3faa99" timeScale="1ms"/>
88+
<Line id ="regular spike gen t since" quantity="spikeGenRegularPop[0]/tsince" scale="1ms" color="#3fffaa" timeScale="1ms"/>
89+
<Line id ="poisson spike gen t since" quantity="spikeGenPoissonPop[0]/tsince" scale="1ms" color="#3ff9999" timeScale="1ms"/>
90+
<Line id ="poisson ref. spike gen t since" quantity="spikeGenRefPoissonPop[0]/tsince" scale="1ms" color="#3ff1119" timeScale="1ms"/>
91+
<Line id ="random spike t since" quantity="spikeGenRandomPop[0]/tsince" scale="1ms" color="#aaf9999" timeScale="1ms"/>
92+
93+
<Line id ="spike array t since" quantity="spikeArrPop[0]/tsince" scale="1ms" color="#3faa99" timeScale="1ms"/>
8894
<Line id ="Transient poisson spike gen" quantity="izhPop[10]/transPoissonFiringSyn/tsince" scale="1ms" color="#000000" timeScale="1ms"/>
8995
</Display>
9096

@@ -97,6 +103,8 @@
97103
color="#01A9DB" timeScale="1ms"/>
98104
<Line id="poisson spike gen" quantity="izhPop[7]/v" scale="1mV"
99105
color="#8000FF" timeScale="1ms"/>
106+
<Line id="poisson ref. spike gen" quantity="izhPop[12]/v" scale="1mV"
107+
color="#80aaaF" timeScale="1ms"/>
100108
<Line id="transient poisson spike gen" quantity="izhPop[10]/v" scale="1mV"
101109
color="#ff00FF" timeScale="1ms"/>
102110
</Display>

LEMSexamples/test/.test.ex16.jnml.omt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ experiments:
2525
spike detection:
2626
method: threshold
2727
threshold: -58.6
28-
tolerance: 0.00002
28+
tolerance: 1.8691938167e-05
2929
compound:
3030
observables:
3131
spike times:

NeuroML2CoreTypes/Inputs.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,29 @@
151151
</Dynamics>
152152
</ComponentType>
153153

154+
155+
<ComponentType name="spikeGeneratorRefPoisson"
156+
extends="spikeGeneratorPoisson"
157+
description="Generator of spikes whose ISI distribution is the maximum entropy distribution over [_minimumISI, +infinity) with mean 1/_averageRate">
158+
<Parameter name="minimumISI" dimension="time"/>
159+
<Dynamics>
160+
<StateVariable name="tsince" dimension="time" exposure="tsince"/>
161+
<StateVariable name="isi" dimension="time"/>
162+
<TimeDerivative variable="tsince" value="1"/>
163+
164+
<OnStart>
165+
<StateAssignment variable="tsince" value="0"/>
166+
<StateAssignment variable="isi" value="minimumISI - (averageIsi-minimumISI) * log(1 - random(1))"/>
167+
</OnStart>
168+
169+
<OnCondition test="tsince .gt. isi">
170+
<StateAssignment variable="tsince" value="0"/>
171+
<StateAssignment variable="isi" value="minimumISI - (averageIsi-minimumISI) * log(1 - random(1))"/>
172+
<EventOut port="spike"/>
173+
</OnCondition>
174+
</Dynamics>
175+
</ComponentType>
176+
154177

155178
<ComponentType name="poissonFiringSynapse"
156179
description="Poisson spike generator connected to single synapse providing an input current"

Schemas/NeuroML2/NeuroML_v2beta5.xsd

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,8 @@
588588
minOccurs="0" maxOccurs="unbounded"/>
589589
<xs:element name="spikeGeneratorPoisson" type="SpikeGeneratorPoisson"
590590
minOccurs="0" maxOccurs="unbounded"/>
591+
<xs:element name="spikeGeneratorRefPoisson" type="SpikeGeneratorRefPoisson"
592+
minOccurs="0" maxOccurs="unbounded"/>
591593
<xs:element name="poissonFiringSynapse" type="PoissonFiringSynapse"
592594
minOccurs="0" maxOccurs="unbounded"/>
593595
<xs:element name="transientPoissonFiringSynapse" type="TransientPoissonFiringSynapse"
@@ -2460,6 +2462,15 @@
24602462
</xs:complexContent>
24612463
</xs:complexType>
24622464

2465+
<xs:complexType name="SpikeGeneratorRefPoisson">
2466+
<xs:complexContent>
2467+
<xs:extension base="SpikeGeneratorPoisson">
2468+
<xs:attribute name="minimumISI" type="Nml2Quantity_time"
2469+
use="required"/>
2470+
</xs:extension>
2471+
</xs:complexContent>
2472+
</xs:complexType>
2473+
24632474
<xs:complexType name="PoissonFiringSynapse">
24642475
<xs:complexContent>
24652476
<xs:extension base="Standalone">

examples/NML2_Inputs.nml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
maxISI="30 ms"/>
6565

6666
<spikeGeneratorPoisson id="spikeGenPoisson" averageRate="50 Hz"/>
67+
68+
<spikeGeneratorRefPoisson id="spikeGenRefPoisson" averageRate="50 Hz" minimumISI="10 ms"/>
6769

6870
<poissonFiringSynapse id="poissonFiringSyn" averageRate="10 Hz" synapse="synInput" spikeTarget="./synInput"/>
6971

0 commit comments

Comments
 (0)