예제 #1
0
파일: runsim.py 프로젝트: JustasB/Mig3DTest
def build_complete_model(connection_file):
  # distribute
  nmc.build_net_round_robin(getmodel(), connection_file)
  import distribute
  import multisplit_distrib
  multisplit_distrib.multisplit_distrib(distribute.getmodel())

  # set initial weights
  if len(params.initial_weights) > 0:
    weightsave.weight_load(params.initial_weights)

  # print sections
  nc = h.List("NetCon")
  nc = int(pc.allreduce(nc.count(),1))
  if rank == 0: print "NetCon count = ", nc
  nseg = 0
  for sec in h.allsec():
    nseg += sec.nseg
  nseg = int(pc.allreduce(nseg, 1))
  if rank == 0: print "Total # compartments = ", nseg

  util.show_progress(200)

  #from odorstim import OdorSequence
  #odseq = OdorSequence(params.odor_sequence)

  if rank == 0: print 'total setup time ', h.startsw()-startsw
def build_complete_model(connection_file):
    # distribute
    nmc.build_net_round_robin(getmodel(), connection_file)
    import distribute
    import multisplit_distrib
    multisplit_distrib.multisplit_distrib(distribute.getmodel())

    # set initial weights
    if len(params.initial_weights) > 0:
        weightsave.weight_load(params.initial_weights)

    # print sections
    nc = h.List("NetCon")
    nc = int(pc.allreduce(nc.count(), 1))
    if rank == 0: print "NetCon count = ", nc
    nseg = 0
    for sec in h.allsec():
        nseg += sec.nseg
    nseg = int(pc.allreduce(nseg, 1))
    if rank == 0: print "Total # compartments = ", nseg

    util.show_progress(200)

    import custom_params
    if custom_params.enableOdorInput:
        from odorstim import OdorSequence
        odseq = OdorSequence(params.odor_sequence)

    if rank == 0: print 'total setup time ', h.startsw() - startsw
예제 #3
0
def build_part_model(gloms, mitrals, dicfile=''):

    model = getmodel()
    model.clear()

    # gids
    gids = set()
    for glomid in gloms:
        gids.update(range(glomid * params.Nmitral_per_glom, (glomid+1) * params.Nmitral_per_glom) + \
                    range(glomid * params.Nmtufted_per_glom + params.gid_mtufted_begin, (glomid+1) * params.Nmtufted_per_glom + params.gid_mtufted_begin))
    gids.update(mitrals)

    # distribute
    nmc.build_net_round_robin(model, gids, dicfile)

    import distribute
    if False:
        # CoreNEURON does not support multisplit
        import multisplit_distrib
        multisplit_distrib.multisplit_distrib(distribute.getmodel())

    if params.gap_junctions_active:
        gapjunc.init()

    # set initial weights
    if len(params.initial_weights) > 0:
        weightsave.weight_load(params.initial_weights)

    # print sections
    nc = h.List("NetCon")
    nc = int(pc.allreduce(nc.count(), 1))
    if rank == 0: print "NetCon count = ", nc
    nseg = 0
    for sec in h.allsec():
        nseg += sec.nseg
    nseg = int(pc.allreduce(nseg, 1))
    if rank == 0: print "Total # compartments = ", nseg

    pc.spike_record(-1, parrun.spikevec, parrun.idvec)
    util.show_progress(200)

    odseq = [OdorStim(*od) for od in params.odor_sequence]
    model.odseq = odseq

    # record
    for rec in params.sec2rec:
        vr.record(*rec)

    if rank == 0: print 'total setup time ', h.startsw() - startsw
예제 #4
0
  # put in spiketime order
  srt = tvec.sortindex()
  tvec.index(tvec, srt)
  gidvec.index(gidvec, srt)
  #make the PatternStim
  ps = h.PatternStim()
  ps.play(tvec, gidvec)
  return (tvec, gidvec, ps, spk_standard)

mksubset(model)


# inits the weights
if weights_file:
  import weightsave
  weightsave.weight_load(weights_file)

import dummysyns
dummysyns.mk_dummy_syns([])

import odorstim
odseq = odorstim.OdorSequence(params.odor_sequence)

ps = patstim(spike_file)

def spkrecord(model):
  #record only the output spikes from cells for camparison with ps[3] spk_standard
  spkvec = h.Vector()
  gidvec = h.Vector()
  for gid in model.gids:
    pc.spike_record(gid, spkvec, gidvec)