You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
48 lines
1.3 KiB
2 years ago
|
from __future__ import print_function
|
||
|
from neuron import h
|
||
|
import neuron as nrn
|
||
|
from ..util import nstomho
|
||
|
|
||
|
from .cell import Cell
|
||
|
|
||
|
__all__ = ["HH"]
|
||
|
|
||
|
|
||
|
class HH(Cell):
|
||
|
"""
|
||
|
Standard Hodgkin-Huxley mechanisms from NEURON
|
||
|
"""
|
||
|
|
||
|
def __init__(self, debug=False, message=None):
|
||
|
super(HH, self).__init__()
|
||
|
|
||
|
soma = h.Section(
|
||
|
name="HH_Soma_%x" % id(self)
|
||
|
) # one compartment of about 29000 um2
|
||
|
v_potassium = -80 # potassium reversal potential
|
||
|
v_sodium = 50 # sodium reversal potential
|
||
|
c_m = 1.0
|
||
|
scalefactor = 1.0 # This determines the relative size of the cell
|
||
|
rinsf = 1.0 # input resistance adjustment (also current...)
|
||
|
totcap = 20.0 # scalefactor * 1.0 # cap in pF for cell
|
||
|
effcap = totcap # sometimes we change capacitance - that's effcap
|
||
|
somaarea = totcap * 1e-6 / c_m # pf -> uF, cm = 1uf/cm^2 nominal
|
||
|
lstd = 1e4 * ((somaarea / 3.14159) ** 0.5) # convert from cm to um
|
||
|
|
||
|
soma.nseg = 1
|
||
|
soma.diam = lstd
|
||
|
soma.L = lstd
|
||
|
|
||
|
seg = soma
|
||
|
seg.insert("hh")
|
||
|
seg.insert("pas")
|
||
|
if debug:
|
||
|
if message is None:
|
||
|
print("<< Standard HH model created >>")
|
||
|
else:
|
||
|
print(message)
|
||
|
|
||
|
self.add_section(soma, "soma")
|
||
|
|
||
|
self.vm0 = -67.536
|