A common JSON/YAML based format for compact network specification, closely tied to NeuroML v2
Project description
NeuroMLlite: a common framework for reading/writing/generating network specifications
Work in progress. This will develop in to 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.
Examples
The best way to see the currently proposed structure is to look at the examples
Ex. 1: Simple network, 2 populations & projection
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
Ex. 2: Simple network, 2 populations, projection & inputs
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
Ex. 3: As above, with simulation specification
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
Ex. 4: A network with PyNN cells & inputs
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
Ex. 5: A network with the Blue Brain Project connectivity data
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
- Matrix (see above)
Can be simulated using:
- NetPyNE
Ex. 6: A network based on Potjans and Diesmann 2014 (work in progress)
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
- Matrix (see above)
Ex. 7: A network based on Brunel 2000 (work in progress)
JSON | Python script | Generated NeuroML2
Can be exported to:
- NeuroML 2 (XML or HDF5 format)
- Graph (see above)
Can be simulated using:
- jNeuroML
Installation & usage
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
Other examples
NeuroMLlite is being tested/used in the following repositories on OSB:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for neuromllite-0.3.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cbad1ae89b0b1fbae5085264108a24a2ba75e19c61496b2f81a8888cbcb27cf |
|
MD5 | 9c2d06332ac7790dfb07a5da516292f6 |
|
BLAKE2b-256 | 7525a873ecc5236cb356f6bd735ffb53b4861a86d8a421d320d492601e62d533 |