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)
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))
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)
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)