Frequently Asked Questions (FAQ)
General Questions
What is bionetlite?
bionetlite is a Python package that extends the bionet module of BMTK and generates network data for the new biophysical neuron simulator “Neulite”.
Why is bionetlite necessary?
bionetlite is necessary to run biophysical neuron simulations using the Neulite kernel.
Neulite is a lightweight and high-performance simulator optimized for large-scale simulations on supercomputers. bionetlite generates network files for Neulite while leveraging BMTK’s network construction capabilities.
For details, see the following:
What is Neulite Kernel? - About Neulite Kernel
What is Bionetlite? - About bionetlite
Design and Implementation - Background of BMTK and BioNet
What is the difference between bionet and bionetlite?
The main differences are as follows:
Target simulator: bionet→NEURON, bionetlite→Neulite
Connection position determination: bionet at simulator runtime, bionetlite at network construction time
Output files: bionetlite additionally generates CSV files for Neulite
Installation and Environment
What Python version is required?
Python 3.7 or higher is required.
For detailed setup instructions, see bionetlite Setup.
What operating systems are supported?
Linux (recommended)
macOS
Can it run on supercomputers?
Yes, Neulite is designed for execution on supercomputers. In particular, it has been successfully run on Fugaku.
On the other hand, bionetlite depends on multiple Python libraries, so it is recommended to run network construction using bionetlite in environments such as cluster machines.
Usage
How to convert existing bionet code to bionetlite?
Simply change the import statement:
# Before change
from bmtk.builder.networks import NetworkBuilder
# After change
from bionetlite import NeuliteBuilder as NetworkBuilder
The rest of the code can be used as-is.
Can I use Point neuron or Virtual neuron?
No, bionetlite currently supports only biophysical neurons.
Why can’t I use synapse models other than exp2syn?
This is because the current implementation of Neulite supports only exp2syn. Support for other synapse models is a future development goal.
Can I use spike input?
Currently, bionetlite and Neulite support only constant current input. Spike input functionality requires implementation on the Neulite side.
Parallel Execution
How to run in parallel?
Simply use mpirun:
mpirun -n 8 python build_network.py
No code changes are required. For details, see Parallel Execution.
Troubleshooting
“Module not found” error
Check if bionetlite is correctly set up:
# Verify bionetlite.py exists
ls bionetlite.py
If not set up, see bionetlite Setup.
Connection positions are different from bionet
This is by specification. bionetlite randomly determines connection positions at network construction time. Since different seed values are used than bionet, the connection positions will not be exactly the same.
However, by using the <src>_<trg>_connection.csv generated once, you can reliably run simulations on the same network.
Delay value accepts only integers
This is a current limitation of Neulite. Delay values support only int type. If you need delay values with decimal places, you need to adjust the time step or modify Neulite.
Related Resources
Getting Started - Getting Started Guide
Basic Usage - User Guide
Specifications and Limitations - Detailed Specification