コード例 #1
0
ファイル: utils.py プロジェクト: ziemowit-s/neuronpp_gym
def make_ebner_network(input_size, input_cell_num):
    def cell_ebner_ach_da():
        cell = Ebner2019AChDACell("ebner_ach_da",
                                  compile_paths="agents/commons/mods/4p_ach_da_syns "
                                                "agents/commons/mods/ebner2019")
        soma = cell.add_sec("soma", diam=20, l=20, nseg=10)
        cell.add_sec("apic", diam=2, l=50, nseg=100)
        cell.connect_secs(child="apic", parent="soma", child_loc=0, parent_loc=1)
        cell.make_default_mechanisms()
        cell.make_spike_detector(soma(0.5))
        return cell

    def cell_ebner():
        cell = Ebner2019Cell("ebner", compile_paths="agents/commons/mods/ebner2019")
        cell.add_sec("soma", diam=20, l=20, nseg=10)
        cell.add_sec("apic", diam=2, l=50, nseg=100)
        cell.connect_secs(child="apic", parent="soma", child_loc=0, parent_loc=1)
        cell.make_default_mechanisms()
        return cell

    input_syn_per_cell = int(np.ceil(input_size / input_cell_num))
    inp = Population(name="input")
    inp.add_cells(num=input_cell_num, cell_function=cell_ebner)
    con = inp.connect(rule="one", syn_num_per_cell_source=input_syn_per_cell)
    con.set_source(None)
    con.set_target(inp.cells)
    con.add_synapse("Syn4P").add_netcon(weight=UniformTruncatedDist(low=0.01, high=0.1))
    con.build()

    hid = Population(name="hid")
    hid.add_cells(num=4, cell_function=cell_ebner_ach_da)
    con = hid.connect(syn_num_per_cell_source=1, cell_connection_proba=0.5)
    con.set_source([c.filter_secs("soma")(0.5) for c in inp.cells])
    con.set_target(hid.cells)
    con.add_synapse("Syn4PAChDa").add_netcon(weight=UniformTruncatedDist(low=0.01, high=0.1)) \
        .add_point_process_params(ACh_tau=50, Da_tau=100, A_Da=1e-35, A_ACh=1e-35)
    con.add_synapse("SynACh").add_netcon(weight=0.3)
    con.add_synapse("SynDa").add_netcon(weight=1.0)
    con.set_synaptic_function(func=lambda syns: Ebner2019AChDACell.set_synaptic_pointers(*syns))
    con.group_synapses()
    con.build()
    reward = [s['SynACh'][0] for s in hid.syns]
    punish = [s['SynDa'][0] for s in hid.syns]

    out = Population(name="output")
    out.add_cells(num=2, cell_function=cell_ebner_ach_da)
    con = out.connect(syn_num_per_cell_source=1, cell_connection_proba=1)
    con.set_source([c.filter_secs("soma")(0.5) for c in hid.cells])
    con.set_target(out.cells)
    con.add_synapse("Syn4PAChDa").add_netcon(weight=UniformTruncatedDist(low=0.01, high=0.1)) \
        .add_point_process_params(ACh_tau=50, Da_tau=100, A_Da=1e-3, A_ACh=1e-3)
    con.add_synapse("SynACh").add_netcon(weight=0.3)
    con.add_synapse("SynDa").add_netcon(weight=1.0)
    con.set_synaptic_function(func=lambda syns: Ebner2019AChDACell.set_synaptic_pointers(*syns))
    con.group_synapses()
    con.build()
    reward += [s['SynACh'][0] for s in out.syns]
    punish += [s['SynDa'][0] for s in out.syns]
    return inp, out, reward, punish
コード例 #2
0
ファイル: utils.py プロジェクト: ziemowit-s/neuronpp_gym
 def cell_ebner_ach_da():
     cell = Ebner2019AChDACell("ebner_ach_da",
                               compile_paths="agents/commons/mods/4p_ach_da_syns "
                                             "agents/commons/mods/ebner2019")
     soma = cell.add_sec("soma", diam=20, l=20, nseg=10)
     cell.add_sec("apic", diam=2, l=50, nseg=100)
     cell.connect_secs(child="apic", parent="soma", child_loc=0, parent_loc=1)
     cell.make_default_mechanisms()
     cell.make_spike_detector(soma(0.5))
     return cell
コード例 #3
0
from neuronpp.utils.record import Record
from neuronpp.utils.simulation import Simulation
from neuronpp.core.cells.netstim_cell import NetStimCell
from neuronpp.core.cells.vecstim_cell import VecStimCell
from neuronpp.cells.ebner2019_ach_da_cell import Ebner2019AChDACell

path = os.path.dirname(os.path.abspath(__file__))


WEIGHT = 0.0035		# µS, conductance of (single) synaptic potentials
WARMUP = 200


if __name__ == '__main__':
    # define cell
    cell = Ebner2019AChDACell(name="cell")
    filepath = os.path.join(path, "..",
                            "commons/morphologies/swc/my.swc")
    cell.load_morpho(filepath=filepath)

    # make NetStim stims
    ns_cell = NetStimCell("netstim_cell")
    stim1 = ns_cell.make_netstim(start=WARMUP + 1, number=1)

    # make VecStim
    vs_cell = VecStimCell("vecstim_cell")
    stim2 = vs_cell.make_vecstim(np.array([WARMUP+50]))

    # make synapses with spines
    syns_4p, heads = cell.add_synapses_with_spine(source=None, secs=cell.secs, number=100, netcon_weight=WEIGHT,
                                                  mod_name="Syn4PAChDa", delay=1, **cell.params_4p_syn)
コード例 #4
0
from neuronpp.cells.ebner2019_ach_da_cell import Ebner2019AChDACell
from neuronpp.utils.synaptic_debugger import SynapticDebugger

WEIGHT = 0.0035  # From Ebner et al. 2019

if __name__ == '__main__':
    # Prepare cell
    cell = Ebner2019AChDACell("cell")
    soma = cell.add_sec("soma", diam=20, l=20, nseg=10)

    syn = cell.add_synapse(source=None,
                           netcon_weight=WEIGHT,
                           seg=soma(0.5),
                           mod_name="Syn4PAChDa",
                           **cell.params_4p_syn,
                           ACh_tau=1,
                           Da_tau=20,
                           A_Da=1e-3)

    syn_ach = cell.add_synapse(source=None,
                               seg=soma(0.5),
                               netcon_weight=1.0,
                               mod_name="SynACh")
    syn_da = cell.add_synapse(source=None,
                              seg=soma(0.5),
                              netcon_weight=1.0,
                              mod_name="SynDa")

    cell.set_synaptic_pointers(syn, syn_ach, syn_da)
    cell.make_default_mechanisms()