ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/226074.

Mechanisms underlying different onset patterns of focal seizures (Wang Y et al 2017)

 Download zip file 
Help downloading and running models
Accession:226074
"Focal seizures are episodes of pathological brain activity that appear to arise from a localised area of the brain. The onset patterns of focal seizure activity have been studied intensively, and they have largely been distinguished into two types { low amplitude fast oscillations (LAF), or high amplitude spikes (HAS). Here we explore whether these two patterns arise from fundamentally different mechanisms. Here, we use a previously established computational model of neocortical tissue, and validate it as an adequate model using clinical recordings of focal seizures. We then reproduce the two onset patterns in their most defining properties and investigate the possible mechanisms underlying the different focal seizure onset patterns in the model. ..."
Reference:
1 . Wang Y, Trevelyan AJ, Valentin A, Alarcon G, Taylor PN, Kaiser M (2017) Mechanisms underlying different onset patterns of focal seizures PLoS 13(5):e1005475
Model Information (Click on a link to find other models with that property)
Model Type: Neural mass;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Epilepsy; Beta oscillations; Gamma oscillations; Oscillations; Activity Patterns; Spatio-temporal Activity Patterns;
Implementer(s): Wang, Yujiang [yujiang.wang at newcastle.ac.uk];
/
WangYetAl2017
lib
ConnLocGaussian.m *
ConnPatchyRemOverlap.m *
convolve2.m *
distSheet.m *
distTorus.m *
exindex.m *
FilterEEG.m
Gaussian.m *
GaussianLocConnFunc.m
generatePatchesOverlap.m *
getDelayMatrix.m
getDelayMatrixserial.m
getNoise.m
getParam.m *
getParamDelay.m
KLDiv.m
makeCellCluster.m *
makeCellClusterToroidal.m *
MayColourMap.mat *
meanMacroCol.m *
ODEsheet.m
ODEsheetStim.m
plotVideo.m
runSheet.m *
runSheetDelay.m *
runSheetDelayRamp.m
runSheetPRamp.m *
Sigm.m *
                            
function [CellLocs,CellLocsVector] = makeCellClusterToroidal(clusterCoeff, Percent, n, varargin)
 % Function for obtaining a list of clustered locations 
 % ARGS:
 % clusterCoeff = clustering coefficient for bad cells. Must be between 0 and 1 (inclusive).
 %                0 for totally diffuse, 1 for totally clustered
 % Percent  = percent of bad cells
 % n            = Size of the sheet
 % can provide x and y location of seed in Varargin
 % RETURNS:
 % CellLocs  = Locations of the bad cells in a nxn matrix
 % CellLocsVector = list of locations in a sub2ind style


%Check that our number of bad cells isn't too high
if Percent >=1
  Percent = 1;
end

numCells=ceil(Percent*n^2);

%Sigmoid transform of cluster coeff increases realism of behaviour
%clusterCoeff = 1/(1 + exp(-11*clusterCoeff+4)) + 0.001;

%Matrix of bad cell locations
%row i col j of badCellLocs == 1 if that cell is bad. 0 otherwise.
CellLocs = zeros(n,n);

%Populate bad cell locations with numBadCells bad cells.
%Note: this loop gets exponentially more inefficient as numBadCells -> n^2
%fprintf('Generating %d cells in %d total cells.\n',numCells,n^2);
%tic;

%calculate the kernel of the probability function
sigma=1/clusterCoeff;
[XI,YI]=meshgrid(1:4*n,1:4*n);
gCenter=2*n;
mu=[2*n 2*n];
GKernel=Gaussian(XI,YI,mu,sigma);
clear XI YI;
GKernelCenter=GKernel(:,gCenter)>0.1*max(GKernel(:));
GKernelMask=meshgrid(GKernelCenter,GKernelCenter').*meshgrid(GKernelCenter,GKernelCenter')';
GKernelMask=logical(GKernelMask);
GKernel=GKernel(GKernelMask);
GKernel=reshape(GKernel,nnz(GKernelCenter),nnz(GKernelCenter));
%imagesc(GKernel);


%start with random location
if nargin>3
    xloc=varargin{1};
    yloc=varargin{2};
else
    xloc = ceil(n*rand);
    yloc = ceil(n*rand);
end
CellLocs(xloc,yloc) = 1;



for k=1:numCells-1

   %generate probability dist
   pDistr=convolve2(CellLocs,GKernel,'wrap',0.1);
   pDistr(CellLocs==1)=0;
   pDistr=pDistr/sum(pDistr(:));
   %figure(1);
   %imagesc(pDistr);
   
   
   
   %Set the cell
   pVector=cumsum(pDistr(:));
   indNewLoc=find(pVector>=rand,1,'first');
   [xloc,yloc] = ind2sub([n,n], indNewLoc);
   CellLocs(xloc,yloc) = 1;
   


end
locs=1:n^2;
CellLocsVector=locs(reshape(CellLocs>0,n^2,1));


%toc
    
end

Loading data, please wait...