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