/*
* test_hh_phaseplane.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_hh_phaseplane - sli script for hh_psc_alpha model
Synopsis: (test_hh_phaseplane) run -> 'phaseplane.txt' & 'AP.txt'
Description:
test_hh_phaseplane makes a numerical phase-plane analysis of the Hodgkin-Huxley neuron
(iaf_psc_alpha). Dynamics is investigated in the V-n space (see remark below). A constant
DC can be specified and its influence on the nullclines can be studied.
Results are written into two files. 'phaseplane.txt' contains the phase-plane data as a
vector field and 'AP.txt' the trace of a single action potential as one possible
numerical solution in the vector field. The data files are used in the matlab-script hh_phaseplane.m
REMARK
To make the two-dimensional analysis possible, the (four-dimensional)
Hodgkin-Huxley formalism needs to be artificially reduced to two dimensions,
in this case by 'clamping' the two other variables, m an h, to
constant values (m_eq and h_eq).
Author: Schrader
SeeAlso: iaf_psc_exp, iaf_neuron, testsuite::test_iaf_i0, testsuite::test_iaf_i0_refractory, testsuite::test_iaf_dc
*/
% set externally applied current amplitude in pA
/amplitude 100. def
/dt 0.1 def % simulation step length [ms]
% open file
(phaseplane.txt) ofstream
{
/f Set
}
{
/test_hh_phaseplane /CouldNotOpenFile raiseerror
} ifelse
ResetKernel % clear all existing network elements
M_ERROR setverbosity
[0]
<<
/resolution dt
>> SetStatus
/hh_psc_alpha Create /neuron Set
% numerically obtain equilibrium state
1000 Simulate
neuron GetStatus /Act_m get /m_eq Set
neuron GetStatus /Act_h get /h_eq Set
neuron << /I_e amplitude >> SetStatus % apply external current
% scan state space
(scanning phase space) =
-100. 2. 40. {
/V Set
0.1 0.01 0.8 {
/n Set
% set V_m and n
neuron << /V_m V /Inact_n n /Act_m m_eq /Act_h h_eq >> SetStatus
% write state into file
f neuron GetStatus /V_m get print ( ) print neuron GetStatus /Inact_n get print ( ) print ;
% simulate a short while
dt Simulate
% write new state next to old state
f neuron GetStatus /V_m get V sub print ( ) print neuron GetStatus /Inact_n get n sub print endl ;
} for
} for
% flose first datafile
f close
% open file
(AP.txt) ofstream
{
/f Set
}
{
/test_hh_phaseplane /CouldNotOpenFile raiseerror
} ifelse
% set state for AP generation
neuron << /V_m -34. /Inact_n 0.2 /Act_m m_eq /Act_h h_eq >> SetStatus
(AP-trajectory) =
1 1 1000 {
% write state into file and simulate a bit
f neuron GetStatus /V_m get print ( ) print neuron GetStatus /Inact_n get print endl ;
neuron << /Act_m m_eq /Act_h h_eq >> SetStatus
dt Simulate
} for
% close second datafile
f close