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

-neuron version of Channelpedia vclamp LEMS file does not run in NEURON #10

Open
JustasB opened this issue May 15, 2017 · 4 comments
Open

Comments

@JustasB
Copy link
Contributor

JustasB commented May 15, 2017

The example LEMS file for converted Channelpedia channels works with jnml LEMS, but not with NEURON.

$ jnml LEMS_Test_Cav2.1.xml --> OK
$ jnml LEMS_Test_Cav2.1.xml -neuron -run --> ERRORS

The problem seems to be related to NEURON's WATCH statement only allowing a single condition check, whereas the vClampedCell component defined in the LEMS file specifies multiple conditions.

The full output is pasted below:

$ jnml LEMS_Test_Cav2.1.xml -neuron -run
 jNeuroML v0.7.5
(INFO) Reading from: /Users/gazelle/Downloads/nrntest/LEMS_Test_Cav2.1.xml
(WARNING) Unused attribute in Component(id=null type=rdf_RDF): XMLAttribute(xmlns:bqmodel, http://biomodels.net/model-qualifiers/)  at: org.lemsml.jlems.core.type.Component.resolve(Component.java:538)
(WARNING) Unused attribute in Component(id=null type=rdf_RDF): XMLAttribute(xmlns:bqbiol, http://biomodels.net/biology-qualifiers/)  at: 
(INFO) Adding simulation Component(id=sim1 type=Simulation) of network/component: net1 (Type: networkWithTemperature:  temperature=305.15 (SI temperature))
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min60.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min50.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min40.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min30.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min20.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_min10.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_0.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_10.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_20.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_30.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_40.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_50.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_60.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_70.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_80.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/holderCell_90.mod
(INFO) -- Writing to mod: /Users/gazelle/Downloads/nrntest/rampCell0.mod
(INFO) Trying to compile mods in: /Users/gazelle/Downloads/nrntest
(INFO) Going to compile the mod files in: /Users/gazelle/Downloads/nrntest, forcing recompile: false
(INFO) Parent dir: /Users/gazelle/Downloads/nrntest
(INFO) Assuming *nix environment...
(INFO) Name of file to be created: /Users/gazelle/Downloads/nrntest/i686/libnrnmech.la
(INFO) Backup file to check for success: /Users/gazelle/Downloads/nrntest/umac/libnrnmech.la
(INFO) commandToExecute: /Applications/NEURON-7.3/nrn/x86_64/bin/nrnivmodl
(INFO) Going to check if mods in /Users/gazelle/Downloads/nrntest are newer than null
(INFO) Trying to delete any previous: /Users/gazelle/Downloads/nrntest/i686/libnrnmech.la
(INFO) directoryToExecuteIn: /Users/gazelle/Downloads/nrntest
(INFO) NMODL Compile >> > Creating x86_64 directory for .o files.
(INFO) NMODL Compile >> > 
(INFO) Have successfully executed command: /Applications/NEURON-7.3/nrn/x86_64/bin/nrnivmodl
(INFO) NMODL Compile >> > /Users/gazelle/Downloads/nrntest
(INFO) NMODL Compile >> > holderCell_0.mod holderCell_10.mod holderCell_20.mod holderCell_30.mod holderCell_40.mod holderCell_50.mod holderCell_60.mod holderCell_70.mod holderCell_80.mod holderCell_90.mod holderCell_min10.mod holderCell_min20.mod holderCell_min30.mod holderCell_min40.mod holderCell_min50.mod holderCell_min60.mod rampCell0.mod
(INFO) NMODL Compile >> > holderCell_0.mod holderCell_10.mod holderCell_20.mod holderCell_30.mod holderCell_40.mod holderCell_50.mod holderCell_60.mod holderCell_70.mod holderCell_80.mod holderCell_90.mod holderCell_min10.mod holderCell_min20.mod holderCell_min30.mod holderCell_min40.mod holderCell_min50.mod holderCell_min60.mod rampCell0.mod
(INFO) NMODL Compile >> > "/Applications/NEURON-7.3/nrn/x86_64/bin/nocmodl" holderCell_0
(INFO) NMODL Error   >> > Translating holderCell_0.mod into holderCell_0.c
(INFO) NMODL Error   >> > make: *** [holderCell_0.lo] Abort trap: 6
(INFO) Have successfully executed command: /Applications/NEURON-7.3/nrn/x86_64/bin/nrngui -python /Users/gazelle/Downloads/nrntest/LEMS_Test_Cav2.1_nrn.py
(INFO) NRN Error  >>> NEURON -- VERSION 7.4 (1373:f15dcfc7847b) f15dcfc7847b
(INFO) NRN Error  >>> Duke, Yale, and the BlueBrain Project -- Copyright 1984-2015
(INFO) NRN Error  >>> See http://www.neuron.yale.edu/neuron/credits
(INFO) NRN Error  >>> 
(INFO) NRN Error  >>> /Applications/NEURON-7.3/nrn/x86_64/bin/nrniv: holderCell_min60 is not a template
(INFO) NRN Error  >>>  near line 1
(INFO) NRN Error  >>>   holderCellPop_min60[0]  { m_holderCell_min60_holderCellPop_min60[0] = new holderCell_min60(0.5) } 
(INFO) NRN Error  >>>                                                                                                 ^
(INFO) NRN Output >>> Population holderCellPop_min60 contains 1 instance(s) of component: holderCell_min60 of type: vClampedCell
(INFO) NRN Error  >>> Traceback (most recent call last):
(INFO) NRN Output >>> first instance of n_holderCellPop_min60
(INFO) NRN Error  >>>   File "/Users/gazelle/Downloads/nrntest/LEMS_Test_Cav2.1_nrn.py", line 65, in <module>
(INFO) NRN Error  >>>     h.m_holderCell_min60_holderCellPop_min60[i].delay = 1.0
(INFO) NRN Error  >>> AttributeError: 'NoneType' object has no attribute 'delay'
@pgleeson
Copy link
Member

One solution to this would be to rewrite the template for generating the voltage clamped runs using the new voltageClampTriple (see here) rather than the custom cell type (vClampedCell) which is a voltage clampable cell. This custom cell isn't easily mappable to Neuron, but runs in jLems.

The channel to be investigated could be put on a standard cell, with a channelDensity for the channel, and the cell clamped to the appropriate voltage. This should run fine in Neuron too. What would probably have to happen is a variation of the voltageClampTriple ComponentType should be created to make a ramping clamped cell...

@JustasB
Copy link
Contributor Author

JustasB commented May 17, 2017

Ok, I'll give the voltageClampTriple a try and let you know how it goes.

@pgleeson
Copy link
Member

Great, thanks.

@JustasB
Copy link
Contributor Author

JustasB commented May 18, 2017

The using the voltageClampTripple does work in NEURON, but I don't know how to express the g&i variables in LEMS so that they show up in plots in NEURON.

Related to this issue: NeuroML/jNeuroML#50

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

No branches or pull requests

2 participants