def create_finfos(): fields = defaultdict(list) for el in moose.wildcardFind('/test/#'): print el mobj = moose.element(el) for f in moose.getFieldNames(mobj.className, 'lookup'): fields[mobj].append(getattr(mobj, f)) for f in moose.getFieldNames(mobj.className, 'element'): fields[mobj].append(getattr(mobj, f)) return fields
def loadtree(hdfnode, moosenode): """Load the element tree saved under the group `hdfnode` into `moosenode`""" pathclass = {} basepath = hdfnode.attr['path'] if basepath != '/': basepath = basepath + '/' emdata = hdfnode['ematrix'][:] sorted_paths = sorted(emdata['path'], key=lambda x: x.count('/')) dims = dict(emdata['path', 'dims']) classes = dict(emdata['path', 'class']) current = moose.getCwe() moose.setCwe(moosenode) # First create all the ematrices for path in sorted_paths: rpath = path[len(basepath):] classname = classes[path] shape = dims[path] em = moose.ematrix(rpath, shape, classname) wfields = {} for cinfo in moose__.element('/classes').children: cname = cinfo[0].name wfields[cname] = [f[len('set_'):] for f in moose__.getFieldNames(cname, 'destFinfo') if f.startswith('set_') and f not in ['set_this', 'set_name', 'set_lastDimension', 'set_runTime'] and not f.startswith('set_num_')] for key in hdfnode['/elements']: dset = hdfnode['/elements/'][key][:] fieldnames = dset.dtype.names for ii in range(len(dset)): obj = moose__.element(dset['path'][ii][len(basepath):]) for f in wfields[obj.class_]: obj.setField(f, dset[f][ii])
def restorestate(filename): wfields = {} for cinfo in moose.element('/classes').children: cname = cinfo[0].name wfields[cname] = [ f[len('set_'):] for f in moose.getFieldNames(cname, 'destFinfo') if f.startswith('set_') and f not in ['set_this', 'set_name', 'set_lastDimension', 'set_runTime'] and not f.startswith('set_num_') ] with h5.File(filename, 'r') as fd: typeinfo = fd['/metadata/typeinfo'][:] classdict = {} dimsdict = dict(zip(typeinfo['path'], typeinfo['dims'])) classdict = dict(zip(typeinfo['path'], typeinfo['class'])) parentdict = dict(zip(typeinfo['path'], typeinfo['parent'])) sorted_paths = sorted(typeinfo['path'], key=lambda x: x.count('/')) for path in sorted_paths: name = path.rpartition('/')[-1].partition('[')[0] moose.vec(parentdict[path] + '/' + name, eval(dimsdict[path]), classdict[path]) for key in fd['/elements']: dset = fd['/elements/'][key][:] fieldnames = dset.dtype.names for ii in range(len(dset)): obj = moose.element(dset['path'][ii]) for f in wfields[obj.className]: obj.setField(f, dset[f][ii])
def loadtree(hdfnode, moosenode): """Load the element tree saved under the group `hdfnode` into `moosenode`""" pathclass = {} basepath = hdfnode.attr['path'] if basepath != '/': basepath = basepath + '/' emdata = hdfnode['vec'][:] sorted_paths = sorted(emdata['path'], key=lambda x: x.count('/')) dims = dict(emdata['path', 'dims']) classes = dict(emdata['path', 'class']) current = moose.getCwe() moose.setCwe(moosenode) # First create all the ematrices for path in sorted_paths: rpath = path[len(basepath):] classname = classes[path] shape = dims[path] em = moose.vec(rpath, shape, classname) wfields = {} for cinfo in moose.element('/classes').children: cname = cinfo[0].name wfields[cname] = [ f[len('set_'):] for f in moose.getFieldNames(cname, 'destFinfo') if f.startswith('set_') and f not in ['set_this', 'set_name', 'set_lastDimension', 'set_runTime'] and not f.startswith('set_num_') ] for key in hdfnode['/elements']: dset = hdfnode['/elements/'][key][:] fieldnames = dset.dtype.names for ii in range(len(dset)): obj = moose.element(dset['path'][ii][len(basepath):]) for f in wfields[obj.className]: obj.setField(f, dset[f][ii])
def test_other(): a1 = moose.Pool('/ada') assert a1.className == 'Pool', a1.className finfo = moose.getFieldDict(a1.className) s = moose.Streamer('/asdada') p = moose.PulseGen('pg1') assert p.delay[0] == 0.0 p.delay[1] = 0.99 assert p.delay[1] == 0.99, p.delay[1] c = moose.Stoich('/dadaa') v1 = moose.getFieldNames(c) v2 = c.getFieldNames() assert v1 == v2 assert len(v1) > 10, v1
def restorestate(filename): wfields = {} for cinfo in moose__.element('/classes').children: cname = cinfo[0].name wfields[cname] = [f[len('set_'):] for f in moose__.getFieldNames(cname, 'destFinfo') if f.startswith('set_') and f not in ['set_this', 'set_name', 'set_lastDimension', 'set_runTime'] and not f.startswith('set_num_')] with h5.File(filename, 'r') as fd: typeinfo = fd['/metadata/typeinfo'][:] classdict = {} dimsdict = dict(zip(typeinfo['path'], typeinfo['dims'])) classdict = dict(zip(typeinfo['path'], typeinfo['class'])) parentdict = dict(zip(typeinfo['path'], typeinfo['parent'])) sorted_paths = sorted(typeinfo['path'], key=lambda x: x.count('/')) for path in sorted_paths: name = path.rpartition('/')[-1].partition('[')[0] moose__.ematrix(parentdict[path] + '/' + name, eval(dimsdict[path]), classdict[path]) for key in fd['/elements']: dset = fd['/elements/'][key][:] fieldnames = dset.dtype.names for ii in range(len(dset)): obj = moose__.element(dset['path'][ii]) for f in wfields[obj.class_]: obj.setField(f, dset[f][ii])
moose.reinit() # start simulation at 0 nA injection current. moose.start(0.3) moose.showfields(soma) # check Vm soma.inject = -1E-12 # reset simulation moose.reint() # start simulation at -1pA injection current. moose.start(0.3) moose.showfields(soma) # Creation of pulse generator. pulse = moose.PulseGen('pulse') moose.showfield('pulse') pulse.delay[0] = 50E-3 # First delay. pulse.width[0] = 100E03 # Pulse width. pulse.level[0] = 1E-9 # Pulse amplitude. pulse.delat[1] = 1E9 moose.getFieldNames( 'PulseGen', 'srcFinfo') # returns list of message outlets for a moose element class. moose.getFieldNames( 'Compartment', 'destFinfo') # returns list of message inlets for a moose element class. soma.getFieldNames('destFinfo') moose.showmsg( 'soma') # shows message connetions statistics of the moose element.