Comments (7)
Information on how paths are to be constructed is also required. It isn't clear when an
id
should be used and when thename
is sufficient, for example.
See also LEMS/LEMS#9
from documentation.
- in general, all exposures can be accessed and so recorded
from documentation.
Information on how paths are to be constructed is also required. It isn't clear when an id
should be used and when the name
is sufficient, for example.
from documentation.
I think:
- all components should have IDs, and these should be used to construct paths.
- bits that are not components (like
Exposures
) should not have IDs, and the name should be used to construct the path
from documentation.
We discussed this yesterday. The rule of thumb seems to be:
- for any child elements, use the name
- for children elements use the id
Related: NeuroML/NeuroML2#163 and NeuroML/NeuroML2#157 etc.
from documentation.
I see XML id
attributes, XML name
attributes, and XML tag names are being used. Beyond that, the addressing scheme is unclear to me.
Consider hhpop[0]/bioPhys1/membraneProperties/NaConductances/NaConductance/m/q
from LEMS_NML2_Ex5_DetCell.xml
[0]
appears to be an index, rather than an id or namehhop
does not appear to be in the root namespaces of the LEMS file. Rather,hhpop
is theid
of thepopulation
of thetarget
of thesimulation
in the LEMS file.[0]
appears to be an index within thesize
of thehhop
populationbioPhys1
is theid
of a child ofhhpop
membraneProperties
is the XML tag name of a child ofbioPhys
. This element doesn't have a XML id attribute. LEMS appears to make the id of this component alsomembraneProperties
NaConductances
is anid
of a child ofmembraneProperties
m
is theid
of a child of theionChannel
parameter ofNaConductances
q
is thename
of aStateVariable
child of theDynamics
child of thetype
parameter ofm
Consider hhpop[0]/spiking
from LEMS_NML2_Ex5_DetCell.xml
- LEMS doesn't parse
spiking
as a child or parameter ofhhpop
I have several questions:
- What part of the addressing scheme is LEMS vs NeuroML?
- What is scope of ids? For example,
gateHHrates
is not directly imported intoNaConductance.channel.nml
- How is the indexing intended to work?
- What are all the ways that the tree of components and their inheritance are intended to be walked (e.g., component->child, component -> ionChannel, component -> StateVariable)?
from documentation.
I see XML
id
attributes, XMLname
attributes, and XML tag names are being used. Beyond that, the addressing scheme is unclear to me.Consider
hhpop[0]/bioPhys1/membraneProperties/NaConductances/NaConductance/m/q
fromLEMS_NML2_Ex5_DetCell.xml
[0]
appears to be an index, rather than an id or name
Yes, because it's a population
, which can have different sizes but of the same component. So, in this case, one can use the [x]
system to refer to the element in the population that we want to access.
hhop
does not appear to be in the root namespaces of the LEMS file. Rather,hhpop
is theid
of thepopulation
of thetarget
of thesimulation
in the LEMS file.
Yes, because you can have multiple populations in the network. So, we use the id
of the population here.
[0]
appears to be an index within thesize
of thehhop
population
Yes, please see my note above.
bioPhys1
is theid
of a child ofhhpop
No, bioPhys1
is the id
of the biophysicalproperties
child element that the cell (hhpop[0]
) includes from NML2_SingleCompHHCell.xml
. Here, since biopysicalproperties
is a child, one can also use the name. However, because these can be defined "standalone" outside a cell, the id
can also be used.
membraneProperties
is the XML tag name of a child ofbioPhys
. This element doesn't have a XML id attribute. LEMS appears to make the id of this component alsomembraneProperties
It's a child element of biophysicalproperties
, so there can be only one. Thus, it can be referred using its name
directly and does not need to have an id
.
NaConductances
is anid
of a child ofmembraneProperties
m
is theid
of a child of theionChannel
parameter ofNaConductances
q
is thename
of aStateVariable
child of theDynamics
child of thetype
parameter ofm
Consider
hhpop[0]/spiking
fromLEMS_NML2_Ex5_DetCell.xml
- LEMS doesn't parse
spiking
as a child or parameter ofhhpop
It's an exposure in hhpop[0]
, which is the cell in the population hhpop
.
I have several questions:
- What part of the addressing scheme is LEMS vs NeuroML?
NeuroML uses LEMS---it just defines ComponentTypes that can be used directly. So, LEMS is sort of the programming language that defines basic types, and NeuroML uses these basic types to define classes---instances of which (objects) become components.
So, the addressing scheme comes from LEMS.
- What is scope of ids? For example,
gateHHrates
is not directly imported intoNaConductance.channel.nml
I'm not sure what you mean by "scope" here. It's a hierarchical path. gateHHrates
extensions of gate
, which are children elements of ionChannels
:
https://docs.neuroml.org/Userdocs/Schemas/Channels.html?highlight=gatehhrates#ionchannelhh
- How is the indexing intended to work?
My understanding is that elements that have "sizes" is where indexing can be used, since they'll have n
elements of the same type, and the index can be used to refer to one of these n
elements.
- What are all the ways that the tree of components and their inheritance are intended to be walked (e.g., component->child, component -> ionChannel, component -> StateVariable)?
You go down the tree from the top most node, for example a population. Whenever you come across a component whose component type defines an exposure, you can access the value of the exposure.
We'll clarify this in the page with examples. I do realise that it's not as intuitive nor straight forward as it can be.
from documentation.
Related Issues (20)
- Issue on page /Userdocs/Conventions.html: add information about NmlId
- Issue on page /Userdocs/SingleNeuronExample.html: mention conventions and link to conventions page
- Feature Request: PDF Download & Page Number HOT 8
- Add new page on including metadata in NeuroML model descriptions HOT 1
- Add example of including files to conventions page
- Document that recordings can only be made from NeuroML segment mid-points
- Improve paths page to list specific places where paths can be used and how they're to be used
- Schema: mark parameters that are necessary HOT 2
- Add new featured tool figure: netpyne UI? HOT 1
- Refer to v2.2 on schema page
- Add info on pynml-plotmorph to Visualising... page
- Issue on page /Userdocs/SingleNeuronExample.html: add `from neuroml.utils import ctinfo`
- Add page for GSoC/Outreachy projects
- Add page on submitting new model components for inclusion in the standard HOT 1
- As a user, I want a page that lists what validation tests are run by NeuroML
- Minor typo in 'Getting Started' documentation HOT 3
- Document when one should use NeuroML for creating new ComponentTypes, and when one should use LEMS
- Update editorial board
- Add bluepyopt to docs
- Schema docs: add a new tab that quotes the type definition from the XSD HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from documentation.