""" Test connection between two cell populations. Usage: python test_populations.py This script: 1. Creates two cell populations (pop1 and pop2) 2. Connects pop1 => pop2 3. Instantiates a single cell in pop2 4. Automatically generates presynaptic cells and synapses from pop1 5. Stimulates presynaptic cells and records postsynaptically This is a high-level approach to generating networks in that the supporting cells (those in pop1) are created automatically based on expected patterns of connectivity in the cochlear nucleus. A lower-level approach is demonstrated in test_synapses.py, in which the individual pre- and postsynaptic cells are manually created and connected. """ from cnmodel import populations from cnmodel.protocols import PopulationTest import pyqtgraph as pg import sys def testpopulation(): if len(sys.argv) < 3: print("Usage: python test_populations.py ") sys.exit(1) pop_types = { "sgc": populations.SGC, "bushy": populations.Bushy, "tstellate": populations.TStellate, "dstellate": populations.DStellate, "pyramidal": populations.Pyramidal, "tuberculoventral": populations.Tuberculoventral, } pops = [] for cell_type in sys.argv[1:3]: if cell_type not in pop_types: print( '\nUnsupported cell type: "%s". Options are %s' % (cell_type, list(pop_types.keys())) ) sys.exit(-1) pops.append(pop_types[cell_type]()) pt = PopulationTest() pt.run(pops) pt.show() if sys.flags.interactive == 0: pg.QtGui.QApplication.exec_() if __name__ == "__main__": testpopulation()