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.

61 lines
2.3 KiB

"""
Test construction of a complete circuit build from cell populations.
This script:
1. Creates populations of sgc, bushy, and stellate cells.
2. Connects the populations together.
3. Instantiates 10 bushy and 10 t-stellate cells near 16kHz.
4. Resolves all required synaptic dependencies.
No simulation is executed; this is meant to be run interactively to allow
introspection of the circuit that was generated.
"""
from cnmodel import populations
def testcircuit():
# Create cell populations.
# This creates a complete set of _virtual_ cells for each population. No
# cells are instantiated at this point.
sgc = populations.SGC()
bushy = populations.Bushy()
dstellate = populations.DStellate()
tstellate = populations.TStellate()
# Connect populations.
# This only records the connections between populations; no synapses are
# created at this stage.
sgc.connect(bushy, tstellate, dstellate)
dstellate.connect(tstellate, bushy)
# tstellate.connect(bushy) # this will fail - we don't know about this connection yet.
# Select cells to record from.
# At this time, we actually instantiate the selected cells.
# select 10 bushy cells closest to 16kHz
bushy_cell_ids = bushy.select(10, cf=16e3, create=True)
# select 10 stellate cells closest to 16kHz
tstel_cell_ids = tstellate.select(10, cf=16e3, create=True)
# Now create the supporting circuitry needed to drive the cells we selected.
# At this time, cells are created in all populations and automatically
# connected with synapses.
bushy.resolve_inputs(depth=2)
tstellate.resolve_inputs(depth=2)
# Note that using depth=2 indicates the level of recursion to use when
# resolving inputs. For example, resolving inputs for the bushy cell population
# (level 1) creates presynaptic cells in the dstellate population, and resolving
# inputs for the dstellate population (level 2) creates presynaptic cells in the
# sgc population.
# TODO:
# - specify which parameters to record (Vm, spike times, per-synapse currents, etc)
# - run simulation and display / analyze results
# - add examples of modifying circuitry to search parameter spaces, test
# hypotheses, etc.
if __name__ == "__main__":
testcircuit()