Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sanjayankur31 opened this issue Aug 14, 2024 · 0 comments
Open

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

sanjayankur31 opened this issue Aug 14, 2024 · 0 comments
Labels

Comments

@sanjayankur31
Copy link
Contributor

<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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant