def set_current_ampl(self,current_ampl): """Sets the amplitude of the injected current.""" err = "" print "Current amplitude is ",current_ampl from ucl.physiol.neuroconstruct.utils import NumberGenerator sim_config_info = self.manager.project.simConfigInfo sim_config = sim_config_info.getSimConfig(self.sim_config_name) print("Sim Config name is %s" % self.sim_config_name) inputs = sim_config.getInputs() print("%s has %d inputs" % (self.sim_config_name,len(inputs))) if len(inputs) < 1: err = "This sim config has no inputs" else: one_set = False for inp in range(len(inputs)): input_ = inputs.get(inp) stim = self.manager.project.elecInputInfo.getStim(input_) if hasattr(stim,'setAmp'): stim.setAmp(NumberGenerator(current_ampl)) stim.setDur(NumberGenerator(200.0)) # Change pulse length to 400 ms. self.manager.project.elecInputInfo.updateStim(stim) print("Stim amplitude set to %f" % current_ampl) one_set = True else: err = "This stim has no attribute 'setAmp'" if one_set: err = "" print err return err
def runColumnSimulation(simConfig="TempSimConfig", simDuration=100, simDt=0.025, neuroConstructSeed=1234, simulatorSeed=1234, simulators=["NEURON"], simRefPrefix="Net_", suggestedRemoteRunTime=120, defaultSynapticDelay=0.05, mpiConf=MpiSettings.LOCAL_SERIAL, scaleCortex=0.1, scaleThalamus=0, gabaScaling=1, l4ssAmpaScaling=1, l5PyrGapScaling=1, inNrtTcrNmdaScaling=1, pyrSsNmdaScaling=1, deepBiasCurrent=-1, maxElecLenFRB=0.01, maxElecLenRS=0.01, maxElecLenIN=0.01, maxElecLenSS=0.01, somaNseg=-1, varTimestepNeuron=False, verbose=True, runInBackground=False): print "Running new column simulation..." ############################################ # Full column populations numFRB = 50 # full model: 50 numRS = 1000 # full model: 1000 numSupBask = 90 # full model: 90 numSupAxAx = 90 # full model: 90 numSupLTS = 90 # full model: 90 numL4SpinStell = 240 # full model: 240 numL5TuftIB = 800 # full model: 800 numL5TuftRS = 200 # full model: 200 numDeepBask = 100 # full model: 100 numDeepAxAx = 100 # full model: 100 numDeepLTS = 100 # full model: 100 numL6NonTuftRS = 500 # full model: 500 numTCR = 100 # full model: 100 numnRT = 100 # full model: 100 ####################################### ### Load neuroConstruct project import datetime start = datetime.datetime.now() print "Loading project %s from at %s " % (projFile.getCanonicalPath(), start.strftime("%Y-%m-%d %H:%M")) pm = ProjectManager() project = pm.loadProject(projFile) ### Set duration & timestep & simulation configuration project.simulationParameters.setDt(simDt) simConfig = project.simConfigInfo.getSimConfig(simConfig) simConfig.setSimDuration(simDuration) ### Set simulation reference index = 0 simRef = "%s%i" % (simRefPrefix, index) while File("%s/simulations/%s_N" % (project.getProjectMainDirectory().getCanonicalPath(), simRef)).exists(): simRef = "%s%i" % (simRefPrefix, index) index = index + 1 project.simulationParameters.setReference(simRef) ### Change num in each cell group numFRB = int(scaleCortex * numFRB) numRS = int(scaleCortex * numRS) numSupBask = int(scaleCortex * numSupBask) numSupAxAx = int(scaleCortex * numSupAxAx) numSupLTS = int(scaleCortex * numSupLTS) numL4SpinStell = int(scaleCortex * numL4SpinStell) numL5TuftIB = int(scaleCortex * numL5TuftIB) numL5TuftRS = int(scaleCortex * numL5TuftRS) numDeepBask = int(scaleCortex * numDeepBask) numDeepAxAx = int(scaleCortex * numDeepAxAx) numDeepLTS = int(scaleCortex * numDeepLTS) numL6NonTuftRS = int(scaleCortex * numL6NonTuftRS) numTCR = int(scaleThalamus * numTCR) numnRT = int(scaleThalamus * numnRT) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L23PyrFRB").setMaxNumberCells( numFRB) # Note only works if RandomCellPackingAdapter project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L23PyrRS").setMaxNumberCells(numRS) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_SupBask").setMaxNumberCells(numSupBask) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_SupAxAx").setMaxNumberCells(numSupAxAx) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_SupLTS").setMaxNumberCells(numSupLTS) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L4SpinStell").setMaxNumberCells(numL4SpinStell) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L5TuftIB").setMaxNumberCells(numL5TuftIB) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L5TuftRS").setMaxNumberCells(numL5TuftRS) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_DeepBask").setMaxNumberCells(numDeepBask) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_DeepAxAx").setMaxNumberCells(numDeepAxAx) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_DeepLTS").setMaxNumberCells(numDeepLTS) project.cellGroupsInfo.getCellPackingAdapter( "CG3D_L6NonTuftRS").setMaxNumberCells(numL6NonTuftRS) project.cellGroupsInfo.getCellPackingAdapter("CG3D_TCR").setMaxNumberCells( numTCR) project.cellGroupsInfo.getCellPackingAdapter("CG3D_nRT").setMaxNumberCells( numnRT) ### Change weights in synapses/gap junctions for netConnName in simConfig.getNetConns(): if gabaScaling != 1: SimulationsInfo.addExtraSimProperty("gabaWeightScaling", str(gabaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("GABAA") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, gabaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(gabaScaling)) if l4ssAmpaScaling != 1: SimulationsInfo.addExtraSimProperty("l4ssAmpaScaling", str(l4ssAmpaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("Syn_AMPA_L4SS_L4SS") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, l4ssAmpaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(l4ssAmpaScaling)) if l5PyrGapScaling != 1: SimulationsInfo.addExtraSimProperty("l5PyrGapScaling", str(l5PyrGapScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() tgtCG = project.morphNetworkConnectionsInfo.getTargetCellGroup( netConnName) if synName.count("Syn_Elect_DeepPyr_DeepPyr" ) > 0 and tgtCG.count("CG3D_L5") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, l5PyrGapScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(l5PyrGapScaling)) if inNrtTcrNmdaScaling != 1: SimulationsInfo.addExtraSimProperty("inNrtTcrNmdaScaling", str(inNrtTcrNmdaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("NMDA") > 0 and ( synName.endswith("_IN") > 0 or synName.endswith("_DeepIN") > 0 or synName.endswith("_SupIN") > 0 or synName.endswith("_SupFS") > 0 or synName.endswith("_DeepFS") > 0 or synName.endswith("_SupLTS") > 0 or synName.endswith("_DeepLTS") > 0 or synName.endswith("_nRT") > 0 or synName.endswith("_TCR") > 0): print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, inNrtTcrNmdaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(inNrtTcrNmdaScaling)) if pyrSsNmdaScaling != 1: SimulationsInfo.addExtraSimProperty("pyrSsNmdaScaling", str(pyrSsNmdaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("NMDA") > 0 and ( synName.endswith("_SupPyr") > 0 or synName.endswith("_DeepPyr") > 0 or synName.endswith("_L4SS") > 0 or synName.endswith("_L5Pyr") > 0 or synName.endswith("_L5RS") > 0 or synName.endswith("_L5IB") > 0 or synName.endswith("_L6NT") > 0 or synName.endswith("_Pyr") > 0): print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, pyrSsNmdaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(pyrSsNmdaScaling)) ### Change bias currents for inputName in simConfig.getInputs(): stim = project.elecInputInfo.getStim(inputName) if deepBiasCurrent >= 0: if stim.getElectricalInput().TYPE == "IClamp" and ( stim.getCellGroup() == "CG3D_L5TuftIB" or stim.getCellGroup() == "CG3D_L5TuftRS" or stim.getCellGroup() == "CG3D_L6NonTuftRS"): print "Changing offset current in %s to %f" % ( stim.getCellGroup(), deepBiasCurrent) stim.setAmp(NumberGenerator(deepBiasCurrent)) project.elecInputInfo.updateStim(stim) ### Change spatial discretisation of some cells. This will impact accuracy & simulation speed if maxElecLenFRB > 0: frbCell = project.cellManager.getCell("L23PyrFRB_varInit") info = CellTopologyHelper.recompartmentaliseCell( frbCell, maxElecLenFRB, project) print "Recompartmentalised FRB cell: " + info if somaNseg > 0: frbCell.getSegmentWithId( 0).getSection().setNumberInternalDivisions(somaNseg) if maxElecLenRS > 0: rsCell = project.cellManager.getCell("L23PyrRS") info = CellTopologyHelper.recompartmentaliseCell( rsCell, maxElecLenRS, project) print "Recompartmentalised RS cell: " + info if somaNseg > 0: rsCell.getSegmentWithId(0).getSection().setNumberInternalDivisions( somaNseg) if maxElecLenIN > 0: inCells = [ "SupBasket", "SupAxAx", "SupLTSInter", "DeepBasket", "DeepAxAx", "DeepLTSInter" ] for inCellName in inCells: inCell = project.cellManager.getCell(inCellName) info = CellTopologyHelper.recompartmentaliseCell( inCell, maxElecLenIN, project) print "Recompartmentalised " + inCellName + " cell: " + info if somaNseg > 0: inCell.getSegmentWithId( 0).getSection().setNumberInternalDivisions(somaNseg) ### Change parallel configuration mpiSettings = MpiSettings() simConfig.setMpiConf(mpiSettings.getMpiConfiguration(mpiConf)) print "Parallel configuration: " + str(simConfig.getMpiConf()) if suggestedRemoteRunTime > 0: project.neuronFileManager.setSuggestedRemoteRunTime( suggestedRemoteRunTime) project.genesisFileManager.setSuggestedRemoteRunTime( suggestedRemoteRunTime) ### Change synaptic delay associated with each net conn for netConnName in simConfig.getNetConns(): if netConnName.count("gap") == 0: print "Changing synaptic delay in %s to %f" % ( netConnName, defaultSynapticDelay) delayGen = NumberGenerator(defaultSynapticDelay) for synProps in project.morphNetworkConnectionsInfo.getSynapseList( netConnName): synProps.setDelayGenerator(delayGen) # defaultSynapticDelay will be recorded in simulation.props and listed in SimulationBrowser GUI SimulationsInfo.addExtraSimProperty("defaultSynapticDelay", str(defaultSynapticDelay)) ### Generate network structure in neuroConstruct pm.doGenerate(simConfig.getName(), neuroConstructSeed) while pm.isGenerating(): print "Waiting for the project to be generated with Simulation Configuration: " + str( simConfig) sleep(2) print "Generated %i cells in %i cell groups" % ( project.generatedCellPositions.getNumberInAllCellGroups(), project.generatedCellPositions.getNumberNonEmptyCellGroups()) print "Generated %i instances in %i network connections" % ( project.generatedNetworkConnections.getNumAllSynConns(), project.generatedNetworkConnections.getNumNonEmptyNetConns()) print "Generated %i instances in %i elect inputs" % ( project.generatedElecInputs.getNumberSingleInputs(), project.generatedElecInputs.getNonEmptyInputRefs().size()) if simulators.count("NEURON") > 0: simRefN = simRef + "_N" project.simulationParameters.setReference(simRefN) nc.generateAndRunNeuron(project, pm, simConfig, simRefN, simulatorSeed, verbose=verbose, runInBackground=runInBackground, varTimestep=varTimestepNeuron) sleep(2) # wait a while before running GENESIS... if simulators.count("GENESIS") > 0: simRefG = simRef + "_G" project.simulationParameters.setReference(simRefG) nc.generateAndRunGenesis(project, pm, simConfig, simRefG, simulatorSeed, verbose=verbose, runInBackground=runInBackground) sleep(2) # wait a while before running MOOSE... if simulators.count("MOOSE") > 0: simRefM = simRef + "_M" project.simulationParameters.setReference(simRefM) nc.generateAndRunMoose(project, pm, simConfig, simRefM, simulatorSeed, verbose=verbose, runInBackground=runInBackground) sleep(2) # wait a while before running GENESIS... print "Finished running all sims, shutting down..." stop = datetime.datetime.now() print print "Started: %s, finished: %s" % (start.strftime("%Y-%m-%d %H:%M"), stop.strftime("%Y-%m-%d %H:%M")) print
# generate pm.doGenerate(sim_config_name, 1234) while pm.isGenerating(): time.sleep(0.02) print('network generated for stim type ' + stim_type) for rate in stim_rate_range: sim_ref = 'io' + stim_type + timestamp + '_' + str(int(round(rate))) sim_refs.append(sim_ref) sim_path = '../simulations/' + sim_ref project.simulationParameters.setReference(sim_ref) # set stim rate rate_in_kHz = rate/1000. stim = project.elecInputInfo.getStim('relay_stim') stim.setRate(NumberGenerator(rate_in_kHz)) project.elecInputInfo.updateStim(stim) # generate and compile neuron files print "Generating NEURON scripts..." project.neuronFileManager.setSuggestedRemoteRunTime(10) simulator_seed = random.getrandbits(32) project.neuronFileManager.generateTheNeuronFiles(sim_config, None, NeuronFileManager.RUN_HOC,simulator_seed) compile_process = ProcessManager(project.neuronFileManager.getMainHocFile()) compile_success = compile_process.compileFileWithNeuron(0,0) # simulate if compile_success: print "Submitting simulation reference " + sim_ref pm.doRunNeuron(sim_config) time.sleep(2) # Wait for sim to be kicked off if not sim_config.getMpiConf().isRemotelyExecuted(): # if running locally, never have more than one sim running
### Change weights in synapses/gap junctions for netConnName in simConfig.getNetConns(): if gabaScaling != 1: SimulationsInfo.addExtraSimProperty("gabaWeightScaling", str(gabaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList(netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList(netConnName).get(index).getSynapseType() if synName.count("GABAA")>0: print "Changing synaptic weight for syn %s in net conn %s by factor %f"%(synName, netConnName, gabaScaling) project.morphNetworkConnectionsInfo.getSynapseList(netConnName).get(index).setWeightsGenerator(NumberGenerator(gabaScaling)) if l4ssAmpaScaling !=1: SimulationsInfo.addExtraSimProperty("l4ssAmpaScaling", str(l4ssAmpaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList(netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList(netConnName).get(index).getSynapseType() if synName.count("Syn_AMPA_L4SS_L4SS")>0: print "Changing synaptic weight for syn %s in net conn %s by factor %f"%(synName, netConnName, l4ssAmpaScaling) project.morphNetworkConnectionsInfo.getSynapseList(netConnName).get(index).setWeightsGenerator(NumberGenerator(l4ssAmpaScaling)) ### Change bias currents
if not syn in cellMechNames: print "Synapse mechanism %s not found in project!"%syn exit() synProp = SynapticProperties(syn) synProp.setThreshold(0) synProp.setFixedDelay(default_syn_delay) synList.add(synProp) searchPattern = SearchPattern.getRandomSearchPattern() maxMinLength = MaxMinLength() connectivityConditions = ConnectivityConditions() connectivityConditions.setGenerationDirection(ConnectivityConditions.TARGET_TO_SOURCE) connectivityConditions.setNumConnsInitiatingCellGroup(NumberGenerator(numPre)) if "axon" in postGroup: connectivityConditions.getPrePostAllowedLoc().setAxonsAllowedPost(1) if "dend" in preGroup: connectivityConditions.getPrePostAllowedLoc().setDendritesAllowedPre(1) connectivityConditions.setAllowAutapses(0) if("Elect" in syns[0]): connectivityConditions.setNoRecurrent(1) netConnInfo.addNetConn(netConnName, source, target,
SimulationsInfo.addExtraSimProperty("gabaWeightScaling", str(gabaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("GABAA") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, gabaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(gabaScaling)) if l4ssAmpaScaling != 1: SimulationsInfo.addExtraSimProperty("l4ssAmpaScaling", str(l4ssAmpaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("Syn_AMPA_L4SS_L4SS") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, l4ssAmpaScaling)
while pm.isGenerating(): time.sleep(0.02) print('network generated') for amplitude in stim_amplitude_range: sim_ref = utils.ir_sim_ref(timestamp, gj_conn_type, amplitude, trial) sim_refs.append(sim_ref) sim_path = '../simulations/' + sim_ref project.simulationParameters.setReference(sim_ref) # set stim rate amplitude_in_nA = amplitude / 1000. for cell_type in ['Vervaeke', 'reduced']: stim = project.elecInputInfo.getStim('cclamp_network_' + cell_type) stim.setAmp(NumberGenerator(amplitude_in_nA)) project.elecInputInfo.updateStim(stim) # generate and compile neuron files print "Generating NEURON scripts..." project.neuronFileManager.setSuggestedRemoteRunTime(10) simulator_seed = random.getrandbits(32) project.neuronFileManager.generateTheNeuronFiles( sim_config, None, NeuronFileManager.RUN_HOC, simulator_seed) compile_process = ProcessManager( project.neuronFileManager.getMainHocFile()) compile_success = compile_process.compileFileWithNeuron(0, 0) # simulate if compile_success: print "Submitting simulation reference " + sim_ref pm.doRunNeuron(sim_config) time.sleep(2) # Wait for sim to be kicked off
def testAll(argv=None): if argv is None: argv = sys.argv print "Loading project from "+ projFile.getCanonicalPath() simManager = nc.SimulationManager(projFile, numConcurrentSims = numConcurrentSims, verbose = verbose) ### Change num in each cell group simManager.project.cellGroupsInfo.getCellPackingAdapter("ExcCells").setMaxNumberCells(numExcCells) simManager.project.cellGroupsInfo.getCellPackingAdapter("INCells").setMaxNumberCells(numINCells) ### Change weights in synapses/gap junctions simConfig = simManager.project.simConfigInfo.getSimConfig(simConfigName) for netConnName in simConfig.getNetConns(): print "Changing synaptic delay in %s to %f"%(netConnName, defaultSynapticDelay) delayGen = NumberGenerator(defaultSynapticDelay) for synProps in simManager.project.morphNetworkConnectionsInfo.getSynapseList(netConnName): synProps.setDelayGenerator(delayGen) # defaultSynapticDelay will be recorded in simulation.props and listed in SimulationBrowser GUI SimulationsInfo.addExtraSimProperty("defaultSynapticDelay", str(defaultSynapticDelay)) allSims = simManager.runMultipleSims(simConfigs = [simConfigName], simDt = simDt, simDuration = simDuration, simulators = simulators, runInBackground = runInBackground, varTimestepNeuron = varTimestepNeuron, mpiConfigs = mpiConfigs, suggestedRemoteRunTime = suggestedRemoteRunTime, simRefGlobalPrefix = simAllPrefix, runSims = runSims, neuroConstructSeed = neuroConstructSeed, simulatorSeed = simulatorSeed) while (len(simManager.allRunningSims)>0): print "Waiting for the following sims to finish: "+str(simManager.allRunningSims) time.sleep(5) # wait a while... simManager.updateSimsRunning() for sim in allSims: simDir = File(projFile.getParentFile(), "/simulations/"+sim) try: simData = SimulationData(simDir) simData.initialise() simTime = simData.getSimulationProperties().getProperty("RealSimulationTime") print "Simulation: %s took %s seconds"%(sim, simTime) except: print "Error analysing simulation data from: %s"%simDir.getCanonicalPath() if mpiConfigs == [MpiSettings.LOCAL_SERIAL] or mpiConfigs == [MpiSettings.MATLEM_1PROC]: simManager.reloadSims(plotVoltageOnly = True, plotSims = plotSims, analyseSims = analyseSims)
# Load an existing neuroConstruct project projFile = File("TestPython/TestPython.neuro.xml") print "Loading project from file: " + projFile.getAbsolutePath( ) + ", exists: " + str(projFile.exists()) pm = ProjectManager() myProject = pm.loadProject(projFile) print "Loaded project: " + myProject.getProjectName() # Get first electrical stimulation & reset it stim = myProject.elecInputInfo.getStim(0) print "First stimulation setting: " + str(stim) newAmp = random() * 0.2 stim.setAmp(NumberGenerator(newAmp)) myProject.elecInputInfo.updateStim(stim) print "Stimulation now: " + str(myProject.elecInputInfo.getStim(0)) # Save project & exit myProject.markProjectAsEdited() myProject.saveProject() System.exit(0)
SimulationsInfo.addExtraSimProperty("gabaWeightScaling", str(gabaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("GABAA") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, gabaScaling) project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).setWeightsGenerator( NumberGenerator(gabaScaling)) if l4ssAmpaScaling != 1: SimulationsInfo.addExtraSimProperty("l4ssAmpaScaling", str(l4ssAmpaScaling)) synList = project.morphNetworkConnectionsInfo.getSynapseList( netConnName) for index in range(0, len(synList)): synName = project.morphNetworkConnectionsInfo.getSynapseList( netConnName).get(index).getSynapseType() if synName.count("Syn_AMPA_L4SS_L4SS") > 0: print "Changing synaptic weight for syn %s in net conn %s by factor %f" % ( synName, netConnName, l4ssAmpaScaling)
synProp = SynapticProperties(syn) synProp.setThreshold(0) synProp.setFixedDelay(default_syn_delay) synList.add(synProp) searchPattern = SearchPattern.getRandomSearchPattern() #searchPattern = SearchPattern.getClosestSearchPattern() # will be better, but slower! maxMinLength = MaxMinLength() connectivityConditions = ConnectivityConditions() connectivityConditions.setGenerationDirection( ConnectivityConditions.SOURCE_TO_TARGET) connectivityConditions.setNumConnsInitiatingCellGroup( NumberGenerator(numPre)) print "Set NumConnsInitiatingCellGroup to %i" % numPre if "axon" in postGroup: connectivityConditions.getPrePostAllowedLoc().setAxonsAllowedPost( 1) connectivityConditions.getPrePostAllowedLoc( ).setDendritesAllowedPost(0) connectivityConditions.getPrePostAllowedLoc().setSomaAllowedPost(0) print "Set connectivityConditions: " + str(connectivityConditions) connectivityConditions.setAllowAutapses(0) if ("Elect" in syns[0]):