NeuroMLlite: a common framework for reading/writing/generating network specifications based on NeuroML
NeuroMLlite is in active development. This will evolve into a framework for more portable, concise network specifications which will form an important part of NeuroML v3.
For some more background to this package see here: https://github.com/NeuroML/NetworkShorthand.
The best way to see the currently proposed structure is to look at the examples
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
JSON for network | JSON for simulation | Python script | Generated NeuroML2 | Generated LEMS
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see Ex2)
Can be simulated using:
- NetPyNE
- jNeuroML
- NEURON generated from jNeuroML
- NetPyNE generated from jNeuroML
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
Can be simulated using:
- NEST via PyNN
- NEURON via PyNN
- Brian via PyNN
- jNeuroML
- NEURON generated from jNeuroML
- NetPyNE generated from jNeuroML
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
- Matrix (see above)
Can be simulated using:
- NetPyNE
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
- Matrix (see above)
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
Can be simulated using:
- jNeuroML
Installation of the basic framework should be fairly straightforward:
git clone https://github.com/NeuroML/NeuroMLlite.git
cd NeuroMLlite
sudo python setup.py install
Then simple examples can be run:
cd examples
python Example1.py # Generates the JSON representation of the network (console & save to file)
To generate the NeuroML 2 version of the network, first install pyNeuroML, then use the -nml flag:
sudo pip install pyNeuroML
python Example2.py -nml # Saves the network structure to a *net.nml XML file
Other options (which will require Neuron, NetPyNE, PyNN, NEST, Brain etc. to be installed) include:
python Example4.py -jnml # Generate NeuroML2 & LEMS simulation & run using jNeuroML
python Example4.py -jnmlnrn # Generate NeuroML2 & LEMS simulation, use jNeuroML to generate Neuron code (py/hoc/mod), then run in Neuron
python Example4.py -jnmlnrn # Generate NeuroML2 & LEMS simulation, use jNeuroML to generate NetPyNE code (py/hoc/mod), then run in NetPyNE
python Example4.py -netpyne # Generate network in NetPyNE directly & run simulation
python Example4.py -pynnnrn # Generate network in PyNN, run using simulator Neuron
python Example4.py -pynnnest # Generate network in PyNN, run using simulator NEST
python Example4.py -pynnbrian # Generate network in PyNN, run using simulator Brian
Graphs of the network structure can be generated at many levels of detail (1-6) and laid out using GraphViz engines (d - dot (default); c - circo; n - neato; f - fdp). See above images for generated examples.
python Example6.py -graph3d
python Example6.py -graph2f
python Example6.py -graph1n
NeuroMLlite is being tested/used in the following repositories on OSB:
- Wilson & Cowan
- Mejias et al. 2016
- Pospischil et al. 2008
- Bezaire et al. 2016
- PING networks
- PsyNeuLink tests
- OpenWorm - c302
See also: