CSIM: CbNeuron Class Reference

CbNeuron Class Reference

#include <cbneuron.h>

Inheritance diagram for CbNeuron:

SpikingNeuron MembranePatch Neuron MembranePatchSimple Forceable SynapseTarget Advancable csimClass CbHHOuINeuron CbHHOuNeuron CbNeuronSt HHNeuron TraubsHHNeuron bNACNeuron cACNeuron CbStOuNeuron dNACNeuron bNACOUNeuron cACOUNeuron dNACOUNeuron List of all members.

Detailed Description

A single compartment neuron with an arbitrary number of channels, conductance based, as well as current based synapses.

Model

The membrane voltage $V_m$ is governed by

\[ C_m \frac{V_m}{dt} = -\frac{V_m-E_m}{R_m} - \sum_{c=1}^{N_c} g_c(t) ( V_m - E_{rev}^c ) + \sum_{s=1}^{N_s} I_s(t) + \sum_{s=1}^{G_s} g_s(t)(V_m-E_{rev}^{(s)}) + I_{inject} \]

with the following meanings of symbols

  • $C_m$ membrane capacity (Farad)
  • $E_m$ reversal potential of the leak current (Volts)
  • $R_m$ membrane resistance (Ohm)
  • $N_c$ total number of channels (active + synaptic)
  • $g_c(t)$ current conductance of channel $c$ (Siemens)
  • $E_{rev}^c$ reversal potential of channel $c$ (Volts)
  • $N_s$ total number of current supplying synapses
  • $I_s(t)$ current supplied by synapse $s$ (Ampere)
  • $G_s$ total number of conductance based synapses
  • $g_s(t)$ coductance supplied by synapse $s$ (Siemens)
  • $E_{rev}^{(s)}$ reversal potential of synapse $s$ (Volts)
  • $I_{inject}$ injected current (Ampere)

At time $t=0$ $V_m$ ist set to $V_{init}$ .

The value of $E_m$ is calculated to compensate for ionic currents such that $V_m$ actually has a resting value of $V_\mathit{resting}$ .

Spiking and reseting the membrane voltage

If the membrane voltage $V_m$ exceeds the threshold $V_{tresh}$ the CbNeuron sends a spike to all its outgoing synapses.

The membrane voltage is reseted and clamped during the absolute refractory period of length $T_{refract}$ to $V_{reset}$ if the flag doReset=1. This is similar to a LIF neuron (see LifNeuron).

If the flag doReset=0 the membrane voltage is not reseted and the above equation is also applied during the absolute refractory period but the event of threshold crossing is transmitted as a spike to outgoing synapses. This is usfull if one includes channels which produce a real action potential (see HH_K_Channel and HH_Na_Channel) but one still just wants to communicate the spikes as events in time.

Implementation

The flag nummethod is set to 0 the exponential Euler method is used for numerical integration, otherwise the Crank-Nicolson. method.

Public Member Functions

  • void reset (void)
    Reset the CbNeuron.
  • virtual double nextstate (void)
    Calculate the new membrane voltage and check wheter Vm exceeds the threshold V_thresh.
  • virtual int isRefractory (void)
    Returns 1 (0) if the neuron is (not) in its absolute refractory period.
  • virtual int addIncoming (Advancable *s)
    Add an incoming channels.
  • virtual int addOutgoing (Advancable *s)
    Add an outgoing channels.

Public Attributes

  • float Vthresh
    If $V_m$ exceeds $V_{thresh}$ a spike is emmited. [units=V; range=(-10,100);].
  • float Vreset
    The voltage to reset $V_m$ to after a spike. [units=V; range=(-1,1);].
  • int doReset
    Flag which determines wheter $V_m$ should be reseted after a spike [units=flag; range=(0,1);];.
  • float Trefract
    Length of the absolute refractory period. [units=sec; range=(0,1);].
  • int nummethod
    Numerical method for the solution of the differential equation: Exp. Euler = 0, Crank-Nicolson = 1[units=flag; range=(0,1);];.

Protected Attributes

  • double Isyn
    synaptic input current
  • double Gsyn
    synaptic input conductance

Private Attributes

  • int nStepsInRefr
    If positive then this counter tells us how many time steps we are still in the absolute refractory period.
  • double C1
    Internal constants for the solution of the differential equation.
  • double GSummationPoint
    At this point all synaptic conductances are summed up.
  • bool spike
    W temporal place to store wether we want to spike or not.

Friends


Member Function Documentation

void CbNeuron::reset void   )  [virtual]
 

Reset the CbNeuron.

  • $V_m$ is set to $V_{init}$

  • $E_m$ is calculated such that for no input $V_m$ relaxes to $V_{resting}$ :
    • $E_m = R_m \cdot \left( V_{resting} G_{tot} - I_{ch} \right) $
    • $G_{tot} = \frac{1}{R_m} + \sum_{c=1}^{N_c} g_\infty(V_{resting})$
    • $I_{ch} = \sum_{c=1}^{N_c} g_\infty(V_{resting}) E_{rev}^c $

Reimplemented from MembranePatch.


 
(C) 2003, Thomas Natschläger last modified 07/10/2006