Fronto-parietal visuospatial WM model with HH cells (Edin et al 2007)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:98017
1) J Cogn Neurosci: 3 structural mechanisms that had been hypothesized to underlie vsWM development during childhood were evaluated by simulating the model and comparing results to fMRI. It was concluded that inter-regional synaptic connection strength cause vsWM development. 2) J Integr Neurosci: Given the importance of fronto-parietal connections, we tested whether connection asymmetry affected resistance to distraction. We drew the conclusion that stronger frontal connections are beneficial. By comparing model results to EEG, we concluded that the brain indeed has stronger frontal-to-parietal connections than vice versa.
Reference:
1 . Edin F, Macoveanu J, Olesen P, Tegnér J, Klingberg T (2007) Stronger synaptic connectivity as a mechanism behind development of working memory-related brain activity during childhood. J Cogn Neurosci 19:750-60 [PubMed]
2 . Edin F, Klingberg T, Stödberg T, Tegnér J (2007) Fronto-parietal connection asymmetry regulates working memory distractibility. J Integr Neurosci 6:567-96 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Abstract Wang-Buzsaki neuron;
Channel(s):
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Working memory; Attractor Neural Network;
Implementer(s):
Search NeuronDB for information about:  Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell;
function showSERIES( name, DoPlot, rows, cols )

% showSERIES displays a series of pages with simulations all
% belonging to a simulation series. By clicking on a graph, it can
% be enlarged. showSERIES should be in the same catalog as
% showSimulation.m, showBig.m, bumpanalysis.m
%
% name  : is either a path or a file name. 
%         1. When name is a path, it is a path to the catalog which
%            contains the simulations to be plotted. Those
%            simulations should be located in directories found in
%            a subdirectory of that path named DATA.
%         2. When name is a file name, it should be a file name
%            containing the name SERIES. That file contains the
%            simulations which are to be plotted
% DoPlot: if DoPlot = 0 or is left out, the figure is plotted but not printed
%         if DoPlot = 1, the figure is both plotted and printed
% rows  : Number of rows on each page
% cols  : Number of columns on each page
% bold  : 0 = only rastergram, 1 = bold + rastergram
%
% Change path names to suit your preferences. Places are marked % CHANGE %

if nargin < 1 | nargin > 4
    disp( 'usage1: showSERIES( name ), ' )
    disp( 'usage2: showSERIES( name, DoPlot ), ' )
    disp( 'usage3: showSERIES( name, DoPlot ), ' )
    disp( 'usage4: showSERIES( name, DoPlot, rows, cols ), ' )
    disp( 'usage5: showSERIES( name, DoPlot, rows, cols, bold ), ' )
    disp( 'Do "type showSERIES" for further information' )
    return
end
if nargin < 5
    bold = 0;
end
if nargin < 4
    rows = 4;
    cols = 4;
end
if nargin < 2
    DoPlot = 0;
end

thisdir = pwd;

% Is it a UNIX/Linux system or a Windows system
if( ispc )
    pathdelimiter = '\';
    rootsymbol = 'C:\';                 % CHANGE %
    if isempty( strmatch( rootsymbol, name ) )
        name = strcat( thisdir, pathdelimiter, name );
    end
    home = 'C:\Documents and Settings\freedin.admin\Desktop\Neuron\STANDARDFILER';  % CHANGE %
    fs = 10; %Fontsize
else
    pathdelimiter = '/';
    % Is name a relative path or file name?
    if ~( name(1) == '~' | name(1) == pathdelimiter ) 
        name = strcat( thisdir, pathdelimiter, name );
    end
    home = '/home/freedin/Neuron/STANDARDFILER/';  % CHANGE %
    rootsymbol = '/';                              % CHANGE %
    fs = 14; %Fontsize
end
    


if( name(1) == '~' )
    name = strcat( home, name(3:end) );
end

% Put all the directories containing simulations to be 
% displayed in one long list

% alt 1: name is a path
if isempty( findstr( name, 'SERIES' ) )
    name = strcat( name, pathdelimiter, 'DATA' );
    d = getTree( name );
    d(1) = [];
    if length( d ) == 0
        disp( 'No data in this catalog' )
        return
    end
else
% alt 2: name is a file named SERIES
    fid = fopen( name );
    if fid == -1
        disp( 'Error: Your file name is invalid' )
        return
    end
    d = [];
    [ txt, pos ] = readUntil( fid, rootsymbol );
    while pos >= 0
        if( txt(end) == '~' )
            txt = '~';
        else
            txt = '';
        end
        txt = strcat( txt, readUntil( fid, char(10) ) ); % char(10) = newline
        d = [ d ; struct( 'name', txt ) ];
        [ txt, pos ] = readUntil( fid, rootsymbol );
    end
    if length( d ) == 0
        disp( 'No data in this catalog' )
        return
    end
end

pos = findstr( name, home );
if pos
    titlename = strcat( '~', name( length( home ) + 1 : end ) );
else
    titlename = name;
end

% printTitleName is the file name but changed into TeX format,
% so that TeX characters like _ and \ are changed inte \_ and \\
if ispc
    printTitleName = [];
    ind = find( titlename == '\' );
    ind = [ 1 ind length( titlename ) ];
    for i = 1:length( ind )-1
        printTitleName = [ printTitleName titlename(ind(i):ind(i+1)) ];
    end
else
    printTitleName = titlename;
end
titlename = printTitleName;
ind = [ find( titlename == '_' | titlename == '^' ) length(titlename)+1 ];
printTitleName = titlename(1:ind(1)-1);
for i = 1:length( ind ) - 1
    printTitleName = [ printTitleName '\' titlename(ind(i):ind(i+1)-1) ];
end

% plot the data in the catalogs in d
len = length( d );

% How many pages?
pages = floor( (len*(bold+1)-1) / (rows*cols) ) + 1;
for i = 1: pages
    figure ( i )
    clf
    set( i,'Position', [ 300 * mod( ( i ), 2 ) 55 720 635 ] );
end

hand = zeros( 1, len ); % subplot handles
height = 0.93 / rows;
width = 0.90 / cols;
for ind = 1 : bold+1 : (bold+1)*len
    for i = 0:bold
        page = floor( (ind+i-1)*(bold+1) / ( rows*cols ) ) + 1;
        subp = ind+i - ( page-1 ) * rows * cols; 
        figure( page )
        if subp == 1
            clf
        end
        bottom = 1 - height * ( floor( (subp-1) / cols ) + 1 );
        left = 0.1 + mod( (subp-1), cols ) * width;
        hand( ind ) = subplot( 'Position', [ left bottom width-0.05 height-0.07 ]);
    end
end

for ind = 1 : len
    rastname = d(ind).name;
    pos = find( rastname == pathdelimiter );
    rastname = rastname( pos(end)+1:end );
    filename = strcat( d(ind).name, pathdelimiter, 'APs' );
    load( filename )
    x = APs(:,1);
    y = APs(:,2);
    filename = strcat( d(ind).name, pathdelimiter, 'Params' );
    load( filename )
    version = Params(3);
    if version == 6
        EXP_dt = 100;
        Params = [ Params(1:7) ; EXP_dt ; Params(8:end) ];
    end
    filename = strcat( d(ind).name, pathdelimiter, 'C' );
    load( filename )
    relNMDA = C( 32 );
    version = Params(1);
    filename = strcat( d(ind).name, pathdelimiter, 'Q' );
    load( filename )
	tStart = Params(5);
    filename = strcat( d(ind).name, pathdelimiter, 'X' );
    clear X
    if exist(filename) == 2
        load( filename )
        if length(X)>0
            if X(1) == 4 | X(1) == 5
                r_c = X(end)/(X(end)+X(end-1) );
                relNMDA = r_c;
            end      
        end
    end
  
    page = floor( (bold+1)*(ind-1) / ( rows*cols ) ) + 1;
    subp = ind*(bold+1) - ( page-1 ) * rows * cols;
    figure( page ) 
    subplot( hand( ind*(bold+1) ) )
    
    % specify call-back routine to be able to enlarge single simulations
    str = strcat( 'showBig(  ''',d(ind).name,''' )' );
    set( hand( ind ), 'ButtonDownFcn', str );
    
    
    % plot the rastergrams of the cell
    title( sprintf( '%s, %s %%', rastname, int2str(100*relNMDA) ), 'Fontsize', fs )
    hold on
    plot( x, y, '.', 'MarkerSize', 1 )
    set( gca, 'box', 'on' )
    
    % Plot text and draw lines in graph
    N = 0;
    nmod = Params(4);
    tstart = Params(5);
    tstop = Params(6);
    %tQ = Q(1);
    %xQ = find( x<tQ );
    for i = 1:nmod
        NI = Params(7+6*i);
        NE = Params(10+6*i);
        ipos(i) = N+NI;
        epos(i) = N+NE+NI;
        xpos(i) = N+NI;
        %fS(i) = length( find( y(xQ)>=NI ) )/(tQ/1000*NE);
        fS(i) = 0;
        fE(i) = length( find( y>=NI ) )/(tstop/1000*NE);
        fI(i) = length( find( y<NI ) )/(tstop/1000*NI);
        line( [0 tstop], [N+NI-0.5 N+NI-0.5], 'Color', 'k', 'LineWidth', 2 )
        if i>1
            line( [0 tstop], [N-0.5 N-0.5], 'Color', 'k', 'LineWidth', 2 )
        end
        N = N+NI+NE;
    end
            
    set( gca, 'YLim', [0 N] )
    set( gca, 'XLim', Params(5:6) )
    set( gca, 'FontSize', fs )
    for i = 1:length(ipos)
        tI(i) = text( 0.1*(tstop-tstart)+tstart, ipos(i), 'I', 'FontSize', fs+2, 'FontWeight', 'Bold', 'VerticalAlignment', 'top' ); 
        tE(i) = text( 0.1*(tstop-tstart)+tstart, epos(i), 'E', 'FontSize', fs+2, 'FontWeight', 'Bold', 'VerticalAlignment', 'top' );
        str = sprintf( 'fE: %.1f\nfS: %.1f\nfI: %.1f\n', fE(i), fS(i), fI(i) );
        tx(ind) = text( 0.1*(tstop-tstart)+tstart, xpos(i), str, 'FontSize', fs-2, 'VerticalAlignment', 'bottom' );
    end
    if mod((subp-1), cols )
        set( gca, 'YTickLabel', [] )
    end
    
    if bold
        page = floor( ((bold+1)*(ind-1)+1) / ( rows*cols ) ) + 1;
        subp = (ind*(bold+1)+1) - ( page-1 ) * rows * cols;
        figure( page ) 
        subplot( hand( ind*(bold+1)+1 ) )
        
        [ t, B ] = bold( APs, netborder );
        plot( t, B )
        leg = [];
        for i = 1:size( B, 2 )
            leg = [ leg ; strcat( 'Net', int2str( i ) ) ];
        end
        legend( leg )
        xlabel( 'Time (ms)', 'FontSize', fs )
        title( 'BOLD', 'FontSize', fs )

        % specify call-back routine to be able to enlarge single simulations
        str = strcat( 'showBold(  ''',d(ind).name,''' )' );
        set( hand( ind ), 'ButtonDownFcn', str );
    end

end

% set titles and labels
for i = 1 : pages
    figure( i )
    thand( i ) = axes('Position',[0 0 1 1],'Visible','off');
    set(gcf,'CurrentAxes',thand( i ) )
    xl(i) = text(.5,.03,'Time (ms)','FontSize',fs, 'HorizontalAlignment', 'center');
    yl(i) = text(.03, .5, 'Cell #', 'Rotation', 90, 'FontSize', fs, 'VerticalAlignment', 'middle');
    tit(i) = text(.5, .99, sprintf( 'Rastergrams in %s', printTitleName ), 'FontSize', fs, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top');
end

% adjust paper size for printing
for i = 1 : page
    figure( i )    
    set( gcf, 'PaperUnits', 'centimeters' );
    set( gcf, 'PaperType', 'A4');
    papersize = get( gcf, 'PaperSize' );
    left = 0.02;
    bottom = 0.02;
    width = papersize( 1 ) - 2 * left;
    height = papersize( 2 ) - 2 * left;
    myfiguresize = [ left, bottom, width, height ];
    set( gcf, 'PaperPosition', myfiguresize );
    if DoPlot
            print
    end
end