class NeuronModels::TraubMiles¶
Overview¶
Hodgkin-Huxley neurons with Traub & Miles algorithm. More…
#include <neuronModels.h> class TraubMiles: public NeuronModels::Base { public: // typedefs typedef Snippet::ValueBase<7> ParamValues; typedef Models::VarInitContainerBase<4> VarValues; typedef Models::VarInitContainerBase<0> PreVarValues; typedef Models::VarInitContainerBase<0> PostVarValues; // methods static const NeuronModels::TraubMiles* getInstance(); virtual std::string getSimCode() const; virtual std::string getThresholdConditionCode() const; virtual StringVec getParamNames() const; virtual VarVec getVars() const; }; // direct descendants class TraubMilesAlt; class TraubMilesFast; class TraubMilesNStep;
Inherited Members¶
public: // typedefs typedef std::vector<std::string> StringVec; typedef std::vector<EGP> EGPVec; typedef std::vector<ParamVal> ParamValVec; typedef std::vector<DerivedParam> DerivedParamVec; typedef std::vector<Var> VarVec; // structs struct DerivedParam; struct EGP; struct ParamVal; struct Var; // methods virtual ~Base(); virtual StringVec getParamNames() const; virtual DerivedParamVec getDerivedParams() const; virtual VarVec getVars() const; virtual EGPVec getExtraGlobalParams() const; size_t getVarIndex(const std::string& varName) const; size_t getExtraGlobalParamIndex(const std::string& paramName) const; virtual std::string getSimCode() const; virtual std::string getThresholdConditionCode() const; virtual std::string getResetCode() const; virtual std::string getSupportCode() const; virtual Models::Base::ParamValVec getAdditionalInputVars() const; virtual bool isAutoRefractoryRequired() const;
Detailed Documentation¶
Hodgkin-Huxley neurons with Traub & Miles algorithm.
This conductance based model has been taken from Traub1991 and can be described by the equations:
where \(y_i= m, h, n\), and
and typical parameters are \(C=0.143\) nF, \(g_{{\rm leak}}= 0.02672\) \(\mu\) S, \(E_{{\rm leak}}= -63.563\) mV, \(g_{{\rm Na}}=7.15\) \(\mu\) S, \(E_{{\rm Na}}= 50\) mV, \(g_{{\rm {\rm K}}}=1.43\) \(\mu\) S, \(E_{{\rm K}}= -95\) mV.
It has 4 variables:
V
- membrane potential Em
- probability for Na channel activation mh
- probability for not Na channel blocking hn
- probability for K channel activation n
and 7 parameters:
gNa
- Na conductance in 1/(mOhms * cm^2)ENa
- Na equi potential in mVgK
- K conductance in 1/(mOhms * cm^2)EK
- K equi potential in mVgl
- Leak conductance in 1/(mOhms * cm^2)El
- Leak equi potential in mVCmem
- Membrane capacity density in muF/cm^2
Internally, the ordinary differential equations defining the model are integrated with a linear Euler algorithm and GeNN integrates 25 internal time steps for each neuron for each network time step. I.e., if the network is simulated at DT= 0.1
ms, then the neurons are integrated with a linear Euler algorithm with lDT= 0.004
ms. This variant uses IF statements to check for a value at which a singularity would be hit. If so, value calculated by L’Hospital rule is used.
Methods¶
virtual std::string getSimCode() const
Gets the code that defines the execution of one timestep of integration of the neuron model.
The code will refer to for the value of the variable with name “NN”. It needs to refer to the predefined variable “ISYN”, i.e. contain , if it is to receive input.
virtual std::string getThresholdConditionCode() const
Gets code which defines the condition for a true spike in the described neuron model.
This evaluates to a bool (e.g. “V > 20”).
virtual StringVec getParamNames() const
Gets names of of (independent) model parameters.
virtual VarVec getVars() const
Gets names and types (as strings) of model variables.