Exemplo n.º 1
0
def test_functions():
    '''
    Run each of the main functions.
    '''
    ds.reset_kernel()
    ds.set_kernel_status('environment_required', False)

    m = ds.generate_model('constant', 'memory-based', 'run-and-tumble')
    dp = ds.get_default_properties(m)
    e = ds.get_environment()
    ks = ds.get_kernel_status()
    ms = ds.get_models()

    pp = {"growth_cone_model": m, "position": (0., 0.) * um}
    gn = ds.create_neurons(params=pp, num_neurites=2)

    n = ds.get_neurons()
    ns = ds.get_object_properties(n)
    ns = ds.get_object_properties(n, level="neurite")
    ns = ds.get_object_properties(n, level="growth_cone")
    ns = ds.get_object_state(n)
    assert ds.get_object_state(n, "num_growth_cones") == 2
    ns = ds.get_object_state(n, level="dendrite_1")
    si = ds.get_simulation_id()

    ds.simulate(20 * hour)

    ni = ds.get_neurons()
Exemplo n.º 2
0
def RunNetGrowth(n_samples,
                 sim_length,
                 n_procs,
                 neuron_params,
                 save_path="tmp_measure",
                 plot=False):
    """
    Run NetGrowth simulation
    """
    kernel = {
        "seeds": [33, 57, 19, 37, 79, 87, 11][:n_procs],
        "num_local_threads": n_procs,
        "resolution": 1.
    }
    experiment_params = {}
    experiment_params["num_neurons"] = n_samples
    np.random.seed(kernel['seeds'])
    ds.get_kernel_status(kernel, ds.generate_simulation_id())
    culture = ds.CreateEnvironment(culture_file, min_x=0, max_x=cavity_x_max)
    pos_left = culture.seed_neurons(neurons=experiment_params["num_neurons"],
                                    xmax=neuron_x_max,
                                    soma_radius=1.)

    neuron_params['growth_cone_model'] = 'random_walk'
    neuron_params['position'] = pos_left

    gids = None
    gids = ds.create_neurons(experiment_params["num_neurons"],
                             "random_walk",
                             culture=culture,
                             params=neuron_params,
                             num_neurites=1)
    ds.simulate(sim_length)
    # fig, ax = plt.subplots()
    # ds.plot.plot_neurons(gid=range(experiment_params["num_neurons"]),
    # culture = culture, soma_color="k",
    # axon_color='g', axis=ax, show=True)
    ds.save_json_info(filepath=save_path)
    ds.SaveSwc(filepath=save_path, swc_resolution=1)
    # ds.save_json_info(filepath=tmp_dir)
    # ds.plot_neurons(show_nodes=True)
    ds.reset_kernel()
Exemplo n.º 3
0
        "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
    # ~ save_path = CleanFolder(os.path.join(os.getcwd(),"2culture_swc"))
    # ~ ds.save_json_info(filepath=save_path)
    # ~ ds.SaveSwc(filepath=save_path,swc_resolution = 10)

    # ~ graph = ds.generate_network(connection_proba=1)

    # ~ graph.to_file("circular.el")
    # ~ nngt.plot.draw_network(graph, show=True)
Exemplo n.º 4
0
    #~ "T": 40000.,
    #~ "gc_split_angle_mean": 30.,
}

dend_params = {
    "use_van_pelt": True,
    "use_uniform_branching": False,
    "B": 5. * cpm,
    "T": 50000. * minute,
    "gc_split_angle_mean": 30. * deg,
}

ds.set_object_properties(n, dendrites_params=dend_params, axon_params=vp_axon)

ds.simulate(70000 * minute)
print(ds.get_kernel_status()["time"])

ds.plot.plot_neurons(show=True)

n.to_swc("pyramidal-cell.swc")
n.to_neuroml("bipolar_cell.nml")

import neurom as nm
from neurom import viewer
nrn = nm.load_neuron("pyramidal-cell.swc")

fig, _ = viewer.draw(nrn)

for ax in fig.axes:
    ax.set_title("")
Exemplo n.º 5
0
fig, ax = plt.subplots()
fig2, ax2 = plt.subplots()
#~ observable = "angle"
#~ observable = "status"

xbins = np.linspace(-5000, 5000, int(num_neurons / 200.))
abins = np.linspace(-np.pi, np.pi, 50)
tbins = np.linspace(50, 150, 50)
sequence = []

for k, resol in enumerate(resolutions[::-1]):
    np.random.seed(1)
    ds.reset_kernel()
    ds.get_kernel_status({
        "resolution": resol,
        "num_local_threads": num_omp,
        "seeds": [2 * i for i in range(num_omp)],
        "environment_required": with_env,
    })

    if with_env:
        ds.set_environment(shape)

    params = {
        "growth_cone_model": gc_model,
        "use_critical_resource": False,
        "sensing_angle": sensing_angle,
        "filopodia_wall_affinity": 2.5,
        "filopodia_min_number": 25,
        "proba_down_move": 0.05,
        "scale_up_move": 5.,
        "position": [(0., 0.) for _ in range(num_neurons)]
Exemplo n.º 6
0

def step(n, loop_n, plot=True):
    ds.simulate(n)
    if plot:
        ds.plot_neurons(show_nodes=True, show=False)


if __name__ == '__main__':
    # ~ kernel={"seeds":[33, 64, 84, 65, 68, 23],
    # ~ "num_local_threads": 6,
    # ~ "resolution": 10.}
    kernel = {"seeds": [31], "num_local_threads": 1, "resolution": 10.}
    kernel["environment_required"] = False

    ds.get_kernel_status(kernel)
    '''
    Create neurons
    '''

    num_neurons = 1

    neuron_params['growth_cone_model'] = 'default'

    neuron_params['position'] = np.random.uniform(-10000, 10000,
                                                  (num_neurons, 2))

    gids = ds.create_neurons(n=num_neurons,
                             growth_cone_model='random_walk',
                             params=neuron_params,
                             dendrites_params=dendrite_params,
Exemplo n.º 7
0
        "resolution": 10. * minute,
        "adaptive_timestep": -1.,
        "environment_required": True
    }

    np.random.seed(12892)  # seeds for the neuron positions
    # ok pour 35 pas pour 40
    #np.random.seed(21829)  # seeds for the neuron positions
    # ok pour 40
    #np.random.seed(118239)  # seeds for the neuron positions

    culture_file = current_dir + "arches_3b.svg"
    ds.set_kernel_status(kernel, simulation_id="ID")

    gids, culture = None, None
    print(ds.get_kernel_status("num_local_threads"))

    if kernel["environment_required"]:
        culture = ds.set_environment(culture_file, min_x=0, max_x=800)
        # generate the neurons inside the left chamber
        pos = culture.seed_neurons(
            # upper region ymin=500.
            neurons=num_neurons,
            soma_radius=soma_radius,
            ymin=790)
        neuron_params['position'] = pos
    else:
        neuron_params['position'] = np.random.uniform(-1000, 1000,
                                                      (200, 2)) * um

    print("Creating neurons")
Exemplo n.º 8
0
fig, ax = plt.subplots()
fig.patch.set_alpha(0.)
fig0, ax0 = plt.subplots()
fig0.patch.set_alpha(0.)

for k, resol in enumerate(resolutions):

    print("\nSimulating with resol {}\n".format(resol))

    np.random.seed(1)
    ds.reset_kernel()

    ds.get_kernel_status({
        "resolution": resol,
        "num_local_threads": num_omp,
        "seeds": [2 * i + 1 for i in range(num_omp)],
    })

    # ~ width = resol*np.sin(sensing_angle*np.sqrt(resol))
    width = 50.

    ds.set_environment(shape)

    base_affinity = 10.

    params = {
        "sensing_angle": sensing_angle,
        # ~ "filopodia_wall_affinity": base_affinity/resol,
        # ~ "filopodia_wall_affinity": base_affinity/np.sqrt(resol),
        # ~ "filopodia_wall_affinity": base_affinity*np.sqrt(resol),
Exemplo n.º 9
0
ds.set_kernel_status(kernel)

# create neurons

n = ds.create_neurons(n=num_neurons, params=neuron_params,
                      axon_params=axon_params, dendrites_params=dend_params,
                      num_neurites=3)

rec = ds.create_recorders(n, "num_growth_cones")

# first development phase : initial pure elongation (no branching)  during 7 days

ds.simulate(10*day)

print(ds.get_kernel_status('time'))

recording = ds.get_recording(rec, record_format="compact")
print(recording)

ds.plot.plot_neurons(mode="mixed", show=True)

# second development phase : with lateral branching

# updated parameters

lb_axon = {
    # extension parameters
    "speed_growth_cone": 0.02*um/minute,

    # branching choice and parameters