model of DCN pyramidal neuron
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.

41 lines
1.1 KiB

import numpy as np
from neuron import h
from cnmodel.util import reset
def test_max_open_probability():
reset(
raiseError=False
) # reset() fails as unable to remove all neuron objects, unless we ignore the error
sec = h.Section()
# Create AMPA and NMDA mechanisms
# AMPA uses mode=0; no rectification
apsd = h.AMPATRUSSELL(0.5, sec=sec)
# For NMDA we will hold the cell at +40 mV
npsd = h.NMDA_Kampa(0.5, sec=sec)
# And a presynaptic terminal to provide XMTR input
term = h.MultiSiteSynapse(0.5, sec=sec)
term.nZones = 1
h.setpointer(term._ref_XMTR[0], "XMTR", apsd)
h.setpointer(term._ref_XMTR[0], "XMTR", npsd)
h.celsius = 34.0
h.finitialize()
op = [[], []]
for i in range(100):
# force very high transmitter concentration for every timestep
term.XMTR[0] = 10000
sec.v = 40.0
h.fadvance()
op[0].append(apsd.Open)
op[1].append(npsd.Open)
assert np.allclose(max(op[0]), apsd.MaxOpen)
assert np.allclose(max(op[1]), npsd.MaxOpen)
if __name__ == "__main__":
test_max_open_probability()