def lateral_branching(neuron_params): ds.reset_kernel() np.random.seed(kernel['seeds']) ds.set_kernel_status(kernel, simulation_id="uniform_branching") neuron_params['growth_cone_model'] = 'run_tumble' neuron_params[use_type] = False neuron_params["position"] = np.random.uniform(-500, 500, (num_neurons, 2)) * um gid = ds.create_neurons(n=num_neurons, params=neuron_params, num_neurites=2) step(1 * hour, 1, False, False) neuron_params[use_type] = True ds.set_object_properties(gid, params=neuron_params) # ~ axon_params=neuron_params) step(2 * day, 1, False, False) # neuron_params['use_lateral_branching'] = True ds.SaveSwc(swc_resolution=5) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) return swc_file
def run_dense(kernel, neuron_params, ID, plot): """ """ resolution = 1. np.random.seed(kernel['seeds']) kernel["resolution"] = resolution kernel["angles_in_radians"] = True ds.set_kernel_status(kernel, simulation_id=ID) neuron_params['growth_cone_model'] = gc_model neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=6, position=[]) # ds.set_object_properties(gid, params=neuron_params, # axon_params=neuron_params) step(3. / resolution, 1, False, plot) step(300. / resolution, 1, False, plot) neuron_params['use_van_pelt'] = True dendrite_params['use_van_pelt'] = True axon_params['use_flpl_branching'] = False axon_params['flpl_branching_rate'] = 0.001 ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(6000. / resolution, 1, False, plot) axon_migated = { 'use_van_pelt': True, # "flpl_branching_rate" : 0.004, "res_retraction_threshold": 0.4, "res_elongation_threshold": 0.15, "res_elongation_factor": 0.6, # 'use_van_pelt' : True, "res_neurite_generated": 4500., "res_neurite_delivery_tau": 50., "res_correlation": 0.15, "res_variance": 0.02, "res_use_ratio": 0.3, } axon_params.update(axon_migated) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(3000. / resolution, 1, False, plot) ds.SaveSwc(swc_resolution=25) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
def resource_branching(neuron_params): ds.reset_kernel() np.random.seed(kernel['seeds']) ds.set_kernel_status(kernel, simulation_id="van_pelt_branching") neuron_params['growth_cone_model'] = 'run_tumble_critical' neuron_params['res_branching_threshold'] = np.inf neuron_params["position"] = np.random.uniform(-500, 500, (num_neurons, 2)) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=neuron_params, num_neurites=1, position=[]) step(10, 1, False, False) neuron_params['res_branching_threshold'] = b_th ds.set_object_properties(gid, params=neuron_params, axon_params=neuron_params) step(5000, 1, False, False) # neuron_params['use_lateral_branching'] = True ds.SaveSwc(swc_resolution=5) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) return swc_file
def run_dense(neuron_params): """ """ resolution = 1. np.random.seed(kernel['seeds']) kernel["resolution"] = resolution * minute ds.set_kernel_status(kernel, simulation_id="van_pelt_branching") neuron_params['growth_cone_model'] = gc_model neuron_params["position"] = np.random.uniform( -500, 500, (num_neurons, 2)) * um gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, num_neurites=3, position=[] ) neuron_params['use_van_pelt'] = False neuron_params['use_flpl_branching'] = False ds.set_object_properties(gid, params=neuron_params, axon_params=axon_params) step(200./resolution * minute, 1, False, True) neuron_params['use_van_pelt'] = True # neuron_params['use_flpl_branching'] = True # neuron_params["flpl_branching_rate"] = 0.001 ds.set_object_properties(gid, params=neuron_params, axon_params=neuron_params) step(1000./resolution * minute, 1, False, True) step(1000./resolution * minute, 1, False, True) step(1000./resolution * minute, 1, False, True) step(1000./resolution * minute, 1, False, True) # step(180, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(4080, 1, False, True) # neuron_params['use_van_pelt'] = True # ds.set_object_properties(gid,params = neuron_params, # axon_params=neuron_params) # step(10, 1, False, True) # step(10, 1, False, False) # neuron_params['use_lateral_branching'] = True ds.SaveSwc(swc_resolution=5) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
ds.simulate(5 * day) ds.plot.plot_recording(rec, show=False) ds.plot.plot_neurons(show=True) lb = { # 'res_branching_threshold': np.inf, "use_flpl_branching": True, "flpl_branching_rate": 0.003 * cph, "lateral_branching_angle_mean": 50. * deg } lb_axon = lb.copy() lb_axon["flpl_branching_rate"] = 0.012 * cph ds.set_object_properties(n, axon_params=lb_axon, dendrites_params=lb) ds.simulate(15 * day) ds.plot.plot_neurons(show=True) end_branching = { "res_branching_threshold": 0.2 * uM, 'res_branching_proba': 0.05 } ds.set_object_properties(n, axon_params=end_branching, dendrites_params=end_branching) ds.simulate(10 * day) ds.plot.plot_recording(rec2, show=False)
vp_dend = { # branching choice and parameters "use_van_pelt": True, "gc_split_angle_mean": 30. * deg, "gc_split_angle_std": 5. * deg, "B": 5. * cpm, "E": 0.1, "S": 1.5, # large S leads to core dump "T": 7 * day, } neurite_params = {"axon": vp_axon, "dendrites": vp_dend} # update the parameters lists of the neurons 'gids' ds.set_object_properties(gids, neurite_params=neurite_params) ds.simulate(7 * day + 2 * day) print("Simulation time : {}".format(dense.get_kernel_status('time'))) ds.plot.plot_neurons(mode="mixed", show=True) ''' Change the parameters to include lateral branching ''' print("\nLateral branching ON\n") lat_params = { "speed_growth_cone": 0.05 * um / minute, "use_van_pelt": False, "use_uniform_branching": True,
n = ds.create_neurons(n=num_neurons, params=neuron_params, dendrites_params=dend_params, num_neurites=8) ds.simulate(1. * day) ds.plot.plot_neurons() dend_params = { # "use_uniform_branching": True, # "uniform_branching_rate": 0.02*cph, # "lateral_branching_angle_mean": 70.*deg, } ds.set_object_properties(n, dendrites_params=dend_params) ds.simulate(1. * day) ds.plot.plot_neurons() dend_params = { "speed_growth_cone": 0.005 * um / minute, "somatropic_scale": 30. * um, "somatropic_factor": 0.1, # branching "uniform_branching_rate": 0.02 * cph, "uniform_split_rate": 0.05 * cph, "gc_split_angle_mean": 90. * deg, "gc_split_angle_std": 3. * deg, }
def run_dense(neuron_params): """ """ resolution = 1. np.random.seed(kernel['seeds']) kernel["resolution"] = resolution kernel["angles_in_radians"] = True ds.set_kernel_status(kernel, simulation_id="case_neuron") neuron_params['growth_cone_model'] = gc_model neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=4, position=[]) step(100. / resolution, 1, False, True) arborization = { "use_van_pelt": True, "gc_split_angle_mean": 0.50, "B": 11., "T": 200. } arborization_axon = { "use_van_pelt": True, "gc_split_angle_mean": 1.0, "B": 19., "T": 5000. } dendrite_params.update(arborization) axon_params.update(arborization_axon) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(1000. / resolution, 1, False, True) elongation = { "use_van_pelt": False, "persistence_length": 30., "res_retraction_factor": 0.01, "res_elongation_factor": 0.1, # "res_leakage": 0.05, "res_retraction_threshold": 0.1, "res_elongation_threshold": 0.2, "res_leakage": 30.0, "res_neurite_generated": 4500., "res_correlation": 0.05, "res_variance": 0.002, "res_use_ratio": 0.1, } elongation_axon = {"res_elongation_factor": 0.5} dendrite_params.update(elongation) axon_params.update(elongation_axon) print("elongation") ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2002. / resolution, 1, False, True) # stop the dendrites stortignation = { "use_van_pelt": False, "persistence_length": 10., "res_retraction_factor": 0.0, "res_elongation_factor": 0.0, "res_retraction_threshold": 0.000, "res_elongation_threshold": 10., } stortignation_axon = { "use_van_pelt": False, "sensing_angle": 0.20, "persistence_length": 91., "flpl_branching_rate": 0.002, "use_flpl_branching": True, "res_retraction_factor": 0.02, "res_elongation_factor": 0.2910, # "res_leakage": 0.05, "res_retraction_threshold": 0.0001, "res_elongation_threshold": 0.10, "res_leakage": 10.0, "res_neurite_generated": 45000., "res_correlation": 0.05, "res_weight_diameter": 0., "res_variance": 0.001, "res_use_ratio": 0.1, } print("stortignation") dendrite_params.update(stortignation) axon_params.update(stortignation_axon) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2000. / resolution, 1, False, True) ds.SaveSwc(swc_resolution=5) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
n = ds.create_neurons(n=num_neurons, params=neuron_params, neurite_params=dend_params, num_neurites=8) ds.simulate(1. * day) ds.plot.plot_neurons() dend_params = { # "use_uniform_branching": True, # "uniform_branching_rate": 0.02*cph, # "lateral_branching_angle_mean": 70.*deg, } ds.set_object_properties(n, neurite_params=dend_params) ds.simulate(1. * day) ds.plot.plot_neurons() dend_params = { "speed_growth_cone": 0.005 * um / minute, "somatropic_scale": 30. * um, "somatropic_factor": 0.1, # branching "uniform_branching_rate": 0.02 * cph, "uniform_split_rate": 0.05 * cph, "gc_split_angle_mean": 90. * deg, "gc_split_angle_std": 3. * deg, }
step(1 * day, 0, True) dendrite_params.update({ "speed_growth_cone": 0.04 * um / minute, "use_van_pelt": False }) axon_params.update({ "speed_growth_cone": 0.1 * um / minute, "use_van_pelt": False, "use_uniform_branching": True, "uniform_branching_rate": 0.1 * cph, }) ds.set_object_properties(gids, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) # ~ for i in range(2): # ~ step(4.*day, 0, True) # ~ step(16.25*hour, 0, True) step(simtime, 0, True) # ~ step(5.*hour, 0, True) duration = time.time() - start print(ds.get_kernel_status("time")) # prepare the plot plt.show(block=True) print("SIMULATION ENDED") # save
# Turn branching on #~ vp_branching = {'use_van_pelt': True} resource_branching = { 'res_branching_threshold': 80., 'res_branching_proba': 0.0005 } d_rsrc_branching = { 'res_branching_threshold': 60., 'res_branching_proba': 0.0003 } #~ ds.set_object_properties(n, params=vp_branching) #~ ds.set_object_properties(n, params=resource_branching) ds.set_object_properties(n, axon_params=resource_branching, dendrites_params=d_rsrc_branching) ds.simulate(20000) ds.plot.plot_neurons(show=True) lb = { "use_van_pelt": False, 'res_branching_threshold': np.inf, "use_flpl_branching": True, "flpl_branching_rate": 0.001, "lateral_branching_angle_mean": 45. } no_b = {"use_van_pelt": False}
def run_dense(neuron_params): """ """ kernel["resolution"] = resolution * minute ds.set_kernel_status(kernel, simulation_id="case_neuron") neuron_params['growth_cone_model'] = gc_model print(neuron_params['growth_cone_model']) neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) * um print(neuron_params['growth_cone_model']) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=1) print(neuron_params['growth_cone_model']) # ~ rec = ds.create_recorders(gid, ["speed", "resource"], levels="growth_cone") rec = ds.create_recorders(gid, ["resource"], levels="growth_cone") print(neuron_params['growth_cone_model']) # ds.set_object_properties(gid, params=neuron_params, # axon_params=neuron_params) step(3. / resolution * minute, 1, False, False) step(500. / resolution * minute, 1, False, False) print(neuron_params['growth_cone_model']) neuron_params['use_van_pelt'] = True dendrite_params['use_van_pelt'] = True axon_params['use_flpl_branching'] = True axon_params['flpl_branching_rate'] = 0.001 * cpm neuron_params.pop('growth_cone_model') print(dendrite_params) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2000. / resolution * minute, 1, False, True) axon_migated = { # 'use_flpl_branching' : True, # "flpl_branching_rate" : 0.004 * cpm, "res_retraction_threshold": 0.4 * uM, "res_elongation_threshold": 0.15 * uM, "res_elongation_factor": 0.4 * um / minute, # 'use_van_pelt' : True, "res_neurite_generated": 4500. * uM, "res_neurite_delivery_tau": 50. * minute, "res_correlation": 0.15, "res_variance": 0.02 * uM / minute**0.5, "res_use_ratio": 0.3, } axon_params.update(axon_migated) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(3000. / resolution * minute, 1, False, True) # neuron_params['use_flpl_branching'] = True # neuron_params["flpl_branching_rate"] = 0.001 * cpm # ds.set_object_properties(gid,params = neuron_params, # axon_params= neuron_params) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(180, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(4080, 1, False, True) # neuron_params['use_van_pelt'] = True # ds.set_object_properties(gid,params = neuron_params, # axon_params=neuron_params) # step(10, 1, False, True) # step(10, 1, False, False) # neuron_params['use_lateral_branching'] = True #~ ds.SaveSwc(swc_resolution=5) #~ ds.save_json_info() ds.plot.plot_recording(rec, show=False) swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
"T": 3*day, } axon_vp = { "use_van_pelt": True, # Best model "gc_split_angle_mean": 30.*deg, "B": 5.*cpm, "E": 0., "S": 1., "T": 3*day, } neurite_params = {"axon": axon_vp, "dendrites": dend_vp} ds.set_object_properties(n, neurite_params=neurite_params) ds.simulate(12*day) # ds.save_to_swc("chandelier-cell.swc", gid=n, resolution=50) ds.plot.plot_neurons() lb_a = { "use_van_pelt": False, #~ 'res_branching_threshold': np.inf, "use_flpl_branching": True, "flpl_branching_rate": 0.1*cph, "lateral_branching_angle_mean": 45.*deg }
# ~ ds.plot.plot_neurons(show=True) lb = { # 'res_branching_threshold': np.inf, "use_flpl_branching": True, "flpl_branching_rate": 0.003*cph, "lateral_branching_angle_mean": 50.*deg } lb_axon = lb.copy() lb_axon["flpl_branching_rate"] = 0.012*cph neurite_params = {"axon": lb_axon, "dendrites": lb} ds.set_object_properties(n, neurite_params=neurite_params) ds.simulate(15*day) # ~ ds.plot.plot_recording(rec, show=False) # ~ ds.plot.plot_neurons(show=True) end_branching = { "res_branching_threshold": 0.2*uM, 'res_branching_proba': 0.05 } ds.set_object_properties(n, neurite_params=end_branching) ds.simulate(10*day)
def run_dense(neuron_params): """ """ resolution = 30. * minute np.random.seed(kernel['seeds']) #Seeds the random number generator kernel["resolution"] = resolution # kernel["angles_in_radians"] = True ds.set_kernel_status(kernel, simulation_id="multipolar") neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) * um gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=4) # ds.set_object_properties(gid, params=neuron_params, # axon_params=neuron_params) step(3 * day, 1, False, True) axon_params['use_van_pelt'] = True axon_params["B"] = 90. * cpm axon_params["E"] = 0.2 axon_params["S"] = 1. axon_params["T"] = 10000. * minute dendrite_params['use_van_pelt'] = True dendrite_params["B"] = 90. * cpm dendrite_params["E"] = 0.2 dendrite_params["S"] = 1. dendrite_params["T"] = 10000. * minute axon_params['use_flpl_branching'] = False axon_params['flpl_branching_rate'] = 0.001 * cpm ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(6 * day, 1, False, True) axon_migated = { 'use_van_pelt': True, # "flpl_branching_rate" : 0.004, "res_retraction_threshold": 0.4 * uM, "res_elongation_threshold": 0.15 * uM, "res_elongation_factor": 0.6 * um / minute, # 'use_van_pelt' : True, "res_neurite_generated": 4500. * uM, "res_neurite_delivery_tau": 50. * minute, "res_correlation": 0.15, "res_variance": 0.02 * uM / minute**0.5, "res_use_ratio": 0.3 * cpm, } axon_params.update(axon_migated) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(3 * day, 1, False, True) # neuron_params['use_flpl_branching'] = True # neuron_params["flpl_branching_rate"] = 0.001 # ds.set_object_properties(gid,params = neuron_params, # axon_params= neuron_params) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(180, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(4080, 1, False, True) # neuron_params['use_van_pelt'] = True # ds.set_object_properties(gid,params = neuron_params, # axon_params=neuron_params) # step(10, 1, False, True) # step(10, 1, False, False) # neuron_params['use_lateral_branching'] = True ds.io.save_to_swc(resolution=25) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
"use_van_pelt": False, "use_flpl_branching": True, "flpl_branching_rate": 0.00025 * cpm, "lateral_branching_angle_mean": 45. * deg, } dend_params = { "use_van_pelt": False, "use_uniform_branching": True, "uniform_branching_rate": 0.0002 * cpm, "persistence_length": 100. * um, "speed_growth_cone": 0.01 * um / minute, "lateral_branching_angle_mean": 40. * deg, } ds.set_object_properties(n, dendrites_params=dend_params, axon_params=lb_axon) ds.simulate(30000 * minute) ds.plot.plot_neurons() # then further branching vp_axon = { "use_flpl_branching": False, #~ "use_van_pelt": True, #~ "B": 5., #~ "T": 40000., #~ "gc_split_angle_mean": 30., } dend_params = {
dendrites_params=dend_params, num_neurites=6) ds.simulate(2 * day) ds.plot.plot_neurons(show=True, subsample=50) lb_axon = { "use_van_pelt": False, "use_flpl_branching": True, "flpl_branching_rate": 0.1 * cph, "speed_growth_cone": 0.02 * um / minute, "lateral_branching_angle_mean": 45. * deg, } ds.set_object_properties(n, axon_params=lb_axon) ds.simulate(5 * day) ds.io.save_to_swc("granule-cell.swc", gid=n) ds.plot.plot_neurons(show=True, subsample=50) import neurom as nm from neurom import viewer nrn = nm.load_neuron("granule-cell.swc") fig, _ = viewer.draw(nrn) for ax in fig.axes: ax.set_title("")
def run_dense(kernel, neuron_params, ID, plot=True): """ """ np.random.seed(kernel['seeds']) resolution = kernel["resolution"] kernel["angles_in_radians"] = True ds.set_kernel_status(kernel, simulation_id=ID) neuron_params['growth_cone_model'] = gc_model neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=4, position=[]) step(100. / resolution, 1, False, plot) arborization = { "use_van_pelt": True, "gc_split_angle_mean": 0.50, "B": 11., "T": 200. } arborization_axon = { "use_van_pelt": True, "gc_split_angle_mean": 1.0, "B": 19., "T": 2000. } dendrite_params.update(arborization) axon_params.update(arborization_axon) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(1000. / resolution, 1, False, plot) elongation = { "use_van_pelt": False, "persistence_length": 30., } dendrite_params.update(elongation) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2002. / resolution, 1, False, plot) stortignation = { "use_van_pelt": False, "persistence_length": 10., } stortignation_axon = { "use_van_pelt": False, # "sensing_angle": 0.20, "use_flpl_branching": True, "persistence_length": 91., "flpl_branching_rate": 0.0066, } # dendrite_params.update(stortignation) # axon_params.update(stortignation_axon) # ds.set_object_properties(gid, # params=neuron_params, # dendrites_params=dendrite_params, # axon_params=axon_params) step(2000. / resolution, 1, False, plot) # stortignation = {"use_van_pelt": False, # "persistence_length":10., # } # stortignation_axon={ # "use_van_pelt": False, # "use_flpl_branching": True, # "flpl_branching_rate" : 0.003, # "sensing_angle": 0.63, # "persistence_length": 40., # } # dendrite_params.update(stortignation) # axon_params.update(stortignation_axon) # ds.set_object_properties(gid, # params=neuron_params, # dendrites_params=dendrite_params, # axon_params=axon_params) # step(2000./resolution, 1, False, True) # step(2000./resolution, 1, False, True) ds.SaveSwc(swc_resolution=5) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
ds.set_kernel_status(kernel) pyr_neuron = ds.create_neurons(1, params=pyr_nrn, axon_params=pyr_axon_i, dendrites_params=pyr_dend_i, num_neurites=3) # initial extension (5 days) ds.simulate(sim_time) ds.plot.plot_neurons(mode="mixed") print(ds.get_object_properties(pyr_neuron)) # Extension and branching period (5 days) ds.set_object_properties(pyr_neuron, axon_params=pyr_axon_lb, dendrites_params=pyr_dend_lb) ds.simulate(sim_time) ds.plot.plot_neurons(mode="mixed") # Extension and branching period (5 more days) ds.simulate(sim_time) ds.plot.plot_neurons(mode="mixed") # Termination period (10 days) ds.set_object_properties(pyr_neuron, axon_params=axon_t, dendrites_params=dend_t) ds.simulate(2 * sim_time) ds.plot.plot_neurons(mode="mixed")
def run_dense(neuron_params): """ """ resolution = 1. np.random.seed(kernel['seeds']) kernel["resolution"] = resolution kernel["angles_in_radians"] = True ds.set_kernel_status(kernel, simulation_id="case_neuron") neuron_params['growth_cone_model'] = gc_model neuron_params["position"] = np.random.uniform(-1000, 1000, (num_neurons, 2)) gid = ds.create_neurons(n=num_neurons, params=neuron_params, axon_params=axon_params, dendrites_params=dendrite_params, num_neurites=4, position=[]) step(2000. / resolution, 1, False, True) splitting_dendrites = { 'use_van_pelt': True, "persistence_length": 60.0, "gc_split_angle_mean": 1., 'use_flpl_branching': True, "flpl_branching_rate": 0.0036, "B": 30., "E": 0.9, "S": 1.0, "T": 10000., } dendrite_params.update(splitting_dendrites) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params) step(2000. / resolution, 1, False, True) arborization = { 'use_van_pelt': False, 'use_flpl_branching': False, "persistence_length": 30.0, "res_weight_diameter": 0.1, "res_retraction_threshold": 0.01, "res_elongation_threshold": 0.12, "res_elongation_factor": 0.0612, "res_retraction_factor": 10., # 'use_van_pelt' : True, "res_neurite_generated": 9500., "res_neurite_delivery_tau": 50., "res_correlation": 0.15, "res_variance": 0.02, "res_use_ratio": 0.3, } dendrite_params.update(arborization) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2000. / resolution, 1, False, True) arborization = { 'use_van_pelt': True, # 'use_flpl_branching' : True, "flpl_branching_rate": 0.00036, "persistence_length": 5.0, "res_retraction_threshold": 0.1, "res_weight_diameter": 0.001, "res_elongation_threshold": 0.14, "res_elongation_factor": 0.12, # 'use_van_pelt' : True, "res_neurite_generated": 9500., "res_neurite_delivery_tau": 50., "res_correlation": 0.5, "res_variance": 0.2, "res_use_ratio": 0.4, } dendrite_params.update(arborization) ds.set_object_properties(gid, params=neuron_params, dendrites_params=dendrite_params, axon_params=axon_params) step(2000. / resolution, 1, False, True) step(2000. / resolution, 1, False, True) # neuron_params['use_flpl_branching'] = True # neuron_params["flpl_branching_rate"] = 0.001 # ds.set_object_properties(gid,params = neuron_params, # axon_params= neuron_params) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(1000./resolution, 1, False, True) # step(180, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(1080, 1, False, True) # step(4080, 1, False, True) # neuron_params['use_van_pelt'] = True # ds.set_object_properties(gid,params = neuron_params, # axon_params=neuron_params) # step(10, 1, False, True) # step(10, 1, False, False) # neuron_params['use_lateral_branching'] = True ds.SaveSwc(swc_resolution=15) ds.save_json_info() swc_file = ds.get_simulation_id() # print(swc_file) # ds.reset_kernel() return swc_file
} vp_dend = { # branching choice and parameters "use_van_pelt": True, "gc_split_angle_mean": 30. * deg, "gc_split_angle_std": 5. * deg, "B": 900. * cpm, "E": 0.1, "S": 1.5, # large S leads to core dump "T": 8.6e2 * minute, } # update the parameters lists of the neurons 'gids' ds.set_object_properties(gids, axon_params=vp_axon, dendrites_params=vp_dend) # pprint(ds.get_object_properties(gids)) ds.simulate(7 * day + 2 * day) print("Simulation time : {}".format(dense.get_kernel_status('time'))) ds.plot.plot_neurons(mode="mixed", show=True) ''' Change the parameters to include lateral branching ''' print("\nLateral branching ON\n") lat_params = { "speed_growth_cone": 0.005 * um / minute,