Hi ,
I want to add an inhibitory neuron to suppress the excitatory neuron ,but it has no effect .The synapse model i choose is CUBA model .My code is showed as follow:
#include <carlsim.h>
int main(int argc, const char* argv[]) {
// ---------------- CONFIG STATE -------------------
CARLsim sim("test", CPU_MODE, USER);
int nNeur =1 ;
PoissonRate in(nNeur); // PoissonRate containter for SpikeGenerator group
// create groups
int gIn = sim.createSpikeGeneratorGroup("input", nNeur, EXCITATORY_NEURON);
int gInh = sim.createGroup("Inh", 1, INHIBITORY_NEURON);
int gExc = sim.createGroup("Exc", nNeur, EXCITATORY_NEURON);
sim.setNeuronParameters(gExc, 0.02f, 0.2f, -65.0f, 8.0f); // RS
sim.setNeuronParameters(gInh, 0.1f, 0.2f, -65.0f, 2.0f); //FS
// gExc receives input from gIn
sim.connect(gIn, gExc, "one-to-one", RangeWeight(60.0f), 1.0f,RangeDelay(1), RadiusRF(-1), SYN_FIXED);
// gInh receives input from gExc
sim.connect(gExc, gInh, "one-to-one", RangeWeight(9999.0f), 1.0f,RangeDelay(1), RadiusRF(-1), SYN_FIXED);
// gInh suppress gExc
sim.connect(gInh, gExc, "one-to-one", RangeWeight(9999.0f), 1.0f,RangeDelay(1), RadiusRF(-1), SYN_FIXED);
// enable CUBA mode
sim.setConductances(false);
// ---------------- SETUP STATE -------------------
sim.setupNetwork();
sim.setSpikeMonitor(gIn, "DEFAULT");
sim.setSpikeMonitor(gExc, "DEFAULT");
sim.setSpikeMonitor(gInh, "DEFAULT");
// associate PoissonRate container with gIn
sim.setSpikeRate(gIn, &in);
// ---------------- RUN STATE -------------------
// run the network repeatedly for 50 second (5*10000 + 0 ms)
// with Poisson input
for (int i=0; i<5; i++) {
float inputRateHz = 50.0f;
in.setRates(inputRateHz);
// run for 10 second
sim.runNetwork(10,0);
}
return 0;
}
And here is the result of the network :
(t=10.000s) SpikeMonitor for group input(0) has 474 spikes in 10000ms (47.40 +/- 0.00 Hz)
(t=10.000s) SpikeMonitor for group Inh(1) has 375 spikes in 10000ms (37.50 +/- 0.00 Hz)
(t=10.000s) SpikeMonitor for group Exc(2) has 375 spikes in 10000ms (37.50 +/- 0.00 Hz)
(t=20.000s) SpikeMonitor for group input(0) has 509 spikes in 10000ms (50.90 +/- 0.00 Hz)
(t=20.000s) SpikeMonitor for group Inh(1) has 414 spikes in 10000ms (41.40 +/- 0.00 Hz)
(t=20.000s) SpikeMonitor for group Exc(2) has 414 spikes in 10000ms (41.40 +/- 0.00 Hz)
(t=30.000s) SpikeMonitor for group input(0) has 492 spikes in 10000ms (49.20 +/- 0.00 Hz)
(t=30.000s) SpikeMonitor for group Inh(1) has 398 spikes in 10000ms (39.80 +/- 0.00 Hz)
(t=30.000s) SpikeMonitor for group Exc(2) has 398 spikes in 10000ms (39.80 +/- 0.00 Hz)
(t=40.000s) SpikeMonitor for group input(0) has 502 spikes in 10000ms (50.20 +/- 0.00 Hz)
(t=40.000s) SpikeMonitor for group Inh(1) has 402 spikes in 10000ms (40.20 +/- 0.00 Hz)
(t=40.000s) SpikeMonitor for group Exc(2) has 402 spikes in 10000ms (40.20 +/- 0.00 Hz)
(t=50.000s) SpikeMonitor for group input(0) has 492 spikes in 10000ms (49.20 +/- 0.00 Hz)
(t=50.000s) SpikeMonitor for group Inh(1) has 383 spikes in 10000ms (38.30 +/- 0.00 Hz)
(t=50.000s) SpikeMonitor for group Exc(2) has 383 spikes in 10000ms (38.30 +/- 0.00 Hz)
In fact ,the excitotary neuron should not spike because of the effect of inhibitotary neuron in the latter seconds.There should be some problems about my understanding of the network.Would you mind explaining to me where is there a problem?