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
File details
Details for the file neuromllite-0.5.0.tar.gz
.
File metadata
- Download URL: neuromllite-0.5.0.tar.gz
- Upload date:
- Size: 886.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80dca458bb88acad21f06d7292e184a5214c987c862b2a671fcbddd4b80b227a |
|
MD5 | a52c379672d0b9d7d7582162fc38187e |
|
BLAKE2b-256 | becb0ccda28c35e63fedb2d3b8d8c0b1aa14c8b55cd86703314167bd15499856 |
File details
Details for the file neuromllite-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: neuromllite-0.5.0-py3-none-any.whl
- Upload date:
- Size: 94.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/52.0.0.post20210125 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2401f9d07b426041b2aa3014cc24e16cc2753ab8bc243a9ba8b2e331b2316e55 |
|
MD5 | e25a4be7c30a6196365d94c8c94d7830 |
|
BLAKE2b-256 | d9ecff559e9e1ded786e1a5bf579f6d4ddd89348689af369b1d33214b42bbcc8 |