/* * test_stdp_hom_poiss.sli * * This file is part of NEST. * * Copyright (C) 2004 The NEST Initiative * * NEST is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * NEST is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NEST. If not, see <http://www.gnu.org/licenses/>. * */ /* BeginDocumentation Name: testsuite::test_stdp_hom_poiss - sli script to test stdp_synapse_hom model implementing spike time dependent plasticity syanpses according to Guetig et al. (2003), Journal of Neuroscience. It uses the version of these synapses, which uses homogeneous parameter, i.e. all STDP synapses have the same parameters. This script performs repeated spike pairing of two neurons connected by a stdp_synapse. The synapse strength is recorded after 60 paired spikes in a file. Synopsis: (test_stdp) run -> compare cout with comments in file Author: Moritz Helias, Wiebke Potjans, Abigail Morrison, Markus Diesmann FistVersion: April 2006 */ ResetKernel % clear all existing network elements userdict begin 0.1 /h Set % simulation timestep [ms] [0] << /resolution h /total_num_virtual_procs 2 >> SetStatus /delay h def % dendritic delay [ms] 10000 /K Set 0.8 /f_ex Set f_ex K mul /K_ex Set 1.0 f_ex sub K mul /K_in Set 10.0 /nu_ex Set 10.0 /nu_in Set 45.0 /w_ex Set % in pA, background PSC amplitude 3.83 /g Set % w_ex neg g mul /w_in Set % synapse constants /poisson_generator Create /pg_ex Set pg_ex << /rate K_ex nu_ex mul >> SetStatus /poisson_generator Create /pg_in Set pg_in << /rate K_in nu_in mul >> SetStatus /spike_detector Create /sd Set sd << /withtime true /withgid true /to_file true >> SetStatus /voltmeter Create /vm Set vm << /withtime true /withgid true /to_file true >> SetStatus /iaf_psc_alpha Create /neuron1 Set /iaf_psc_alpha Create /neuron2 Set neuron1 << /tau_syn_ex 0.3 /tau_syn_in 0.3 >> SetStatus neuron2 << /tau_syn_ex 0.3 /tau_syn_in 0.3 >> SetStatus pg_ex neuron1 w_ex delay Connect pg_ex neuron2 w_ex delay Connect pg_in neuron1 w_in delay Connect pg_in neuron2 w_in delay Connect neuron1 sd Connect neuron2 sd Connect %vm neuron1 Connect vm neuron2 Connect /stdp_synapse_hom << /delay delay /weight 35. /Wmax 70. /alpha 0.95 /lambda 0.025 /mu_plus 0.05 /mu_minus 0.05 >> SetDefaults neuron1 neuron2 /stdp_synapse_hom Connect neuron2 GetStatus /local get { (weight.gdf) (w) file /f_weight Set } if 40000.0 /T Set 100.0 /dt Set %76.0 /dt Set 50.0 /dt Set %10000.0 /dt Set 0 dt T { /t Set neuron2 GetStatus /local get { << /source neuron1 /synapse_model /stdp_synapse_hom >> FindConnections 0 get GetStatus /weight get /w Set w == f_weight t <- (\t) <- w <- endl pop } if dt Simulate } for neuron2 GetStatus /local get { cout (expected weight at T=40000 ms: 33.8466 pA) <- endl pop cout (weight at last event: ) <- w <- ( pA) <- endl pop } if end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Expected output of this program: % % The output send to std::cout is a superposition of the output of % the voltmeter and the spike detector. Both, voltmeter and spike % detector are connected to the same neuron. % % % The expected output of the program for a simulation time of % 40000.0ms is 33.8466pA. % % The result is independent of the length of the interval dt in which % Simulate is called as long as the last pre-synaptic spike included % in the simulation remains the same. %