NeuroDevSim

NeuroDevSim simulates neuronal morphological growth, migration, pruning, and microcircuit formation using an agent-based framework to study neural development.


Key Features:

  • Agent-Based Modeling: Utilizes agents called "fronts" that execute model-specific code each simulation cycle to extend, branch, terminate, migrate somata, or retract for pruning.
  • NeuroMaC-derived Python implementation: Implemented in Python and derived from NeuroMaC, with reported operation on Linux and macOS.
  • Collision Detection: Prevents overlapping of growing or migrating fronts using grid points that track the location of nearby fronts.
  • Parallel Shared-Memory Processing: Achieves multi-core parallelism via a shared-memory design where cores have write privileges only to private sections of arrays while maintaining read access to the entire shared array, minimizing messaging overhead.
  • Scalability: Demonstrates strong linear scaling up to 96 cores and has been executed on 128 cores.
  • Memory Locking: Manages read/write locking required for collision detection with a custom serialized lock broker controlling access to grid points.
  • Modeling Flexibility: Supports simulation of a few complex neuronal models, thousands of simpler models, or combinations thereof to produce large numbers of neuronal morphologies and resultant microcircuits in parallel.

Scientific Applications:

  • Brain Development Research: Simulates neuronal growth, migration, and pruning to analyze dynamic processes that shape neural circuits.
  • Microcircuit Formation: Models formation and evolution of microcircuits from large numbers of neuronal morphologies in parallel.
  • Large-Scale Simulation Studies: Enables large-scale studies of neuronal networks that require parallel computation for scalability.

Methodology:

Agent-based simulation where fronts execute model-specific code each cycle and make decisions based on environmental interactions and internal variables; parallelization via shared memory with private-write and global-read array sections; collision detection implemented with grid points and read/write locking managed by a custom serialized lock broker.

Topics

Details

License:
GPL-3.0
Cost:
Free of charge
Tool Type:
library
Operating Systems:
Mac, Linux
Programming Languages:
Python
Added:
3/8/2024
Last Updated:
3/8/2024

Operations

Publications

De Schutter E. Efficient simulation of neural development using shared memory parallelization. Frontiers in Neuroinformatics. 2023;17. doi:10.3389/fninf.2023.1212384. PMID:37547492. PMCID:PMC10400717.

Documentation