Inferring connection proximity in electrically coupled networks (Cali et al. 2007)

 Download zip file 
Help downloading and running models
Accession:94321
In order to explore electrical coupling in the nervous system and its network-level organization, it is imperative to map the electrical synaptic microcircuits, in analogy with in vitro studies on monosynaptic and disynaptic chemical coupling. However, walking from cell to cell over large distances with a glass pipette is challenging, and microinjection of (fluorescent) dyes diffusing through gap-junctions remains so far the only method available to decipher such microcircuits even though technical limitations exist. Based on circuit theory, we derived analytical descriptions of the AC electrical coupling in networks of isopotential cells. We then proposed an operative electrophysiological protocol to distinguish between direct electrical connections and connections involving one or more intermediate cells. This method allows inferring the number of intermediate cells, generalizing the conventional coupling coefficient, which provides limited information. We provide here some analysis and simulation scripts that used to test our method through computer simulations, in vitro recordings, theoretical and numerical methods. Key words: Gap-Junctions; Electrical Coupling; Networks; ZAP current; Impedance.
Reference:
1 . Calì C, Berger TK, Pignatelli M, Carleton A, Markram H, Giugliano M (2008) Inferring connection proximity in networks of electrically coupled cells by subthreshold frequency response analysis. J Comput Neurosci 24:330-45 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Glia;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s): I Na,t; I K; I Potassium;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB; PSpice; Sspice Symbolic SPICE;
Model Concept(s): Methods;
Implementer(s): Giugliano, Michele [mgiugliano at gmail.com];
Search NeuronDB for information about:  I Na,t; I K; I Potassium;
/
chain_1d
output
matlab
go_and_fit.m
plotme.m
preproc.m
                            
%
% PREPROCESSING STAGE
%
%
% Michele Giugliano and Corrado Cali', 2006, EPFL - Lausanne.
%
%--------------------------------------------------------------------------
clear all; close all; clc;

disp('Preprocessing of raw (simulation) data..');
disp('Dec 2006 - Michele Giugliano, Brain Mind Institute, EPFL, Lausanne');
disp(' ');
disp('This script will look for *.x data files in the current directory');
disp('It further assumes that the subdir <matlab> is also there..');

addpath matlab;

Pv = dir('chirp_*v_gj.x');
N  = length(Pv);

if (N==0),
 disp('No voltage trace found!');  return; 
end;
if (~exist('stim_index.txt', 'file')), 
 disp('stim_index.txt could not be found');  return; 
end;
if (~exist('chirp_t_gj.x', 'file')),
 disp('chirp_t_gj.x could not be found');  return; 
end;
%--------------------------------------------------------------------------
stim = load('stim_index.txt')+1;
disp(sprintf('\nProcessing data from a simulation including %d cells..', N));
disp(sprintf(' Stimulus delivered to cell %d. \n\n', stim));

disp('Loading files..');

fp = fopen('chirp_t_gj.x');     T  = fread(fp, inf, 'double'); fclose(fp);
%fp = fopen('chirp_i_in_gj.x');  I  = fread(fp, inf, 'double'); fclose(fp);

figure(1); clf; hold on;

outputs = {};
for i=1:N,
    for j=(i+1):N,

     fp = fopen(Pv(i).name);     in  = fread(fp, inf, 'double'); fclose(fp);
     fp = fopen(Pv(j).name);     out = fread(fp, inf, 'double'); fclose(fp);        
     [TFmag TFphase faxis] = tfpreprocessing(200., 100., out, in, T);   

     i1 = min(find(faxis>50));
     i2 = min(find(faxis>100));
    
    if mean(diff(TFmag(i1:i2))) > 0,
         INVERSION = 1
         disp(sprintf('Preprocessing T(%d - %d)',j,i));    
         TFmag = abs(1./TFmag);
         TFphase = -TFphase;
     else
         INVERSION = 0; 
         disp(sprintf('Preprocessing T(%d - %d)',i,j));    
     end;
   
    %-------------
    Y = log(TFmag); %Y = (Y - min(Y))/(max(Y) - min(Y));
    plot(faxis, Y); set(gca, 'XScale', 'log', 'YScale', 'linear', 'XLim', [0 250]);
    drawnow;
    %pause
    clf;
    %-------------    
    clear in out;
     outputs{i,j,1} = Pv(i).name;
     outputs{i,j,2} = Pv(j).name;
     outputs{i,j,3} = TFmag;
     outputs{i,j,4} = TFphase;
     outputs{i,j,5} = INVERSION;    
    disp('..done!');
    end
end
save 'results.mat' outputs faxis -mat

Loading data, please wait...