The OpenWorm Project has successfully modeled a functional C Elegans brain, if someone here has dig into that project, could something like that be roughly reimplemented using Nengo? I know that researchers in the OpenWorm Org did a very detailed implementation (very specific types of neurons and connections between them), but in in the sense of reproducing similar “worm” behavior, can something like that be achieve with Nengo, not necessarily a one-to-one match, but something like a SPAUN version of C. Elegans.
Hi @sgaseretto, and welcome back to the Nengo forums!
To answer your question:
While I am one of the people who worked on the Spaun model, I have only a superficial understanding of the OpenWorm project. However, in regards to your question, I think the answer is “yes”, it would be possible to implement something like the C Elegans model in Nengo. There are plenty of caveats to this answer though.
Generally, there are two approaches to building and understanding neural systems. The approach taken by projects like the Human Brain Project, or OpenWorm is a bottom-up approach. That is to say, the modelling tries to achieve functionality by replicating the details of the neurons and connectome to as high a degree as possible. Since these approaches model the neural function with high fidelity, simulation software like Neuron (or a custom-built neural simulator) are typically best use for these approaches. One thing to note with these approaches is that functionality (or observed behaviour) of these models are usually emergent as a result of the properties of the system (be they the specific neuron responses, or synaptic weights, etc.). This approach is viable for simpler neural systems (e.g., the C Elegans brain), but gets much more difficult for more complex systems.
While Nengo can be used for such approaches, the level of abstraction implemented in the “base” version of Nengo make this a little difficult. For example, the default neurons in Nengo are the LIF neuron, which in itself can be a (very) loose approximation of pyramidal neurons in the brain. These neurons are most definitely not the ones found in the C Elegans, and I am unsure to what extent an LIF neuron can accurately simulate a neuron in the C Elegans model. Additionally, neurons in Nengo are point neurons, meaning that propagation delays don’t exist, and I’m pretty sure they’d be important in the C Elegans model. In Nengo, these challenges are not unsurmountable; you can create custom neurons types, and you can probably simulate propagation delays with custom Nengo connections. But, these reasons are only half of why I think the answer to the “can it be built” question is “yes”.
One big advantage Nengo has over other simulation platforms is the ability to construct models using a top down approach. If you have a functional description of a system you want to build, you can use Nengo to turn that functional description into a spiking neural network. This was the approach taken to build the Spaun model, where every component in the model started as a (mathematical) functional description that was converted (piece by piece) into a spiking network. The same can be applied to the C Elegans network. If you can deduce the functional or mathematical computations that each neuron (or groups or neurons) are performing, you can re-create the same functionality within Nengo and, if done properly, it should exhibit the same behavioiur as seen in the OpenWorm model.
While not as complex as the full C Elegans network, this top down approach has been done in Nengo to build networks that exhibit complex behaviours. This video (part of the Nengo Summer School playlist) goes in detail the steps to build a “critter” that responds to food and fear stimuli, and can control its actions based on the stimulus inputs. For another example, Section 8.5 in the Neural Engineering book (this book explains the algorithm that is used in Nengo to turn functional descriptions into spiking neural networks) describes how coupled mathematically derived oscillators can be constructed as a spiking network to behaviour similar to lamprey locomotion. This top-down approach to designing and building spiking networks is the other half of why I think building a C Elegans network in Nengo is possible (albeit, it will require quite some work figuring out the functional meaning for the neurons / neural ensembles in the C Elegans model).
I hope this answers your question.
Thanks for your answer @xchoo ! This answers my question