To implement an accurate and low-latency simulation environment in MATLAB, much of the code had to be written with specific neural modeling in mind. Whereas larger-scale, open source neural simulators try to give as much flexibility up to the point of beginning the simulation, we parsed each neural model’s differential equations ahead of time in a custom 4th order Runge-Kutta loop. And what we lost in generalizability, we made up in execution speed and accuracy!
Courtesy of Princeton University: https://introcs.cs.princeton.edu/java/94diffeq/
A 4th order Runge-Kutta method was used to simulate the system of differential equations. It's an iterative way to get the results of differential equations that you can't solve analytically. This algorithm belongs to a family of numerical solvers with various use cases, but a 4th order RK algorithm balances versatility and accuracy for our purposes, and has been used by other researchers for similar objectives. In the algorithm (shown on the left), h represents the timestep. For neural modeling, a timestamp of ~0.5ms to ~1ms suffices as neural kinetics operate on the ms timescale, but other researchers have used time steps as small as 2.5µs or smaller.
Courtesy of Assignment Point: https://www.assignmentpoint.com/science/computer/multi-core-processor.html
A recursive search approach allowed us to add more parameters and topologies to the search in linear time without having to explicitly define each parameter combination (taking exponential time).
For the set of all parameters to search, each iterative loop itself contains an iterative loop to explore every other unset parameter, and so on (hence the recursion), until every parameter has been set---at which point the program actually runs the simulation (this is the base case).
Adding new parameters exponentially increases the number of simulations to run, hence the importance of exploiting NSG's multicore processing capabilities to run multiple simulations in parallel.
Signal Processing
Three characteristic properties were extracted from the resulting waveforms; the period of the oscillatory spiking behavior for each neuron, the duty cycle, or the proportion of each period occupied by spikes for each neuron, and the phase angle of the oscillations between neurons. The intra-HCO phase and inter-HCO phase was calculated for each pair of HCOs. If an HCO exhibited a consistent period and anti-phase oscillations, corresponding to a phase of around 0.5, the HCO was classified as functional.
Group 15: CPG Implementation in Software
Page Leader: Blair Caccam