Esempio n. 1
0
    def run(self):
        if self.parser.options is None:
            self.parser.parse_args()
        o = self.parser.options

        for noise_sigma in self.parser.noise_sigmas:
            p = self._dp.copy()
            p['noise_sigma'] = noise_sigma  # pA
            p['time'] = 10e3 if o.time is None else o.time  # ms

            p['nthreads'] = 1
            p['ntrials'] = o.ntrials
            p['verbosity'] = o.verbosity

            p.update(self._up)

            # Submitting
            ac = ArgumentCreator(p, printout=True)

            simLabel = '{0}pA'.format(int(p['noise_sigma']))
            numRepeat = 1
            submitter = SubmitterFactory.getSubmitter(ac,
                                                      self._app_name,
                                                      envType=o.env,
                                                      rtLimit=o.rtLimit,
                                                      output_dir=o.where,
                                                      label=simLabel,
                                                      blocking=True,
                                                      timePrefix=False,
                                                      numCPU=o.nCPU)
            ac.setOption('output_dir', submitter.outputDir())
            startJobNum = 0
            submitter.submitAll(startJobNum, numRepeat, dry_run=o.dry_run)
Esempio n. 2
0
def submitNoiseSweep(p,
                     gEp,
                     gIp,
                     noisep,
                     ENV,
                     simRootDir,
                     simLabel,
                     appName,
                     rtLimit,
                     numCPU,
                     blocking,
                     timePrefix,
                     numRepeat,
                     dry_run,
                     extraIterparams=None):
    '''
    Submit a parameter sweep with an extra dimension: noise_sigma.
    '''
    if extraIterparams is None:
        extraIterparams = {}
    noise_sigma_arr = []
    g_AMPA_total_arr = []
    g_GABA_total_arr = []
    for n in noisep.values():
        for E_coupling in gEp.values():
            for I_coupling in gIp.values():
                noise_sigma_arr.append(n)
                g_AMPA_total_arr.append(E_coupling)
                g_GABA_total_arr.append(I_coupling)

    iterparams = {
        'noise_sigma': np.array(noise_sigma_arr),
        'g_AMPA_total': np.array(g_AMPA_total_arr),
        'g_GABA_total': np.array(g_GABA_total_arr),
        #'noise_sigma'  : [150],
        #'g_AMPA_total' : [1020],
        #'g_GABA_total' : [3060]
    }
    iterparams.update(extraIterparams)
    ac = ArgumentCreator(p, printout=True)
    ac.insertDict(iterparams, mult=False)

    ###############################################################################
    submitter = SubmitterFactory.getSubmitter(ac,
                                              appName,
                                              envType=ENV,
                                              rtLimit=rtLimit,
                                              output_dir=simRootDir,
                                              label=simLabel,
                                              blocking=blocking,
                                              timePrefix=timePrefix,
                                              numCPU=numCPU)
    ac.setOption('output_dir', submitter.outputDir())
    startJobNum = 0
    submitter.submitAll(startJobNum, numRepeat, dry_run=dry_run)
    submitter.saveIterParams(iterparams, None, None, dry_run=dry_run)
Esempio n. 3
0
    def run(self):
        '''Run the parameter sweep.'''
        if self.parser.options is None:
            self.parser.parse_args()
        o = self.parser.options

        for noise_sigma in self.parser.noise_sigmas:
            p = self._dp.copy()
            p['noise_sigma'] = noise_sigma  # pA
            p['time'] = 10e3 if o.time is None else o.time  # ms

            p['nthreads'] = 1
            p['ntrials'] = o.ntrials
            p['verbosity'] = o.verbosity

            p.update(self._up)

            # Submitting
            iterparams = self.parser.iter_params
            if self._slope_selector is not None:
                iterparams.update({
                    'bumpCurrentSlope':
                    self._slope_selector.get_slopes(noise_sigma)
                })
            ac = ArgumentCreator(p, printout=True)
            ac.insertDict(iterparams, mult=False)

            ###################################################################
            simLabel = '{0}pA'.format(int(p['noise_sigma']))
            numRepeat = 1
            submitter = SubmitterFactory.getSubmitter(ac,
                                                      self._app_name,
                                                      envType=o.env,
                                                      rtLimit=o.rtLimit,
                                                      output_dir=o.where,
                                                      label=simLabel,
                                                      blocking=True,
                                                      timePrefix=False,
                                                      numCPU=o.nCPU)
            ac.setOption('output_dir', submitter.outputDir())
            startJobNum = 0
            submitter.submitAll(startJobNum,
                                numRepeat,
                                dry_run=o.dry_run,
                                filter=self.parser.flat_filter)
            submitter.saveIterParams(iterparams,
                                     self.parser.options.param_list,
                                     self.parser.dimensions,
                                     dry_run=o.dry_run)
p['master_seed'] = 123456
p['time'] = 0.1  # unused
p['nthreads'] = 1
p['ntrials'] = 1
p['verbosity'] = o.verbosity

p['probabilistic_synapses'] = o.probabilistic_synapses

# Range of E/I synaptic conductances
Nvals = 31  # Number of values (these will be equivalent to go through the
# diagonal of the parameter space
startG = 0.0  # nS
endG = 6120.0  # nS

###############################################################################
ac = ArgumentCreator(p, printout=True)

GArr = np.linspace(startG, endG, Nvals)
g_AMPA_total_arr = []
g_GABA_total_arr = []
for coupling in GArr:
    g_AMPA_total_arr.append(coupling)
    g_GABA_total_arr.append(coupling)

iterparams = {
    'g_AMPA_total': np.array(g_AMPA_total_arr),
    'g_GABA_total': np.array(g_GABA_total_arr),
}
ac.insertDict(iterparams, mult=False)

###############################################################################
Esempio n. 5
0
def submitParamSweep(p,
                     startG,
                     endG,
                     Nvals,
                     ENV,
                     simRootDir,
                     simLabel,
                     appName,
                     rtLimit,
                     numCPU,
                     blocking,
                     timePrefix,
                     numRepeat,
                     dry_run,
                     extraIterparams=None,
                     rc=None,
                     **kwargs):
    '''Submit and save metadata for the gE vs gI parameter sweep.'''
    printout = kwargs.pop('printout', True)
    if extraIterparams is None:
        extraIterparams = {}
    ac = ArgumentCreator(p, printout=printout)

    GArr = np.linspace(startG, endG, Nvals)
    print(GArr)

    g_AMPA_total_arr = []
    g_GABA_total_arr = []
    for E_coupling in GArr:
        for I_coupling in GArr:
            g_AMPA_total_arr.append(E_coupling)
            g_GABA_total_arr.append(I_coupling)

    iterparams = {
        'g_AMPA_total': np.array(g_AMPA_total_arr),
        'g_GABA_total': np.array(g_GABA_total_arr),
    }
    dimension_labels = ['g_AMPA_total', 'g_GABA_total']
    dimensions = [Nvals, Nvals]
    iterparams.update(extraIterparams)
    ac.insertDict(iterparams, mult=False)

    ###############################################################################
    submitter = SubmitterFactory.getSubmitter(ac,
                                              appName,
                                              envType=ENV,
                                              rtLimit=rtLimit,
                                              output_dir=simRootDir,
                                              label=simLabel,
                                              blocking=blocking,
                                              timePrefix=timePrefix,
                                              numCPU=numCPU,
                                              **kwargs)
    ac.setOption('output_dir', submitter.outputDir())
    startJobNum = 0
    filter = rc[0] * len(GArr) + rc[1] if rc is not None else None
    submitter.submitAll(startJobNum, numRepeat, dry_run=dry_run, filter=filter)
    submitter.saveIterParams(iterparams,
                             dimension_labels,
                             dimensions,
                             dry_run=dry_run)
    p['ntrials'] = o.ntrials
    p['verbosity'] = o.verbosity

    p['gammaNSample'] = 0

    # Range of E/I synaptic conductances and pAMPA_sigma
    Nvals_G = 61  # Number of values for g_AMPA_total
    startG = 0.0  # nS
    endG = 3060.0  # nS

    Nvals_sigma = 11  # Number of values for pAMPA_sigma
    startSigma = .5 / 6
    endSigma = .175

    ###############################################################################
    ac = ArgumentCreator(p, printout=o.printout)

    GArr = np.linspace(startG, endG, Nvals_G)
    sigmaArr = np.linspace(startSigma, endSigma, Nvals_sigma)
    print(GArr)
    print(sigmaArr)

    g_AMPA_total_arr = []
    pAMPA_sigma_arr = []
    for E_coupling in GArr:
        for pAMPA_sigma in sigmaArr:
            g_AMPA_total_arr.append(E_coupling)
            pAMPA_sigma_arr.append(pAMPA_sigma)

    iterparams = {
        'g_AMPA_total': np.array(g_AMPA_total_arr),