Striatal GABAergic microcircuit, dopamine-modulated cell assemblies (Humphries et al. 2009)

 Download zip file 
Help downloading and running models
To begin identifying potential dynamically-defined computational elements within the striatum, we constructed a new three-dimensional model of the striatal microcircuit's connectivity, and instantiated this with our dopamine-modulated neuron models of the MSNs and FSIs. A new model of gap junctions between the FSIs was introduced and tuned to experimental data. We introduced a novel multiple spike-train analysis method, and apply this to the outputs of the model to find groups of synchronised neurons at multiple time-scales. We found that, with realistic in vivo background input, small assemblies of synchronised MSNs spontaneously appeared, consistent with experimental observations, and that the number of assemblies and the time-scale of synchronisation was strongly dependent on the simulated concentration of dopamine. We also showed that feed-forward inhibition from the FSIs counter-intuitively increases the firing rate of the MSNs.
1 . Humphries MD, Wood R, Gurney K (2009) Dopamine-modulated dynamic cell assemblies generated by the GABAergic striatal microcircuit. Neural Netw 22:1174-88 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Neostriatum fast spiking interneuron;
Gap Junctions: Gap junctions;
Receptor(s): D1; D2; GabaA; AMPA; NMDA; Dopaminergic Receptor;
Transmitter(s): Dopamine; Gaba; Glutamate;
Simulation Environment: MATLAB;
Model Concept(s): Activity Patterns; Temporal Pattern Generation; Synchronization; Spatio-temporal Activity Patterns; Parkinson's; Action Selection/Decision Making; Connectivity matrix;
Implementer(s): Humphries, Mark D [m.d.humphries at]; Wood, Ric [ric.wood at];
Search NeuronDB for information about:  D1; D2; GabaA; AMPA; NMDA; Dopaminergic Receptor; Dopamine; Gaba; Glutamate;
function net = GetNeuronPositions(net)
% set the minimum distance allowed between two cells
limit = 10; % um

% calculate the number of cells in the network
net.MS.N  = round(prod(net.PhysicalDimensions./1000) .* net.CellsPerMillimeterCube); % get the number of MS neurons in the slice
net.FS.N = round(net.MS.N .* (net.FSpercentage/100)); 
N = net.MS.N + net.FS.N;

% get the neuron positions
P = get_positions(net.PhysicalDimensions, N, limit);

% --------------------------------------------------------------
% randomly assign the cells to the MS and FS neuron populations.
x = randperm(N);
net.MS.Position = P(x(1:net.MS.N),:);
net.FS.Position = P(x(net.MS.N+1:end),:);

% randomly assign MSN's to the D1 and D2 class
x = randperm(net.MS.N);
net.MS.D1inds = sort(x(1:round(net.MS.N/2)));
net.MS.D2inds = sort(x((round(net.MS.N/2)+1):net.MS.N));

% -------------------------------------------------------------------------
% get the positions of the cells
function [P] = get_positions(dims, N, limit)
P = rand(N,3);
P(:,1) = P(:,1).*dims(1);
P(:,2) = P(:,2).*dims(2);
P(:,3) = P(:,3).*dims(3);

% move any cell that is closer to its nabours than the limit
P = check_dist(P, dims, limit); 

% -------------------------------------------------------------------------
% set the distance between cells so that it is never less than the limit
function P = check_dist(P, dims, limit)
i = 0;
while i < length(P)
    i = i+1;
    d = get_distance(P, P(i,:));
    inds = find(d<limit);

    selfind = find(inds==i);
    inds = inds([1:selfind-1 selfind+1:end]);
    if ~isempty(inds)   
        P(i,:) = rand(1,3) .* dims;
        i = i-1;

% -------------------------------------------------------------------------
% calculate the distance between one cell, and all others in the network
function d = get_distance(targetcoords, sourcecoords)
[n,m] = size(targetcoords);
a = targetcoords(:,1) - sourcecoords(1);
b = targetcoords(:,2) - sourcecoords(2);
c = targetcoords(:,3) - sourcecoords(3);
d = sqrt(a.^2 + b.^2 + c.^2);

Loading data, please wait...