Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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])
Exemplo n.º 4
0
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])
Exemplo n.º 5
0
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])
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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])
Exemplo n.º 8
0
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.