Skip to content

jLEMS does not appear to like multi-line XML tags #127

@sanjayankur31

Description

@sanjayankur31
<neuroml
    xmlns="http://www.neuroml.org/schema/neuroml2"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.neuroml.org/schema/neuroml2 https://raw.github.com/NeuroML/NeuroML2/development/Schemas/NeuroML2/NeuroML_v2.3.1.xsd" id="kd3">
    <ionChannelHH id="kd3" species="K" conductance="10 pS">
        <annotation>
            
            <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/">
              <rdf:Description rdf:about="kd3">
                <dc:title>Potassium channel</dc:title>
                <dc:description>Potassium channel with Hodgkin-Huxley style kinetics</dc:description>
                <dc:source>
                  <rdf:Bag>
                    <rdf:li rdf:resource="https://modeldb.science/8210"/>
                  </rdf:Bag>
                </dc:source>
                <dc:creator>
                  <rdf:Bag>
                    <rdf:li rdf:resource="#Zack_Mainen"/>
                  </rdf:Bag>
                </dc:creator>
                <dc:contributor>
                  <rdf:Bag>
                    <rdf:li rdf:resource="#Volker_Steuber"/>
                    <rdf:li rdf:resource="#Padraig_Gleeson"/>
                    <rdf:li rdf:resource="#Ankur_Sinha"/>
                  </rdf:Bag>
                </dc:contributor>
              </rdf:Description>
              <rdf:Description rdf:about="#Zack_Mainen">
                <foaf:name>Zack Mainen</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Padraig_Gleeson">
                <foaf:name>Padraig Gleeson</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Ankur_Sinha">
                <foaf:name>Ankur Sinha</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Volker_Steuber">
                <foaf:name>Volker Steuber</foaf:name>
              </rdf:Description>
            </rdf:RDF>

        </annotation>
        <gate id="n" instances="1" type="gateHHrates">
            <q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="16 degC"/>
            <forwardRate type="HHNearlyExpLinearRate" rate="0.02 per_ms" midpoint="20 mV" scale="9 mV"/>
            <reverseRate type="HHNearlyExpLinearRate" rate="-0.002 per_ms" midpoint="20 mV" scale="-9 mV"/>
        </gate>
    </ionChannelHH>
    <ComponentType name="HHNearlyExpLinearRate" extends="baseHHRate" description="A HHExpLinearRate, but not quite">
        <Parameter name="scale" dimension="voltage"/>
        <Parameter name="midpoint" dimension="voltage"/>
        <Parameter name="rate" dimension="per_time"/>
        <Constant name="VOLT_SCALE" dimension="voltage" value="1 mV"/>
        <Dynamics>
            <DerivedVariable name="x" dimension="voltage" value="(v - midpoint)"/>
            <DerivedVariable name="xnodim" dimension="none" value="x / VOLT_SCALE"/>
            <ConditionalDerivedVariable name="r" dimension="per_time" exposure="r">
                <Case condition="xnodim .neq. 0" value="rate * xnodim/(1 - exp(0 - x/scale))"/>
                <Case value="rate"/>
            </ConditionalDerivedVariable>
        </Dynamics>
    </ComponentType>
</neuroml>

Just having the top neuroml tag in multiple lines makes jLEMS fail, e.g.:

pynml-channelanalysis Kd3.channel.nml
pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO -
Analysing channels from files: ['Kd3.channel.nml']

pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO - Generating LEMS file to investigate kd3 in Kd3.channel.nml, -100mV->100mV, 6.3degC
pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO - Loading LEMS file: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml and running with jNeuroML
pyNeuroML >>> INFO - Executing: (java -Xmx400M  -Djava.awt.headless=true -jar  "/home/asinha/Documents/02_Code/00_mine/NeuroML/software/pyNeuroML/pyneuroml/utils/./../lib/jNeuroML-0.13.2-jar-with-dependencies.jar"  /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml  -nogui -I '') in directory: .
pyNeuroML >>> CRITICAL - *** Problem running command:
       Command 'java -Xmx400M  -Djava.awt.headless=true -jar  "/home/asinha/Documents/02_Code/00_mine/NeuroML/software/pyNeuroML/pyneuroml/utils/./../lib/jNeuroML-0.13.2-jar-with-dependencies.jar"  /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml  -nogui -I ''' returned non-zero exit status 1.
pyNeuroML >>> CRITICAL -  jNeuroML >>   jNeuroML v0.13.2
 jNeuroML >>  Loading: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml with jLEMS, NO GUI mode...
 jNeuroML >>  Aug 14, 2024 5:56:38 PM org.lemsml.jlems.io.logging.DefaultLogger msg
 jNeuroML >>  SEVERE:  (ERROR) non matching XML close in include: open tag=neuroml
 jNeuroML >>   end= ...ype>
 jNeuroML >>  </neuroml>
 jNeuroML >>  org.lemsml.jlems.core.sim.ContentError: No component found: kd3. Existing components:
 jNeuroML >>   - Component(id=holderCell_min100 type=vClampedCell)
 jNeuroML >>   - Component(id=holderCell_min80 type=null)
 jNeuroML >>   - Component(id=holderCell_min60 type=null)
 jNeuroML >>   - Component(id=holderCell_min40 type=null)
 jNeuroML >>   - Component(id=holderCell_min20 type=null)
 jNeuroML >>   - Component(id=holderCell_0 type=null)
 jNeuroML >>   - Component(id=holderCell_20 type=null)
 jNeuroML >>   - Component(id=holderCell_40 type=null)
 jNeuroML >>   - Component(id=holderCell_60 type=null)
 jNeuroML >>   - Component(id=holderCell_80 type=null)
 jNeuroML >>   - Component(id=holderCell_100 type=null)
 jNeuroML >>   - Component(id=rampCell0 type=null)
 jNeuroML >>   - Component(id=net1 type=networkWithTemperature)
 jNeuroML >>   - Component(id=sim1 type=null)
 jNeuroML >>
 jNeuroML >>    at org.lemsml.jlems.core.type.Lems.getComponent(Lems.java:290)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:424)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:471)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
 jNeuroML >>    at org.lemsml.jlems.core.type.Lems.resolve(Lems.java:163)
 jNeuroML >>    at org.lemsml.jlems.core.sim.LemsProcess.readModel(LemsProcess.java:82)
 jNeuroML >>    at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:263)
 jNeuroML >>    at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
 jNeuroML >>    at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
 jNeuroML >>    at org.lemsml.jlems.viz.datadisplay.ControlPanel.initialise(ControlPanel.java:134)
 jNeuroML >>    at org.neuroml.export.utils.Utils.loadLemsFile(Utils.java:549)
 jNeuroML >>    at org.neuroml.export.utils.Utils.runLemsFile(Utils.java:526)
 jNeuroML >>    at org.neuroml.JNeuroML.main(JNeuroML.java:622)
 jNeuroML >>  INFO Aug 14,2024 17:56  (INFO) Loading LEMS file from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
 jNeuroML >>  INFO Aug 14,2024 17:56  (INFO) Reading from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.multiError(E.java:251)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.error(E.java:217)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.trimOuterElement(AbstractInclusionReader.java:109)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.getIncludeContent(AbstractInclusionReader.java:43)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.insertIncludes(AbstractInclusionReader.java:71)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.NeuroMLInclusionReader.insertIncludes(NeuroMLInclusionReader.java:102)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.read(AbstractInclusionReader.java:24)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:261)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
 jNeuroML >>
pyNeuroML >>> ERROR - execute_command_in_dir returned with output:  jNeuroML v0.13.2
Loading: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml with jLEMS, NO GUI mode...
Aug 14, 2024 5:56:38 PM org.lemsml.jlems.io.logging.DefaultLogger msg
SEVERE:  (ERROR) non matching XML close in include: open tag=neuroml
 end= ...ype>
</neuroml>
org.lemsml.jlems.core.sim.ContentError: No component found: kd3. Existing components:
 - Component(id=holderCell_min100 type=vClampedCell)
 - Component(id=holderCell_min80 type=null)
 - Component(id=holderCell_min60 type=null)
 - Component(id=holderCell_min40 type=null)
 - Component(id=holderCell_min20 type=null)
 - Component(id=holderCell_0 type=null)
 - Component(id=holderCell_20 type=null)
 - Component(id=holderCell_40 type=null)
 - Component(id=holderCell_60 type=null)
 - Component(id=holderCell_80 type=null)
 - Component(id=holderCell_100 type=null)
 - Component(id=rampCell0 type=null)
 - Component(id=net1 type=networkWithTemperature)
 - Component(id=sim1 type=null)

        at org.lemsml.jlems.core.type.Lems.getComponent(Lems.java:290)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:424)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
        at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:471)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
        at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
        at org.lemsml.jlems.core.type.Lems.resolve(Lems.java:163)
        at org.lemsml.jlems.core.sim.LemsProcess.readModel(LemsProcess.java:82)
        at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:263)
        at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
        at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
        at org.lemsml.jlems.viz.datadisplay.ControlPanel.initialise(ControlPanel.java:134)
        at org.neuroml.export.utils.Utils.loadLemsFile(Utils.java:549)
        at org.neuroml.export.utils.Utils.runLemsFile(Utils.java:526)
        at org.neuroml.JNeuroML.main(JNeuroML.java:622)
INFO Aug 14,2024 17:56  (INFO) Loading LEMS file from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
INFO Aug 14,2024 17:56  (INFO) Reading from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.multiError(E.java:251)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.error(E.java:217)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.trimOuterElement(AbstractInclusionReader.java:109)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.getIncludeContent(AbstractInclusionReader.java:43)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.insertIncludes(AbstractInclusionReader.java:71)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.NeuroMLInclusionReader.insertIncludes(NeuroMLInclusionReader.java:102)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.read(AbstractInclusionReader.java:24)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:261)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)

Needs to be tested with a simple LEMS file to confirm if the issue is in LEMS or the NeuroML export stack, though

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions