ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/261585.

Generation of stable heading representations in diverse visual scenes (Kim et al 2019)

 Download zip file 
Help downloading and running models
Accession:261585
"Many animals rely on an internal heading representation when navigating in varied environments. How this representation is linked to the sensory cues that define different surroundings is unclear. In the fly brain, heading is represented by ‘compass’ neurons that innervate a ring-shaped structure known as the ellipsoid body. Each compass neuron receives inputs from ‘ring’ neurons that are selective for particular visual features; this combination provides an ideal substrate for the extraction of directional information from a visual scene. Here we combine two-photon calcium imaging and optogenetics in tethered flying flies with circuit modelling, and show how the correlated activity of compass and visual neurons drives plasticity, which flexibly transforms two-dimensional visual cues into a stable heading representation. ... " See the supplementary information for model details.
Reference:
1 . Kim SS, Hermundstad AM, Romani S, Abbott LF, Jayaraman V (2019) Generation of stable heading representations in diverse visual scenes. Nature 576:126-131 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Connectionist Network;
Brain Region(s)/Organism: Drosophila;
Cell Type(s): Abstract rate-based neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Spatial Navigation; Synaptic Plasticity; Hebbian plasticity; Attractor Neural Network;
Implementer(s): Kim, Sung Soo [sungsoo at ucsb.edu];
function params = param_Inputs(prm_ra)

main_config();


if contains(rule_id_list{rule_id}, 'threshold=')
    W_max = 0.02;
else
    W_max = 0.33;
end





%% Input weight matrix initialization
n_wedge_neurons = prm_ra.n_wedge_neurons;


switch input_weight_options{input_weight_id}
    case 'zero weight'
        W_input = zeros(n_wedge_neurons, n_input_nodes);
        
        
    case 'von Mises weight'
        d = 2*pi/n_input_nodes;
        kappa = 3;
        %p = circularPdfVonMises(0:d:(2*pi-0.001), 0, kappa, 'radian');
        
        W_input = zeros(n_wedge_neurons, n_input_nodes);
        for i = 1:size(W_input,1)
            W_input(i,:) = circularPdfVonMises(0:d:(2*pi-0.001), 2*pi/n_wedge_neurons*i, kappa, 'radian');
        end
        
        W_input = W_input/max(W_input(:))*W_max;
        
        
    case 'random weight'
        W_input = rand(n_wedge_neurons, n_input_nodes)*W_max;
        
end


%%
params.initial_weight_description = input_weight_options{input_weight_id};
params.use_2D_input = use_2D_input;
params.n_input_azimuth = n_input_azimuth;
params.n_input_elevation = n_input_elevation;
params.n_input_nodes = n_input_nodes;
params.W_input = W_input;
params.input_is_excitatory_1_inhibitory_m1 = input_is_excitatory_1_inhibitory_m1;

 

Loading data, please wait...