Measuring Information Integration
Paper and Toolbox
This toolbox contains a set of functions used to calculate the integrated
information within a network defined by a connection matrix. The neural
dynamics is modeled as linear systems.
Please read the comments carefully - the
functions will only give valid results if certain statistical assumptions
are valid.
Here are the individual functions, together
with a brief description of what they do. All of these functions should
be downloaded and moved to a single directory. These functions can
be used to reproduced the simulations presented in the paper: "Measuring
information integration" (2003) by Giulio Tononi and Olaf Sporns, published
in BMC Neuroscience 4, 31. (Download
paper)
This software is free. Use at your
own risk. Report bugs etc. to osporns@indiana.edu.
Flow chart Complexity Toolbox
Complete Complexity Toolbox (zip format)
phi.m
This script loads is merely an visual Interface to control configuration parameters for calculation effective Information. The interface is based on matlab xml toolbox that uses xml 1.0 parser.
runminimuminformation.m
This function is merely to read caculatephi.xml file to control configuration parametrs
that will be inputted to function minimuminformation. After reading parametrs from xml
files it calls minimuminformation
minimuminformation.m
minimuminformation is the main script to calculate PHI/MI for a given connection matrix
Connection Matrix CONij is loaded from the Input mat file, I_noise is the
random noise applied on Bi partition and P_noise i.e. 1, is applied on
bi partition complement. Different variation of these two parameters can
be used for varying SNR. Number Plotted Specify the number of
bipartitions in decreasing order of phi(effective information) that will
be plotted. Search_clusters specify whether to check all candidate
clusters (1) or only the entire system (0)
calcPhiEI.m
This is the script which calculates Effective Information
MIB: minimum information bipartition complexity
for each potential complex (cluster)
measures min EI/unit (sum of both directions) across all its bipartitions,
i.e. EI(A->B)/kk + EI(B->A)/kk,
where kk is the N. of units in the samller subset of the cluster
then searches for min value of EI over all bipartitions
and stores the associated bipartition and cluster (bipcluster)
finally multiplies corresponding EI value by kk to obtain the MIB-complexity
then ranks complexes based on their MIB-complexity
e_mib_linear_function.m
e_mib_max.m
nonlc_normalize.m
reorder_MIB.m
calccomplexes.m
cov_gen_mib.m
Various function for needed for running phi.m'. See script
for details
Instead
of using the effective information to calculate PHI, a simpler (but mathematically
non-equivalent) way of obtaining an estimate of PHI uses the mutual information.
This does not involve the use of perturbations to assess changes in
entropy. To use MI instead of EI, you need to click MI button on interface. This action internally uses ( see flowchart about process given above for more detail) following functions:
calcPhiMI.m
m_mib_linear_function.m
m_mib_max.m
instead of their EI-analogues (see above).
Examples
Use these connectivity sets to generate the figures in the paper by Tononi
and Sporns, 2003. Each
of the files listed below contains one Cij matrix. Parameters in 'runMIB_Cij.m'
should be set to I_noise = 10^(-5), P_noise = 10^(-0), normalize = 0, optimize
= 0, start_lvl = 1, search_clusters = 1, step_through_disp = 0. Set these values through interface which will store all these values in calculatephi.xml and use during enitire calculations. There will be two output files i.e. bipartition.txt (containing all combination of bipartitions) and effectiveinfo.txt containg effective information values.
Figure 2: Cij_split.mat
Figure 3: Cij_optim_lo.mat
Figure 4: Cij_optim_hi.mat - here set
I_noise = 10^(-1).
Figure 5: Cij_sparse_optim_lo.mat
Figure 6: Cij_full.mat
Figure 7: Cij_4modules.mat