예제 #1
0
def write_lems_file(lems_model, lems_file_name, validate=False):

    lems_model.export_to_file(lems_file_name)

    if validate:
        from lems.base.util import validate_lems
        validate_lems(lems_file_name)
예제 #2
0
def write_lems_file(lems_model, lems_file_name, validate=False):
    
    lems_model.export_to_file(lems_file_name)
    
    if validate:
        from lems.base.util import validate_lems
        validate_lems(lems_file_name)
예제 #3
0
    def test_load_write_xml(self):
        
        model = Model()

        file_name = 'lems/test/hhcell_resaved2.xml'

        model.import_from_file(file_name)

        file_name2 = 'lems/test/hhcell_resaved3.xml'
        model.export_to_file(file_name2)

        print("----------------------------------------------")
        print(open(file_name2,'r').read())
        print("----------------------------------------------")

        print("Written generated LEMS to %s"%file_name2)

        from lems.base.util import validate_lems

        validate_lems(file_name2)
        ddt = src_svar.drift.replace('**', '^')
        mass.dynamics.add(lems.StateVariable(name, 'none', name))
        mass.dynamics.add(lems.TimeDerivative(name, '(%s)/MSEC'%ddt))
        mass.add(lems.Exposure(name, 'none'))
        
    ''' On condition is not need on the model but NeuroML requires its definition -->
            <OnCondition test="r .lt. 0">
                <EventOut port="spike"/>
            </OnCondition>'''
            
    oc = lems.OnCondition(test='v .gt. 0')
    oc.actions.append(lems.EventOut(port='spike'))
    mass.dynamics.add(oc)

    return model



if __name__ == '__main__':
    import os
    from lems.base.util import validate_lems
    here = os.path.dirname(os.path.abspath(__file__))
    for model in model_instances():
        fname = os.path.join(here, model.name + '.lems.xml')
        try:
            build_lems_for_model(model).export_to_file(fname)
            print('Successfully built %s'%fname)
            validate_lems(fname)
        except Exception as exc:
            print('> Error converting %s: %s'%(fname,exc))
예제 #5
0
파일: apitest3.py 프로젝트: LEMS/pylems
iaf1.add(lems.Parameter('reset', 'voltage'))
iaf1.add(lems.Parameter('refractoryPeriod', 'time'))
iaf1.add(lems.Parameter('capacitance', 'capacitance'))
iaf1.add(lems.Exposure('vexp', 'voltage'))
dp = lems.DerivedParameter('range', 'threshold - reset', 'voltage')
iaf1.add(dp)

iaf1.dynamics.add(lems.StateVariable('v','voltage', 'vexp')) 
iaf1.dynamics.add(lems.DerivedVariable('v2',dimension='voltage', value='v*2'))
cdv = lems.ConditionalDerivedVariable('v_abs','voltage')
cdv.add(lems.Case('v .geq. 0','v'))
cdv.add(lems.Case('v .lt. 0','-1*v'))
iaf1.dynamics.add(cdv)


model.add(lems.Component('celltype_a', iaf1.name))
model.add(lems.Component('celltype_b', iaf1.name, threshold="20mV"))

fn = '/tmp/model.xml'
model.export_to_file(fn)

print("----------------------------------------------")
print(open(fn,'r').read())
print("----------------------------------------------")

print("Written generated LEMS to %s"%fn)

from lems.base.util import validate_lems

validate_lems(fn)
예제 #6
0
iaf1.add(lems.Parameter('reset', 'voltage'))
iaf1.add(lems.Parameter('refractoryPeriod', 'time'))
iaf1.add(lems.Parameter('capacitance', 'capacitance'))
iaf1.add(lems.Exposure('vexp', 'voltage'))
dp = lems.DerivedParameter('range', 'threshold - reset', 'voltage')
iaf1.add(dp)

iaf1.dynamics.add(lems.StateVariable('v','voltage', 'vexp')) 
iaf1.dynamics.add(lems.DerivedVariable('v2',dimension='voltage', value='v*2'))
cdv = lems.ConditionalDerivedVariable('v_abs','voltage')
cdv.add(lems.Case('v .geq. 0','v'))
cdv.add(lems.Case('v .lt. 0','-1*v'))
iaf1.dynamics.add(cdv)


model.add(lems.Component('celltype_a', iaf1.name))
model.add(lems.Component('celltype_b', iaf1.name, threshold="20mV"))

fn = '/tmp/model.xml'
model.export_to_file(fn)

print("----------------------------------------------")
print(open(fn,'r').read())
print("----------------------------------------------")

print("Written generated LEMS to %s"%fn)

from lems.base.util import validate_lems

validate_lems(fn)
예제 #7
0
lorenz.dynamics.add(
    lems.StateVariable(name="z", dimension="none", exposure="z"))

lorenz.dynamics.add(
    lems.TimeDerivative(variable="x", value="( sigma * (y - x)) / sec"))
lorenz.dynamics.add(
    lems.TimeDerivative(variable="y", value="( rho * x - y - x * z ) / sec"))
lorenz.dynamics.add(
    lems.TimeDerivative(variable="z", value="( x * y - beta * z) / sec"))

onstart = lems.OnStart()
onstart.add(lems.StateAssignment(variable="x", value="x0"))
onstart.add(lems.StateAssignment(variable="y", value="y0"))
onstart.add(lems.StateAssignment(variable="z", value="z0"))
lorenz.dynamics.add(onstart)

model.add(
    lems.Component(id_="lorenzCell",
                   type_=lorenz.name,
                   sigma="10",
                   beta="2.67",
                   rho="28",
                   x0="1.0",
                   y0="1.0",
                   z0="1.0"))

file_name = "LEMS_lorenz.xml"
model.export_to_file(file_name)

validate_lems(file_name)