Example #1
0
def setup(parameter_set, generate=False):
    
    exec('from parameters_%s import ParameterisedModel'%parameter_set)
    params = ParameterisedModel()
    
    
    cells = ['RIAL', 'RIAR', 'SMDVL', 'SMDVR', 'SMDDL', 'SMDDR', 'AIYL', 'AIYR', 'AWCL', 'AWCR']
    #cells = None
    cells_to_stimulate = []
    
    reference = "c302_%s_AWC"%parameter_set
    target_directory='examples'
    
    if generate:
        nml_doc = c302.generate(reference, 
                 params, 
                 cells=cells, 
                 cells_to_stimulate=cells_to_stimulate, 
                 duration=800, 
                 dt=0.1, 
                 validate=(parameter_set!='B'),
                 target_directory = target_directory)
                 
        stim_amplitude = "0.6nA"

        c302.add_new_input(nml_doc, "AWCL", "100ms", "100ms", stim_amplitude, params)
        c302.add_new_input(nml_doc, "AWCR", "500ms", "100ms", stim_amplitude, params)
        
        nml_file = target_directory+'/'+reference+'.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...

        print("(Re)written network file to: "+nml_file)
             
    return cells, cells_to_stimulate, params, False
Example #2
0
def setup(parameter_set,
          generate=False,
          duration=500,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    stim_amplitudes = ["3pA", "5pA"]
    duration = (len(stim_amplitudes)) * 1000

    params.set_bioparameter("unphysiological_offset_current_del", "50 ms",
                            "Testing IClamp", "0")

    exc_pre = "URYDL"
    exc_post = "SMDDR"
    inh_pre = "VD12"
    inh_post = "VB11"
    gap_1 = "AIZL"
    gap_2 = "ASHL"

    cells = [exc_pre, exc_post, inh_pre, inh_post]
    cells_to_stimulate_extra = [exc_pre, inh_pre]

    if parameter_set != 'A':
        cells.append(gap_1)
        cells.append(gap_2)
        cells_to_stimulate_extra.append(gap_1)

    reference = "c302_%s_Syns" % parameter_set

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_stimulate=[],
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                param_overrides=param_overrides,
                                verbose=verbose)

    for i in range(len(stim_amplitudes)):
        start = "%sms" % (i * 1000 + 100)
        for c in cells_to_stimulate_extra:
            c302.add_new_input(nml_doc, c, start, "800ms", stim_amplitudes[i],
                               params)

    nml_file = target_directory + '/' + reference + '.nml'
    writers.NeuroMLWriter.write(
        nml_doc, nml_file)  # Write over network file written above...

    print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate_extra, params, []
Example #3
0
def setup(parameter_set,
          generate=False,
          duration=None,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          config_param_overrides={},
          verbose=True):

    reference = "c302_%s_IClamp" % parameter_set
    c302.print_("Setting up %s" % reference)

    exec('from c302.parameters_%s import ParameterisedModel' % parameter_set,
         globals())
    params = ParameterisedModel()

    stim_amplitudes = ["1pA", "2pA", "3pA", "4pA", "5pA", "6pA"]
    if duration == None:
        duration = (len(stim_amplitudes)) * 1000

    my_cells = ["ADAL", "PVCL"]
    muscles_to_include = ['MDR01']

    cells = my_cells
    cells_total = my_cells + muscles_to_include

    nml_doc = None

    if generate:
        c302.print_("Generating %s" % reference)

        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_stimulate=[],
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                param_overrides=param_overrides,
                                verbose=verbose,
                                data_reader=data_reader)

        for i in range(len(stim_amplitudes)):
            start = "%sms" % (i * 1000 + 100)
            for c in cells_total:
                c302.add_new_input(nml_doc, c, start, "800ms",
                                   stim_amplitudes[i], params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        c302.print_("(Re)written network file to: " + nml_file)

    return cells, cells_total, params, muscles_to_include, nml_doc
Example #4
0
def setup(parameter_set, 
          generate=False,
          duration=3000, 
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          config_param_overrides={},
          verbose=True):

    exec('from parameters_%s import ParameterisedModel'%parameter_set)
    params = ParameterisedModel()
    
    stim_amplitudes = ["1pA","2pA","3pA","4pA","10pA","15pA"]
    duration = (len(stim_amplitudes))*1000
    
    
    cells = ['VB1']
    muscles_to_include = ['MVL07']
    
    cells_total = list(cells + muscles_to_include)
    
    
    reference = "c302_%s_NMJ"%parameter_set

    conn_polarity_override = None
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override = config_param_overrides['conn_polarity_override']

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                data_reader=data_reader,
                                cells=cells,
                                cells_to_stimulate=[],
                                muscles_to_include = muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                param_overrides=param_overrides,
                                conn_polarity_override=conn_polarity_override,
                                verbose=verbose)
                    
    for i in range(len(stim_amplitudes)):
        start = "%sms"%(i*1000 + 100)
        for c in cells:
            c302.add_new_input(nml_doc, c, start, "800ms", stim_amplitudes[i], params)
    
    
    nml_file = target_directory+'/'+reference+'.net.nml'
    writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
    
    print("(Re)written network file to: "+nml_file)
                    
    return cells, cells_total, params, muscles_to_include, nml_doc
Example #5
0
def setup(parameter_set,
          generate=False,
          duration=3000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          config_param_overrides={},
          verbose=True):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    stim_amplitudes = ["1pA", "2pA", "3pA", "4pA", "10pA", "15pA"]
    duration = (len(stim_amplitudes)) * 1000

    cells = ['VB1']
    muscles_to_include = ['MVL07']

    cells_total = list(cells + muscles_to_include)

    reference = "c302_%s_NMJ" % parameter_set

    conn_polarity_override = None
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override = config_param_overrides[
            'conn_polarity_override']

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                data_reader=data_reader,
                                cells=cells,
                                cells_to_stimulate=[],
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                param_overrides=param_overrides,
                                conn_polarity_override=conn_polarity_override,
                                verbose=verbose)

    for i in range(len(stim_amplitudes)):
        start = "%sms" % (i * 1000 + 100)
        for c in cells:
            c302.add_new_input(nml_doc, c, start, "800ms", stim_amplitudes[i],
                               params)

    nml_file = target_directory + '/' + reference + '.nml'
    writers.NeuroMLWriter.write(
        nml_doc, nml_file)  # Write over network file written above...

    print("(Re)written network file to: " + nml_file)

    return cells, cells_total, params, muscles_to_include, nml_doc
Example #6
0
def setup(parameter_set, 
          generate=False,
          duration=1000, 
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True):

    exec('from c302.parameters_%s import ParameterisedModel'%parameter_set, globals())
    params = ParameterisedModel()
    
    
    
    my_cells = ['RIAL', 'SMDDL','SMDVL']
    muscles_to_include = []
    
    cells               = my_cells
    cells_total  = my_cells + muscles_to_include
    
    reference = "c302_%s_RIA"%parameter_set
    nml_doc = None
    
    
    if generate:
        nml_doc = c302.generate(reference, 
                    params, 
                    cells=cells, 
                    cells_to_stimulate=muscles_to_include, 
                    muscles_to_include = muscles_to_include,
                    duration=duration, 
                    dt=dt, 
                    target_directory=target_directory,
                    param_overrides=param_overrides,
                    verbose=verbose,
                    data_reader=data_reader)
                    
        start1 = '100ms'
        dur1 = '100ms'
        stim_amplitude1 = '4pA'
        start2 = '400ms'
        dur2 = '100ms'
        stim_amplitude2 = '4pA'
        
        c302.add_new_input(nml_doc, 'SMDDL', start1, dur1, stim_amplitude1, params)
        c302.add_new_input(nml_doc, 'SMDVL', start2, dur2, stim_amplitude2, params)


        nml_file = target_directory+'/'+reference+'.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...

        c302.print_("(Re)written network file to: "+nml_file)
    
                    
    return cells, cells_total, params, muscles_to_include, nml_doc
def setup(parameter_set,
          generate=False,
          target_directory='examples',
          data_reader="SpreadsheetDataReader"):

    exec('from parameters_%s import ParameterisedModel' % parameter_set,
         globals())
    params = ParameterisedModel()

    cells = [
        'RIAL', 'RIAR', 'SMDBL', 'SMDVR', 'SMDDL', 'SMDDR', 'AIYL', 'AIYR',
        'AWCL', 'AWCR'
    ]
    cells_to_stimulate = []

    reference = "c302_%s_AWCMike" % parameter_set

    nml_doc = None

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_stimulate=cells_to_stimulate,
                                duration=800,
                                dt=0.1,
                                target_directory=target_directory)

        stim_amplitude = "0.6nA"  #this is WAY too high to prevent unstable outputs, but fun to watch

        c302.add_new_input(nml_doc, "AWCL", "100ms", "100ms", stim_amplitude,
                           params)
        c302.add_new_input(nml_doc, "AWCR", "500ms", "100ms", stim_amplitude,
                           params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)

        print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, [], nml_doc
def setup(parameter_set, 
          generate=False,
          duration=2500, 
          dt=0.1,
          target_directory='examples'):
    
    exec('from parameters_%s import ParameterisedModel'%parameter_set)
    params = ParameterisedModel()
    
    cells = ["RMGR","ASHR","ASKR","AWBR","IL2R","RMHR","URXR"]
    cells_to_stimulate      = []
    
    reference = "c302_%s_Social"%parameter_set
    
    target_directory='examples'
    
    if generate:
        nml_doc = c302.generate(reference, 
                       params, 
                       cells=cells, 
                       cells_to_stimulate=cells_to_stimulate, 
                       duration=duration, 
                       dt=dt, 
                       validate=(parameter_set!='B'),
                       target_directory=target_directory)
             
    stim_amplitude = "5pA"
    c302.add_new_input(nml_doc, "RMGR", "100ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "ASHR", "400ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "ASKR", "700ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "AWBR", "1000ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "IL2R", "1300ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "RMHR", "1600ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "URXR", "1900ms", "200ms", stim_amplitude, params)
    
    
    nml_file = target_directory+'/'+reference+'.nml'
    writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
    
    print("(Re)written network file to: "+nml_file)
    
    return cells, cells_to_stimulate, params, False
Example #9
0
def setup(parameter_set,
          generate=False,
          duration=2500,
          dt=0.1,
          target_directory='examples'):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    cells = ["RMGR", "ASHR", "ASKR", "AWBR", "IL2R", "RMHR", "URXR"]
    cells_to_stimulate = []

    reference = "c302_%s_Social" % parameter_set

    target_directory = 'examples'

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_stimulate=cells_to_stimulate,
                                duration=duration,
                                dt=dt,
                                validate=(parameter_set != 'B'),
                                target_directory=target_directory)

    stim_amplitude = "5pA"
    c302.add_new_input(nml_doc, "RMGR", "100ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "ASHR", "400ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "ASKR", "700ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "AWBR", "1000ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "IL2R", "1300ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "RMHR", "1600ms", "200ms", stim_amplitude,
                       params)
    c302.add_new_input(nml_doc, "URXR", "1900ms", "200ms", stim_amplitude,
                       params)

    nml_file = target_directory + '/' + reference + '.nml'
    writers.NeuroMLWriter.write(
        nml_doc, nml_file)  # Write over network file written above...

    print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, False
Example #10
0
def setup(
        parameter_set,
        generate=False,
        duration=10000,  # Change here the duration of the simulation in ms
        dt=0.05,  # Time step 
        target_directory='examples',
        data_reader="UpdatedSpreadsheetDataReader2",
        param_overrides={},
        verbose=True,
        config_param_overrides={}):

    # Import this from the defined parameters.
    exec('from parameters_%s import ParameterisedModel' % parameter_set,
         globals())
    params = ParameterisedModel()

    #*******************************************
    # 1. DEFINE THE ELEMENTS TO SIMULATE
    #*******************************************

    cells = []
    # Neurons to include in the simulation (e.g. cells = ['AVBL', 'DB1'])

    muscles_to_include = []
    # Muscles to include in the simulation (e.g. muscles_to_include = ['MDL07'], muscles = True for all the muscles)

    cells_to_stimulate = []
    # Neurons to stimulate
    # This is used to stimulate the neurons and muscles, I use a different method to stimulate however.

    cells_to_plot = cells
    # Neurons to include in the plot (e.g. cells_to_plot = ['DB1'])
    # If you do not want to plot all the neurons defined, change cells by the only neurons you want plotted.

    reference = "c302_%s_tutorial" % parameter_set
    # Reference for the subsequent generated NeuroML files
    # (Make sure this corresponds with the script name: c302_NAME.py --> reference = "c302_%s_NAME" % parameter_set)

    #*******************************************
    # 2. DEFINE THE NETWORK CONNECTIONS
    #*******************************************

    conns_to_include = []
    # Only connections to include
    # By default, c302 takes all the connections from the connectome.
    # If you only want some specific connections, specify them here.

    conns_to_exclude = [
        'DB1-DB2',  # Exclude the chemical synapse from DB1 to DB2
        'DB1-DB2_GJ',  # Exclude the gap junction from DB1 to DB2
        'DB2-DB1_GJ',
        # Note that gap junctions need to be excluded in both ways
        r'^AVB.-DB\d+$',  # Regular expression to exclude AVBR and AVBL synapses to DB1, DB2... DB7
    ]
    # Connections to exclude or 'ablate'
    # I included some examples of connections to be excluded.
    # Search on how to use Regular Expressions in python.

    conn_polarity_override = {
        r'^VB\d+-VB\d+$': 'inh',  #Change any VB# to VB# synapse to inhibitory
        r'^DD\d+-DD\d+$': 'exc',  #Change any DD# to DD# synapse to excitatory
    }
    # Change the polarity of chemical synapses
    # c302 takes as inhibitory those synapses coming from GABAergic neurons.

    conn_number_override = {
        '^.+-.+$': 1,
    }
    # Changed the number of synapses between neurons all to 1.

    #*******************************************
    # 3. ADD INPUTS TO NEURONS AND MUSCLES
    #*******************************************
    # (This is where I define the inputs, instead of using cells_to_stimulate)

    input_list = []  # Step current input
    sine_input_list = []  # Sinusoidal input
    ramp_input_list = []  # Ramp inputs are still under development

    input_list.append((neuron, start, duration, amplitude))
    # Add a step input to a neuron, at a given time, with a duration and intensity.
    # This can also be used to stimulate muscles!
    # (e.g. input_list.append(('AVBL', '0ms', '4000ms', '15pA')))

    sine_input_list.append((neuron, start, duration, peak_amplitude, period))
    # Add a step input to a neuron, at a given time, with a duration and intensity.
    # This can also be used to stimulate muscles!
    # (e.g. sine_input_list.append(('DB1', '0ms', '5000ms', '1.5pA', '800ms')) )

    config_param_overrides['input'] = input_list

    #*******************************************
    # 4. OVERRIDE CERTAIN PARAMETERS
    #*******************************************

    param_overrides = {

        # Symmetrical Gap junctions
        'mirrored_elec_conn_params': {

            #r'^AVB._to_AVB._GJ$_elec_syn_gbase': '0.001 nS',
        },

        # Change the initial membrane potential
        'initial_memb_pot': '-50 mV',

        # Here, any parameters found in the Parameters_#.py can be changed and specified for this specific simulation.
    }

    nml_doc = None

    # Create the NeuroML file of the network using c302 functions.
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        for sine_stim_input in sine_input_list:
            cell, delay, dur, amp, period = sine_stim_input
            c302.add_new_sinusoidal_input(nml_doc, cell, delay, dur, amp,
                                          period, params)

        for ramp_stim_input in ramp_input_list:
            cell, delay, dur, start_amp, finish_amp, base_amp = ramp_stim_input
            c302.add_new_ramp_input(nml_doc, cell, delay, dur, start_amp,
                                    finish_amp, base_amp, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        c302.print_("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #11
0
def setup(parameter_set,
          generate=False,
          duration=6000,
          dt=0.05,
          target_directory='examples',
          data_reader="UpdatedSpreadsheetDataReader2",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec ('from parameters_%s import ParameterisedModel' % parameter_set, globals())
    params = ParameterisedModel()

    
    #'''
    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]
    #'''
    motors = list(VA_motors + VB_motors + AS_motors + DA_motors + DB_motors + VD_motors + DD_motors)
    
    inters = ['AVBL', 'AVBR', 'AVAL', 'AVAR']

    cells = list(motors + inters)
    
    muscles_to_include = []

    cells_to_stimulate = []


    cells_to_plot = cells
    reference = "c302_%s_BW" % parameter_set


    conns_to_include = [
    ]
    conns_to_exclude = [
        
        'VB2-VB4_GJ',
        'VB4-VB2_GJ',
        
        
        #########################################
        # Remove unwanted interneuron connections
        #########################################
        
        # Disconnect the AVA and AVB interneurons
        r'^AVB.-AVA.$',
        r'^AVA.-AVB.$',
        r'^AVB.-AVA._GJ$',
        r'^AVA.-AVB._GJ$',
        
        # Disconnect chemical stimulation from AVA and AVB
        r'^AVB.-.A\d+$', 
        r'^AVB.-.B\d+$',
        r'^AVB.-.D\d+$',
        r'^AVB.-AS\d+$',
        r'^AVA.-.A\d+$',
        r'^AVA.-.B\d+$',
        r'^AVA.-.D\d+$',
        r'^AVA.-AS\d+$',
        
        # Disconnect AVA and AVB gap junctions not pressent. 
        r'^AVB.-.A\d+_GJ$',
        r'^AVB.-AS\d+_GJ$',
        r'^AVB.-.D\d+_GJ$',
        
        r'^AVA.-.B\d+_GJ$',
        r'^AVA.-AS\d+_GJ$',
        r'^AVA.-.D\d+_GJ$',
        
        # Disconnect feedback GJ into AVA and AVB. 
        
        r'^..\d+-AV.._GJ$',
        
        
        #########################################################
        # Remove connections not present in Haspel and O'Donovan
        #########################################################
        
        #'''
        r'^AS\d+-.B\d+$',
        r'^AS\d+-VA\d+$',
        r'^AS\d+-DD\d+$',
        r'^AS\d+-..\d+_GJ$',
        r'^..\d+-AS\d+_GJ$',
        
        r'^DA\d+-AS\d+$',
        r'^DA\d+-DD\d+$',
        r'^DA\d+-VB\d+$',
        r'^DA\d+-VA\d+$',
        r'^DA\d+-AS\d+$',
        r'^DA\d+-.B\d+_GJ$',
        r'^DA\d+-.D\d+_GJ$',
        r'^.B\d+-DA\d+_GJ$',
        r'^.D\d+-DA\d+_GJ$',
        
        r'^DB\d+-.A\d+$',
        r'^DB\d+-VB\d+$',
        r'^DB\d+-.A\d+_GJ$',
        r'^DB\d+-.D\d+_GJ$',
        r'^DB\d+-VB\d+_GJ$',
        r'^.A\d+-DB\d+_GJ$',
        r'^.D\d+-DB\d+_GJ$',
        r'^VB\d+-DB\d+_GJ$',
        
        r'^DD\d+-..\d+$',
        r'^DD\d+-VD\d+_GJ$',
        r'^DD\d+-.B\d+_GJ$',
        r'^DD\d+-.A\d+_GJ$',
        r'^VD\d+-DD\d+_GJ$',
        r'^.B\d+-DD\d+_GJ$',
        r'^.A\d+-DD\d+_GJ$',
        
        r'^VD\d+-D.\d+$',
        r'^VD\d+-AS\d+$',
        r'^VD\d+-VB\d+_GJ$',
        r'^VB\d+-VD\d+_GJ$',
        
        r'^VB\d+-DB\d+$',
        r'^VB\d+-.A\d+$',
        r'^VB\d+-AS\d+$',
        r'^VB\d+-VD\d+$',
        r'^VB\d+-VA\d+_GJ$',
        r'^VA\d+-VB\d+_GJ$',
        
        r'^VA\d+-.B\d+$',
        r'^VA\d+-DA\d+$',
        r'^VA\d+-AS\d+$',
        
        ###############################################
        # Remove connections going forward in DA and VA
        ###############################################
        
        #Forward connections in DA-VA
        'DA3-DA4',
        'DA2-DA3',
        'VA2-VA3',
        'VA3-VA4',
        'VA5-VA6',
        'DA9-VA12',
        'VA12-DA8',
        'VA12-DA9',
        'VA1-DA2',
        
        
        #'''
        
        
        
    ]    
    conn_polarity_override = {
        #Inhibitory in Olivares
        
        r'^AS\d+-VD\d+$': 'inh',
        r'^DB\d+-AS\d+$': 'inh',
        r'^DB\d+-VD\d+$': 'inh',
        r'^VD\d+-VA\d+$': 'inh',
        r'^VA\d+-VD\d+$': 'inh',
        
        #Excitatory in Olivares
        
        r'^VD\d+-VB\d+$': 'exc',
        
        #Inhibitory in LUNG
        
        #r'^DB\d+-DD\d+$': 'inh',
        #r'^VB\d+-VD\d+$': 'inh',
        
        #Inhibitory for DD
        
        r'^DA\d+-DD\d+$': 'inh',
        r'^AS\d+-DD\d+$': 'inh',
        r'^DB\d+-VD\d+$': 'inh',
    }
    conn_polarity_override = {
        #### NEW CIRCUIT ####
        r'^VA\d+-VD\d+$': 'inh',
        
        r'^DA\d+-DD\d+$': 'inh',
        r'^AS\d+-DD\d+$': 'inh',
        r'^DB\d+-DD\d+$': 'inh',
        
        r'^AS\d+-VD\d+$': 'inh',
        #VD-DD and VD-VB are already inhibitory
        
    }
    
    
    conn_number_override = {
        '^.+-.+$': 1,
    }
    
    #*********
    # INPUTS
    #*********
    
    input_list = []
    sine_input_list = []
    ramp_input_list = []
    
    #*************************
    # Interneuron STIMULATION
    #*************************
    #'''
    input_list.append(('AVAL', '0ms', '4000ms', '15pA'))
    input_list.append(('AVAR', '0ms', '4000ms', '15pA'))
    #'''
    
    
    #*************************
    # DB1 and VB1 STIMULATION
    #*************************

    # Sinusoidal Input
    #'''
    #sine_input_list.append(('DB1', '0ms', '15000ms', '1.5pA', '800ms')) #AMP: 2pA seems to overstimulate
    #sine_input_list.append(('VB1', '0ms', '15000ms', '1.5pA', '800ms'))
    sine_input_list.append(('DA9', '0ms', '15000ms', '1.5pA', '800ms'))
    sine_input_list.append(('VA12', '0ms', '15000ms', '-1.5pA', '800ms'))
    
    
    
    config_param_overrides['input'] = input_list

    param_overrides = {
        
        'mirrored_elec_conn_params': {
            
            
            #Connections to DB1 and VB1 have a HIGHER conductance
            r'^AVB._to_.B1_GJ$_elec_syn_gbase': '0.005 nS',
            
            #Connections to rest of DB and VB have a LOWER conductance 
            r'^AVB._to_.B[2-9]\_GJ$_elec_syn_gbase': '0.001 nS', 
            r'^AVB._to_.B[1-9][0-9]\_GJ$_elec_syn_gbase': '0.001 nS',
            
            
            #Connections to DA9 and VA12 have a HIGHER conductance
            r'^AVA._to_DA9_GJ$_elec_syn_gbase': '0.005 nS', 
            r'^AVA._to_VA12_GJ$_elec_syn_gbase': '0.005 nS',
            
            #Connections to rest of DA and VA have LOWER conductance
            r'^AVA._to_DA[1-8]\_GJ$_elec_syn_gbase': '0.001 nS', 
            r'^AVA._to_VA[1-9][0-1]?\_GJ$_elec_syn_gbase': '0.001 nS',

            
            r'^.B\d+_to_.B\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            
            r'^.A\d+_to_.A\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            
            r'^.D\d+_to_.D\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            
            r'^AS\d+_to_AS\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            
            
            r'^VA\d+_to_DA\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            r'^VA\d+_to_VD\d+\_GJ$_elec_syn_gbase': '0.001 nS',
        },
        
        'initial_memb_pot': '-50 mV',
        
        ##### Adjustments ######
        r'^DA\d+_to_DB\d+$_exc_syn_conductance': '0.2 nS',
        
        r'^DB\d+_to_VD\d+$_exc_syn_conductance': '0.2 nS',
        
        #*********************************
        # Connections between units (chemical)
        #*********************************
        
        
        
        #r'^VD\d+_to_VB\d+$_inh_syn_conductance': '0.2 nS',
        #r'^DA\d+_to_VD\d+$_exc_syn_conductance': '0.2 nS',
        
        
        #Connect synaptically VB1 to VB2 and so on
        r'^VB\d+_to_VB\d+$_exc_syn_conductance': '30 nS',
        r'^VB\d+_to_VB\d+$_exc_syn_ar': '0.19 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_ad': '73 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_beta': '2.81 per_mV',
        r'^VB\d+_to_VB\d+$_exc_syn_vth': '-22 mV',
        r'^VB\d+_to_VB\d+$_exc_syn_erev': '10 mV',
        
        #Connect synaptically DB1 to DB2 and so on
        r'^DB\d+_to_DB\d+$_exc_syn_conductance': '30 nS',
        r'^DB\d+_to_DB\d+$_exc_syn_ar': '0.08 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_ad': '18 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_beta': '0.21 per_mV',
        r'^DB\d+_to_DB\d+$_exc_syn_vth': '-10 mV',
        r'^DB\d+_to_DB\d+$_exc_syn_erev': '10 mV',
        
        #'''
        #Connect synaptically VA1 to VA2 and so on
        r'^VA\d+_to_VA\d+$_exc_syn_conductance': '30 nS',
        r'^VA\d+_to_VA\d+$_exc_syn_ar': '0.19 per_s',
        r'^VA\d+_to_VA\d+$_exc_syn_ad': '73 per_s',
        r'^VA\d+_to_VA\d+$_exc_syn_beta': '2.81 per_mV',
        r'^VA\d+_to_VA\d+$_exc_syn_vth': '-22 mV',
        r'^VA\d+_to_VA\d+$_exc_syn_erev': '10 mV',
        
        #Connect synaptically DB1 to DB2 and so on
        r'^DA\d+_to_DA\d+$_exc_syn_conductance': '30 nS',
        r'^DA\d+_to_DA\d+$_exc_syn_ar': '0.08 per_s',
        r'^DA\d+_to_DA\d+$_exc_syn_ad': '18 per_s',
        r'^DA\d+_to_DA\d+$_exc_syn_beta': '0.21 per_mV',
        r'^DA\d+_to_DA\d+$_exc_syn_vth': '-10 mV',
        r'^DA\d+_to_DA\d+$_exc_syn_erev': '10 mV',
        #'''
        
        'AVBR_to_MVL16_exc_syn_conductance': '0 nS',
        'ca_conc_decay_time_muscle': '60.8 ms',
        'ca_conc_rho_muscle': '0.002338919 mol_per_m_per_A_per_s',
        
    }
    

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        #if config_param_overrides.has_key('input'):
        #    input_list = config_param_overrides['input']
        
        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)
        
        for sine_stim_input in sine_input_list:
            cell, delay, dur, amp, period = sine_stim_input
            c302.add_new_sinusoidal_input(nml_doc, cell, delay, dur, amp, period, params)
        
        for ramp_stim_input in ramp_input_list:
            cell, delay, dur, start_amp, finish_amp, base_amp = ramp_stim_input
            c302.add_new_ramp_input(nml_doc, cell, delay, dur, start_amp, finish_amp, base_amp, params)

        #c302.add_new_input(nml_doc, cell='VB1', delay="1200ms", duration="1000ms", amplitude="1pA", params=params)
        #c302.add_new_input(nml_doc, cell='VB1', delay="0ms", duration="2000ms", amplitude="1.5pA", params=params)
        

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)  # Write over network file written above...

        c302.print_("(Re)written network file to: " + nml_file)


    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='../../../examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):
    
    exec ('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms", "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = list(['AVAL', 'AVAR'] + VA_motors + DA_motors + VD_motors + DD_motors)

    muscles_to_include = True

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_AVA_VA_DA_VD_DD" % parameter_set

    conns_to_include = [
    ]

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(config_param_overrides['conn_polarity_override'])

    conn_number_override = {}
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(config_param_overrides['conn_number_override'])

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        end = int(duration) - 500
        
        #for vb in VB_motors:
        #    c302.add_new_sinusoidal_input(nml_doc, cell=vb, delay="0ms", duration="1000ms", amplitude="3pA",
        #                                  period="700ms", params=params)

        #for db in DB_motors:
        #    c302.add_new_sinusoidal_input(nml_doc, cell=db, delay="0ms", duration="1000ms", amplitude="3pA",
        #                                  period="700ms", params=params)


        c302.add_new_input(nml_doc, "AVAL", "50ms", "%sms"%end, "15pA", params)
        c302.add_new_input(nml_doc, "AVAR", "50ms", "%sms"%end, "15pA", params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)


    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #13
0
def setup(parameter_set, 
          generate=False,
          duration=2500, 
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          config_param_overrides={},
          verbose=True):
    
    exec('from parameters_%s import ParameterisedModel'%parameter_set, globals())
    params = ParameterisedModel()
    
    cells = ["RMGR","ASHR","ASKR","AWBR","IL2R","RMHR","URXR"]
    cells_to_stimulate      = []
    
    reference = "c302_%s_Social"%parameter_set
    
    nml_doc = None
    
    if generate:
        nml_doc = c302.generate(reference, 
                       params, 
                       cells=cells, 
                       cells_to_stimulate=cells_to_stimulate, 
                       duration=duration, 
                       dt=dt, 
                       target_directory=target_directory,
                       param_overrides=param_overrides,
                       verbose=verbose,
                       data_reader=data_reader)
             
    stim_amplitude = "5pA"
    c302.add_new_input(nml_doc, "RMGR", "100ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "ASHR", "400ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "ASKR", "700ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "AWBR", "1000ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "IL2R", "1300ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "RMHR", "1600ms", "200ms", stim_amplitude, params)
    c302.add_new_input(nml_doc, "URXR", "1900ms", "200ms", stim_amplitude, params)
    
    
    nml_file = target_directory+'/'+reference+'.net.nml'
    writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
    
    print("(Re)written network file to: "+nml_file)
    
    return cells, cells_to_stimulate, params, [], nml_doc
Example #14
0
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec('from parameters_%s import ParameterisedModel' % parameter_set,
         globals())
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms",
                            "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = list(['AVBL', 'AVBR'] + DB_motors + VD_motors + VB_motors +
                 DD_motors)

    muscles_to_include = True

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_FW" % parameter_set

    conns_to_include = []
    conns_to_exclude = [
        'VB2-VB4_GJ',
        'VB4-VB2_GJ',
    ]
    conn_polarity_override = {
        r'^DB\d+-DD\d+$': 'inh',
        r'^VB\d+-VD\d+$': 'inh',
    }
    conn_number_override = {
        '^.+-.+$': 1,
    }

    input_list = []
    '''dur = '250ms'
    amp = '3pA'
    for muscle_num in range(24):
        mdlx = 'MDL0%s' % (muscle_num + 1)
        mdrx = 'MDR0%s' % (muscle_num + 1)
        #mvlx = 'MVL0%s' % (muscle_num + 1)
        #mvrx = 'MVR0%s' % (muscle_num + 1)
        
        if muscle_num >= 9:
            mdlx = 'MDL%s' % (muscle_num + 1)
            mdrx = 'MDR%s' % (muscle_num + 1)
            #mvlx = 'MVL%s' % (muscle_num + 1)
            #mvrx = 'MVR%s' % (muscle_num + 1)

        
        startd = '%sms' % (muscle_num * 10)
        #startv = '%sms' % ((stim_num * 800 + 400) + muscle_num * 30)
        
        input_list.append((mdlx, startd, dur, amp))
        input_list.append((mdrx, startd, dur, amp))'''

    input_list.append(('MVR10', '0ms', '150ms', '1pA'))
    input_list.append(('MVR11', '0ms', '150ms', '2pA'))
    input_list.append(('MVR12', '0ms', '150ms', '3pA'))
    input_list.append(('MVR13', '0ms', '150ms', '3pA'))
    input_list.append(('MVR14', '0ms', '150ms', '2pA'))
    input_list.append(('MVR15', '0ms', '150ms', '1pA'))

    input_list.append(('MVL10', '0ms', '150ms', '1pA'))
    input_list.append(('MVL11', '0ms', '150ms', '2pA'))
    input_list.append(('MVL12', '0ms', '150ms', '3pA'))
    input_list.append(('MVL13', '0ms', '150ms', '3pA'))
    input_list.append(('MVL14', '0ms', '150ms', '2pA'))
    input_list.append(('MVL15', '0ms', '150ms', '1pA'))

    input_list.append(('MDL21', '0ms', '250ms', '3pA'))
    input_list.append(('MDL22', '0ms', '250ms', '3pA'))
    input_list.append(('MDR21', '0ms', '250ms', '3pA'))
    input_list.append(('MDR22', '0ms', '250ms', '3pA'))

    amp = '4pA'
    dur = '250ms'

    for stim_num in range(15):
        for muscle_num in range(7):
            mdlx = 'MDL0%s' % (muscle_num + 1)
            mdrx = 'MDR0%s' % (muscle_num + 1)
            mvlx = 'MVL0%s' % (muscle_num + 1)
            mvrx = 'MVR0%s' % (muscle_num + 1)

            if muscle_num >= 9:
                mdlx = 'MDL%s' % (muscle_num + 1)
                mdrx = 'MDR%s' % (muscle_num + 1)
                mvlx = 'MVL%s' % (muscle_num + 1)
                mvrx = 'MVR%s' % (muscle_num + 1)

            startd = '%sms' % (stim_num * 800 + muscle_num * 30)
            startv = '%sms' % ((stim_num * 800 + 400) + muscle_num * 30)

            input_list.append((mdlx, startd, dur, amp))
            input_list.append((mdrx, startd, dur, amp))
            if muscle_num != 6:
                input_list.append((mvlx, startv, dur, amp))
                input_list.append((mvrx, startv, dur, amp))

    d_v_delay = 400

    start = 190
    motor_dur = '250ms'

    input_list.append(('AVBL', '0ms', '%sms' % duration, '15pA'))
    input_list.append(('AVBR', '0ms', '%sms' % duration, '15pA'))
    input_list.append(('DB1', '%sms' % (start), motor_dur, '3pA'))
    input_list.append(('VB1', '%sms' % (start + d_v_delay), motor_dur, '3pA'))

    i = start + 2 * d_v_delay
    j = start + 3 * d_v_delay
    for pulse_num in range(1, 15):
        input_list.append(('DB1', '%sms' % i, motor_dur, '3pA'))
        input_list.append(('VB1', '%sms' % j, motor_dur, '3pA'))
        i += d_v_delay * 2
        j += d_v_delay * 2

    #input_list = []
    #input_list.append(('AVBL', '0ms', '1900ms', '15pA'))
    #input_list.append(('AVBR', '0ms', '1900ms', '15pA'))

    config_param_overrides['input'] = input_list

    param_overrides = {
        'mirrored_elec_conn_params': {
            r'^AVB._to_DB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            r'^AVB._to_VB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            r'^DB\d+_to_DB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_p_gbase': '0.08 nS',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_sigma': '0.2 per_mV',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_mu': '-20 mV',
            r'^VB\d+_to_VB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_p_gbase': '0.1 nS',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_sigma': '0.3 per_mV',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_mu': '-30 mV',

            #'VB2_to_VB4_elec_syn_gbase': '0 nS',
            r'^DB\d+_to_VB\d+\_GJ$_elec_syn_gbase': '0 nS',
            r'^DB\d+_to_DD\d+\_GJ$_elec_syn_gbase': '0 nS',
            r'^VB\d+_to_VD\d+\_GJ$_elec_syn_gbase': '0 nS',
            #'^VD\d+_to_DD\d+\_GJ$_elec_syn_gbase': '0 nS',
            'DD1_to_MVL08_elec_syn_gbase': '0 nS',
            'VD2_to_MDL09_elec_syn_gbase': '0 nS',
        },
        r'^VB\d+_to_VB\d+$_exc_syn_conductance': '18 nS',
        r'^VB\d+_to_VB\d+$_exc_syn_ar': '0.19 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_ad': '73 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_beta': '2.81 per_mV',
        r'^VB\d+_to_VB\d+$_exc_syn_vth': '-22 mV',
        r'^VB\d+_to_VB\d+$_exc_syn_erev': '10 mV',
        r'^DB\d+_to_DB\d+$_exc_syn_conductance': '20 nS',
        r'^DB\d+_to_DB\d+$_exc_syn_ar': '0.08 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_ad': '18 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_beta': '0.21 per_mV',
        r'^DB\d+_to_DB\d+$_exc_syn_vth': '-10 mV',
        r'^DB\d+_to_DB\d+$_exc_syn_erev': '10 mV',
        'initial_memb_pot': '-50 mV',
        'AVBR_to_DB4_exc_syn_conductance': '0 nS',

        #'VB4_to_VB5_exc_syn_conductance': '0 nS',
        'AVBL_to_VB2_exc_syn_conductance': '0 nS',
        'AVBR_to_VD3_exc_syn_conductance': '0 nS',

        #'^DB\d+_to_DD\d+$_exc_syn_conductance': '0 nS',
        #'^DD\d+_to_DB\d+$_inh_syn_conductance': '0 nS',
        #'^VB\d+_to_VD\d+$_exc_syn_conductance': '0 nS',
        #'^VD\d+_to_VB\d+$_inh_syn_conductance': '0 nS',
        'DD1_to_VB2_inh_syn_conductance': '0 nS',
        'neuron_to_muscle_exc_syn_conductance': '0.5 nS',
        r'^DB\d+_to_MDL\d+$_exc_syn_conductance': '0.4 nS',
        r'^DB\d+_to_MDR\d+$_exc_syn_conductance': '0.4 nS',
        r'^VB\d+_to_MVL\d+$_exc_syn_conductance': '0.6 nS',
        r'^VB\d+_to_MVR\d+$_exc_syn_conductance': '0.6 nS',
        'neuron_to_muscle_exc_syn_vth': '37 mV',
        'neuron_to_muscle_inh_syn_conductance': '0.6 nS',
        'neuron_to_neuron_inh_syn_conductance': '0.2 nS',

        #'DB2_to_MDL11_exc_syn_conductance': '1 nS',
        'AVBR_to_MVL16_exc_syn_conductance': '0 nS',
        'ca_conc_decay_time_muscle': '60.8 ms',
        'ca_conc_rho_muscle': '0.002338919 mol_per_m_per_A_per_s',
    }

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        #if config_param_overrides.has_key('input'):
        #    input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec('from parameters_%s import ParameterisedModel'%parameter_set, globals())
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms", "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]


    cells = []

    muscles_to_include = True

    if config_param_overrides.has_key('muscles_to_include'):
        muscles_to_include = config_param_overrides['muscles_to_include']

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_MuscleTest" % parameter_set


    conns_to_include = []
    if config_param_overrides.has_key('conns_to_include'):
        conns_to_include = config_param_overrides['conns_to_include']

    conns_to_exclude = ['^.+-.+$']
    if config_param_overrides.has_key('conns_to_exclude'):
        conns_to_exclude = config_param_overrides['conns_to_exclude']

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(config_param_overrides['conn_polarity_override'])

    conn_number_override = {

    }
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(config_param_overrides['conn_number_override'])



    param_overrides = {
        'ca_conc_decay_time_muscle': '60 ms',
        'ca_conc_rho_muscle': '0.002138919 mol_per_m_per_A_per_s',
    }


    end = '%sms' % (int(duration) - 100)


    input_list = []

    
    #input_list.append(('MDL02', '0ms', '250ms', '3pA'))
    #input_list.append(('MDL03', '0ms', '250ms', '3pA'))
    #input_list.append(('MDR02', '0ms', '250ms', '3pA'))
    #input_list.append(('MDR03', '0ms', '250ms', '3pA'))

    input_list.append(('MVR10', '0ms', '250ms', '1pA'))
    input_list.append(('MVR11', '0ms', '250ms', '2pA'))
    input_list.append(('MVR12', '0ms', '250ms', '3pA'))
    input_list.append(('MVR13', '0ms', '250ms', '3pA'))
    input_list.append(('MVR14', '0ms', '250ms', '2pA'))
    input_list.append(('MVR15', '0ms', '250ms', '1pA'))
    
    input_list.append(('MVL10', '0ms', '250ms', '1pA'))
    input_list.append(('MVL11', '0ms', '250ms', '2pA'))
    input_list.append(('MVL12', '0ms', '250ms', '3pA'))
    input_list.append(('MVL13', '0ms', '250ms', '3pA'))
    input_list.append(('MVL14', '0ms', '250ms', '2pA'))
    input_list.append(('MVL15', '0ms', '250ms', '1pA'))

    input_list.append(('MDL21', '0ms', '250ms', '3pA'))
    input_list.append(('MDL22', '0ms', '250ms', '3pA'))
    input_list.append(('MDR21', '0ms', '250ms', '3pA'))
    input_list.append(('MDR22', '0ms', '250ms', '3pA'))



    for stim_num in range(5):
        for muscle_num in range(24):
            mdlx = 'MDL0%s' % (muscle_num + 1)
            mdrx = 'MDR0%s' % (muscle_num + 1)

            mvlx = 'MVL0%s' % (muscle_num + 1)
            mvrx = 'MVR0%s' % (muscle_num + 1)

            if muscle_num >= 9:
                mdlx = 'MDL%s' % (muscle_num + 1)
                mdrx = 'MDR%s' % (muscle_num + 1)

                mvlx = 'MVL%s' % (muscle_num + 1)
                if muscle_num != 23:
                    mvrx = 'MVR%s' % (muscle_num + 1)

            startd = '%sms' % (stim_num * 1000 + muscle_num * 50)
            startv = '%sms' % ((stim_num  * 1000 + 500) + muscle_num * 50)
            dur = '250ms'
            amp = '3pA'

            input_list.append((mdlx, startd, dur, amp))
            input_list.append((mdrx, startd, dur, amp))

            input_list.append((mvlx, startv, dur, amp))
            input_list.append((mvrx, startv, dur, amp))

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        if config_param_overrides.has_key('input'):
            input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)


    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #16
0
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec ('from parameters_%s import ParameterisedModel' % parameter_set, globals())
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms", "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = list(['AVBL', 'AVBR'] + DB_motors + VD_motors + VB_motors + DD_motors)
    
    muscles_to_include = True

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_FW" % parameter_set


    conns_to_include = []
    conns_to_exclude = [
        'VB2-VB4_GJ',
        'VB4-VB2_GJ',
    ]    
    conn_polarity_override = {
        r'^DB\d+-DD\d+$': 'inh',
        r'^VB\d+-VD\d+$': 'inh',
    }
    conn_number_override = {
        '^.+-.+$': 1,
    }
    
    input_list = []

    '''dur = '250ms'
    amp = '3pA'
    for muscle_num in range(24):
        mdlx = 'MDL0%s' % (muscle_num + 1)
        mdrx = 'MDR0%s' % (muscle_num + 1)
        #mvlx = 'MVL0%s' % (muscle_num + 1)
        #mvrx = 'MVR0%s' % (muscle_num + 1)
        
        if muscle_num >= 9:
            mdlx = 'MDL%s' % (muscle_num + 1)
            mdrx = 'MDR%s' % (muscle_num + 1)
            #mvlx = 'MVL%s' % (muscle_num + 1)
            #mvrx = 'MVR%s' % (muscle_num + 1)

        
        startd = '%sms' % (muscle_num * 10)
        #startv = '%sms' % ((stim_num * 800 + 400) + muscle_num * 30)
        
        input_list.append((mdlx, startd, dur, amp))
        input_list.append((mdrx, startd, dur, amp))'''
        

 
    


    input_list.append(('MVR10', '0ms', '150ms', '1pA'))
    input_list.append(('MVR11', '0ms', '150ms', '2pA'))
    input_list.append(('MVR12', '0ms', '150ms', '3pA'))
    input_list.append(('MVR13', '0ms', '150ms', '3pA'))
    input_list.append(('MVR14', '0ms', '150ms', '2pA'))
    input_list.append(('MVR15', '0ms', '150ms', '1pA'))
    
    input_list.append(('MVL10', '0ms', '150ms', '1pA'))
    input_list.append(('MVL11', '0ms', '150ms', '2pA'))
    input_list.append(('MVL12', '0ms', '150ms', '3pA'))
    input_list.append(('MVL13', '0ms', '150ms', '3pA'))
    input_list.append(('MVL14', '0ms', '150ms', '2pA'))
    input_list.append(('MVL15', '0ms', '150ms', '1pA'))

    input_list.append(('MDL21', '0ms', '250ms', '3pA'))
    input_list.append(('MDL22', '0ms', '250ms', '3pA'))
    input_list.append(('MDR21', '0ms', '250ms', '3pA'))
    input_list.append(('MDR22', '0ms', '250ms', '3pA'))


    amp = '4pA'
    dur = '250ms'

    for stim_num in range(15):
        for muscle_num in range(7):
            mdlx = 'MDL0%s' % (muscle_num + 1)
            mdrx = 'MDR0%s' % (muscle_num + 1)
            mvlx = 'MVL0%s' % (muscle_num + 1)
            mvrx = 'MVR0%s' % (muscle_num + 1)
            
            if muscle_num >= 9:
                mdlx = 'MDL%s' % (muscle_num + 1)
                mdrx = 'MDR%s' % (muscle_num + 1)
                mvlx = 'MVL%s' % (muscle_num + 1)
                mvrx = 'MVR%s' % (muscle_num + 1)
            
            startd = '%sms' % (stim_num * 800 + muscle_num * 30)
            startv = '%sms' % ((stim_num * 800 + 400) + muscle_num * 30)
            
            input_list.append((mdlx, startd, dur, amp))
            input_list.append((mdrx, startd, dur, amp))
            if muscle_num != 6:
                input_list.append((mvlx, startv, dur, amp))
                input_list.append((mvrx, startv, dur, amp))


    d_v_delay = 400

    start = 190
    motor_dur = '250ms'

    input_list.append(('AVBL', '0ms', '%sms'%duration, '15pA'))
    input_list.append(('AVBR', '0ms', '%sms'%duration, '15pA'))
    input_list.append(('DB1', '%sms'%(start), motor_dur, '3pA'))
    input_list.append(('VB1', '%sms'%(start+d_v_delay), motor_dur, '3pA'))

    i = start + 2 * d_v_delay
    j = start + 3 * d_v_delay
    for pulse_num in range(1,15):
        input_list.append(('DB1', '%sms'%i, motor_dur, '3pA'))
        input_list.append(('VB1', '%sms'%j, motor_dur, '3pA'))
        i += d_v_delay * 2
        j += d_v_delay * 2

        
    #input_list = []
    #input_list.append(('AVBL', '0ms', '1900ms', '15pA'))
    #input_list.append(('AVBR', '0ms', '1900ms', '15pA'))


    config_param_overrides['input'] = input_list

    param_overrides = {
        'mirrored_elec_conn_params': {
            
            r'^AVB._to_DB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            r'^AVB._to_VB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            
            r'^DB\d+_to_DB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_p_gbase': '0.08 nS',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_sigma': '0.2 per_mV',
            #'^DB\d+_to_DB\d+\_GJ$_elec_syn_mu': '-20 mV',
            
            r'^VB\d+_to_VB\d+\_GJ$_elec_syn_gbase': '0.001 nS',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_p_gbase': '0.1 nS',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_sigma': '0.3 per_mV',
            #'^VB\d+_to_VB\d+\_GJ$_elec_syn_mu': '-30 mV',
            
            #'VB2_to_VB4_elec_syn_gbase': '0 nS',
            
            r'^DB\d+_to_VB\d+\_GJ$_elec_syn_gbase': '0 nS',
            r'^DB\d+_to_DD\d+\_GJ$_elec_syn_gbase': '0 nS',
            r'^VB\d+_to_VD\d+\_GJ$_elec_syn_gbase': '0 nS',
            #'^VD\d+_to_DD\d+\_GJ$_elec_syn_gbase': '0 nS',
            
            'DD1_to_MVL08_elec_syn_gbase': '0 nS',
            'VD2_to_MDL09_elec_syn_gbase': '0 nS',
        },
        
        r'^VB\d+_to_VB\d+$_exc_syn_conductance': '18 nS',
        r'^VB\d+_to_VB\d+$_exc_syn_ar': '0.19 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_ad': '73 per_s',
        r'^VB\d+_to_VB\d+$_exc_syn_beta': '2.81 per_mV',
        r'^VB\d+_to_VB\d+$_exc_syn_vth': '-22 mV',
        r'^VB\d+_to_VB\d+$_exc_syn_erev': '10 mV',
        
        r'^DB\d+_to_DB\d+$_exc_syn_conductance': '20 nS',
        r'^DB\d+_to_DB\d+$_exc_syn_ar': '0.08 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_ad': '18 per_s',
        r'^DB\d+_to_DB\d+$_exc_syn_beta': '0.21 per_mV',
        r'^DB\d+_to_DB\d+$_exc_syn_vth': '-10 mV',
        r'^DB\d+_to_DB\d+$_exc_syn_erev': '10 mV',
        
        'initial_memb_pot': '-50 mV',
        
        'AVBR_to_DB4_exc_syn_conductance': '0 nS',
        
        #'VB4_to_VB5_exc_syn_conductance': '0 nS',
        'AVBL_to_VB2_exc_syn_conductance': '0 nS',
        
        'AVBR_to_VD3_exc_syn_conductance': '0 nS',
        
        
        #'^DB\d+_to_DD\d+$_exc_syn_conductance': '0 nS',
        #'^DD\d+_to_DB\d+$_inh_syn_conductance': '0 nS',
        #'^VB\d+_to_VD\d+$_exc_syn_conductance': '0 nS',
        #'^VD\d+_to_VB\d+$_inh_syn_conductance': '0 nS',
        
        'DD1_to_VB2_inh_syn_conductance': '0 nS',
        
        'neuron_to_muscle_exc_syn_conductance': '0.5 nS',
        r'^DB\d+_to_MDL\d+$_exc_syn_conductance': '0.4 nS',
        r'^DB\d+_to_MDR\d+$_exc_syn_conductance': '0.4 nS',
        r'^VB\d+_to_MVL\d+$_exc_syn_conductance': '0.6 nS',
        r'^VB\d+_to_MVR\d+$_exc_syn_conductance': '0.6 nS',
        'neuron_to_muscle_exc_syn_vth': '37 mV',
        'neuron_to_muscle_inh_syn_conductance': '0.6 nS',
        'neuron_to_neuron_inh_syn_conductance': '0.2 nS',
        
        #'DB2_to_MDL11_exc_syn_conductance': '1 nS',
        
        
        'AVBR_to_MVL16_exc_syn_conductance': '0 nS',
        'ca_conc_decay_time_muscle': '60.8 ms',
        'ca_conc_rho_muscle': '0.002338919 mol_per_m_per_A_per_s',
        
    }
    

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        #if config_param_overrides.has_key('input'):
        #    input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)


    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="UpdatedSpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    
    exec ('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms", "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms", "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = list(['AVBL', 'AVBR'] + VB_motors + DB_motors + VD_motors + DD_motors)

    muscles_to_include = False

    if config_param_overrides.has_key('muscles_to_include'):
        muscles_to_include = config_param_overrides['muscles_to_include']

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_AVB_VB_DB_VD_DD" % parameter_set

    conns_to_include = []
    if config_param_overrides.has_key('conns_to_include'):
        conns_to_include = config_param_overrides['conns_to_include']

    conns_to_exclude = []
    if config_param_overrides.has_key('conns_to_exclude'):
        conns_to_exclude = config_param_overrides['conns_to_exclude']

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(config_param_overrides['conn_polarity_override'])

    conn_number_override = {

    }
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(config_param_overrides['conn_number_override'])

    end = '%sms' % (int(duration) - 100)

    input_list = [
        ('AVBL', '0ms', end, '15pA'),
        ('AVBR', '0ms', end, '15pA'),
    ]
    if config_param_overrides.has_key('input'):
        input_list = config_param_overrides['input']

    nml_doc = None

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        if config_param_overrides.has_key('input'):
            input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)


    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #18
0
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms",
                            "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    #cells = list(['AVBL', 'AVBR'] + DB_motors + VD_motors + VB_motors + DD_motors + VA_motors + DA_motors + AS_motors)
    #cells = list(['AVBL', 'AVBR', 'AVAL', 'AVAR'] + DB_motors + VD_motors + VB_motors + DD_motors + AS_motors + VA_motors + DA_motors)
    #cells = list(['AVBL', 'AVBR'] + ['DB2', 'DB5', 'DB6'])
    cells = list(['AVBL', 'AVBR'] + DB_motors)

    muscles_to_include = True

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_AVB_DB" % parameter_set

    conns_to_include = []
    if config_param_overrides.has_key('conns_to_include'):
        conns_to_include = config_param_overrides['conns_to_include']

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(
            config_param_overrides['conn_polarity_override'])

    conn_number_override = {}
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(
            config_param_overrides['conn_number_override'])

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        end = int(duration) - 100

        #for db in DB_motors:
        #    c302.add_new_sinusoidal_input(nml_doc, cell=db, delay="0ms", duration="1000ms", amplitude="3pA",
        #                                  period="700ms", params=params)

        c302.add_new_input(nml_doc, "AVBL", "50ms", "%sms" % end, "15pA",
                           params)
        c302.add_new_input(nml_doc, "AVBR", "50ms", "%sms" % end, "15pA",
                           params)
        #c302.add_new_input(nml_doc, "AVBL", "50ms", "850ms", "15pA", params)
        #c302.add_new_input(nml_doc, "AVBR", "50ms", "850ms", "15pA", params)

        nml_file = target_directory + '/' + reference + '.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #19
0
 cells_to_stimulate      = []
 
 reference = "c302_%s_Social"%parameter_set
 
 target_directory='examples'
 
 nml_doc = generate(reference, 
                    params, 
                    cells=cells, 
                    cells_to_stimulate=cells_to_stimulate, 
                    duration=2500, 
                    dt=0.1, 
                    vmin=-72 if parameter_set=='A' else -52, 
                    vmax=-48 if parameter_set=='A' else -28,
                    validate=(parameter_set!='B'),
                    target_directory=target_directory)
          
 stim_amplitude = "0.35nA"
 add_new_input(nml_doc, "RMGR", "100ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "ASHR", "400ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "ASKR", "700ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "AWBR", "1000ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "IL2R", "1300ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "RMHR", "1600ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "URXR", "1900ms", "200ms", stim_amplitude, params)
 
 
 nml_file = target_directory+'/'+reference+'.nml'
 writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
 
 print("(Re)written network file to: "+nml_file)
Example #20
0
def setup(parameter_set, 
          generate=False,
          duration=500, 
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          config_param_overrides={},
          verbose=True):
    
    exec('from parameters_%s import ParameterisedModel'%parameter_set, globals())
    params = ParameterisedModel()
    
    stim_amplitudes = ["2pA","5pA"]
    duration = (len(stim_amplitudes))*1800
    
    params.set_bioparameter("unphysiological_offset_current_del", "50 ms", "Testing IClamp", "0")
    
    exc_pre = "URYDL"
    exc_post = "SMDDR"
    inh_pre = "VD12" 
    inh_post = "VB11"
    gap_1 = "AIZL"
    gap_2 = "ASHL"
    moto_pre = "DA1"
    muscle_post = "MDL08"
    
    cells = [exc_pre, exc_post, inh_pre, inh_post, moto_pre]
    cells_to_stimulate_extra      = [exc_pre, inh_pre,moto_pre]
    muscles_to_include = [muscle_post]
    
    if parameter_set!='A':
        cells.append(gap_1)
        cells.append(gap_2)
        cells_to_stimulate_extra.append(gap_1)
    
    reference = "c302_%s_Syns"%parameter_set
    
    nml_doc = None
    
    if generate:
        nml_doc = c302.generate(reference, 
                 params, 
                 cells=cells, 
                 cells_to_stimulate=[], 
                 muscles_to_include = muscles_to_include,
                 duration=duration, 
                 dt=dt, 
                 target_directory=target_directory,
                 param_overrides=param_overrides,
                 verbose=verbose,
                 data_reader=data_reader)
                 
                 
    for i in range(len(stim_amplitudes)):
        start = "%sms"%(i*1400 + 500)
        for c in cells_to_stimulate_extra:
            c302.add_new_input(nml_doc, c, start, "800ms", stim_amplitudes[i], params)
    
    nml_file = target_directory+'/'+reference+'.net.nml'
    writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
    
    print("(Re)written network file to: "+nml_file)
    
             
    return cells, cells_to_stimulate_extra, params, [], nml_doc
Example #21
0
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="SpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec('from c302.parameters_%s import ParameterisedModel' % parameter_set,
         globals())
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms",
                            "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = []

    muscles_to_include = True

    if config_param_overrides.has_key('muscles_to_include'):
        muscles_to_include = config_param_overrides['muscles_to_include']

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_MuscleTest" % parameter_set

    conns_to_include = []
    if config_param_overrides.has_key('conns_to_include'):
        conns_to_include = config_param_overrides['conns_to_include']

    conns_to_exclude = ['^.+-.+$']
    if config_param_overrides.has_key('conns_to_exclude'):
        conns_to_exclude = config_param_overrides['conns_to_exclude']

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(
            config_param_overrides['conn_polarity_override'])

    conn_number_override = {}
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(
            config_param_overrides['conn_number_override'])

    param_overrides = {
        'ca_conc_decay_time_muscle': '60 ms',
        'ca_conc_rho_muscle': '0.002138919 mol_per_m_per_A_per_s',
    }

    end = '%sms' % (int(duration) - 100)

    input_list = []

    #input_list.append(('MDL02', '0ms', '250ms', '3pA'))
    #input_list.append(('MDL03', '0ms', '250ms', '3pA'))
    #input_list.append(('MDR02', '0ms', '250ms', '3pA'))
    #input_list.append(('MDR03', '0ms', '250ms', '3pA'))

    input_list.append(('MVR10', '0ms', '250ms', '1pA'))
    input_list.append(('MVR11', '0ms', '250ms', '2pA'))
    input_list.append(('MVR12', '0ms', '250ms', '3pA'))
    input_list.append(('MVR13', '0ms', '250ms', '3pA'))
    input_list.append(('MVR14', '0ms', '250ms', '2pA'))
    input_list.append(('MVR15', '0ms', '250ms', '1pA'))

    input_list.append(('MVL10', '0ms', '250ms', '1pA'))
    input_list.append(('MVL11', '0ms', '250ms', '2pA'))
    input_list.append(('MVL12', '0ms', '250ms', '3pA'))
    input_list.append(('MVL13', '0ms', '250ms', '3pA'))
    input_list.append(('MVL14', '0ms', '250ms', '2pA'))
    input_list.append(('MVL15', '0ms', '250ms', '1pA'))

    input_list.append(('MDL21', '0ms', '250ms', '3pA'))
    input_list.append(('MDL22', '0ms', '250ms', '3pA'))
    input_list.append(('MDR21', '0ms', '250ms', '3pA'))
    input_list.append(('MDR22', '0ms', '250ms', '3pA'))

    for stim_num in range(5):
        for muscle_num in range(24):
            mdlx = 'MDL0%s' % (muscle_num + 1)
            mdrx = 'MDR0%s' % (muscle_num + 1)

            mvlx = 'MVL0%s' % (muscle_num + 1)
            mvrx = 'MVR0%s' % (muscle_num + 1)

            if muscle_num >= 9:
                mdlx = 'MDL%s' % (muscle_num + 1)
                mdrx = 'MDR%s' % (muscle_num + 1)

                mvlx = 'MVL%s' % (muscle_num + 1)
                if muscle_num != 23:
                    mvrx = 'MVR%s' % (muscle_num + 1)

            startd = '%sms' % (stim_num * 1000 + muscle_num * 50)
            startv = '%sms' % ((stim_num * 1000 + 500) + muscle_num * 50)
            dur = '250ms'
            amp = '3pA'

            input_list.append((mdlx, startd, dur, amp))
            input_list.append((mdrx, startd, dur, amp))

            input_list.append((mvlx, startv, dur, amp))
            input_list.append((mvrx, startv, dur, amp))

    nml_doc = None
    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        if 'input' in config_param_overrides:
            input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        c302.print_("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc
Example #22
0
def setup(parameter_set,
          generate=False,
          duration=400,
          dt=0.05,
          target_directory='examples',
          data_reader="UpdatedSpreadsheetDataReader",
          param_overrides={},
          verbose=True):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms",
                            "Testing TapWithdrawal", "0")

    neurons = [
        'AVAL', 'AVAR', 'AVBL', 'AVBR', 'PVCL', 'PVCR', 'AVDL', 'AVDR', 'DVA',
        'PVDL', 'PVDR', 'PLML', 'PLMR', 'AVM', 'ALML', 'ALMR'
    ]

    motors = []
    motors += [
        'VA1', 'VA2', 'VA3', 'VA4', 'VA5', 'VA6', 'VA7', 'VA8', 'VA9', 'VA10',
        'VA11', 'VA12'
    ]
    motors += [
        'VB1', 'VB2', 'VB3', 'VB4', 'VB5', 'VB6', 'VB7', 'VB8', 'VB9', 'VB10',
        'VB11'
    ]
    motors += ['DA1', 'DA2', 'DA3', 'DA4', 'DA5', 'DA6', 'DA7', 'DA8', 'DA9']
    motors += ['DB1', 'DB2', 'DB3', 'DB4', 'DB5', 'DB6', 'DB7']
    motors += ['DD1', 'DD2', 'DD3', 'DD4', 'DD5', 'DD6']
    motors += [
        'VD1', 'VD2', 'VD3', 'VD4', 'VD5', 'VD6', 'VD7', 'VD8', 'VD9', 'VD10',
        'VD11', 'VD12', 'VD13'
    ]

    muscles_to_include = False
    muscles_to_include = True  # ALL muscles
    #muscles_to_include = ['MVL01', 'MVL10']

    cells = list(neurons)
    cells += motors

    cells_to_plot = list(neurons)

    cells += [  # 'AS1', 'AS10', 'AS11', 'AS2', 'AS3', 'AS4', 'AS5', 'AS6', 'AS7', 'AS8', 'AS9',
        # 'AVFL', 'AVFR', 'AVKR', 'AVL',
        # 'CEPVL', 'CEPVR',
        #
        #
        # 'DVB',
        # 'HSNL', 'HSNR',
        # 'IL1DL', 'IL1DR', 'IL1L', 'IL1R', 'IL1VL', 'IL1VR',
        # 'PDA', 'PDB',
        # 'PVNL', 'PVNR',
        # 'RID', 'RIML', 'RIMR', 'RIVL', 'RIVR',
        # 'RMDDL', 'RMDDR', 'RMDL', 'RMDR', 'RMDVL', 'RMDVR', 'RMED', 'RMEL', 'RMER', 'RMEV', 'RMFL', 'RMGL', 'RMGR',
        # 'RMHL', 'RMHR',
        # 'SMBDL', 'SMBDR', 'SMBVL', 'SMBVR', 'SMDDL', 'SMDDR', 'SMDVL', 'SMDVR',
        # 'URADL', 'URADR', 'URAVL', 'URAVR',
        # 'VC1', 'VC2', 'VC3', 'VC4', 'VC5', 'VC6',
    ]

    # cells = None
    #cells_to_stimulate = ['PLML', 'PLMR', 'AVM']
    cells_to_stimulate = []

    #cells_to_plot = ['AVAL', 'AVAR', 'AVBL', 'AVBR', 'PLML', 'PLMR', 'AVM', 'ALML', 'ALMR', 'PVDL', 'PVDR', 'AVDL', 'AVDR']
    #cells_to_plot = ['PLML', 'AVM', 'AVBL', 'AVAL']
    #cells_to_plot = cells
    #cells_to_plot += motors
    reference = "c302_%s_TapWithdrawal" % parameter_set

    conn_polarity_override = {
        'ALML-ALML': 'inh',
        'ALML-PVCL': 'inh',
        'ALML-PVCR': 'inh',
        'ALML-AVDR': 'exc',
        'ALMR-PVCR': 'inh',
        'AVM-PVCL': 'inh',
        'AVM-PVCR': 'inh',
        'AVM-AVBL': 'inh',
        'AVM-AVBR': 'inh',
        'AVM-AVDL': 'exc',
        'AVM-AVDR': 'exc',
        'PVDL-PVDR': 'inh',
        'PVDL-PVCL': 'exc',
        'PVDL-PVCR': 'exc',
        'PVDL-AVAL': 'inh',
        'PVDL-AVAR': 'inh',
        'PVDL-AVDL': 'inh',
        'PVDL-AVDR': 'inh',
        'PVDR-PVDL': 'inh',
        'PVDR-DVA': 'exc',
        'PVDR-PVCL': 'exc',
        'PVDR-PVCR': 'exc',
        'PVDR-AVAL': 'inh',
        'PVDR-AVAR': 'inh',
        'PVDR-AVDL': 'inh',
        'DVA-PVCL': 'inh',  #
        'DVA-PVCR': 'inh',  #
        'DVA-AVAL': 'inh',
        'DVA-AVAR': 'inh',
        'DVA-AVBL': 'inh',  #
        'DVA-AVBR': 'inh',  #
        'DVA-AVDR': 'inh',
        'PVCL-DVA': 'exc',
        'PVCL-PVCL': 'inh',
        'PVCL-PVCR': 'inh',
        'PVCL-AVAL': 'inh',
        'PVCL-AVAR': 'inh',
        'PVCL-AVBL': 'exc',
        'PVCL-AVBR': 'exc',
        'PVCL-AVDL': 'inh',
        'PVCL-AVDR': 'inh',
        'PVCR-PVDL': 'inh',
        'PVCR-PVDR': 'inh',
        'PVCR-DVA': 'exc',
        'PVCR-PVCL': 'inh',
        'PVCR-AVAL': 'inh',
        'PVCR-AVAR': 'inh',
        'PVCR-AVBL': 'exc',
        'PVCR-AVBR': 'exc',
        'PVCR-AVDL': 'inh',
        'PVCR-AVDR': 'inh',
        'AVAL-PVCL': 'inh',
        'AVAL-PVCR': 'inh',
        'AVAL-AVAR': 'inh',
        'AVAL-AVBL': 'inh',
        'AVAL-AVDL': 'inh',
        'AVAL-AVDR': 'inh',
        'AVAR-PVCL': 'inh',
        'AVAR-PVCR': 'inh',
        'AVAR-AVAL': 'inh',
        'AVAR-AVBL': 'inh',
        'AVAR-AVBR': 'inh',
        'AVAR-AVDL': 'inh',
        'AVAR-AVDR': 'inh',
        'AVBL-DVA': 'inh',
        'AVBL-PVCR': 'inh',
        'AVBL-AVAL': 'inh',
        'AVBL-AVAR': 'inh',
        'AVBL-AVBR': 'inh',
        'AVBL-AVDR': 'inh',
        'AVBR-AVAL': 'inh',
        'AVBR-AVAR': 'inh',
        'AVBR-AVBL': 'inh',
        'AVBR-AVDL': 'inh',
        'AVDL-PVCL': 'inh',
        'AVDL-AVAL': 'exc',
        'AVDL-AVAR': 'exc',
        'AVDL-AVDR': 'exc',
        'AVDR-PVCR': 'inh',
        'AVDR-AVAL': 'exc',
        'AVDR-AVAR': 'exc',
        'AVDR-AVBL': 'inh',
        'AVDR-AVDL': 'exc',
        'DA9-DVA': 'inh',
        'DVA-DA2': 'inh',
        'PVCL-DA5': 'inh',
        'PVCL-DA8': 'inh',
        'PVCR-DA2': 'inh',
        'PVCR-DA4': 'inh',
        'PVCR-DA5': 'inh',
        'PVCR-DA7': 'inh',
        'AVBL-DA5': 'inh',
        'AVBL-DA7': 'inh',
        'AVBR-DA3': 'inh',
        'AVBR-DA4': 'inh',
        'AVBR-DA7': 'inh',
        'AVDL-DA1': 'inh',
        'AVDL-DA2': 'inh',
        'AVDL-DA3': 'inh',
        'AVDL-DA4': 'inh',
        'AVDL-DA5': 'inh',
        'AVDL-DA8': 'inh',
        'AVDR-DA1': 'inh',
        'AVDR-DA2': 'inh',
        'AVDR-DA3': 'inh',
        'AVDR-DA4': 'inh',
        'AVDR-DA5': 'inh',
        'AVDR-DA8': 'inh',
        'DB1-DA1': 'inh',
        'DB1-DA2': 'inh',
        'DB2-DA2': 'inh',
        'DB2-DA3': 'inh',
        'DB2-DA4': 'inh',
        'DB3-DA4': 'inh',
        'DB3-DA5': 'inh',
        'DB4-DA5': 'inh',
        'DB5-DA6': 'inh',
        'DB5-DA7': 'inh',
        'DB5-DA8': 'inh',
        'DB6-DA8': 'inh',
        'DB6-DA9': 'inh',
        'DB7-DA9': 'inh',
        'AVAR-DB2': 'inh',
        'AVAR-DB3': 'inh',
        'AVAL-DB7': 'inh',
        'VA12-DB7': 'inh',
        'DA1-DB1': 'inh',
        'DA2-DA3': 'inh',
        'DA2-DB1': 'inh',
        'DA3-DB3': 'inh',
        'DA4-DB2': 'inh',
        'DA5-DB4': 'inh',
        'DA6-DB5': 'inh',
        'DA7-DB6': 'inh',
        'DA8-DB7': 'inh',
        'DA9-DB7': 'inh',
        'DVA-VA2': 'inh',
        'DVA-VA6': 'inh',
        'DVA-VA8': 'inh',
        'DVA-VA12': 'inh',
        'PVCL-VA11': 'inh',
        'PVDR-VA9': 'inh',
        'PVDR-VA12': 'inh',
        'AVBL-VA2': 'inh',
        'AVBL-VA10': 'inh',
        'AVBR-VA3': 'inh',
        'AVBR-VA4': 'inh',
        'AVDL-VA3': 'inh',
        'AVDL-VA5': 'inh',
        'AVDL-VA10': 'inh',
        'AVDL-VA12': 'inh',
        'AVDR-VA2': 'inh',
        'AVDR-VA3': 'inh',
        'AVDR-VA5': 'inh',
        'AVDR-VA11': 'inh',
        'VB1-VA1': 'inh',
        'VB1-VA2': 'inh',
        'VB1-VA3': 'inh',
        'VB1-VA4': 'inh',
        'VB2-VA2': 'inh',
        'VB2-VA3': 'inh',
        'VB3-VA4': 'inh',
        'VB3-VA5': 'inh',
        'VB4-VA4': 'inh',
        'VB4-VA5': 'inh',
        'VB5-VA6': 'inh',
        'VB6-VA7': 'inh',
        'VB6-VA8': 'inh',
        'VB7-VA9': 'inh',
        'VB7-VA10': 'inh',
        'VB8-VA11': 'inh',
        'VB9-VA11': 'inh',
        'VB10-VA11': 'inh',
        'VB11-VA12': 'inh',
        'VB11-PVCR': 'inh',
        'VB4-VB5': 'inh',
        'VB11-VA12': 'inh',
        'VA2-VB1': 'inh',
        'VA2-VB2': 'inh',
        'VA3-VB2': 'inh',
        'VA3-VB3': 'inh',
        'VA4-AVDL': 'inh',
        'VA4-VB3': 'inh',
        'VA4-VB4': 'inh',
        'VA5-VB4': 'inh',
        'VA6-VB4': 'inh',
        'VA6-VB5': 'inh',
        'VA7-VB6': 'inh',
        'VA8-VB6': 'inh',
        'VA9-VB7': 'inh',
        'VA9-VB8': 'inh',
        'VA10-VB8': 'inh',
        'VA10-VB9': 'inh',
        'VA11-VB10': 'inh',
        'VA12-PVCL': 'inh',
        'VA12-PVCR': 'inh',
        'VA12-DB7': 'inh',
        'VA12-VB11': 'inh',
        'AVM-VB3': 'inh',
        #'VB4-VB5':'exc',

        #'DD1-DA2':'inh',
        #'DD1-VB2':'inh',
        #'DD2-DA3':'inh',
        #'DD3-DA5':'inh',
    }

    conn_number_override = {
        #'PVCL-AVDL':7*0.1,
        #'PVCL-AVDR':11*0.1,
        #'PVCR-AVDL':16*0.1,
        #'PVCR-AVDR':6*0.1,

        #'PVCR-AVDR_GJ':2 * 0.01,
        #'AVDR-PVCR_GJ':2 * 0.01,
        'PVCL-AVAL_GJ': 5 * 0.01,
        'AVAL-PVCL_GJ': 5 * 0.01,
        'PVCL-AVAR_GJ': 10 * 0.01,
        'AVAR-PVCL_GJ': 10 * 0.01,
        'PVCR-AVAL_GJ': 15 * 0.01,
        'AVAL-PVCR_GJ': 15 * 0.01,
        'PVCR-AVAR_GJ': 22 * 0.01,
        'AVAR-PVCR_GJ': 22 * 0.01,
        'PVCL-PLML_GJ': 4 * 0.01,
        'PVCR-PLMR_GJ': 8 * 0.01,

        #'AVDL-AVM_GJ':8 * 0.01,
        #'ALML-AVM_GJ':1 * 0.01,
        #'ALMR-AVM_GJ':1 * 0.01,

        #'AVDR-ALMR_GJ':1 * 0.01,

        # 'AVDL-AVAL':37*0.1,
        # 'AVDL-AVAR':37*0.1,
        # 'AVDR-AVAL':41*0.1,
        # 'AVDR-AVAR':52*0.1,

        # 'AVDL-AVAL_GJ':7*0.1,
        # 'AVAL-AVDL_GJ':7*0.1,
        # 'AVDL-AVAR_GJ':2*0.1,
        # 'AVAR-AVDL_GJ':2*0.1,
        # 'AVDR-AVAL_GJ':9*0.1,
        # 'AVAL-AVDR_GJ':9*0.1,
        # 'AVDR-AVAR_GJ':15*0.1,
        # 'AVAR-AVDR_GJ':15*0.1,

        # 'ALMR-AVDR_GJ':2*5,
        # 'AVDR-ALMR_GJ':2*5,
        'AVAR-AVBL_GJ': 3 * 0.01,
        'AVBL-AVAR_GJ': 3 * 0.01,

        # 'AVAR-AVAL_GJ':18*2,
        # 'AVAL-AVAR_GJ':18*2,
        'PVDL-AVAR_GJ': 4 * 0.01,
        'AVAR-PVDL_GJ': 4 * 0.01,
        'PVDR-AVAL_GJ': 6 * 0.01,
        'AVAL-PVDR_GJ': 6 * 0.01,
        'AVBL-VA11_GJ': 1 * 0.01,
        'VA11-AVBL_GJ': 1 * 0.01,
        'AVBR-VA11_GJ': 3 * 0.01,
        'VA11-AVBR_GJ': 3 * 0.01,
        'PVCR-VA11_GJ': 3 * 0.01,
        'VA11-PVCR_GJ': 3 * 0.01,
        'DVA-VA11_GJ': 1 * 0.01,
        'VA11-DVA_GJ': 1 * 0.01,
        'PVCL-VA12_GJ': 18 * 0.01,
        'VA12-PVCL_GJ': 18 * 0.01,
        'PVCR-VA12_GJ': 8 * 0.01,
        'VA12-PVCR_GJ': 8 * 0.01,
        'AVAL-VB11_GJ': 2 * 0.01,
        'VB11-AVAL_GJ': 2 * 0.01,
        'PVCL-DA4_GJ': 1 * 0.01,
        'DA4-PVCL_GJ': 1 * 0.01,
        'PVCL-DA7_GJ': 1 * 0.01,
        'DA7-PVCL_GJ': 1 * 0.01,
        'PVCR-DA7_GJ': 3 * 0.01,
        'DA7-PVCR_GJ': 3 * 0.01,
        'PVCL-DA8_GJ': 17 * 0.01,
        'DA8-PVCL_GJ': 17 * 0.01,
        'PVCR-DA8_GJ': 1 * 0.01,
        'DA8-PVCR_GJ': 1 * 0.01,
        'DVA-DA9_GJ': 3 * 0.01,
        'DA9-DVA_GJ': 3 * 0.01,
        'PVCR-DA9_GJ': 3 * 0.01,
        'DA9-PVCR_GJ': 3 * 0.01,
        'DB7-VA10_GJ': 1 * 0.01,
        'VA10-DB7_GJ': 1 * 0.01,
        'VA4-VB3_GJ': 1 * 0.01,
        'VB3-VA4_GJ': 1 * 0.01,
        'VA10-DB7_GJ': 1 * 0.01,
        'DB7-VA10_GJ': 1 * 0.01,
        'VA11-VB10_GJ': 3 * 0.01,
        'VB10-VA11_GJ': 3 * 0.01,
        'VA12-VB11_GJ': 7 * 0.01,
        'VB11-VA12_GJ': 7 * 0.01,
        'VB3-VA4_GJ': 1 * 0.01,
        'VA4-VB3_GJ': 1 * 0.01,
        'VB10-VA11_GJ': 3 * 0.01,
        'VA11-VB10_GJ': 3 * 0.01,
        'VB11-DA9_GJ': 7 * 0.01,
        'DA9-VB11_GJ': 7 * 0.01,
    }

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        stim_amplitude = "6pA"
        # stim_amplitude = "5.135697186048022pA"

        c302.add_new_input(nml_doc, "AVM", "10ms", "50ms", "5pA", params)
        c302.add_new_input(nml_doc, "ALML", "10ms", "50ms", "5pA", params)
        c302.add_new_input(nml_doc, "ALMR", "10ms", "50ms", "5pA", params)

        c302.add_new_input(nml_doc, "PLML", "200ms", "50ms", "5pA", params)
        c302.add_new_input(nml_doc, "PLMR", "200ms", "50ms", "5pA", params)

        nml_file = target_directory + '/' + reference + '.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include
Example #23
0
 parameter_set = sys.argv[1] if len(sys.argv)==2 else 'A'
 
 exec('from parameters_%s import ParameterisedModel'%parameter_set)
 params = ParameterisedModel()
 
 cells = ["URYDL", "SMDDR", "ADAL", "RIML", "IL2VL", "RIPL"]
 cells_to_stimulate      = []
 
 reference = "c302_%s_MultiSyns"%parameter_set
 
 target_directory='examples'
 
 nml_doc = generate(reference, 
                    params, 
                    cells=cells, 
                    cells_to_stimulate=cells_to_stimulate, 
                    duration=1000, 
                    dt=0.1, 
                    validate=(parameter_set!='B'),
                    target_directory=target_directory)
          
 stim_amplitude = "0.35nA"
 add_new_input(nml_doc, "URYDL", "100ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "ADAL", "400ms", "200ms", stim_amplitude, params)
 add_new_input(nml_doc, "IL2VL", "700ms", "200ms", stim_amplitude, params)
 
 
 nml_file = target_directory+'/'+reference+'.nml'
 writers.NeuroMLWriter.write(nml_doc, nml_file) # Write over network file written above...
 
 print("(Re)written network file to: "+nml_file)
Example #24
0
def setup(parameter_set,
          generate=False,
          duration=2000,
          dt=0.05,
          target_directory='examples',
          data_reader="UpdatedSpreadsheetDataReader",
          param_overrides={},
          verbose=True,
          config_param_overrides={}):

    exec('from parameters_%s import ParameterisedModel' % parameter_set)
    params = ParameterisedModel()

    params.set_bioparameter("unphysiological_offset_current", "0pA",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_del", "0 ms",
                            "Testing TapWithdrawal", "0")
    params.set_bioparameter("unphysiological_offset_current_dur", "2000 ms",
                            "Testing TapWithdrawal", "0")

    VA_motors = ["VA%s" % c for c in range_incl(1, 12)]
    VB_motors = ["VB%s" % c for c in range_incl(1, 11)]
    DA_motors = ["DA%s" % c for c in range_incl(1, 9)]
    DB_motors = ["DB%s" % c for c in range_incl(1, 7)]
    DD_motors = ["DD%s" % c for c in range_incl(1, 6)]
    VD_motors = ["VD%s" % c for c in range_incl(1, 13)]
    AS_motors = ["AS%s" % c for c in range_incl(1, 11)]

    cells = list(['AVBL', 'AVBR'] + VB_motors + DB_motors + VD_motors +
                 DD_motors)

    muscles_to_include = False

    if config_param_overrides.has_key('muscles_to_include'):
        muscles_to_include = config_param_overrides['muscles_to_include']

    cells_to_stimulate = []

    cells_to_plot = list(cells)
    reference = "c302_%s_AVB_VB_DB_VD_DD" % parameter_set

    conns_to_include = []
    if config_param_overrides.has_key('conns_to_include'):
        conns_to_include = config_param_overrides['conns_to_include']

    conns_to_exclude = []
    if config_param_overrides.has_key('conns_to_exclude'):
        conns_to_exclude = config_param_overrides['conns_to_exclude']

    conn_polarity_override = {}
    if config_param_overrides.has_key('conn_polarity_override'):
        conn_polarity_override.update(
            config_param_overrides['conn_polarity_override'])

    conn_number_override = {}
    if config_param_overrides.has_key('conn_number_override'):
        conn_number_override.update(
            config_param_overrides['conn_number_override'])

    end = '%sms' % (int(duration) - 100)

    input_list = [
        ('AVBL', '0ms', end, '15pA'),
        ('AVBR', '0ms', end, '15pA'),
    ]
    if config_param_overrides.has_key('input'):
        input_list = config_param_overrides['input']

    nml_doc = None

    if generate:
        nml_doc = c302.generate(reference,
                                params,
                                cells=cells,
                                cells_to_plot=cells_to_plot,
                                cells_to_stimulate=cells_to_stimulate,
                                conns_to_include=conns_to_include,
                                conns_to_exclude=conns_to_exclude,
                                conn_polarity_override=conn_polarity_override,
                                conn_number_override=conn_number_override,
                                muscles_to_include=muscles_to_include,
                                duration=duration,
                                dt=dt,
                                target_directory=target_directory,
                                data_reader=data_reader,
                                param_overrides=param_overrides,
                                verbose=verbose)

        if config_param_overrides.has_key('input'):
            input_list = config_param_overrides['input']

        for stim_input in input_list:
            cell, start, dur, current = stim_input
            c302.add_new_input(nml_doc, cell, start, dur, current, params)

        nml_file = target_directory + '/' + reference + '.net.nml'
        writers.NeuroMLWriter.write(
            nml_doc, nml_file)  # Write over network file written above...

        print("(Re)written network file to: " + nml_file)

    return cells, cells_to_stimulate, params, muscles_to_include, nml_doc