A basal ganglia model of aberrant learning (Ursino et al. 2018)

 Download zip file 
Help downloading and running models
Accession:239530
A comprehensive, biologically inspired neurocomputational model of action selection in the Basal Ganglia allows simulation of dopamine induced aberrant learning in Parkinsonian subjects. In particular, the model simulates the Alternate Finger Tapping motor task as an indicator of bradykinesia.
Reference:
1 . Ursino M, Baston C (2018) Aberrant learning in Parkinson's disease: A neurocomputational study on bradykinesia. Eur J Neurosci 47:1563-1582 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Connectionist Network;
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell;
Channel(s):
Gap Junctions:
Receptor(s): D1; D2; Cholinergic Receptors;
Gene(s):
Transmitter(s): Dopamine; Acetylcholine;
Simulation Environment: MATLAB;
Model Concept(s): Parkinson's; Synaptic Plasticity; Long-term Synaptic Plasticity;
Implementer(s): Ursino, Mauro [mauro.ursino at unibo.it]; Baston, Chiara [chiara.baston at unibo.it];
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; D1; D2; Cholinergic Receptors; Acetylcholine; Dopamine;
%% Program which performs the simulations for Figure 3
% figure "tapping frequency vs. dopaminergic input" at various epochs
% and temporal patterns
clear all
close all
clc

global alpha beta gamma

% Gain from DA to Go (excitation)
alpha = 0.75;  %(0.2*(Ugo_trigger-0.8)+0.5)/(0.7*(Ugo_trigger-0.8));

%gain from DA to No-Go (inhibition)
beta = -1;

%gain form DA to the cholinergic interneuron
gamma = -0.5;

Ns = 4;
Nc = 4;
caso = 0;

S = zeros(Ns,1);
S(1) = 1;

Valori_dopamina = [0.05:0.05:1.0];
L = length(Valori_dopamina);
STN_ON = 1;
T_ON = 1;
Freq = zeros(1,L);

    load W_tot_new_W0e5_D1e0
    Wgc = squeeze(Wgc_epocs(:,:,100));
    Wgs = squeeze(Wgs_epocs(:,:,100));
    Wnc = squeeze(Wnc_epocs(:,:,100));
    Wns = squeeze(Wns_epocs(:,:,100));
Ke = 7;

for jj = 1: L,
Dop_tonic = Valori_dopamina(jj)
S = zeros(Ns,1);
S(1) = 1;
[Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq(jj) = ft*60;
end

plot(Valori_dopamina,Freq,'r','linewidth',1.5)
xlabel('Dopaminergic input','fontsize',18)
ylabel('Tapping frequency (cycles/min)','fontsize',18)
hold on



    Wgc = squeeze(Wgc_epocs(:,:,150));
    Wgs = squeeze(Wgs_epocs(:,:,150));
    Wnc = squeeze(Wnc_epocs(:,:,150));
    Wns = squeeze(Wns_epocs(:,:,150));
for jj = 1: L,
Dop_tonic = Valori_dopamina(jj)
S = zeros(Ns,1);
S(1) = 1;
[Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq(jj) = ft*60;
end
plot(Valori_dopamina,Freq,'g','linewidth',1.5)


    Wgc = squeeze(Wgc_epocs(:,:,200));
    Wgs = squeeze(Wgs_epocs(:,:,200));
    Wnc = squeeze(Wnc_epocs(:,:,200));
    Wns = squeeze(Wns_epocs(:,:,200));
for jj = 1: L,
Dop_tonic = Valori_dopamina(jj)
S = zeros(Ns,1);
S(1) = 1;
[Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq(jj) = ft*60;
end
plot(Valori_dopamina,Freq,'b','linewidth',1.5)
legend1 = legend('100 epochs','150 epochs','200 epochs');
set(legend1,'fontsize',14)
set(legend1,'location','northwest')
set(gca,'fontsize',18)


%% plot the temporal figures
clear
STN_ON = 1;
T_ON = 1;
Ns = 4;
Ke = 7;
figure(2)
load W_tot_new_W0e5_D1e0

    Wgc = squeeze(Wgc_epocs(:,:,1));
    Wgs = squeeze(Wgs_epocs(:,:,1));
    Wnc = squeeze(Wnc_epocs(:,:,1));
    Wns = squeeze(Wns_epocs(:,:,1));
    
    Dop_tonic = 0.55 ;
    width = 1.5;
font = 18;

S = zeros(Ns,1);
S(1) = 1;
[Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq = ft*60

subplot(411)
plot(t/1000,C(1,:),'b',t/1000,C(2,:),'r','linewidth',width)
title('blue: channel 1; red = channel 2','fontsize',font)
axis([1 3 0 1.1])



    Wgc = squeeze(Wgc_epocs(:,:,50));
    Wgs = squeeze(Wgs_epocs(:,:,50));
    Wnc = squeeze(Wnc_epocs(:,:,50));
    Wns = squeeze(Wns_epocs(:,:,50));

Dop_tonic = 0.55 ;
S = zeros(Ns,1);
S(1) = 1;
    
[Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq = ft*60
subplot(412)
plot(t/1000,C(1,:),'b',t/1000,C(2,:),'r','linewidth',width)
axis([1 3 0 1.1])

   

    Wgc = squeeze(Wgc_epocs(:,:,100));
    Wgs = squeeze(Wgs_epocs(:,:,100));
    Wnc = squeeze(Wnc_epocs(:,:,100));
    Wns = squeeze(Wns_epocs(:,:,100));

Dop_tonic = 0.43 ;
S = zeros(Ns,1);
S(1) = 1;
    
    [Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq = ft*60

subplot(413)
plot(t/1000,C(1,:),'b',t/1000,C(2,:),'r','linewidth',width)
ylabel('            cortical neuron activity','fontsize',font)
axis([1 3 0 1.1])

    Wgc = squeeze(Wgc_epocs(:,:,150));
    Wgs = squeeze(Wgs_epocs(:,:,150));
    Wnc = squeeze(Wnc_epocs(:,:,150));
    Wns = squeeze(Wns_epocs(:,:,150));
    
Dop_tonic = 0.55 ;
S = zeros(Ns,1);
S(1) = 1;
    [Uc,C,Ugo,Go,IGo_DA_Ach,Unogo,NoGo,INoGo_DA_Ach,Ugpe,Gpe,Ugpi,Gpi,Ut,T,Ustn,STN,E,t,k_tap_vett,Uchi,ChI,ft] = BG_model_function_tapping_mauro(S,Wgc,Wgs,Wnc,Wns,Ke,STN_ON,T_ON,Dop_tonic);
Freq = ft*60

subplot(414)
plot(t/1000,C(1,:),'b',t/1000,C(2,:),'r','linewidth',width)

xlabel('time (s)','fontsize',font)
axis([1 3 0 1.1])