WormWorx: Help the C. Elegans worm find food!
(by tuning its nervous system)
C. elegans is a little worm with a simple nervous system that allows it to find food (and do other useful activities) as it wriggles around in wet soil. The WormWorx app simulates the worm’s locomotion system and the part of its nervous system that senses the food that it likes (bacteria) by the “scent” of dissolved salt that comes from the bacteria. The worm follows the scent to the food.
The muscles that make it move and the nerve cells (neurons) that sense the salt and control the muscles are called its neuromuscular system. The worm actually has 302 neurons but we only need to look at some of these to show how the worm can “steer” toward food. We also have 12 pairs of muscles along its body that rhythmically contract to move the worm.
Neurons talk to each other by connections called synapses. How they are wired is called a connectome. Your job is to change the strengths (or weights) of the synapses to allow the worm to steer properly.
There are three patches of food. Below is a screenshot of the worm after eating at one patch (blue) and undulating toward the next (green). There are three food patches in all.
The next image shows the connectome. The neurons are circles and rectangles. There are three types of neurons:
<![if !supportLists]>· <![endif]>Sensory neurons sense some condition in the environment and activate when it happens. There are two of these:
<![if !supportLists]>o <![endif]>ASEL activates when the salt concentration is increasing.
<![if !supportLists]>o <![endif]>ASER activates when the salt concentration is decreasing.
<![if !supportLists]>· <![endif]>Interneurons connect and transfer signals between neurons. These activate when incoming synapse signals build up and then send out signals on outgoing synapses to other neurons.
<![if !supportLists]>· <![endif]>Motor neurons connect to and turn on or off muscles.
The synapse connections are weighted to indicate how strongly they transfer signals between neurons. The weights are what you will be adjusting. The motor neurons are arranged 12 modules that alternately contract and relax the muscles they control.
Again, the game is to adjust the synapse weights such that signals from the neurons make the muscles move the worm to the food. Remember the difference between how ASEL and ASER work and good luck!
Hint: When you change a weight, the worm resets to the beginning. Of course, you can use that to start over!
What happens when the worm eats all three food patches? Take a snapshot and get a WormWorx badge!
WormWorx is brought to you by OpenWorm, an international project to build a virtual C. elegans. Check it out!
Boyle, Berri and Cohen, “Gait modulation in C. elegans: an integrated neuromechanical model”, Front. Comput. Neurosci., 2012.
Eduardo J. Izquierdo and Randall D. Beer, "An Integrated Neuromechanical Model of Steering in C. elegans", ECAL15
If you want to play with the WormWorx code, here’s how:
<![if !supportLists]>1. <![endif]>WormWorx is made with the Marmalade cross-platform tool kit. Download and install Marmalade.
<![if !supportLists]>2. <![endif]>Clone or download WormWorx from GitHub.
<![if !supportLists]>3. <![endif]>Start the Marmalade Hub and open the WormWorx.mkb project file.
<![if !supportLists]>4. <![endif]>Run in simulator.
The WormWorx++ code is also included in GitHub:
<![if !supportLists]>1. <![endif]>WormWorx++ is made with Android Studio.
<![if !supportLists]>2. <![endif]>Start Android Studio and open the WormWorx++ project file.
<![if !supportLists]>3. <![endif]>Run in simulator or on USB connected device.