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.
60 lines
2.3 KiB
60 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()
|
|
|