Amacrine Cells and Direction Selective Ganglion Cells
In the past two weeks, I’ve focused on refining horizontal and bipolar cell implementations with better biological consistency. For example, horizontal cells are limited to cones only and are affected by neurotransmitters like dopamine. Additionally, fine tuned versions of the different types of amacrine cells along with direction selective ganglion cells (DSGC) are also implemented. With the latest progress, the digital retina is nearly complete (pending a few multi-channel ganglion cell implementations). By creating a biologically similar visual processing system, stimulus is richer and with much needed context, slowly transforming into information that the brain can eventually use. Please find more on that below -
Development Activity - https://github.com/akhil-reddy/beads/graphs/commit-activity
Enhancing the horizontal and bipolar cells - https://github.com/akhil-reddy/beads/blob/main/beads/core/cmu/sequencing/combine/vision.py
Building the amacrine cells - https://github.com/akhil-reddy/beads/blob/main/beads/core/cmu/sequencing/transforms/vision.py
Building the direction selective ganglion cells (DSGC) - https://github.com/akhil-reddy/beads/blob/main/beads/core/cmu/transportation/vision.py
Please note that some code (class templates, function comments, etc) is AI generated, so that I spend more of my productive time thinking and designing. However, I cross-verify each block of generated code with its corresponding design choice before moving ahead.
Algorithms / Development
Push implementation and transportation
Horizontal cell implementation v2 (reference: https://pubmed.ncbi.nlm.nih.gov/8924420/)- For each cone photoreceptor, create a horizontal cell
- Link the horizontal cells laterally
- The influence radius is controlled by neurotransmitters
- Inhibit center-surround signal
- Calculate the center stimulus with exponential decay weighting
- Calculate the surround inhibition (with exponential decay weighting) and subtract it from the center stimulus
- ON bipolar cells amplify stimulus via a leaky integrator if it’s above a certain threshold
- OFF bipolar cells amplify stimulus via a leaky integrator if it’s above a certain threshold
- AII amacrine cells in the rod pathway
- Update the AII cell's membrane potential based on rod bipolar input
- Generate ON electrical output (linear, normalized between 0 and g_gap_max)
- Generate OFF inhibitory output (glycinergic release, using a steep sigmoid)
- Starburst amacrine cells in the general pathway
- Cluster bipolar cells in the ratio 10-to-1
- Calculate weighted directional vector between the centroid and each bipolar cell
- Project the vector on the four cardinal directions
- Sum “centrifugal” contributions to get an aggregate directional vector
- Integrate the input signal from many amacrine cells (in a similar centrifugal manner as SAC)
- Generate spikes based on the updated firing rates
Next Steps
Push implementation and transportation
- Transportation - Full ganglion cell implementation
- Overlaying frames from a video onto the retina
- Neurotransmitters - Fed by bipolar and amacrine cells, to act on contrasting and/or temporal stimulus. Neurotransmitters can be added later during ERU development
- Building the cochlea
Design Retrospective - Reconciling the vision-CMU / retina implementation with Beads design
After reviewing my past notes, here are the design elements that I aimed for and how well the implementation fits to that design -
Design Requirement | Implementation Specifics |
---|---|
Motion blur capture | Complete starburst amacrine cell (SAC) inhibition; Poor temporal integration via rods |
Directional movement capture | Partial SAC inhibition; Poor temporal integration via rods |
Stillness capture | Complete SAC inhibition; Good temporal integration via rods |
Colour, sharpness and picture quality | Cones with opponent processing; Bipolar cells |
Push implementation - “pushing” cells at different intensities to improve perception | Horizontal cells; Bipolar cells |
Multiple channels for population coding at the visual cortex levels (V1, V2 and so on) | Different types of ganglion cells |
Neurotransmitter modulation | Dopamine levels affect horizontal cells |