Hippocampal spiking model for context dependent behavior (Raudies & Hasselmo 2014)

 Download zip file 
Help downloading and running models
Accession:194882
Our model simulates the effect of context dependent behavior using discrete inputs to drive spiking activity representing place and item followed sequentially by a discrete representation of the motor actions involving a response to an item (digging for food) or the movement to a different item (movement to a different pot for food). This simple network was able to consistently learn the context-dependent responses.
Reference:
1 . Raudies F, Hasselmo ME (2014) A model of hippocampal spiking responses to items during learning of a context-dependent task. Front Syst Neurosci 8:178 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Abstract integrate-and-fire leaky neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s):
Implementer(s): Raudies, Florian [florian.raudies at gmail.com];
/
CodePublished
screenshots
README.html
binariness.m
errorarea.m
Figure3AAndFigure4.m
Figure3BAndFigure5.m
firingRateToSI.m
gpl-3.0.txt *
index2label.m
lifModel.m
ManySlotBuffer.m
meanWoutNaN.m
NetworkSimulation100Runs.mat
rasterPlotToFiringRate.m
semWoutNaN.m
spikingNetworkContextLearning.m
StackContainer.m
stdpModel.m
TimeBuffer.m
                            
classdef ManySlotBuffer < handle
    % ManySlotBuffer - Is a buffer with nSlot slots.
    
    % Florian Raudies, 09/07/2014, Boston University.
    properties
        nSlot       % Number of slots.
        nEntry      % Number of maximum entries per slot.
        nData       % Number of dimensions for data.
        Counter     % Counter for each buffer.
        Buffer      % These are the buffers that hold the data.
    end
    methods
        % Constructor.
        function obj = ManySlotBuffer(nSlot,nEntry,nData)
            obj.nSlot       = nSlot;
            obj.nEntry      = nEntry;
            obj.nData       = nData;
            obj.Counter     = zeros(nSlot,1);
            obj.Buffer      = zeros(nSlot,nEntry,nData);
        end
        function obj = clear(obj)
            obj.Counter = zeros(obj.nSlot,1);
            obj.Buffer  = zeros(obj.nSlot,obj.nEntry,obj.nData);
        end
        function obj = addEntryToSlot(obj,iSlot,Data)
            obj.Counter(iSlot) = obj.Counter(iSlot) + 1;
            obj.Buffer(iSlot,obj.Counter(iSlot),1:numel(Data)) = Data;
        end
        function Data = getAllEntryForSlot(obj,iSlot)
            Data = squeeze(obj.Buffer(iSlot,1:obj.Counter(iSlot),:));            
        end
    end
end