copying to personal repo

This commit is contained in:
Alan
2022-06-19 13:45:53 -05:00
commit bf2ffa7315
287 changed files with 54032 additions and 0 deletions

18
cnmodel/data/__init__.py Normal file
View File

@@ -0,0 +1,18 @@
"""
The cnmodel.data package contains information about ion channel densities,
connectivity, synaptic properties, and population distributions. These values
are used by the Cell, Synapse, Population, and related classes to determine
all model construction parameters.
Values are stored in python strings that contain human-readable tables with
provenance documentation.
"""
from ._db import get, get_source, add_table_data, report_changes, setval
from . import connectivity
from . import synapses
from . import populations
from . import ionchannels

321
cnmodel/data/_db.py Normal file
View File

@@ -0,0 +1,321 @@
# -*- encoding: utf-8 -*-
from __future__ import print_function
from collections import OrderedDict
import re
# Unified collection point for all empirically-determined biophysical
# values. Each value is a tuple (val, source).
DATA = OrderedDict()
def get(*args, **kwds):
""" Get a single value from the database using the supplied arguments
to query.
Optionally, one keyword argument may be a list of values, in which case
a dict will be returned containing {listval: dbval} pairs for each value in
the list.
"""
return _lookup(0, *args, **kwds)
def get_source(*args, **kwds):
""" Get the source of a single value from the database using the supplied
arguments to query.
Optionally, one keyword argument may be a list of values, in which case
a dict will be returned containing {listval: dbval} pairs for each value in
the list.
"""
return _lookup(1, *args, **kwds)
def print_table(table):
for k in DATA.keys():
if table == k[0]:
print("data key: ", k)
print(DATA[k][0])
def get_table_info(table):
"""
Return a dictionary of row and column names in the table
"""
tinfo = {}
for k in DATA.keys():
if table == k[0]:
for p in k:
if not isinstance(p, tuple):
continue
if p[0] not in tinfo.keys():
tinfo[p[0]] = []
if p[1] not in tinfo[p[0]]:
tinfo[p[0]].append(p[1])
return tinfo
def _lookup(ind, *args, **kwds):
key = mk_key(*args, **kwds)
if isinstance(key, dict):
data = {}
for k, key in key.items():
data[k] = DATA[key][ind]
return data
else:
return DATA[key][ind]
def setval(val, *args, **kwds):
key = mk_key(*args, **kwds)
oldval = None
# change_flag = False
if key in DATA:
# change_flag = True # any attempt to change key will set this
oldval = DATA[key] # save the previous stored value
# raise RuntimeError("Data key '%s' has already been set." % str(key))
DATA[key] = val
return oldval
def mk_key(*args, **kwds):
# Make a unique key (or list of keys) used to access values from the
# database. The generated key is independent of the order that arguments
# are specified.
#
# Optionally, one keyword argument may have a list of values, in which case
# the function will return a dict containing {listval: key} pairs for each
# value in the list.
listkey = None
for k, v in kwds.items():
if isinstance(v, (list, tuple)):
if listkey is not None:
raise TypeError("May only specify a list of values for one key.")
listkey = k
if listkey is None:
return _mk_key(*args, **kwds)
else:
keys = {}
for v in kwds[listkey]:
kwds[listkey] = v
keys[v] = _mk_key(*args, **kwds)
return keys
def _mk_key(*args, **kwds):
key = list(args) + list(kwds.items())
key.sort(key=lambda a: a[0] if isinstance(a, tuple) else a)
return tuple(key)
def add_table_data(name, row_key, col_key, data, **kwds):
"""
Read data like::
Description
------------------------------------
col1 col2 col3
row1 1.2 [1] 0.9e-6 [1] 27 [2]
row2 1.7 [1] [3]
row3 0.93 [2] 0.3e-6 3 [2]
------------------------------------
[1] citation 1
[2] citation 2
[3] missing because.
"""
if isinstance(data, str) and "\xc2" in data:
raise TypeError(
"Data table <%s> appears to contain unicode characters but"
"was not defined as unicode." % name
)
lines = data.split("\n")
# First, split into description, table, and sources using ----- lines
desc = []
table = []
while lines:
line = lines.pop(0)
# print ">", line
if re.match(r"\s*-+\s*$", line):
# print "match!"
break
desc.append(line)
while lines:
line = lines.pop(0)
# print ">", line
if re.match(r"\s*-+\s*$", line):
# print "match!"
break
table.append(line)
# print desc
# print table
# parse remaining lines as sources
sources = parse_sources(lines)
# print sources
#
# parse table
# table might be empty, so take care of that first.
if table == []:
return [] # no changes
while len(table[0].strip()) == 0:
table.pop(0)
spaces = [c == " " for c in table[0]]
cols = [0] + [i for i in range(1, len(spaces)) if spaces[i - 1] and not spaces[i]]
cols = cols + [max(map(len, table)) + 1]
# print spaces
# print cols
# Make sure columns are obeyed strictly
for i, line in enumerate(table):
for j, c in enumerate(cols[1:]):
if len(line) < c:
continue
if line[c - 1] != " ":
print("Table line with error: \n ", line)
raise Exception(
"Table <%s> line: %d, column: %s does not obey column boundaries."
% (name, i, j)
)
# Break table into cells
cells = []
for line in table:
if line.strip() != "":
cells.append(
[line[cols[i] : cols[i + 1]].strip() for i in range(len(cols) - 1)]
)
# print cells
# Extract row/column names
col_names = cells.pop(0)[1:]
row_names = [cells[i].pop(0) for i in range(len(cells))]
if len(set(row_names)) != len(row_names):
for n in set(row_names):
row_names.remove(n)
raise NameError("Duplicate row names: %s" % row_names)
# Parse cell values
for i in range(len(cells)):
for j in range(len(cells[0])):
cell = cells[i][j].strip()
m = re.match(r"([^\[]*)(\[([^\]]+)\])?", cell) # match like "0.7 [3]"
if m is None:
raise ValueError(
"Table cell (%d, %d) has bad format: '%s'" % (i, j, cell)
)
# parse value
# If the value contains '±' then a tuple is returned containing the values
# on either side.
val, _, source = m.groups()
# val = unicode(val) # python 2
val = str(val) # python 3
if val.strip() == "":
val = None
else:
parts = val.split(u"±")
vals = []
for p in parts:
try:
p = int(p)
except ValueError:
try:
p = float(p)
except ValueError:
try:
p = str(
p.strip()
) # allow strings to identify mechanisms also
except ValueError:
raise ValueError(
"Table cell (%d, %d) value has bad format: '%s'"
% (i, j, val)
)
vals.append(p)
if len(vals) == 1:
val = vals[0]
else:
val = tuple(vals)
# parse source
if source is not None:
try:
source = sources[source]
except KeyError:
raise ValueError(
"Table cell (%d, %d) has unknown source key: '%s'"
% (i, j, source)
)
cells[i][j] = (val, source)
changes = [] # a list of parameters that are changed if we are rewriting a table
for i, row in enumerate(row_names):
for j, col in enumerate(col_names):
kwds[row_key] = row
kwds[col_key] = col
oldval = setval(cells[i][j], name, **kwds)
if oldval is not None and oldval != cells[i][j]:
key = mk_key(name, **kwds)
changes.append(
{"key": key, "new": cells[i][j], "old": oldval, "name": name}
)
# changes.append({'name': name, 'row': row, 'col': col, 'new': cells[i][j], 'old': oldval})
return changes
def report_changes(changes):
"""
For changes to data tables, give user a readout
"""
if len(changes) > 0:
anychg = False
for ch in changes:
# print(' >>> Changing %s, %s from default (%s) to %s' % (ch['row'], ch['col'], str(ch['new'][0]), str(ch['old'][0])))
if str(ch["old"][0]) != str(ch["new"][0]):
if anychg is False:
print(
"\nWarning: Data Table '%s' (in memory) has been modified!"
% changes[0]["name"]
)
anychg = True
print(
" >>> Changing %s, from default (%s) to %s"
% (ch["key"], str(ch["old"][0]), str(ch["new"][0]))
)
def parse_sources(lines):
sources = {}
key = None
val = []
for l in lines:
l = l.lstrip()
m = re.match(r"\s*\[([^\]]+)\]\s+(.*)$", l)
if m is not None:
key = m.groups()[0]
sources[key] = m.groups()[1].strip()
else:
if key is None:
if l == "":
continue
raise ValueError(
"Incorrect sources format--got text without "
'citation index: "%s".' % l
)
sources[key] += "\n" + l
return sources
# parse_sources('''\n\n[1] source 1\n it's cool.\n[2] source 2 is not\n'''.split('\n'))

View File

@@ -0,0 +1,234 @@
# -*- encoding: utf-8 -*-
from ._db import add_table_data
#: Mouse synaptic convregence table
mouse_convergence = u"""
Convergence defines the average number of presynaptic cells of a particular
type (rows) that synapse onto a single postsynaptic cell of a particular
type (columns).
This connectivity matrix is currently incomplete.
Note: Bushy and pyramidal cells are known to have no (or very few)
collaterals within the CN, and so they are not listed as presynaptic cells in
this table. Octopus cells have collaterals (including in granule cell domains),
and should be added to this table when more data are available (Golding et al.,
J. Neurosci. 15: 3138, 1995)
----------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral
sgc 3.3±0.6 [2] 6.5±1.0 [2] 35±0 [3] 60±0 [2] 48±0 [5] 24±0 [5]
dstellate 7 [1] 20 [1] 3 [1] 0 [4] 15 [5] 15 [5]
tstellate 0 [6] 0 [6] 0 [6] 0 [6] 0 [6] 0 [6]
tuberculoventral 6 6 0 0 [4] 21 [5] 0 [7]
pyramidal 0 0 0 0 0 0
----------------------------------------------------------------------------------------------
[1] Guesses based on Campagnola & Manis 2014
[2] Cao, X. & Oertel, D. (2010). Auditory nerve fibers excite targets through
synapses that vary in convergence, strength, and short-term plasticity.
Journal of Neurophysiology, 104(5), 230820.
Xie and Manis (unpublished): max EPSC = 3.4 ± 1.5 nA with ~0.3 nA steps
(Cao and Oertel, 2010) = ~11 AN inputs. However neither we nor Cao and Oertel
see that many clear steps in the responses, so use lower bound.
[3] Lower bound based on estimates from unpublished data Xie and Manis (2017)
Assumptions: No discernable step sizes when increasing shock intensity
at ANFs in radiate multipolars (dstellate)
Measured: 0.034 ± 15 nA sEPSC @ -70 mV
Measured: Maximal current from AN stim = 1.2 ± 0.7 nA @ -70 mV
Assuming that each AN provides 1 input, then N = ~35
[4] Octopus cells are devoid of inhibitory input (Golding et al., J. Neurosci., 1995)
[5] Convergence from Hancock and Voigt, Ann. Biomed. Eng. 27, 1999 and Zheng and Voigt,
Ann. Biomed. Eng., 34, 2006. Numbers are based on models for cat and gerbil,
respectively. Adjusted to 1/2 to avoid overexciting TV cells in network model.
[6] tstellate cells have collaterals within the CN. It has been proposed that they
provide auditory-driven input to the DCN (Oertel and Young, ), and also synapse
within the VCN (Oertel, SFN abstract). These parameters may need to be adjusted
once the convergence and strength is known.
[7] In the models of Hancock and Voigt (1999) and Zheng and Voigt (2006), the TV cells
have no connections with each other. However, Kuo et al. (J. Neurophysiol., 2015)
did see connections between pairs of TV cells in the mouse.
"""
add_table_data(
"convergence",
row_key="pre_type",
col_key="post_type",
species="mouse",
data=mouse_convergence,
)
mouse_convergence_range = u"""
The convergence range table describes, for each type of connection from
presynaptic (rows) to postsynaptic (columns), the variance in frequency of
presynaptic cells relative to the postsynaptic cell.
All values are expressed as the sigma for a lognormal distribution scaled to
the CF of the postsynaptic cell.
----------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral
sgc 0.05 [1] 0.1 [1] 0.4 [1] 0.5 [5] 0.1 [1] 0.1 [1]
dstellate 0.208 [2] 0.347 [2] 0.5 [1] 0 0.2 [1] 0.2 [1]
tstellate 0.1 [4] 0.1 [4] 0 0 0 0
tuberculoventral 0.069 [3] 0.111 [3] 0 0 0.15 [1] 0
pyramidal 0 0 0 0 0 0
----------------------------------------------------------------------------------------------
[1] Guess based on axonal / dendritic morphology.
[2] Calculated from Campagnola & Manis 2014 fig. 7C
Distribution widths are given in stdev(octaves), so we multiply by ln(2) to
get the sigma for a lognormal distribution.
DS->Bushy: ln(2) * 0.3 = 0.208
DS->TStellate: ln(2) * 0.5 = 0.347
[3] Calculated from Campagnola & Manis 2014 fig. 9C
Distribution widths are given in stdev(octaves), so we multiply by ln(2) to
get the sigma for a lognormal distribution.
TV->Bushy: ln(2) * 0.10 = 0.069
TV->TStellate: ln(2) * 0.16 = 0.111
[4] Guess based on very limited information in Campagnola & Manis 2014 fig. 12
[5] Octopus cells get a wide range of ANF input (but weak on a per input basis)
For example, see McGinley et al., 2012 or Spencer et al., 2012.
"""
add_table_data(
"convergence_range",
row_key="pre_type",
col_key="post_type",
species="mouse",
data=mouse_convergence_range,
)
# --------------------------------------------------------------------------------------------
guineapig_convergence = u"""
Convergence defines the average number of presynaptic cells of a particular
type (rows) that synapse onto a single postsynaptic cell of a particular
type (columns).
This connectivity matrix is currently incomplete.
Note: Bushy and pyramidal cells are known to have no (or very few)
collaterals within the CN, and so they are not listed as presynaptic cells in
this table. Octopus cells have collaterals (including in granule cell domains),
and should be added to this table when more data are available (Golding et al.,
J. Neurosci. 15: 3138, 1995)
This table is just a guess... using mouse data...
----------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral mso
sgc 3.3±0.6 [2] 6.5±1.0 [2] 35±0 [3] 60±0 [2] 48±0 [5] 24±0 [5] 0
bushy 0 0 0 0 0 0 12 [8]
dstellate 7 [1] 20 [1] 3 [1] 0 [4] 15 [5] 15 [5] 0
tstellate 0 [6] 0 [6] 0 [6] 0 [6] 0 [6] 0 [6] 0
tuberculoventral 6 6 0 0 [4] 21 [5] 0 [7] 0
pyramidal 0 0 0 0 0 0 0
----------------------------------------------------------------------------------------------
[1] Guesses based on Campagnola & Manis 2014 (using mouse data on guinea pig cells)
[2] Cao, X. & Oertel, D. (2010). Auditory nerve fibers excite targets through
synapses that vary in convergence, strength, and short-term plasticity.
Journal of Neurophysiology, 104(5), 230820.
Xie and Manis (unpublished): max EPSC = 3.4 ± 1.5 nA with ~0.3 nA steps
(Cao and Oertel, 2010) = ~11 AN inputs. However neither we nor Cao and Oertel
see that many clear steps in the responses, so use lower bound.
[3] Lower bound based on estimates from unpublished data Xie and Manis (2017)
Assumptions: No discernable step sizes when increasing shock intensity
at ANFs in radiate multipolars (dstellate)
Measured: 0.034 ± 15 nA sEPSC @ -70 mV
Measured: Maximal current from AN stim = 1.2 ± 0.7 nA @ -70 mV
Assuming that each AN provides 1 input, then N = ~35
[4] Octopus cells are devoid of inhibitory input (Golding et al., J. Neurosci., 1995)
[5] Convergence from Hancock and Voigt, Ann. Biomed. Eng. 27, 1999 and Zheng and Voigt,
Ann. Biomed. Eng., 34, 2006. Numbers are based on models for cat and gerbil,
respectively. Adjusted to 1/2 to avoid overexciting TV cells in network model.
[6] tstellate cells have collaterals within the CN. It has been proposed that they
provide auditory-driven input to the DCN (Oertel and Young, ), and also synapse
within the VCN (Oertel, SFN abstract). These parameters may need to be adjusted
once the convergence and strength is known.
[7] In the models of Hancock and Voigt (1999) and Zheng and Voigt (2006), the TV cells
have no connections with each other. However, Kuo et al. (J. Neurophysiol., 2015)
did see connections between pairs of TV cells in the mouse.
[8] Bushy convergence to MSO is a guess
"""
add_table_data(
"convergence",
row_key="pre_type",
col_key="post_type",
species="guineapig",
data=guineapig_convergence,
)
guineapig_convergence_range = u"""
The convergence range table describes, for each type of connection from
presynaptic (rows) to postsynaptic (columns), the variance in frequency of
presynaptic cells relative to the postsynaptic cell.
All values are expressed as the sigma for a lognormal distribution scaled to
the CF of the postsynaptic cell.
*** This table is just a guess - using data from mouse... ****
-------------------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral mso
sgc 0.05 [1] 0.1 [1] 0.4 [1] 0.5 [5] 0.1 [1] 0.1 [1] 0
bushy 0 0 0 0 0 0 0.05 [6]
dstellate 0.208 [2] 0.347 [2] 0.5 [1] 0 0.2 [1] 0.2 [1] 0
tstellate 0.1 [4] 0.1 [4] 0 0 0 0 0
tuberculoventral 0.069 [3] 0.111 [3] 0 0 0.15 [1] 0 0
pyramidal 0 0 0 0 0 0 0
--------------------------------------------------------------------------------------------------------
[1] Guess based on axonal / dendritic morphology.
[2] Calculated from Campagnola & Manis 2014 fig. 7C (Using mouse data on guinea pig cells)
Distribution widths are given in stdev(octaves), so we multiply by ln(2) to
get the sigma for a lognormal distribution.
DS->Bushy: ln(2) * 0.3 = 0.208
DS->TStellate: ln(2) * 0.5 = 0.347
[3] Calculated from Campagnola & Manis 2014 fig. 9C (Using mouse data on guinea pig cells)
Distribution widths are given in stdev(octaves), so we multiply by ln(2) to
get the sigma for a lognormal distribution.
TV->Bushy: ln(2) * 0.10 = 0.069
TV->TStellate: ln(2) * 0.16 = 0.111
[4] Guess based on very limited information in Campagnola & Manis 2014 fig. 12
[5] Octopus cells get a wide range of ANF input (but weak on a per input basis)
For example, see McGinley et al., 2012 or Spencer et al., 2012.
[6] MSO convergence from bushy cells is a guess.
"""
add_table_data(
"convergence_range",
row_key="pre_type",
col_key="post_type",
species="guineapig",
data=guineapig_convergence_range,
)

582
cnmodel/data/ionchannels.py Normal file
View File

@@ -0,0 +1,582 @@
# -*- encoding: utf-8 -*-
from ._db import add_table_data
"""
Ion channel density tables
All of the ion channel densities for the models implemented in cnmodel
are (or should be) stated here, and should not be modified in the
cnmodel code itself.
"""
add_table_data(
"RM03_channels",
row_key="field",
col_key="model_type",
species="guineapig",
data=u"""
This table describes the ion channel densities (and voltage shifts if necessary)
for different cell types in the original Rothman Manis 2003 model.
Data from Table 1, except for "octopus" cells, which is modified (see note 3)
map to cell: bushy-II bushy-II-I tstellate tstellate-t bushy-I-II octopus
-----------------------------------------------------------------------------------------------------------------------------------
II II-I I-c I-t I-II II-o
nacn_gbar 1000. [1] 1000. [1] 1000. [1] 1000. [1] 1000. [2] 1000. [3]
kht_gbar 150.0 [1] 150.0 [1] 150.0 [1] 80.0 [1] 150.0 [2] 150.0 [3]
klt_gbar 200.0 [1] 35.0 [1] 0.0 [1] 0.0 [1] 20.0 [2] 1000. [3]
ka_gbar 0.0 [1] 0.0 [1] 0.0 [1] 65.0 [1] 0.0 [2] 0.0 [3]
ih_gbar 20.0 [1] 3.5 [1] 0.5 [1] 0.5 [1] 2.0 [2] 30.0 [3]
leak_gbar 2.0 [1] 2.0 [1] 2.0 [1] 2.0 [1] 2.0 [2] 2.0 [3]
leak_erev -65 [1] -65 [1] -65 [1] -65 [1] -65 [2] -65 [3]
na_type nacn [1] nacn [1] nacn [1] nacn [1] nacn [2] nacn [3]
ih_type ihvcn [1] ihvcn [1] ihvcn [1] ihvcn [1] ihvcn [2] ihvcn [3]
soma_Cap 12.0 [1] 12.0 [1] 12.0 [1] 12.0 [1] 12.0 [2] 25.0 [3]
e_k -84 [1] -84 [1] -84 [1] -84 [2] -84 [2] -84 [2]
e_na 50. [1] 50. [1] 50. [1] 50. [2] 50. [2] 50. [2]
ih_eh -43 [1] -43 [1] -43 [1] -43 [2] -43 [2] -43 [2]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Rothman and Manis, 2003
Age "adult", Temperature=22C
Units are nS.
[2] Rothman and manis, 2003, model I-II
Some low-voltage K current, based on observations of
a single spike near threshold and regular firing for higher
currents (Xie and Manis, 2017)
[3] Derived from Rothman and Manis, 2003, model II
Large amounts of low-voltage K current, and elevated HCN. Conductances
based on Rothman and Manis, 2003; concept from Cao and Oertel
[4] Designation for elevated LTK and Ih for octopus cells
""",
)
add_table_data(
"XM13_channels",
row_key="field",
col_key="model_type",
species="mouse",
data=u"""
This table describes the REFERENCE ion channel densities (and voltage shifts if necessary)
for different cell types based on the Xie and Manis 2013 models for mouse.
The REFERENCE values are applied to "point" models, and to the soma of
compartmental models.
The names of the mechanisms must match a channel mechanism (Neuron .mod files)
and the following _(gbar, vshift, etc) must match an attribute of that channel
that can be accessed.
-----------------------------------------------------------------------------------------------------------------------------------
II II-I I-c I-II I-t
nav11_gbar 0000. [4] 0000. [4] 000. [4] 0. [4] 3000. [4]
nacn_gbar 1000. [1] 1000. [1] 3000. [1] 0000. [2] 0000. [1]
na_gbar 1000. [1] 1000. [1] 3000. [1] 1800. [2] 0000. [1]
kht_gbar 58.0 [1] 58.0 [1] 500.0 [1] 150.0 [2] 500.0 [1]
klt_gbar 80.0 [1] 20.0 [1] 0.0 [1] 14.0 [3] 0.0 [1]
ka_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [2] 125.0 [1]
ihvcn_gbar 30.0 [1] 30.0 [1] 18.0 [1] 2.0 [2] 18.0 [1]
leak_gbar 2.0 [1] 2.0 [1] 8.0 [1] 2.0 [2] 8.0 [1]
leak_erev -65 [1] -65 [1] -65 [1] -65 [2] -65 [1]
na_type nacn [1] nav11 [1] nacn [1] na [3] nav11 [1]
ih_type ihvcn [1] ihvcn [1] ihvcn [1] ihvcn [2] ihvcn [1]
soma_Cap 26.0 [1] 26.0 [1] 25.0 [1] 25.0 [2] 25.0 [1]
nav11_vshift 4.3 [1] 4.3 [1] 4.3 [1] 4.3 [1] 4.3 [1]
e_k -84 [1] -84 [1] -84 [1] -70 [3] -84 [1]
e_na 50. [1] 50. [1] 50. [1] 55. [3] 50. [1]
ih_eh -43 [1] -43 [1] -43 [1] -43 [2] -43 [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Uses channels from Rothman and Manis, 2003
Conductances are for Mouse bushy cells
Xie and Manis, 2013
Age "adult", Temperature=34C
Units are nS.
[2] Rothman and manis, 2003, model I-II
Some low-voltage K current, based on observations of
a single spike near threshold and regular firing for higher
currents (Xie and Manis, 2017)
[3] These values for the I-II (dstellate) are from the original checkpoint test
for cnmodel 12/2017.
[4] nav11 channels were used in original Xie and Manis (2013) ms, but are not
used for mice in the master distribution of cnmodel, which used only the nacn
channels.
""",
)
add_table_data(
"XM13_channels_compartments",
row_key="parameter",
col_key="compartment",
species="mouse",
model_type="II",
data=u"""
This table describes the ion channel densities relative to somatic densities,
e.g., relative to REFERENCE densities in the table XM13_channels.
and voltage shifts, for different compartments of the specified neuron,
Conductances will be calculated from the Model derived from Xie and Manis 2013 for mouse
(data table: mGVC_channels).
------------------------------------------------------------------------------------------------------------------------------------------------------------------
axon unmyelinatedaxon myelinatedaxon initialsegment hillock soma dendrite primarydendrite secondarydendrite
nav11_gbar 3.0 [1] 3.0 [1] 0.0 [1] 5.0 [1] 5.0 [1] 1.0 [1] 0.5 [1] 0.50 [1] 0.25 [1]
kht_gbar 1.0 [1] 2.0 [1] 0.01 [1] 2.0 [1] 2.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
klt_gbar 1.0 [1] 1.0 [1] 0.01 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
ihvcn_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.5 [1] 0.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_gbar 1.0 [1] 0.25 [1] 0.25e-3 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_erev -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1]
nav11_vshift 4.3 [1] 4.3 [1] 0.0 [1] 4.3 [1] 4.3 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1]
na_type nav11 nav11 nav11 nav11 nav11 nav11 nav11 nav11 nav11
ih_type ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
[1] Scaling is relative to soma scaling. Numbers are estimates based on general distribution from literature on cortical neurons.
""",
)
# ***** BEGINNING OF XM13_Channels for nacncoop version of model
add_table_data(
"XM13nacncoop_channels",
row_key="field",
col_key="model_type",
species="mouse",
data=u"""
This table describes the REFERENCE ion channel densities (and voltage shifts if necessary)
for different cell types based on the Xie and Manis 2013 models for mouse, but using
the nacncoop mechanism (coooperative sodium channels)
!!!!!!!!!!!! USAGE OF THIS TABLE SHOULD BE CONSIDERED EXPERIMENTAL !!!!!!!!!!!!!!
The REFERENCE values are applied to "point" models, and to the soma of
compartmental models.
The names of the mechanisms must match a channel mechanism (Neuron .mod files)
and the following _(gbar, vshift, etc) must match an attribute of that channel
that can be accessed.
-----------------------------------------------------------------------------------------------------------------------------------
II II-I I-c I-II I-t
nacncoop_gbar 3000. [4] 1000. [4] 1000. [4] 1000. [4] 1000. [4]
kht_gbar 58.0 [1] 58.0 [1] 500.0 [1] 150.0 [2] 500.0 [1]
klt_gbar 80.0 [1] 20.0 [1] 0.0 [1] 14.0 [3] 0.0 [1]
ka_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [2] 125.0 [1]
ihvcn_gbar 30.0 [1] 30.0 [1] 18.0 [1] 2.0 [2] 18.0 [1]
leak_gbar 2.0 [1] 2.0 [1] 8.0 [1] 2.0 [2] 8.0 [1]
leak_erev -65 [1] -65 [1] -65 [1] -65 [2] -65 [1]
na_type nacncoop [1] nacncoop [1] nacncoop [1] nacncoop [3] nacncoop [1]
ih_type ihvcn [1] ihvcn [1] ihvcn [1] ihvcn [2] ihvcn [1]
soma_Cap 26.0 [1] 26.0 [1] 25.0 [1] 25.0 [2] 25.0 [1]
nacncoop_vshift 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1]
e_k -84 [1] -84 [1] -84 [1] -70 [3] -84 [1]
e_na 50. [1] 50. [1] 50. [1] 55. [3] 50. [1]
ih_eh -43 [1] -43 [1] -43 [1] -43 [2] -43 [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Uses channels from Xie and Manis, 2013
Age "adult", Temperature=34C
Units are nS.
[2] Rothman and manis, 2003, model I-II
Some low-voltage K current, based on observations of
a single spike near threshold and regular firing for higher
currents (Xie and Manis, 2017)
[3] These values for the I-II (dstellate) are from the original checkpoint test
for cnmodel 12/2017.
[4] nav11 channels were used in original Xie and Manis (2013) ms,
However, this version uses cooperative na channels for faster activation
""",
)
add_table_data(
"XM13nacncooop_channels_compartments",
row_key="parameter",
col_key="compartment",
species="mouse",
model_type="II",
data=u"""
!!!!!!!!!!!! USAGE OF THIS TABLE SHOULD BE CONSIDERED EXPERIMENTAL !!!!!!!!!!!!!!
This table describes the ion channel densities relative to somatic densities,
e.g., relative to REFERENCE densities in the table XM13_nacncoop_channels.
and voltage shifts, for different compartments of the specified neuron,
Conductances will be calculated from the Model derived from Xie and Manis 2013 for mouse
------------------------------------------------------------------------------------------------------------------------------------------------------------------
axon unmyelinatedaxon myelinatedaxon initialsegment hillock soma dendrite primarydendrite secondarydendrite
nacncoop_gbar 3.0 [1] 3.0 [1] 0.0 [1] 5.0 [1] 5.0 [1] 1.0 [1] 0.5 [1] 0.50 [1] 0.25 [1]
kht_gbar 1.0 [1] 2.0 [1] 0.01 [1] 2.0 [1] 2.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
klt_gbar 1.0 [1] 1.0 [1] 0.01 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
ihvcn_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.5 [1] 0.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_gbar 1.0 [1] 0.25 [1] 0.25e-3 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_erev -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1]
nacncoop_vshift 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1]
na_type nacncoop nacncoop nacncoop nacncoop nacncoop nacncoop nacncoop nacncoop nacncoop
ih_type ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
[1] Scaling is relative to soma scaling. Numbers are estimates based on general distribution from literature on cortical neurons.
""",
)
# ***** END OF XM13_Channels for nacncoop version of model
add_table_data(
"mGBC_channels",
row_key="field",
col_key="model_type",
species="mouse",
data=u"""
This table describes the REFERENCE ion channel densities (and voltage shifts if necessary)
for different cell types based on the Xie and Manis 2013 models for mouse.
The REFERENCE values are applied to "point" models, and to the soma of
compartmental models.
The names of the mechanisms must match a channel mechanism (Neuron .mod files)
and the following _(gbar, vshift, etc) must match an attribute of that channel
that can be accessed.
-----------------------------------------------------------------------------------------------------------------------------------
II II-I I-c I-II I-t
nav11_gbar 1600. [1] 1600. [1] 3000. [1] 1600. [2] 3000. [1]
kht_gbar 58.0 [1] 58.0 [1] 500.0 [1] 150.0 [2] 500.0 [1]
klt_gbar 80.0 [1] 14.0 [1] 0.0 [1] 20.0 [2] 0.0 [1]
ka_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [2] 125.0 [1]
ihvcn_gbar 30.0 [1] 30.0 [1] 18.0 [1] 2.0 [2] 18.0 [1]
leak_gbar 2.0 [1] 2.0 [1] 8.0 [1] 2.0 [2] 8.0 [1]
leak_erev -65 [1] -65 [1] -65 [1] -65 [2] -65 [1]
na_type nav11 [1] nav11 [1] nav11 [1] nav11 [1] nav11 [1]
ih_type ihvcn [1] ihvcn [1] ihvcn [1] ihvcn [2] ihvcn [1]
soma_Cap 26.0 [1] 26.0 [1] 25.0 [1] 26.0 [2] 25.0 [1]
nav11_vshift 4.3 [1] 4.3 [1] 4.3 [1] 4.3 [1] 4.3 [1]
e_k -84 [1] -84 [1] -84 [1] -84 [2] -84 [1]
e_na 50. [1] 50. [1] 50. [1] 50. [2] 50. [1]
ih_eh -43 [1] -43 [1] -43 [1] -43 [2] -43 [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Uses channels from Rothman and Manis, 2003, except for Na channels
Conductances are for Mouse bushy cells
Xie and Manis, 2013
Age "adult", Temperature=34C
Units are nS.
[2] Rothman and Manis, 2003, model I-II
Some low-voltage K current, based on observations of
a single spike near threshold and regular firing for higher
currents (Xie and Manis, 2017)
""",
)
add_table_data(
"mGBC_channels_compartments",
row_key="parameter",
col_key="compartment",
species="mouse",
model_type="II",
data=u"""
This table describes the ion channel densities relative to somatic densities,
e.g., relative to REFERENCE densities in the table XM13_channels.
and voltage shifts, for different compartments of the specified neuron,
Conductances will be calculated from the Model for Xie and Manis 2013 for mouse
(data table: XM13_channels).
------------------------------------------------------------------------------------------------------------------------------------------------------------------
axon unmyelinatedaxon myelinatedaxon initialsegment hillock soma dendrite primarydendrite secondarydendrite
nav11_gbar 3.0 [1] 3.0 [1] 0.0 [1] 3.0 [1] 2.0 [1] 1.0 [1] 0.25 [1] 0.25 [1] 0.25 [1]
kht_gbar 1.0 [1] 2.0 [1] 0.01 [1] 2.0 [1] 2.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
klt_gbar 1.0 [1] 1.0 [1] 0.01 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.25 [1]
ihvcn_gbar 0.0 [1] 0.0 [1] 0.0 [1] 0.5 [1] 0.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_gbar 1.0 [1] 0.25 [1] 0.25e-3 [1] 1.0 [1] 1.0 [1] 1.0 [1] 0.5 [1] 0.5 [1] 0.5 [1]
leak_erev -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1] -65. [1]
nav11_vshift 4.3 [1] 4.3 [1] 0.0 [1] 4.3 [1] 4.3 [1] 0.0 [1] 0.0 [1] 0.0 [1] 0.0 [1]
na_type nav11 nav11 nav11 nav11 nav11 nav11 nav11 nav11 nav11
ih_type ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn ihvcn
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
[1] Scaling is relative to soma scaling. Numbers are estimates based on general distribution from literature on cortical neurons.
""",
)
add_table_data(
"POK_channels",
row_key="field",
col_key="cell_type",
species="rat",
data=u"""
This table describes the ion channel densities and voltage shifts for rat DCN pyramidal cells,
from Kanold and Manis, 2001
------------------------------------------------------------------------------------------------------------------------------------------
pyramidal
soma_napyr_gbar 350.0 [1]
soma_nap_gbar 0.
soma_kdpyr_gbar 80.0 [1]
soma_kcnq_gbar 0.
soma_kif_gbar 150.0 [1]
soma_kis_gbar 40.0 [1]
soma_ihpyr_gbar 2.8 [1]
soma_leak_gbar 2.8 [1]
soma_leak_erev -62.0 [1]
soma_e_na 50. [1]
soma_e_k -81.5 [1]
soma_e_h -43.0 [1]
soma_natype napyr
soma_Cap 12 [1]
------------------------------------------------------------------------------------------------------------------------------------------
[1] Kanold and Manis, 1999, 2001, 2005
Age P11-14, Temperature=22C
Units are nS.
[2] Adjustable q10 added for fitting
soma_ihpyr_adj_q10 1.0 [2] (removed for testing)
""",
)
add_table_data(
"CW_channels",
row_key="field",
col_key="cell_type",
species="mouse",
data=u"""
This table describes the ion channel densities and voltage shifts
for a mouse carthweel cell model.
Ad-hoc model, based on a Purkinje cell model (ref [1]).
-----------------------------------------------------------------------------------------------------------------------------------
cartwheel
soma_narsg_gbar 500.0 [1]
soma_bkpkj_gbar 2.0
soma_kpkj_gbar 100. [1]
soma_kpkj2_gbar 50.
soma_kpkjslow_gbar 150 [1]
soma_kpksk_gbar 25.0 [1]
soma_lkpkj_gbar 5.0 [1]
soma_hpkj_gbar 5.0 [1]
soma_e_na 50. [1]
soma_e_k -80.0 [1]
soma_hpkj_eh -43.0 [1]
soma_lkpkj_e -65.0 [1]
soma_e_ca 50.
soma_na_type narsg
soma_pcabar 0.00015 [1]
soma_Dia 18
-----------------------------------------------------------------------------------------------------------------------------------
[1] Channels from Khaliq, Gouwens and Raman, J. Neurosci. 2003
Conductance levels modified.
""",
)
add_table_data(
"TV_channels",
row_key="field",
col_key="cell_type",
species="mouse",
data=u"""
This table describes the ion channel densities and voltage shifts
for a mouse tuberculoventral cell model.
Ad-hoc model, based on the t-stellate cell model, but adjusted
to match the data from Kuo and Trussell.
-----------------------------------------------------------------------------------------------------------------------------------
TVmouse
soma_nacncoop_gbar 5800.0 [2]
soma_kht_gbar 400.0 [1]
soma_ihvcn_gbar 2.5 [2]
soma_ka_gbar 65.0 [1]
soma_leak_gbar 4.5 [1]
soma_leak_erev -72.0 [1]
soma_e_na 50. [1]
soma_e_k -81.5 [1]
soma_ihvcn_eh -43.0 [1]
soma_na_type nacncoop [2]
soma_Cap 35 [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Values obtained from brute force runs and comparision to
FI curve from Kuo, Lu and Trussell, J Neurophysiol. 2012 Aug 15;
108(4): 11861198.
[2] Cooperative sodium channel model, based on (see the mechanisms folder)
concepts and implementation similar to Oz et al. J.Comp. Neurosci. 39: 63, 2015,
and Huang et al., PloSOne 7:e37729, 2012.
""",
)
add_table_data(
"sgc_mouse_channels",
row_key="field",
col_key="cell_type",
species="mouse",
data=u"""
This table describes the ion channel densities (and voltage shifts if necessary)
for SGC cells, based on
-----------------------------------------------------------------------------------------------------------------------------------
sgc-a sgc-bm
sgc_name a bm
soma_na_gbar 350. [2] 350. [2]
soma_kht_gbar 58.0 [1] 58.0 [1]
soma_klt_gbar 80.0 [1] 80.0 [1]
soma_ihap_gbar 3.0 [3] 0.0 [1]
soma_ihap_eh -41.0 [3] -41.0 [3]
soma_ihbm_gbar 0.0 [3] 3.0 [3]
soma_ihbm_eh -41.0 [3] -41.0 [3]
soma_leak_gbar 2.0 [1] 2.0 [1]
soma_leak_erev -65 [1] -65 [1]
soma_na_type jsrna [2] jsrna [2]
soma_Cap 12.0 [1] 12.0 [1]
soma_e_k -84 [1] -84 [1]
soma_e_na 50. [1] 50. [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Model is based on the mouse bushy cell model (XM13, above),
but with a fast sodium channel from Rothman et al, 1993. and Ih currents
from Liu et al. 2014
[2] Sodium channel from Rothman, Young and Manis, J Neurophysiol. 1993 Dec;70(6):2562-83.
[3] Ih Currents from Liu, Manis, Davis, J Assoc Res Otolaryngol. 2014 Aug;15(4):585-99.
doi: 10.1007/s10162-014-0446-z. Epub 2014 Feb 21.
Age "P10" (cultured SGC cells), Original data temperature=22C.
Units are nS.
""",
)
add_table_data(
"sgc_guineapig_channels",
row_key="field",
col_key="cell_type",
species="guineapig",
data=u"""
This table describes the ion channel densities (and voltage shifts if necessary)
for a model SGC cell, which is based on a bushy cell with a different Na channel.
-----------------------------------------------------------------------------------------------------------------------------------
sgc-a sgc-bm
sgc_name a bm
soma_na_gbar 1000. [2] 1000. [2]
soma_kht_gbar 150.0 [1] 150.0 [1]
soma_klt_gbar 200.0 [1] 200.0 [1]
soma_ihap_gbar 3.0 [3] 0.0 [3]
soma_ihap_eh -41.0 [3] -41.0 [3]
soma_ihbm_gbar 0.0 [3] 3.0 [3]
soma_ihbm_eh -41.0 [3] -41.0 [3]
soma_leak_gbar 2.0 [1] 2.0 [1]
soma_leak_erev -65 [1] -65 [1]
soma_na_type jsrna [2] jsrna [2]
soma_Cap 12.0 [1] 12.0 [1]
soma_e_k -84 [1] -84 [1]
soma_e_na 50. [1] 50. [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Model is based on the guinea pig bushy cell model (RM03, above),
but with a fast sodium channel from Rothman et al, 1993. and Ih currents
from Liu et al. 2014
[2] Sodium channel from Rothman, Young and Manis, J Neurophysiol. 1993 Dec;70(6):2562-83.
[3] Ih Currents from Liu, Manis, Davis, J Assoc Res Otolaryngol. 2014 Aug;15(4):585-99.
doi: 10.1007/s10162-014-0446-z. Epub 2014 Feb 21.
Age "P10" (cultured SGC cells), Temperature=22C.
Units are nS.
""",
)
add_table_data(
"MSO_principal_channels",
row_key="field",
col_key="cell_type",
species="guineapig",
data=u"""
This table describes the ion channel densities
for a putative MSO principal neuron based on the original Rothman Manis 2003 model for bushy cells.
-----------------------------------------------------------------------------------------------------------------------------------
MSO-principal
MSO_name Principal
soma_na_gbar 1000. [1]
soma_kht_gbar 150.0 [1]
soma_klt_gbar 200.0 [1]
soma_ka_gbar 0.0 [1]
soma_ih_gbar 20.0 [1]
soma_leak_gbar 2.0 [1]
soma_leak_erev -65 [1]
soma_na_type nacn [1]
soma_ih_type ihvcn [1]
soma_Cap 12.0 [1]
soma_e_k -84 [1]
soma_e_na 50. [1]
soma_ih_eh -43 [1]
-----------------------------------------------------------------------------------------------------------------------------------
[1] This MSO neuron model is basied on Rothman and Manis, 2003 bushy cell, type II
Age "adult", Temperature=22C
Units are nS.
""",
)

View File

@@ -0,0 +1,37 @@
# -*- encoding: utf-8 -*-
from ._db import add_table_data
add_table_data(
"populations",
row_key="field",
col_key="cell_type",
species="mouse",
data=u"""
-----------------------------------------------------------------------------------------------------
sgc bushy tstellate dstellate octopus pyramidal tuberculoventral
n_cells 10000 [1] 6500 [2] 6500 [2] 650 [3] 5000 3000 5000
cf_min 2000 2000 2000 2000 2000 2000 2000
cf_max 90000 90000 90000 90000 90000 90000 90000
-----------------------------------------------------------------------------------------------------
[1] ?
[2] Rough estimate from allen brain atlas data:
Volume of VCN is 0.377 mm^3, by counting voxels with 'VCO' (101) label in Common Coordinate Framework atlas.
753370 voxels * 0.5 * 10e-6**3 m^3/vox = 0.377 mm^3
Counted Slc17a7 (pan-excitatory) cell bodies in a 500x500 um chunk of VCN
http://mouse.brain-map.org/experiment/siv?id=69014470&imageId=68856767&initImage=ish&coordSystem=pixel&x=7616.5&y=4144.5&z=1
266 cells in 500x500 um = 34707 cells / mm^2
34707**3/2 * 0.377 mm^3 = 13084 cells total
Assume half are bushy, half are T-stellate
[3] Rough estimate from allen brain atlas data:
Similar to [2], using Gad1 inhibitory marker
http://mouse.brain-map.org/experiment/siv?id=75492764&imageId=75405134&initImage=ish&coordSystem=pixel&x=5320.5&y=3232.5&z=1
36 cells in 500x500 um = 144e6 / m^2 ~= 1728 / mm^2
= 651 cells total (VCN, unilateral)
""",
)

503
cnmodel/data/synapses.py Normal file
View File

@@ -0,0 +1,503 @@
# -*- encoding: utf-8 -*-
from ._db import add_table_data
# sgc old weights:
# bushy tstellate dstellate octopus pyramidal tuberculoventral
# weight 0.027 [12] 0.006 [12] 0.00064 [12] 0.0011 [12] 0.0023 [12] 0.0029 [12]
# tau1 0.1 [5] 0.1 [5] 0.2 [5] 0.1 [5] 0.1 [5] 0.1 [5]
# tau2 0.3 [5] 0.3 [5] 0.5 [5] 0.3 [5] 0.3 [5] 0.3 [5]
# erev 0 [5] 0 [5] 0 [5] 0 [5] 0 [5] 0 [5]
add_table_data(
"sgc_synapse",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
AMPA_gmax and NMDA_gmax are the estimated average peak conductances (in nS)
resulting from an action potential in a single auditory nerve terminal, under
conditions that minimize the effects of short-term plasticity.
AMPA_gmax are from values measured at -65 mV (or -70mV), and represent SINGLE TERMINAL
conductances
AMPAR_gmax are the individual synapse postsynaptic conductance
NMDA_gmax values are taken as the fraction of the current that is NMDAR dependent
at +40 mV (see below)
n_rsites is the number of release sites per SGC terminal.
---------------------------------------------------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral cartwheel
AMPA_gmax 21.05±15.4 [1] 4.6±3.1 [2] 0.49±0.29 [7] 0.87±0.23 [3] 0.6±0.3 [8] 2.2±1.5 [8] 0
AMPAR_gmax 4.6516398 [10] 4.632848 [10] 1.7587450 [10] 16.975147 [10] 0.9 [8] 2.2 [8] 0
NMDA_gmax 10.8±4.6 [1] 2.4±1.6 [2] 0.552±0.322 [7] 0.17±0.046 [3] 0.4±0.33 [8] 2.4±1.6 [8] 0
NMDAR_gmax 0.4531933 [10] 1.2127097 [10] 0.9960820 [10] 0.6562702 [10] 0.2 [8] 1.2127097 [8] 0
NMDAR_vsh -15.0 [12] -15.0 [12] -15.0 [12] -15.0 [12] -15.0 [12] -15.0 [12] 0
NMDAR_vshift 0.0 [12] 0.0 [12] 0.0 [12] 0.0 [12] 0.0 [12] 0.0 [12] 0
EPSC_cv 0.12 [8] 0.499759 [9] 0.886406 [9] 1.393382 [9] 0.499 [8] 0.499 [8] 0
Pr 1.000 [11] 1.000 [11] 1.000 [11] 1.000 [11] 1.000 [8] 1.000 [8] 0
n_rsites 100 [5] 4 [6] 1 [4] 1 [4] 2 [8] 2 [8] 0
delay 0.600 0.600 0.600 0.600 0.600 0.600 0
weight 0.020377 0.003679 0.000457 0.001311 0.000327 0.000808 0
tau1 0.158 0.174 0.152 0.125 0.167 0.157 0
tau2 0.246 1.501 1.652 0.251 1.489 1.641 0
erev 0.0 0.0 0.0 0.0 0.0 0.0 0
----------------------------------------------------------------------------------------------------------------------------------------
[1] Derived from Cao, X. & Oertel, D. (2010). Single-terminal conductance was
reported as 21.5±15.4 nS (1.4±1.0 nA at -65 mV). The ratio of NMDA current to
total current is 0.3, so AMPA and NMDA currents are:
AMPA_gmax = 21.5±15.4 nS (measured at -65 mV)
NMDA_gmax = 21.5±15.4 nS * 0.3 = 10.8±4.6 nS
Age>p17, Temperature=33C, [Mg2+]=1.3mM, [Ca2+]=2.4mM
Units are nS.
See also Pliss et al., J. Neurophys., 2009 (and note [12])
[2] Derived from Cao, X. & Oertel, D. (2010). Single-terminal conductance was
estimated as 4.6±3.1 nS. The ratio of NMDA current to
total current is 0.53, so AMPA and NMDA currents are:
AMPA_gmax = 4.6±3.1 nS
NMDA_gmax = 4.6±3.1 nS * 0.53 = 2.4±1.6 nS
Estimated number of inputs per AN fiber:
0.3 nA step, 0.08 nA mini size = ~ 4 inputs per AN fiber
Age>p17, Temperature=33C, [Mg2+]=1.3mM, [Ca2+]=2.4mM
Units are nS
[3] Derived from Cao, X. & Oertel, D. (2010). Single-terminal conductance was
estimated as 52±14 nS / 60 = 0.87±0.23 nS. The ratio of NMDA current to
total current is 0.2, so AMPA and NMDA currents are:
AMPA_gmax = 0.87±0.23 nS
NMDA_gmax = 0.87±0.23 nS * 0.2 = 0.17±0.046 nS
Age>p17, Temperature=33C, [Mg2+]=1.3mM, [Ca2+]=2.4mM
Units are nS
[4] Assumption based on mini size and lack of discernable EPSC step (guess).
Should be verified.
[5] Oleskevich & Walmsley ~2002, Wang & Manis 2005. Units are nS
[6] A value of 45 would be chosen to satisfy the CV of EPSC amplitude determined in [9].
However, those measures are for simultaneous stimulation of multiple AN fibers.
A value of 4 is included here to correspond to measures in Cao and Oertel (2010)
(see note [2])
[7] (Xie and Manis, Frontiers in Neural Circuits, 2017):
Measurements from CBA/CaJ mouse "radiate" multipolar cells in the AVCN.
Single terminal conductance = (1.2 ± 0.70 nA/70 mV)/ 35 inputs = 0.490 ± 0.286 nS
(see connections.py)
Single terminal conductance from mini = 34 pA/70 mV = 0.486 nS (single mini)
Assume same AMPA/NMDA ratio as tstellate cells, but measures made where NMDA = 0
(at negative V):
AMPA_gmax = 0.490±0.286 nS
NMDA_gmax = 0.490±0.286 nS * 0.53/0.47 = 0.552±0.322 nS
Age > P35, Temperature=34C, [Mg2+]=1.5mM, [Ca2+]=2.5mM
[8] Thin air. These are for testing the software, not necessarily for performing
real simulations. Note: Pyramidal cell strength has been reduced
because of large convergence and high input resistance of the reference cell model.
Release 1 (Nov 2017):
pyramidal
0.6 ±1.05 [8]
1.8 [8]
0.8±0.66 [8]
0.4 [8]
-15.0 [12]
0.499 [8]
1.000 [8]
2 [8]
[9] Reanalysis of evoked EPSCs in stellate cells (Manis/Xie, 2014)
[10] Maximum AMPA open conductance per synaptic site (units are pS).
These values are calculated by running python cnmodel/synapses/tests/test_psd.py
for a specific cell type (if the cell uses the receptor mechanisms; this is
not necessary for simple exp2syn style mechanisms)
to ensure that maximum AMPA conductance during PSG matches [1, 2 or 3]
For a bushy cell, the original default values (bushy cell) were:
AMPAR_gmax 3.314707700918133
NMDAR_gmax 0.4531929783503451
These values will also depend on the number of release sites per
synapse (the total conductance is produce of site gmax and nsites).
A note on the precision of these values: This precision is only
required for the tests of the model, as a way of ensuring numerical
equivalency after potential modifications of the code. The precision
of the value is in no way intended to specificy biological precision.
For example, a change in the rate constants in the AMPA_Trussell AMPA
receptor model could (and probably would) change the open probability,
and therefore the maximal conductance of an EPSC. However, as this is
only a representation of the EPSC, the "receptor" conductance should
be scaled so that the computed EPSC has the same maximal conductance
as prior to the kinetic modifications. Because the receptor model is
numerically computed (and not analytically tractable without
additional knowledge of the ligand time course), a numerical solution
is required.
[11] Pr is the initial release probability. The value can be computed by
setting Pr to 1 in this file, and running the cnmodel test_synapses.py
with the appropriate presynaptic source and postsynaptic target,
once all other parameters are set. The Pr is used to rescale
the AMPAR_gmax so that the total current matches the data in
AMPA_gmax in the table (on average).
[12] NMDA_vshift is the voltage shift for the activation of the NMDAR's, relative
to 0 (standard in the NMDA_Kampa model). A negative value shifts the voltage
dependence to the right (depolarizing).
The value of the shift here (-15 mV) was chosen based on an exploration
of fitting functions against the NMDA-Kampa IV curve in an SGC-bushy cell
model, and comparing them against data. The functions were the modified
Woodhull function and a Boltzmann function, yielding values of 1.19 mM for
k0 and 0.78 for delta (tau decay at +40 mV of 16.4 ms), and Vr -3 mV, Vh
16 mV for the Boltzmann fit. These are close to the values reported in
for NMDA currents in p14-p26 CBA/CaJ mice in Pliss et al. (J. Neurophys.
102, 2627, 2009). Note: Pliss et al. agree with Cao and Oertel regarding
an approximate 10-fold difference between AMPA and NMDA conductance in
mouse bushy cells. An exact fit was not obtained, but no other parameters
of the NMDA_Kampa model were changed.
[13] weight is the weight to use in a netcon object (NEURON) for "simple"
synapses based on the exp2syn mechanism.
Parameters Weight, tau1, tau2, delay and erev from comare_simple_multisynapses
run and curve fitting (all cells)
""",
)
add_table_data(
"sgc_ampa_kinetics",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
AMPA receptor kinetic values obtained by fitting the model of Raman and
Trussell (1992) to measured EPSCs in the mouse VCN.
Ro1, Ro2, Rc1, Rc2, and PA are kinetic constants affecting the AMPA receptor
mechanism. tau_g and A affect the speed and amplitude of transmitter release
(implemented in the presynaptic release mechanism).
These parameters were selected to fit the model output to known EPSC shapes.
PA is a polyamine block parameter ued in the AMPAR mechanism (concentration in micromolar).
------------------------------------------------------------------------------------------------
bushy tstellate dstellate pyramidal octopus tuberculoventral mso
Ro1 107.85 [4] 39.25 [4] 39.25 [7] 39.25 [4] 107.85 [5] 39.25 [7] 107.85 [4]
Ro2 0.6193 [4] 4.40 [4] 4.40 [7] 4.40 [4] 0.6193 [5] 4.40 [7] 0.6193 [4]
Rc1 3.678 [4] 0.667 [4] 0.667 [7] 0.667 [4] 3.678 [5] 0.667 [7] 3.678 [4]
Rc2 0.3212 [4] 0.237 [4] 0.237 [7] 0.237 [4] 0.3212 [5] 0.237 [7] 0.3212 [4]
tau_g 0.10 [4] 0.25 [4] 0.25 [7] 0.25 [4] 0.10 [5] 0.25 [4] 0.10 [4]
amp_g 0.770 [4] 1.56625 [4] 1.56625 [7] 1.56625 [4] 0.770 [5] 1.56625 [4] 0.770 [4]
PA 45 [12] 0.1 [12] 0.1 [7] 0.1 [12] 45 [5] 0.1 [7] 45 [12]
------------------------------------------------------------------------------------------------
[4] Xie & Manis 2013, Table 2
[5] copied from bushy cells; no direct data.
[7] Data copied from t-stellate column (no literature on these cells). Unpublished data suggests these
should be slightly different, but is complicated by electrotonically distant synaptic sites that
preclude accurate measurement of kinetics.
[12] Wang & Manis (unpublished)
""",
)
add_table_data(
"sgc_epsp_kinetics",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
EPSC shape parameters obtained from fits of Xie & Manis 2013 Equation 3 to measured EPSCs.
------------------------------------------------------------------------------------------------
bushy tstellate dstellate pyramidal octopus tuberculoventral
tau_r 0.253 [11] 0.19 [11] 0.253 [13]
tau_f 0.16 [11] 1.073 [11] 0.16 [13]
tau_s 0.765 [11] 3.3082 [11] 0.765 [13]
F 0.984 [11] 0.917 [11] 0.984 [13]
------------------------------------------------------------------------------------------------
[11] Xie & Manis 2013, Table 3
[13] Copied from bushy cells; no direct data
""",
)
add_table_data(
"sgc_release_dynamics",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
Kinetic parameters correspond to variables as described by Dittman et al.
(2000), their Table 1.
F: ~ Resting release probability
---------------------------------------------------------------------------------------------------------------
bushy tstellate dstellate pyramidal octopus tuberculoventral
F 0.29366 [1] 0.43435 [1] 0.43435 [2] 0.43435 [1] 0.29366 [14] 0.43435 [1]
k0 0.52313 [1] 0.06717 [1] 0.06717 [2] 0.06717 [1] 0.52313 [14] 0.06717 [1]
kmax 19.33805 [1] 52.82713 [1] 52.82713 [2] 52.82713 [1] 19.33805 [14] 52.82713 [1]
kd 0.11283 [1] 0.08209 [1] 0.08209 [2] 0.08209 [1] 0.11283 [14] 0.08209 [1]
ks 11.531 [1] 14.24460 [1] 14.24460 [2] 14.24460 [1] 11.531 [14] 14.24460 [1]
kf 17.78 [1] 18.16292 [1] 18.16292 [2] 18.16292 [1] 17.78 [14] 18.16292 [1]
taud 15.16 [1] 3.98 [1] 3.98 [2] 3.98 [1] 15.16 [14] 3.98 [1]
taus 17912.2 [1] 16917.120 [1] 16917.120 [2] 16917.120 [1] 17912.2 [14] 16917.120 [1]
tauf 9.75 [1] 11.38 [1] 11.38 [2] 11.38 [1] 9.75 [14] 11.38 [1]
dD 0.57771 [1] 2.46535 [1] 2.46535 [2] 2.46535 [1] 0.57771 [14] 2.46535 [1]
dF 0.60364 [1] 1.44543 [1] 1.44543 [2] 1.44543 [1] 0.60364 [14] 1.44543 [1]
---------------------------------------------------------------------------------------------------------------
[1] Xie & Manis 2013, Table 1. Although independently measured in > P30 CBA/CaJ mice,
the values are similar to the measurements from Yang and Xu-Friedman, 2008
in P14-P21 CBA/CaJ mice.
[2] Data copied from t-stellate column (no literature on these cells)
[14] Data copied from bushy cell column (no literature on these cells)
""",
)
add_table_data(
"gly_kinetics",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
Kinetic parameters for glycine receptor mechanisms.
These are currently used for both DS and TV synapses, but should probably be
separated in the future.
KV, KU, and XMax are kinetic parameters for the cleft transmitter mechanism.
------------------------------------------------------------------------------------------------
bushy tstellate dstellate pyramidal tuberculoventral
KV 1e9 [1] 531.0 [1] 531.0 [1] 531.0 [2] 531.0 [2]
KU 4.46 [1] 4.17 [1] 4.17 [1] 4.17 [2] 4.17 [2]
XMax 0.733 [1] 0.731 [1] 0.731 [1] 0.731 [2] 0.731 [2]
------------------------------------------------------------------------------------------------
[1] Xie & Manis 2013
[2] Copied from tstellate data (Kuo et al., J. Neurophysiol. indicate glycinergic IPSCs in TV
and pyramidal cells are fast, with a decay time constant similar to that seen in tstellate
cells). In pyramidal cells, this is consistent with the brief cross-correlation tip (Voigt
and Young, 1980) and brief somatic current source (Manis and Brownell, 1983).
""",
)
add_table_data(
"dstellate_synapse",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
DStellate Synapse values
gly_gmax is the default value in the program (scaled by Po for the receptors). See synapses/gly_psd.py
IPSC_cv is the coefficient of variation of the IPSC. (Not currently used in the model)
Pr is the release probabilty (not currently used); built into release mechanism for multisite synapses.
n_rsites is the number of release sites per dstellate terminal.
---------------------------------------------------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral cartwheel
gly_gmax 2.5 [1] 1.0 [5] 1.0 [2] 0. [2] 2.0 [3] 2.0 [3] 0±0 [2]
IPSC_cv 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3]
Pr 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4]
n_rsites 10 [5] 5 [5] 5 [5] 0 [2] 5 [5] 25 [5] 0 [2]
delay 0.000 0.000 0.000 0 0.000 0.000 0
weight 0.004131 0.004455 0.0 0 0.002228 0.012097 0
tau1 0.187 0.152 0.152 0 0.152 0.152 0
tau2 7.953 1.247 1.247 0 1.247 1.247 0
erev -70.0 -70.0 -70.0 0 -70.0 -70.0 0
---------------------------------------------------------------------------------------------------------------------------------------
[1] Estimate
[2] No evidence for dstellate inputs to other d stellate cells or cartwheel cells.
Octopus cells do not get inhibitory input
[3] Guess
[4] Default value
[5] Guess *educated* DS->TS from Xie and Manis, 2013. 99 pA mini @ 50 mV driving ~ 2 nS
[6] delay from pre to post; default is 0
[7] Parameters Weight, tau1, tau2, delay and erev from comare_simple_multisynapses run and curve fitting (all cells)
""",
)
add_table_data(
"tuberculoventral_synapse",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
Tuberculventral Synapse values
gly_gmax is the default value in the program (scaled by Po for the receptors). See synapses/gly_psd.py
IPSC_cv is the coefficient of variation of the IPSC. (Not currently used in the model)
Pr is the release probabilty (not currently used)
n_rsites is the number of release sites per tuberculoventral terminal.
-----------------------------------------------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral cartwheel
gly_gmax 5.0 [3] 3.0 [3] 3.0 [3] 0. [2] 2.1±2.9 [6] 1.8±2.3 [6] 0±0 [6]
IPSC_cv 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3] 1.0 [3] 0.3 [3] 0.3 [3]
Pr 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4]
n_rsites 6 [5] 6 [5] 0 [1] 0 [2] 6 [5] 6 [5] 6 [5]
delay 0.600 0.600 0 0 0.600 0.600 0
weight 0.002371 0.008114 0 0 0.002705 0.002705 0
tau1 0.190 0.149 0 0 0.149 0.149 0
tau2 7.952 1.250 0 0 1.250 1.250 0
erev -70.0 -70.0 0 0 -70.0 -70.0 0
-----------------------------------------------------------------------------------------------------------------------------------
[1] Default value from GlyPSD
[2] No evidence for tuberculo inputs to other d stellate cells or cartwheel cells.
Octopus cells do not get inhibitory input
[3] Guess
[4] Default value
[5] Guess
[6] Mouse data
TV conductance onto pyr cells: 2.1 nS SD 2.9 nS (Kuo et al., 2012)
TV conductance onto TV cells: 1.8 ns SD 2.3 nS.
[7] Parameters Weight, tau1, tau2, delay and erev from comare_simple_multisynapses run and curve fitting (all cells)
Fitting done against 200 rep average for bushy, 500 rep average for all others.
""",
)
add_table_data(
"cartwheel_synapse",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
Cartwheel cell synapse values
gly_gmax is the default value in the program (scaled by Po for the receptors). See synapses/gly_psd.py
IPSC_cv is the coefficient of variation of the IPSC. (Not currently used in the model)
Pr is the release probabilty (not currently used)
n_rsites is the number of release sites per cartwheel cell terminal.
-----------------------------------------------------------------------------------------------------------------------------------
bushy tstellate dstellate octopus pyramidal tuberculoventral cartwheel
gly_gmax 0.0 [3] 0.0 [3] 0.0 [3] 0. [2] 2.1±2.9 [6] 0±0 [6] 1.8±2.3 [6]
IPSC_cv 0.3 [3] 0.3 [3] 0.3 [3] 0.3 [3] 1.0 [3] 0.3 [3] 0.3 [3]
Pr 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4] 1.000 [4]
n_rsites 6 [5] 6 [5] 0 [1] 0 [2] 6 [5] 6 [5] 6 [5]
delay 0 [7] 0 0 0 0 0 0
weight 0.01 0.01 0.01 0.0 0.01 0.01 0.01
tau1 0.3 [5] 0.3 [5] 0.3 [5] 0.3 [5] 0.3 [5] 0.3 [5] 0.3 [5]
tau2 2.0 [5] 2.0 [5] 2.0 [5] 2.0 [5] 2.0 [5] 2.0 [5] 2.0 [5]
erev -70 [5] -70 [5] -70 [5] -70 [5] -70 [5] -70 [5] -70 [5]
-----------------------------------------------------------------------------------------------------------------------------------
[1] Default value from GlyPSD
[2] No evidence for cartwheel inputs to Dstellate, bushy or tstellate cells.
Octopus cells do not get inhibitory input
[3] Guess
[4] Default value
[5] Guess
[6] Mouse data
TV conductance onto pyr cells: 2.1 nS SD 2.9 nS (Kuo et al., 2012)
TV conductance onto TV cells: 1.8 ns SD 2.3 nS.
[7] delay from pre to post; default is just 0
""",
)
add_table_data(
"bushy_synapse",
row_key="field",
col_key="post_type",
species="mouse",
data=u"""
AMPA_gmax and NMDA_gmax are the estimated average peak conductances (in nS)
resulting from an action potential in a single presynaptic terminal under
conditions that minimize the effects of short-term plasticity.
AMPA_gmax are from values measured at -65 mV (or -70mV), and represent SINGLE TERMINAL
conductances
AMPAR_gmax are the individual synapse postsynaptic conductance
NMDA_gmax values are taken as the fraction of the current that is NMDAR dependent
at +40 mV (see below)
n_rsites is the number of release sites per terminal.
-----------------------------------------------------------------------------------------------------------------------------------
mso
AMPA_gmax 21.05±15.4 [1]
AMPAR_gmax 4.6516398 [2]
NMDA_gmax 0 [3]
NMDAR_gmax 0 [3]
EPSC_cv 0.12 [4]
Pr 1.000 [5]
n_rsites 36 [6]
weight 0.01
delay 0
-----------------------------------------------------------------------------------------------------------------------------------
[1] Taken from the mouse bushy cell model.
Units are nS.
[2] See note [10] for the SGC-bushy synapse
[3] Assume no NMDA receptors at this synapse
[4] See SGC-bushy synapse
[5] Just to scale with the multisite synapse model
[6] This is a guess.
""",
)

View File

@@ -0,0 +1,72 @@
# -*- encoding: utf-8 -*-
import pytest
import sys
from cnmodel import data
table = u"""
Description of data
It has multiple lines
And empty lines.
-------------------------------------------------------------------------------
col1 col2 col3
param1 15±6.5 [1] 2.2±1.5 [2] 0.87±0.23 [3]
param2 3 5 0.87±0.23 [3]
param3 3.4 7 [2]
param4 1 [12]
-------------------------------------------------------------------------------
[1] Source 1
[2] Multiline source
#2
end of #2
[3] Multiline source
#3
end of #3
[12] another
source
"""
data.add_table_data(
"test_data", row_key="param", col_key="col", data=table, extra="test_kwd"
)
def test_db():
# this should only be a problem with Python 2, so we need to
# check which version we are running under before letting the test
# throw the exception:
if sys.version_info[0] == 2:
with pytest.raises(TypeError):
# raise exception if unicode is given in ono-unicode string
data.add_table_data("test_data", row_key="param", col_key="col", data=u"±")
d = data.get("test_data", param="param1", col="col2", extra="test_kwd")
assert d == (2.2, 1.5)
d = data.get(
"test_data", param="param1", col=["col1", "col2", "col3"], extra="test_kwd"
)
assert d == {"col1": (15, 6.5), "col2": (2.2, 1.5), "col3": (0.87, 0.23)}
d = data.get(
"test_data", param="param2", col=["col1", "col2", "col3"], extra="test_kwd"
)
assert d == {"col1": 3, "col2": 5, "col3": (0.87, 0.23)}
d = data.get(
"test_data", param="param3", col=["col1", "col2", "col3"], extra="test_kwd"
)
assert d == {"col1": 3.4, "col2": None, "col3": 7}
s = data.get_source("test_data", param="param1", col="col2", extra="test_kwd")
assert "end of #2" in s
s = data.get_source("test_data", param="param2", col="col2", extra="test_kwd")
assert s is None