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 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