def weight_file(prefix): wtime = h.startsw() mingroupsize = max(nhost / 64, 1) ng = nhost / mingroupsize for r in group_serialize(ng): name = prefix + '.' + str(r[0]) if r[1]: f = open(name, 'a') #fdic = open(mg_dict_filename + '.' + str(r[0]), 'a') else: f = open(name, 'w') #fdic = open(mg_dict_filename + '.' + str(r[0]), 'w') vs = getmodel().mgrss.values for rs in vs(): s = rs.wstr() f.write(s) #sdic = rs.mg_dic_str() #fdic.write(sdic) f.close() #fdic.close() if rank == 0: print "weight_files %s.[0:%d] write time %g s" % (prefix, ng, h.startsw() - wtime)
def weight_load(filename): print("weight_load %s" % filename) model = getmodel() for l in fileinput.input(filename): tk = l.split() gid = int(tk[0]) s = int(tk[1]) # inhib check if gid % 2 != 0: gid += 1 inhib = True else: inhib = False # has key if model.mgrss.has_key(gid): rsyn = model.mgrss[gid] if inhib and rsyn.gd2fi: rsyn.gd2fi.weight[1] = s elif not inhib and rsyn.md2ampanmda: rsyn.md2ampanmda.weight[1] = s print("weight %s" % s) fileinput.close()
def weight_reset(): model = getmodel() for rsyn in model.mgrss.values(): if rsyn.gd2fi: rsyn.gd2fi.weight[1] = 0 if rsyn.md2ampanmda: rsyn.md2ampanmda.weight[1] = 0
def init_gap_junctions(): # initialize source for mgid in range(params.Nmitral): mpriden = split.mpriden(mgid) if mpriden: mpriden.push() pc.source_var(mpriden(0.99)._ref_v, mgid) h.pop_section() pc.barrier() # initialize targets for mgid in range(params.Nmitral): mpriden = split.mpriden(mgid) if mpriden: glomid = mgid/nmxg for sistermgid in range(glomid * nmxg, mgid)+range(mgid+1, (glomid+1)*nmxg): if pc.gid_exists(sistermgid) > 0: gap = h.Gap(mpriden(0.99)) if sistermgid != 189: getmodel().gj[(mgid, sistermgid)] = gap glomid = mgid / nmxg pc.target_var(gap, gap._ref_vgap, sistermgid) util.elapsed('Gap junctions builden')
def weight_load(filename): model = getmodel() for l in fileinput.input(filename): tk = l.split() gid = int(tk[0]) s = int(tk[1]) # inhib check if gid % 2 != 0: gid += 1 inhib = True else: inhib = False # has key if model.mgrss.has_key(gid): rsyn = model.mgrss[gid] if inhib and rsyn.gd2fi: rsyn.gd2fi.weight[1] = s elif not inhib and rsyn.md2ampanmda: rsyn.md2ampanmda.weight[1] = s fileinput.close()
def weight_file(prefix): wtime = h.startsw() mingroupsize = max(nhost/64, 1) ng = nhost/mingroupsize for r in group_serialize(ng): name = prefix + '.' + str(r[0]) if r[1]: f = open(name, 'a') #fdic = open(mg_dict_filename + '.' + str(r[0]), 'a') else: f = open(name, 'w') #fdic = open(mg_dict_filename + '.' + str(r[0]), 'w') vs = getmodel().mgrss.values for rs in vs(): s = rs.wstr() f.write(s) #sdic = rs.mg_dic_str() #fdic.write(sdic) f.close() #fdic.close() if rank == 0 : print "weight_files %s.[0:%d] write time %g s" % (prefix, ng, h.startsw()-wtime)
def init(): data = {} for uid in range(nhost): data.update({ uid:(getmodel().mitrals.keys()) }) data = a2a.all2all(data) mgids = [] for _mgids in data.values(): mgids += _mgids mgids = set(mgids) # initialize source for mgid in getmodel().mitrals.keys(): mpriden = split.mpriden(mgid) if not mpriden: continue rgj = params.ranstream(mgid, params.stream_gap_junction) mpriden.push() secref = h.SectionRef() h.pop_section() h.mk_gj_src(pc, mgid, secref) glomid = mgid2glom(mgid) sistergids = [] # no longer all to all, only a chain if not (ismtufted(mgid) and (mgid - nmi) % nmt == (nmt - 1)): if ismitral(mgid) and mgid % nmxg == (nmxg - 1): sistergids += [glomid * nmt + nmi] else: sistergids += [mgid + 1] if not (ismitral(mgid) and mgid % nmxg == 0): if ismtufted(mgid) and (mgid - nmi) % nmt == 0: sistergids += [(glomid + 1) * nmxg - 1] else: sistergids += [mgid - 1] sistergids = mgids.intersection(range(glomid * nmxg, glomid * nmxg + nmxg) + range(glomid * nmt + nmi, glomid * nmt + nmt + nmi)).difference([ mgid ]) for sistermgid in sistergids: gap = h.Gap(mpriden(0.99)) if ismitral(mgid) and ismitral(sistermgid): gap.g = rgj.uniform(gj_min_g1, gj_max_g1) elif ismtufted(mgid) and ismtufted(sistermgid): gap.g = rgj.uniform(gj_min_g3, gj_max_g3) else: gap.g = rgj.uniform(gj_min_g2, gj_max_g2) getmodel().gj[(mgid, sistermgid)] = gap pc.barrier() # initialize targets for key, gap in getmodel().gj.items(): mgid, sistermgid = key pc.target_var(gap, gap._ref_vgap, sistermgid) util.elapsed('Gap junctions built')
def gap_junctions_cnt(): return len(getmodel().gj)*2