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.
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:
- Wilson & Cowan
- Mejias et al. 2016
- Pospischil et al. 2008
- Bezaire et al. 2016
- PING networks
- PsyNeuLink tests
- OpenWorm - c302
See also:
Metadata
Release files for neuromllite 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neuromllite-0.6.1.tar.gz | 90.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neuromllite-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.5 kB
Release files / neuromllite-0.6.1.tar.gz
| Download URL | neuromllite-0.6.1.tar.gz |
|---|---|
| Size | 90.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d66718ca8e6e886cf2e691d4b6eef33a4f7edebd7c2527403fa55f8f859a9f5c
|
|
BLAKE2b-256 checksum How to use checksums |
2a9ed902082547c4b1b2be474ad51c800994e62f2f7d97c30c963a05c0947a77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / neuromllite-0.6.1-py3-none-any.whl
| Download URL | neuromllite-0.6.1-py3-none-any.whl |
|---|---|
| Size | 99.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0118af494573f18db3de4b8f0120d9d37ce6ce5a7b24e613ad1900e74a5adc80
|
|
BLAKE2b-256 checksum How to use checksums |
98b83b74e2056123d42925d6dc1d7047e73dcaf4cfddf25b287734079fe3cded
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|