Encoding and retrieval in a model of the hippocampal CA1 microcircuit (Cutsuridis et al. 2009)

 Download zip file 
Help downloading and running models
This NEURON code implements a small network model (100 pyramidal cells and 4 types of inhibitory interneuron) of storage and recall of patterns in the CA1 region of the mammalian hippocampus. Patterns of PC activity are stored either by a predefined weight matrix generated by Hebbian learning, or by STDP at CA3 Schaffer collateral AMPA synapses.
1 . Cutsuridis V, Cobb S, Graham BP (2010) Encoding and retrieval in a model of the hippocampal CA1 microcircuit. Hippocampus 20:423-46 [PubMed]
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): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA1 basket cell;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Simulation Environment: NEURON;
Model Concept(s): Pattern Recognition; Activity Patterns; Temporal Pattern Generation; Learning; STDP; Connectivity matrix; Storage/recall;
Implementer(s): Graham, Bruce [B.Graham at cs.stir.ac.uk]; Cutsuridis, Vassilis [vcutsuridis at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; AMPA; NMDA;
% Generate weight matrix through storage of random binary patterns
% with the clipped Hebbian learning rule.
% Weights stored in incoming column order for each target cell.
% BPG 19-8-08

NCELL = 100;  % number of cells (neurons)
NPATT = 5;   % number of patterns
SPATT = 20;   % number of active cells per pattern
%PC = 0.5;    % percent connectivity (not normally used)

FWGT = 'wgtsN100S20P5.dat';   % weights file
FPATT = 'pattsN100S20P5.dat';   % patterns file


%rw = rand(NCELL);
%w = ones(NCELL).*PC >= rw

w = zeros(NCELL);
p = zeros(NCELL, NPATT);

for i=1:NPATT
  % generate pattern
  pr = randperm(NCELL);
  pi = pr(1:SPATT);        % indices of active cells in pattern
  p(pi,i) = 1;
  % store in weight matrix
  w = w+(p(:,i)*p(:,i)');

w = w > 0;  % clip weight matrix

dlmwrite(FWGT, w, ' ');
dlmwrite(FPATT, p, ' ');

Loading data, please wait...