neuroml / org.neuroml.model Goto Github PK
View Code? Open in Web Editor NEWNeuroML v2 Java API
Home Page: https://www.neuroml.org/neuromlv2
License: GNU Lesser General Public License v3.0
NeuroML v2 Java API
Home Page: https://www.neuroml.org/neuromlv2
License: GNU Lesser General Public License v3.0
I was doing some profiling of Geppetto to see where the bulk of the time was spent with NeuroML documents, I found the following:
With the Purkinje cell:
[2015-02-07 15:02:54.637] INFO http-bio-8080-exec-4 o.geppetto.model.neuroml.services.NeuroMLModelInterpreterService Parsed NeuroML document of size 1170KB, took 1554ms
With the Auditory cortex model:
[2015-02-07 15:06:10.012] INFO http-bio-8080-exec-5 o.geppetto.model.neuroml.services.NeuroMLModelInterpreterService Parsed NeuroML document of size 2287KB, took 19064ms
Auditory is twice the size and takes ten times the time to parse.
Twenty seconds is a LOT (even one second is).
This is the code
/*
* NEUROML
*/
start=System.currentTimeMillis();
NeuroMLConverter neuromlConverter = new NeuroMLConverter();
NeuroMLDocument neuroml = neuromlConverter.loadNeuroML(neuromlString);
_logger.info("Parsed NeuroML document of size "+neuromlString.length()/1024+"KB, took "+(System.currentTimeMillis()-start)+"ms");
Using version 1.4.0. but pretty sure it's the same with any version. This is with single selfcontained neuroml files that contain all the inclusion inside them.
cc @pgleeson @adrianq @borismarin
segmentGroups marked with neuroLexId sao864921383, e.g.
<segmentGroup id="bcdendBAS2_2" neuroLexId="sao864921383">
<member segment="39"/>
<member segment="40"/>
</segmentGroup>
can be used to specify a subset of segmentGroups in a cell which contain unbranched (each segment has a unique parent in this group apart from the first) and non overlapping (every segment in cell belongs to one and only one of these segmentGroups) groups.
A test for this should be added to https://github.com/NeuroML/org.neuroml.model/blob/development/src/main/java/org/neuroml/model/util/NeuroML2Validator.java
When parsing a neuroml doc with jlems, presynapticPopulation and postsynapticPopulation in projection component should be refcomponents. For instance, synapse attribute in a projection component is parse as a refcomponent. However pre and post synaptic population are just attributes.
@pgleeson I have created this issue in this repo as I guess it has to do with neuroml comp definition but maybe it makes more sense to move it to another repo.
Some exceptions I am finding in the log. Doesn't happen all the time.
nc_ca1 h5 file gives
Error reading request, ignored java.lang.ArrayIndexOutOfBoundsException: 3
at org.neuroml.model.util.hdf5.NetworkHelper.getLocation(NetworkHelper.java:178)
at org.geppetto.model.neuroml.modelInterpreterUtils.PopulateTypes.createPopulationTypeVariable(PopulateTypes.java:565)
this is fixed in org.neuroml.model development but awaiting release
numberInternalDivisions, nseg in NEURON, was recommended for inclusion as a property subelement of annotation in segmentGroup. Some APIs have trouble reading what's inside annotation (because it's defined as <xs:any.. > in the Schema), so now it's recommended to put it outside annotation:
<segmentGroup id = "mainDendSec" neuroLexId="sao864921383">
<property tag="numberInternalDivisions" value="3"/>
....
Validator should check for preferred use & possible inconsistency
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.