Inhibitory network bistability explains increased activity prior to seizure onset (Rich et al 2020)

 Download zip file 
Help downloading and running models
Accession:266435
" ... the mechanisms predisposing an inhibitory network toward increased activity, specifically prior to ictogenesis, without a permanent change to inputs to the system remain unknown. We address this question by comparing simulated inhibitory networks containing control interneurons and networks containing hyperexcitable interneurons modeled to mimic treatment with 4-Aminopyridine (4-AP), an agent commonly used to model seizures in vivo and in vitro. Our in silico study demonstrates that model inhibitory networks with 4-AP interneurons are more prone than their control counterparts to exist in a bistable state in which asynchronously firing networks can abruptly transition into synchrony driven by a brief perturbation. This transition into synchrony brings about a corresponding increase in overall firing rate. We further show that perturbations driving this transition could arise in vivo from background excitatory synaptic activity in the cortex. Thus, we propose that bistability explains the increase in interneuron activity observed experimentally prior to seizure via a transition from incoherent to coherent dynamics. Moreover, bistability explains why inhibitory networks containing hyperexcitable interneurons are more vulnerable to this change in dynamics, and how such networks can undergo a transition without a permanent change in the drive. ..."
Reference:
1 . Rich S, Chameh HM, Rafiee M, Ferguson K, Skinner FK, Valiante TA (2020) Inhibitory Network Bistability Explains Increased Interneuronal Activity Prior to Seizure Onset. Front Neural Circuits 13:81 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Synapse;
Brain Region(s)/Organism:
Cell Type(s): Abstract Izhikevich neuron;
Channel(s): I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: C or C++ program;
Model Concept(s): Synchronization; Epilepsy;
Implementer(s): Rich, Scott [sbrich at umich.edu];
Search NeuronDB for information about:  I Potassium; Gaba;
/
CorticalInhibitoryNetwork-master
README.md
columnlegend.m
conv_gaussian.m
convert_spiketimes.m
getpos.m
golomb_measure.m
golomb_synch.m
InhibitoryCortex_pulse_0713.m
InhibitoryCortex_pulse_2d_FullWithRep_0905.m
InhibitoryCortex_pulse_bistabilitymeasure_zoom_repetitions_0823.m
InhibitoryCortex_pulse_stitchtogether_0709.m
InhibitoryCortex_pulse_stitchtogether_full_repetitions_0822.m
InhibitoryCortex_pulse_stitchtogether_zoom_0726.m
InhibitoryCortex_pulse_stitchtogether_zoom_repetitions_0813.m
InhibitoryCortex_pulse_zoom_0726.m
InhibitoryNetwork_cortex.sh
InhibitoryNetwork_cortex_0712.c
InhibitoryNetwork_cortex_IF_0615.c
InhibitoryNetwork_cortex_submit_0812.sh
InhibitoryNetwork_cortex_submit_zoom_0725.sh
InhibitoryNetwork_SortedRaster.m
legendflex.m
legendtitle.m
LICENSE *
mtit.m
parseArgs.m *
PlottingFICurves_v1.m
savemultfigs.m
subaxis.m *
suplabel.m
                            
function varargout = savemultfigs(varargin)
% SAVEMULTFIGS is a simple GUI that allows to easily and quickly save 
% multiple figures in several formats in just a few clicks!
%
% Author: Nicolas Beuchat, EPFL/HMS
%         nicolas.beuchat [at] gmail.com
% Creation date: 2-14-2012
% Last update:   2-17-2012
%      
% TO-DO:
%   - Ask user if erase existing figures
%   - Default filename = title
%   - Clean code (remove unnecessary callbacks)
%   - Options to saveas (another window. Ex: resolution, etc.)
%   - Load figures directly from gui (to save in different formats)
%   - Problematic display in Mac OS X
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help savemultfigs

% Last Modified by GUIDE v2.5 14-Feb-2012 15:26:46

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @savemultfigs_OpeningFcn, ...
                   'gui_OutputFcn',  @savemultfigs_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before savemultfigs is made visible.
function savemultfigs_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to savemultfigs (see VARARGIN)

% Choose default command line output for savemultfigs
handles.output = hObject;

% UIWAIT makes savemultfigs wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% Create checkbox and edit object for each opened figure
parentPanel = findobj(hObject,'Tag','uipanelFiles');
figlist = findall(0,'Type','fig');
figlist(figlist == hObject) = [];
figlist = sort(figlist,'ascend');

% Default value of parameters
defaultfilename = 'filename';
handles.figlist     = figlist;
handles.numberFig   = length(figlist);
handles.maxFigPerPage = 16;
handles.currentPage = 1;
handles.numberPage  = ceil(handles.numberFig / handles.maxFigPerPage);

% Set some of the objects properties/values
handles.visibleFig = ones(1,handles.numberFig);
if handles.numberFig > handles.maxFigPerPage + 1
    set(findobj('Tag','sliderPageNumber'),'Value',handles.currentPage,...
        'Max',max(handles.numberPage,2),'Visible','on')
    set(findobj('Tag','textPageNumber'),'Visible','on',...
        'String',[num2str(handles.currentPage) '/' num2str(handles.numberPage)])
    
    handles.visibleFig((handles.maxFigPerPage+1):handles.numberFig) = 0;
else
    set(findobj('Tag','sliderPageNumber'),'Visible','off')
    set(findobj('Tag','textPageNumber'),'Visible','off')
end

% Chose a default filename based on name of figure
defaultfilenames=cell(length(figlist),1); 
for i=1:length(figlist) 
    if isempty(get(figlist(i),'Name')) 
        defaultfilenames{i} = [defaultfilename num2str(figlist(i))]; 
    else 
        defaultfilenames{i} = get(figlist(i),'Name'); 
    end 
end

% Display panel with figures name
for i=1:length(figlist)
    if handles.numberFig > handles.maxFigPerPage + 1
        j = mod(i-1,handles.maxFigPerPage) + 1;
    else
        j = i;
    end
    
    visible = {'off','on'};
    uicontrol(parentPanel,'Style','checkbox',...
        'String',['Figure ' num2str(figlist(i))],...
        'Position',[12 415-25*(j-1) 100 20],...
        'Value',1.0,...
        'Tag',['checkboxFigure' num2str(figlist(i))],...
        'Callback',@checkboxFigure_Callback,...
        'Visible',visible{1+handles.visibleFig(i)})
    uicontrol(parentPanel,'Style','edit',...
        'String',[defaultfilenames{i}],...
        'Position',[88 415-25*(j-1) 300 20],...
        'Tag',['editFigure' num2str(figlist(i))],...
        'Callback',@editFigure_Callback,...
        'Visible',visible{1+handles.visibleFig(i)})
end

% Update handles structure
guidata(hObject, handles);


% --- Outputs from this function are returned to the command line.
function varargout = savemultfigs_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on button press in checkboxFigureX.
function checkboxFigure_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxFig (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxFig

function editFigure_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxFig (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of editOutputDir as text
%        str2double(get(hObject,'String')) returns contents of editOutputDir as a double


% --- Executes on button press in checkboxFig.
function checkboxFig_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxFig (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxFig


% --- Executes on button press in checkboxBmp.
function checkboxBmp_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxBmp (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxBmp


% --- Executes on button press in checkboxEps.
function checkboxEps_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxEps (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxEps


% --- Executes on button press in checkboxEmf.
function checkboxEmf_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxEmf (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxEmf


% --- Executes on button press in checkboxJpg.
function checkboxJpg_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxJpg (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxJpg


% --- Executes on button press in checkboxPcx.
function checkboxPcx_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPcx (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPcx


% --- Executes on button press in checkboxPbm.
function checkboxPbm_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPbm (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPbm


% --- Executes on button press in checkboxPdf.
function checkboxPdf_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPdf (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPdf


% --- Executes on button press in checkboxPgm.
function checkboxPgm_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPgm (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPgm


% --- Executes on button press in checkboxPng.
function checkboxPng_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPng (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPng


% --- Executes on button press in checkboxPpm.
function checkboxPpm_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxPpm (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxPpm


% --- Executes on button press in checkboxTif.
function checkboxTif_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxTif (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxTif



function editOutputDir_Callback(hObject, eventdata, handles)
% hObject    handle to editOutputDir (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of editOutputDir as text
%        str2double(get(hObject,'String')) returns contents of editOutputDir as a double


% --- Executes during object creation, after setting all properties.
function editOutputDir_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editOutputDir (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbuttonBrowse.
function pushbuttonBrowse_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonBrowse (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
pathname = uigetdir;
if pathname ~= 0
    set(findobj('Tag','editOutputDir'),'String',pathname);
end

% --- Executes on button press in checkboxDirType.
function checkboxDirType_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxDirType (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxDirType


% --- Executes on button press in pushbuttonSave.
function pushbuttonSave_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonSave (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

filetype = {};
j = 0;
child = get(findobj('Tag','uipanelFigType'),'children');
for i=1:length(child)
    if get(child(i),'Value')
        j = j + 1;
        filetype{j} = get(child(i),'String');
    end
end

if isempty(filetype)
    errordlg('No format selected! Aborted.')
    return
end

pn = get(findobj('Tag','editOutputDir'),'String');
saveinsubdir = get(findobj('Tag','checkboxDirType'),'Value');
if ~isdir(pn)
    errordlg('Specified directory is not a directory!')
    return
elseif saveinsubdir
    for j=1:length(filetype)
        if ~isdir(fullfile(pn,filetype{j}))
            mkdir(fullfile(pn,filetype{j}))
        end
    end
end

% Check for double names
n = 0;
strname = cell(0);
% errstr = cell(0);
for i=1:handles.numberFig
    dosave = get(findobj('Tag',['checkboxFigure' num2str(handles.figlist(i))]),'Value');
    if dosave
        n = n+1;
        fn = get(findobj('Tag',['editFigure' num2str(handles.figlist(i))]),'String');
        strname{n} = fn;
        ind(n) = i;
%         if ~isempty(ind)
%             errstr{k} = [fn ' is already used (Fig. )'];
%         end
    end
end

errstr{1} = '';
k = 1;
for i=1:n
    indrep = find(strcmp(strname{i},strname));
    if length(indrep) > 1
        k = k+1;
        errstr{k} = [strname{i} ' was used ' num2str(length(indrep)) ' times. Renamed to ' strname{i} '_#'];
        for j=1:length(indrep)
            strname{indrep(j)} = strcat(strname{indrep(j)},'_',num2str(j));
        end
    end
end


% Save figures
for i=1:n
    for j=1:length(filetype)
        fn = strname{i};
        if saveinsubdir
            saveas(handles.figlist(ind(i)),fullfile(pn,filetype{j},fn),filetype{j})
        else
            saveas(handles.figlist(ind(i)),fullfile(pn,fn),filetype{j})
        end
    end
end
nfigsave = n;

% nfigsave = 0;
% for i=1:handles.numberFig
%     dosave = get(findobj('Tag',['checkboxFigure' num2str(handles.figlist(i))]),'Value');
%     if dosave
%         for j=1:length(filetype)
%             fn = get(findobj('Tag',['editFigure' num2str(handles.figlist(i))]),'String');
%             if saveinsubdir
%                 saveas(handles.figlist(i),fullfile(pn,filetype{j},fn),filetype{j})
%             else
%                 saveas(handles.figlist(i),fullfile(pn,fn),filetype{j})
%             end
%         end
%         nfigsave = nfigsave + 1;
%     end
% end

msgbox([{[num2str(nfigsave) ' figures saved in ' num2str(length(filetype)) ' different formats'],...
    '','(Pressing ok will not close the GUI)'},errstr]);

% --- Executes on button press in pushbuttonAbout.
function pushbuttonAbout_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonAbout (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
msgbox({'Save Multiple Figure','','Created by:','Nicolas Beuchat',...
    'EPFL/HMS','','February 14th 2012','Version 1.0'},'About','help')


% --- Executes on slider movement.
function sliderPageNumber_Callback(hObject, eventdata, handles)
% hObject    handle to sliderPageNumber (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
handles.currentPage = get(hObject,'Value');

handles.visibleFig = zeros(1,handles.numberFig);
handles.visibleFig(((handles.currentPage-1)*handles.maxFigPerPage+1):min(handles.currentPage*handles.maxFigPerPage,handles.numberFig)) = 1;

for i=1:handles.numberFig
    j = mod(i-1,handles.maxFigPerPage) + 1;
    
    visible = {'off','on'};
    Tag1 = ['checkboxFigure' num2str(handles.figlist(i))];
    Tag2 = ['editFigure' num2str(handles.figlist(i))];
    set(findobj('Tag',Tag1),'Visible',visible{1+handles.visibleFig(i)})
    set(findobj('Tag',Tag2),'Visible',visible{1+handles.visibleFig(i)})
end

set(findobj('Tag','textPageNumber'),...
    'String',[num2str(handles.currentPage) '/' num2str(handles.numberPage)])

% Update handles structure
guidata(hObject, handles);

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider


% --- Executes during object creation, after setting all properties.
function sliderPageNumber_CreateFcn(hObject, eventdata, handles)
% hObject    handle to sliderPageNumber (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end


% --- Executes on button press in checkboxAi.
function checkboxAi_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxAi (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxAi


% --- Executes on button press in checkboxM.
function checkboxM_Callback(hObject, eventdata, handles)
% hObject    handle to checkboxM (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkboxM

Loading data, please wait...