The C. Elegans Connectome

Download Report

Transcript The C. Elegans Connectome

Connectome Research
Timothy Busbice, Updated: 03/10/2014
History
For the past 20+ years, I have tried to create a connectome using individual
programs to represent neurons whereby each program exhibits the common
but unique characteristics of the individual neurons.
In each iteration of this research, I have discovered the machine limitations of
the type of systems that I was using, mainly the restriction of the number of
processes that are allowed to run simultaneously on a given processor.
In addition, until I worked on the OpenWorm project, I did not have a true
connectome to work with and my previous attempts were basically made up
neural networks that did not yield any meaningful results.
Talking to a colleague a in December 2012, made me realize that using 64 bit
technology may have changed the limitation of the desktop PC. After doing a
quick test, I found that indeed it has and that I could create a system of 302
neurons running on my Personal Computer.
Connectome Research
The Process
In the simplest terms, there are three components: Sensory
Input, the Neurons that make up the connectome, and the
Output which is muscle activation/movement.
Connectome Research
InterProcess Communication
UDP = User Datagram Protocol
To talk between the apps, I use UDP (a cousin to TCP).
”With UDP, computer applications can send messages,
in this case referred to as datagrams, to other hosts on
an Internet Protocol (IP) network without prior
communications to set up special transmission
channels or data paths.”
In other words, UDP is Asynchronous!
*http://en.wikipedia.org/wiki/User_Datagram_Protocol
Connectome Research
The EV3 Robot is used to test the Connectome
Using the Lego Mindstorms EV3, we can connect
Robotic Sensors to the Connectome and use muscle
output from the Connectome to drive the robotic
motors.
Connectome Research
Sensory Input
An Input App that
reads the robot
sensors and then
stimulates sensory
neurons with
weighted values. I
use touch sensors
for anterior and
posterior body
touch, sonar for
nose touch and a
sound sensor to
simulate food or
chemosensory
presence.
Connectome Research
Individual Neurons
Each Neuron is spawned by reading an MS SQL Data Base table
that defines which Neuron it is and what Neurons it links to by
weight.
App Elements:
• Socket (Port) Number is unique for
each Neuron
• Neuron Name
• Receive IP Address
• Weight Received
• Linking Neurons : Port # : Weight
Connectome Research
The Connectome Engine
The connectome engine is highly integrated and recursive based
upon the biological model. The image below displays how 5 of
the 302 neurons link to one another.
Connectome Research
Muscle Output
Neurons have defined links to specific Muscles which in the prototype
system terminate at a motor out app. The Motor app is designated as
UDP Port 9999. The
accumulated left and right
totals are used to drive
the two robot motors.
Each of the muscles
is defined in a matrix
and incoming weights
are accumulated and
displayed
Connectome Research
Insights
When the robot is activated and the connectome engine is employed, we observe
repeated predictable behaviors displayed in the biological C Elegans, mainly:
• Food sensing drives the robot forward
• Nose touch sensing causes the robot to reverse and change course
• Body touch sensations cause changes in behaviors
The greatest insight is the fact that the robot is driven by the connectome alone.
There is no program that tells the robot to stop, back up and change direction
when the sonar (nose touch) stimulation occurs – the connectome is driving this
behavior.
Challenges
Running the Input/Output programs on a 64 bit Laptop, and the entire
connectome engine on a Dell desktop, causes latency issues due to the
tremendous amount of UDP traffic going on simultaneously. This skews
observation of behavior over time due to sensory input not being acted upon for
several seconds later. To remedy this issue, I am looking to distribute the neurons
and Input/Output programs over a larger array of computers and using at least a
gigabit network.
Connectome Research
Next Steps?
Distribution of processes as indicated on the previous slide to reduce
the workload of any given processor and achieve true parallelism. The
best case scenario would be 302 machines, each with one neuron but
we may start with 4 to 10 machines for the connectome engine so that
50 to 30 neurons are running on each system respectively.
Refine the Neuron app to match closer to timing and internal
processes (e.g. Neuropeptides) of actual C Elegan neurons. I have already
stated to colleagues that I can see at least two mirror programs for
each neuron, one for chemical synapses and one for electrical (gap
junction) connections.
I have created a Python version that I call the Simple Connectome
Model and have shown it to work with the EV3 Robot. I am working on
a “Web Service” model that is based upon the Python model so
anyone can plug into and use the C Elegans Connectome.
Connectome Research
Connectome Engine Project:
http://www.connectomeengine.com
Twitter: @interintel
Youtube: http://www.youtube.com/user/interintelligence
Several Videos that display the robot using the connectome
Contact: Timothy Busbice, [email protected]