A unified thalamic model of multiple distinct oscillations (Li, Henriquez and Fröhlich 2017)

 Download zip file 
Help downloading and running models
Accession:233509
We present a unified model of the thalamus that is capable of independently generating multiple distinct oscillations (delta, spindle, alpha and gamma oscillations) under different levels of acetylcholine (ACh) and norepinephrine (NE) modulation corresponding to different physiological conditions (deep sleep, light sleep, relaxed wakefulness and attention). The model also shows that entrainment of thalamic oscillations is state-dependent.
Reference:
1 . Li G, Henriquez C, Fröhlich F (2017) Unified Thalamic Model Generates Multiple Distinct Oscillations with State-dependent Entrainment by Stimulation PLOS Computational Biology 13(10):e1005797
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Thalamus;
Cell Type(s): Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Thalamus lateral geniculate nucleus interneuron;
Channel(s): I Na,t; I K; I h; I L high threshold; I T low threshold; I_AHP; I CAN; I K,leak;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; NMDA; GabaA;
Gene(s):
Transmitter(s): Acetylcholine; Norephinephrine;
Simulation Environment: C or C++ program;
Model Concept(s): Sleep; Activity Patterns; Gamma oscillations; Oscillations; Brain Rhythms;
Implementer(s): Li, Guoshi [guoshi_li at med.unc.edu];
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; GabaA; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I K; I K,leak; I h; I CAN; I_AHP; Acetylcholine; Norephinephrine;
/
ThalamicOSC
data
LFP.m
PlotV.m
Raster.m
                            
% Plot the simulated LFP with frequency power spectrum of the thalamic network
% The m-file generates subplots of Figure 2 of the Li et al. paper
% The varialbe "FLAG_OSC" needs to be set to the corresponding simulated
% oscillation state so the figure is generated properly
% Written by Guoshi Li (guoshi_li@med.unc.edu)

clc;
clear all;
close all;

% Select which oscillation state to plot based on simulation
FLAG_OSC = 1; % 1: Delta; 2: Spindle; 3: Alpha: 4: Gamma

load tc1_all;
load tc2_all
load in_all
load re_all;
 
if (FLAG_OSC == 1)
   T0 = 2000;    
   T1 = T0+1000;
elseif (FLAG_OSC == 2)
   T0 = 1100;    
   T1 = T0+1000;
elseif (FLAG_OSC == 3)
   T0 = 1000;    
   T1 = T0+1000;
else
   T0 = 1000;    
   T1 = T0+1000;
end


C1 = tc1_all(:, 2:end);
C2 = tc2_all(:, 2:end);

C = [C1 C2];

FILORDER = 1000;

[row, col]=size(C);

TC = C;
lfp = sum(TC,2)/(col);  % simulated local field potential


DT = 0.2;               % sampling time: ms
Fs = 1/DT*1000;         % sampling frequency: Hz

Fmax = 50;              % maximal frequency to plot
Fc   = [0.5 80];        % Cut-off frequency
Wc   = Fc/(Fs/2);   

n1 = T0/DT+1;
n2 = T1/DT+1;

t = tc1_all(:,1);

if (FLAG_OSC == 1)
   t = t(n1:n2)-T0;
elseif (FLAG_OSC == 2)
   t = t(n1:n2)-500;
elseif (FLAG_OSC == 3)
   t = t(n1:n2)-T0;
else
   t = t(n1:n2)-T0;
end


y = lfp(n1:n2);
y = y-mean(y);

L = length(y);
NFFT = 2^nextpow2(L);     % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
YY = 2*abs(Y(1:NFFT/2));

f = Fs/2*linspace(0,1,NFFT/2);

m = Fmax/(0.5*Fs)*(0.5*NFFT);
m = ceil(m)+1;

h = fir1(FILORDER, Wc);
x = filtfilt(h,1, y);

X = fft(x,NFFT)/L;
XX = 2*abs(X(1:NFFT/2));


[Peak, I] = max(XX);
fo=f(I);
disp('The oscillation frequency is:');
fo
disp('The oscillation power is:');
Peak


if (FLAG_OSC == 1)
   xmin  = 0;
   xmax  = 1000;
   ymin  = -20;
   ymax  = 50;
   ypmax = 11;
elseif (FLAG_OSC == 2)
   xmin = 600;
   xmax = 1600;
   ymin = -20;
   ymax = 50;
   ypmax = 20;
elseif (FLAG_OSC == 3)
   xmin = 0;
   xmax = 1000;
   ymin = -25;
   ymax =  25;
   ypmax = 11;
else
   xmin = 0;
   xmax = 1000;
   ymin = -25;
   ymax =  25;  
   ypmax = 11;
end


figure;
subplot(2,1,1);
plot(t, x, 'k-', 'LineWidth',1);
xlabel('ms', 'FontSize',14);
ylabel('sLFP (mV)', 'FontSize',14);
set(gca, 'FontSize',12);
set(gca, 'YTick', [-20:20:40]);
axis([xmin, xmax, ymin, ymax]);
box('off');

if (FLAG_OSC == 1)
  title('Delta OSC', 'FontSize',16);
elseif (FLAG_OSC == 2)
  title('Spindle OSC', 'FontSize',16);
elseif (FLAG_OSC == 3)
  title('Alpha OSC', 'FontSize',16); 
else
  title('Gamma OSC', 'FontSize',16);  
end


% Plot single-sided amplitude spectrum.
subplot(2,1,2);
plot(f(1:m),XX(1:m),'k-');
xlabel('Frequency (Hz)', 'FontSize',14)
ylabel('Power', 'FontSize',14)
set(gca, 'FontSize',12);
axis([0, Fmax, 0, ypmax]);
box('off');








Loading data, please wait...