Simulating NeuroML Models#
Validate NeuroML 2 files before using them.
It is good practice to validate NeuroML 2 files to check them for correctness before simulating them.
Using Open Source Brain#
Models that have already been converted to NeuroML and added to the Open Source Brain platform can be simulated through your browser.
Most of the OSB example projects feature prebuilt NeuroML models which can be simulated in this way.
A discussion on the steps required for sharing your own models on OSB, with a view to simulating them on the platform, can be found here.
Using jNeuroML/pyNeuroML#
jLEMS is the reference implementation of the LEMS language in Java, and can be used to simulate single compartment models written in NeuroML/LEMS. It is included in both jNeuroML and pyNeuroML.
jNeuroML and pyNeuroML can be used at the command line as follows, when a LEMS Simulation file has been created to describe what to simulate/plot/save:
# Simulate the model using jNeuroML
jnml <LEMS simulation file>
# Simulate the model using pyNeuroML
pynml <LEMS simulation file>
You can also run LEMS simulations using jNeuroML straight from a Python script using the pyNeuroML API:
from pyneuroml.pynml import run_lems_with_jneuroml
...
run_lems_with_jneuroml(lems_file_name)
Using NEURON#
For more complex models that can not be simulated using jLEMS (e.g. incorporating multicompartmental cells), we can use the NEURON simulator, also using jNeuroML or pyNeuroML, pointing at a LEMS Simulation file describing what to simulate, and using the -neuron
option:
# Simulate the model using NEURON with python/hoc/mod files generated by jNeuroML
jnml <LEMS simulation file> -neuron -run
# Simulate the model using NEURON with python/hoc/mod files generated by pyNeuroML
pynml <LEMS simulation file> -neuron -run
You can also run LEMS simulations using the NEURON simulator using the pyNeuroML API:
from pyneuroml.pynml import run_lems_with_jneuroml_neuron
...
run_lems_with_jneuroml_neuron(lems_file_name)
There is a dedicated page on NEURON/NeuroML interactions here.
Using NetPyNE#
You can also generate and run NetPyNE code from NeuroML. To generate and run NetPyNE code, use jNeuroML or pyNeuroML:
# Simulate the model using NetPyNE with python/hoc/mod files generated by jNeuroML
jnml <LEMS simulation file> -netpyne -run
# Simulate the model using NetPyNE with python/hoc/mod files generated by pyNeuroML
pynml <LEMS simulation file> -netpyne -run
The main generated Python file name will end in _netpyne.py
.
You can also run LEMS simulations using the NetPyNE simulator using the pyNeuroML API:
from pyneuroml.pynml import run_lems_with_jneuroml_netpyne
...
run_lems_with_jneuroml_netpyne(lems_file_name)
There is a dedicated page on NetPyNE/NeuroML interactions here.
Using Brian2#
You can export single component NeuroML models to Python scripts for running them using the Brian2 simulator:
# Using jnml
jnml <LEMS simulation file> -brian2
# Using pynml
pynml <LEMS simulation file> -brian2
You can also run LEMS simulations using the Brian2 simulator using the pyNeuroML API:
from pyneuroml.pynml import run_lems_with_jneuroml_brian2
...
run_lems_with_jneuroml_brian2(lems_file_name)
There is a dedicated page on Brian/NeuroML interactions here.
Using MOOSE#
You can export NeuroML models to the MOOSE simulator format using jNeuroML or pyNeuroML, pointing at a LEMS Simulation file describing what to simulate, and using the -moose
option:
# Using jnml
jnml <LEMS simulation file> -moose
# Using pynml
pynml <LEMS simulation file> -moose
There is a dedicated page on MOOSE/NeuroML interactions here.
Using EDEN#
The EDEN simulator can load and simulate NeuroML v2 models.
There is a dedicated page on EDEN/NeuroML interactions here.
Using Arbor#
You can import NeuroML models to the Arbor simulator.
There is a dedicated page on Arbor/NeuroML interactions here.