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/)

  1. For each cone photoreceptor, create a horizontal cell
  2. Link the horizontal cells laterally
    • The influence radius is controlled by neurotransmitters
  3. 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
Bipolar cell implementation v2

  1. ON bipolar cells amplify stimulus via a leaky integrator if it’s above a certain threshold
  2. OFF bipolar cells amplify stimulus via a leaky integrator if it’s above a certain threshold
Amacrine cell implementation v1

  1. 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)
  2. 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
Direction selective ganglion cells (DSGC) implementation v1 (reference: blog)

  1. Integrate the input signal from many amacrine cells (in a similar centrifugal manner as SAC)
  2. Generate spikes based on the updated firing rates

Next Steps

Push implementation and transportation

  1. Transportation - Full ganglion cell implementation
  2. Overlaying frames from a video onto the retina
  3. Neurotransmitters - Fed by bipolar and amacrine cells, to act on contrasting and/or temporal stimulus. Neurotransmitters can be added later during ERU development
  4. 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


Created Mar 30, 2025