Skip to main content

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

Travis CI PyPI PyPI - Python Version GitHub GitHub pull requests GitHub issues GitHub Org's stars Twitter Follow

Work in progress. For the background to this see here: https://github.com/NeuroML/NetworkShorthand.

Architecture

Examples

The best way to see the currently proposed structure is to look at the examples

Ex. 1: Simple network, 2 populations & projection

Ex1

JSON | Python script

Can be exported to:

  • NeuroML 2 (XML or HDF5 format)
  • Graph (see above)

Ex. 2: Simple network, 2 populations, projection & inputs

Ex2

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

Ex4

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

Ex5

Ex5_1 Ex5_2 Ex5_3

JSON | Python script

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)

Ex6d Ex6f Ex6c Ex6matrix

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)

Ex7

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neuromllite-0.3.2.tar.gz (10.5 MB view details)

Uploaded Source

Built Distribution

neuromllite-0.3.2-py3-none-any.whl (95.4 kB view details)

Uploaded Python 3

File details

Details for the file neuromllite-0.3.2.tar.gz.

File metadata

  • Download URL: neuromllite-0.3.2.tar.gz
  • Upload date:
  • Size: 10.5 MB
  • 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

Hashes for neuromllite-0.3.2.tar.gz
Algorithm Hash digest
SHA256 a416cb72832e63eba4be109af32ed572a4dedf60e9847ec204d08e2aabe84d7a
MD5 15a204eeb9a442a845cf6b143cdabb40
BLAKE2b-256 1ec7d9f2864b87d7d612a31fb10b7d122e0cf235fa8326d0b0cfe6ae85617336

See more details on using hashes here.

File details

Details for the file neuromllite-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: neuromllite-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 95.4 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

Hashes for neuromllite-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f6858464ce66dd1e21d1d53297e25d69a9dbe028403f1ef4031e8a48d8a83b5e
MD5 1f2c25871c252c21f25513b70ab6b132
BLAKE2b-256 00292aa25a03cf7d1c02fd238b9e7f4515db6da145c7f34ebf0f74f89121848b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page