/*
* test_psp_amplitude_consistency.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_psp_amplitude_consistency - test the consistency of PSP amplitudes across models.
Synopsis: (test_psp_amplitude_consistency) run ->
Description:
This test computes the peak amplitude of the post-synaptic potential
for different neuron models and checks whether their PSP peak
amplitudes match approximately.
The maximal PSP amplitude is computed for different synaptic time
constants to ensure that the scaling of the post-synaptic response is
consinstent between models.
Author: December 2012, Gewaltig
SeeAlso: testsuite::test_iaf_psp, testsuite::test_iaf_ps_dc_accuracy
*/
/unittest (6335) require
/unittest using
M_ERROR setverbosity
[ 0.5 1.0 2.0 5.0 15. ] /tau_syns Set % synaptic time constants to test
10. /emission Set % Time of the spike
% Parameters for conductance based models
<<
/E_L 0.0 % resting potential in mV
/g_L 30.0
/V_m 0.0 % initial membrane potential in mV
/V_th 30.0 % spike threshold in mV
/I_e 0.0 % DC current in pA
/E_ex 40.0
/E_Na 40.0
/E_in -40.0
/E_K -40.0
/C_m 250.0 % membrane capacity in pF
/V_m 0.0
/V_peak 50.0
>> /P_cond Set
% Parameters for current based models
<<
/tau_m 10.0
/E_L 0.0 % resting potential in mV
/V_m 0.0 % initial membrane potential in mV
/V_th 15.0 % spike threshold in mV
/I_e 0.0 % DC current in pA
/C_m 250.0 % membrane capacity in pF
>> /P_psc Set
/ComputePSP <<
/model /aeif_cond_alpha
/params P_cond
>> Options
/ComputePSP
{
/ComputePSP GetOptions begin
/tau_syn Set
ResetKernel
0 << /dict_miss_is_error false >> SetStatus
/spike_generator Create /sg Set
sg <<
/origin 50.0 % in ms
/spike_times [ 20.0 ] % in ms
/start 0.0 % in ms
/stop 50.0 % in ms
>> SetStatus
/voltmeter Create /vm Set
model Create /neuron Set
params /tau_syn_ex tau_syn put
neuron params SetStatus
sg neuron 1.5 1.0 Connect
vm neuron Connect
150.0 Simulate
/V_max 0.0 def
vm GetStatus /events get /V_m get
{
dup V_max gt { /V_max Set }{ pop } ifelse
} forall
V_max
end
} def
% Testing conductance based alpha response models
modeldict /aeif_cond_alpha known
{
(Testing /aeif_cond_alpha) =
/ComputePSP << /model /aeif_cond_alpha >> SetOptions
tau_syns { ComputePSP } Map
/ComputePSP << /model /iaf_cond_alpha >> SetOptions
tau_syns { ComputePSP } Map
sub {sqr} Map Mean 1.e-4 lt assert_or_die
(Testing /aeif_cond_exp) =
/ComputePSP << /model /aeif_cond_exp >> SetOptions
tau_syns { ComputePSP } Map
/ComputePSP << /model /iaf_cond_exp >> SetOptions
tau_syns { ComputePSP } Map
sub {sqr} Map Mean 1.e-4 lt assert_or_die
} if
modeldict /iaf_cond_exp_sfa_rr known
{
(Testing /iaf_cond_exp_sfa_rr ) =
/ComputePSP << /model /iaf_cond_exp_sfa_rr >> SetOptions
tau_syns { ComputePSP } Map
/ComputePSP << /model /iaf_cond_exp >> SetOptions
tau_syns { ComputePSP } Map
sub {sqr} Map Mean 1.e-4 lt assert_or_die
} if
/* This test fails due to inappropriate parametrization of the hh model
modeldict /hh_psc_alpha known
{
(Testing /hh_psc_alpha) =
/ComputePSP << /model /iaf_cond_alpha >> SetOptions
tau_syns { ComputePSP } Map
/ComputePSP << /model /hh_psc_alpha >> SetOptions
tau_syns { ComputePSP } Map
sub {sqr} Map Mean 1.e-4 lt assert_or_die
} if
*/