-
Notifications
You must be signed in to change notification settings - Fork 0
Auditory Example
This small scale model will attempt to find a solution to that question.
The model is based on the idea that, since sound travels at a finite speed, if it comes from the right, it will reach the right ear ever so slightly before reaching the left ear. This model will exploit this time difference to determine if a sound is coming from the right or the left.
Simulator_setup:
timestep 1
final_timestep 500
Model_structure:
group basic LASN 2
group basic RASN 2
group basic LI 2
group basic RI 2
connect LASN_to_LI {LASN} {LI}
connect RASN_to_RI {RASN} {RI}
connect LI_to_RI {LI} {RI}
connect RI_to_LI {RI} {LI}
Parameters:
edit_neurons {LASN} time_constant 2, sigmoid_center 1.0, sigmoid_slope 0.1
edit_neurons {RASN} time_constant 2, sigmoid_center 1.0, sigmoid_slope 0.1
edit_neurons {LI} time_constant 5, sigmoid_center 1.0, sigmoid_slope 0.1
edit_neurons {RI} time_constant 5, sigmoid_center 1.0, sigmoid_slope 0.1
edit_connection LASN_to_LI initial_weight 0.08, E 70, tau1 1, tau2 2
edit_connection RASN_to_RI initial_weight 0.08, E 70, tau1 1, tau2 2
edit_connection LI_to_RI initial_weight 0.5, E -8, tau1 0.1, tau2 4
edit_connection RI_to_LI initial_weight 0.5, E -8, tau1 0.1, tau2 4
ostim {LASN} {1:250:50} 3. 1 1 2
ostim {RASN} {2:251:50} 3. 1 1 2
ostim {RASN} {250:499:50} 3. 1 1 2
ostim {LASN} {251:500:50} 3. 1 1 2
Let's go over the model's structure in english.
In this model each time step represents 1ms worth of time. This model will run for 500 time steps.
The model generates four groups of neurons. Each group contains two neurons each:
LASN and RASN represent the left auditory sensory neurons and the right auditory sensory neurons respectively.
LI and RI represent the higher level neurons which should only fire if the sound is coming from their respected side.
The model also connects up the groups of neurons with synapses as follows: LASN_to_LI and RASN_to_RI generate synapses from LASN to LI and from RASN to RI respectively. LI_to_RI and RI_to_LI generate synapses from LI to RI and from RI to LI respectively.
We set the different parameters for the neurons and synapses.
In particular, note that LASN_to_LI and RASN_to_RI are excitatory (E = 70), but LI_to_RI and RI_to_LI are inhibitory (E = -8).
We also stimulate the sensory neurons as follows:
For the first 250ms, we stimulate the left sensory neurons before the right sensory neurons (meaning the sound is coming from the left). This stimulation occurs once every 50ms.
For the remaining 250ms, we stimulate the right sensory neurons before the left sensory neurons (meaning the sound is coming from the right). This stimulation also occurs once every 50ms.
Once the model runs, we will be able to plot some outputs to get an idea.
And so we run the model.
The model has now finished running, and the code is prompting the user to enter a plot or save command.
Let's try to check if the code worked by first plotting a raster plot of all the neurons.
plot neuron raster raster {:} {:}
As you can see in the raster plot, for the first 250ms, LI is firing and RI is not, indicating that the sound is coming from the left.
You can also see that in the raster plot, for the remaining 250ms, RI is firing and LI is not, indicating that the sound is coming from the right.
This is what we wanted and therefore we have successfully built this model. However, we're now curious as to how and why this works, and we decide to look at the neuron voltages in more detail.
plot neuron voltage raw {:} {:}
Note that the plot is plots from left to right, from top to bottom in the order of creation.
We can see that LI (row 2, column 1 and 2) experiences excitation over the first 250ms, every time a stimulus is presented. However RI (row 2, column 3 and 4) gets inhibited over the same time period. This is because, since LASN is stimulated before RASN, it gets to stimulate LI before RASN gets to stimulate RI. This will cause LI to fire before RI, and when LI fires it will inhibit RI, preventing RI from firing.
You can see that the opposite is true for the remaining 250ms.
Now we decide that we want to show off to our friends (if any) by sending them data from this model. You could always take a screenshot of the graphs, but (for whatever reason) you decide that you'd rather send them an Excel file containing the neuron's firing pattern.
You use the following command
save neuron output raw {:} {:}
This builds and saves an Excel file containing indicating for each time step if a neuron fired or not (with 1s and 0s).
There are numerous issues with this model, however.
- You realize that the time difference between the sound reaching the two ears might not be big enough for the brain to detect. It might be more likely that the brain uses a difference in volume to determine which side sound comes from instead (louder in the right means sound is coming from the right). You could try to think of a way you could change this model to choose which side sound is coming from based on this idea instead. (Assume sound reaches both sides at the same time step, but differ the strength of the stimulus for each side.)
- You like the way the model works as is, but you realize that the brain can pinpoint sound direction from more than just left and right. Consider if the brain had 5 neurons, which, when they fire, indicate that sound is coming from the far left, somewhat left, center, somewhat right and far right respectively. Can you think of a way to edit the model to incorporate this change? (You might need to increase the time gap between left and right)
- Try to merge idea 1 and 2.
Click to return to home page: Home
- Home
- Introduction
- Python Setup/ Running the Code
- Choosing which model file to run
- Model File Format
- Save States
- Neuron and Synapse Types:
- Full Model Examples: