All softwares here are free softwares under the terms of the GNU General Public License pubished by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
However, please acknowledge the use of this software package.


Index
 
 
Permutation test for correlation coefficients (20122013, Last Update: March 28, 2013) 

Description
 
This is a MatLab library of permutation based multiple comparion correction for correlation coefficients.
This routine includes the extreme statistics and the clusterbased statistics.
Here, we briefly described the method and hot wo install and use with a simple example.
For the thorough description, please refer the paper below. (related paper: Clusterbased statistics for brain connectivity in correlation with behavioral measures, CE Han, SW Yoo, SW Seo, DL Na, JK Seong, PLoS One)  
We present a clusterbased method for identifying subnetworks of brain connectivity that are correlated with behavioral measures.
Our scheme aims to control the familywise error rate (FWER) when massunivariate testing is performed at every connection of the network.
The proposed method takes as inputs a set of connectivity matrices for all subjects in a given group and their corresponding behavioral measures.
 
The proposed method consists of two parts: correlation coefficient computation and clusterbased multiple comparison correction. In the former part, a partial correlation coefficient is calculated for each connection of the brain network with the behavioral measures. In this step, several compounding variables are taken as covariates in order to count their effects on the correlation coefficients.  
In the latter part, we perform clusterbased correction for the multiple comparison correction of the correlation coefficients by adopting the suprathreshold cluster size test.
In this approach, clusters are constructed by grouping together neighboring suprathreshold connections, and the pvalues are estimated through permutation testing.
The output of this step is a set of subnetworks consisting of neighboring connections that are significantly correlated with the behavioral measures and the corresponding corrected pvalues.
 
In order to perform the extreme statistics, the greatest magnitude of the correlation coefficients were used as a representative statistic for each permutation vector.
To identify positively correlated connections, we collected the maximum of correlation coefficients for each permutation vector,
while for negatively correlated connections, we used their minimum values.
We selected a single global threshold based on the distribution of extreme correlation coefficient.
A significance level of each suprathreshold connection was estimated by locating observed correlation coefficients on the null distribution.
 
Our scheme is independent of a specific method for constructing a connectivity matrix: both structural and functional connectivity can be used according to the desired purpose.
 
If you find any error or have any suggestion, please let me know (mailto:Cheol E Han).
 
How to install


mv PermTestCorr.tar.gz /home/user/matlab/ cd /home/user/matlab/ tar xzvf PermTestCorr.tar.gz  
Or you may use the menu of the MatLab GUI. addpath /home/user/matlab/symMat/ addpath /home/user/matlab/PermTestCorr/  
How to use
 
PERM_TEST_CORR permutation test for correlation between two values.  
 
 
 
 
Example


I prepared a simple example, identifying subnetworks correlaetd with age,
using the structural connectivity of healthy subjects (age between 4 to 40).
We extracted the structural connectivity from DTI of the public Nathan Kline Institute (NKI) dataset.
The detail of network extraction method, please refer the following paper ([free download])  
1. Load the prepared dataset (type the following lines in matlab commadline) load example  
2. Generate the permutation vector using 'init' action of perm_test_corr. perm=perm_test_corr('init', 121, 10000);  
3. Compute Spearman's partial correlation coefficients between each edge and age, counting the other scores as covariates. ('test' action of perm_test_corr.)
To convert the connectivity matrix to a desquared format, we used dsqrform of SynMat library below mat=dsqrform(mat); results_perm=perm_test_corr('test', mat, scores(:,1), perm, 'spearman', scores(:,2:3));  
4. Identifying subnetworks with 'cbs' action of perm_test_corr.
We will check the initial threholds between [0.35:0.02:0.25 0.2:0.02:0.3].
results_cbs=perm_test_corr('cbs', results_perm, [0.35:0.02:0.25 0.2:0.02:0.3]); t=0.330, min(p_extent)=0.000 max(no)=4, min(p_mass)=0.000 max(mass)=1.644 t=0.310, min(p_extent)=0.000 max(no)=7, min(p_mass)=0.000 max(mass)=2.618 t=0.290, min(p_extent)=0.000 max(no)=14, min(p_mass)=0.000 max(mass)=5.033 t=0.270, min(p_extent)=0.000 max(no)=23, min(p_mass)=0.000 max(mass)=8.033 t=0.250, min(p_extent)=0.000 max(no)=52, min(p_mass)=0.000 max(mass)=16.477 t=0.200, min(p_extent)=0.002 max(no)=29, min(p_mass)=0.002 max(mass)=6.859 t=0.220, min(p_extent)=0.076 max(no)=5, min(p_mass)=0.047 max(mass)=1.297 t=0.240, min(p_extent)=0.092 max(no)=3, min(p_mass)=0.073 max(mass)=0.777 t=0.260, min(p_extent)= max(no)=, min(p_mass)= max(mass)= t=0.280, min(p_extent)= max(no)=, min(p_mass)= max(mass)= This showed the minimum of pvalue from cluster extents and from cluster mass at the same time aloog with the number of edges in the largerst cluster. We note that pvalue shown as 0.000 means that pvalue is smllaer than 0.001. For 0.26<=t<0=.28, the code did erport no pvalue, which means that it found no cluster. This result implies that there is strong negative correlation between edge weight and age: as age increases, there are subnetworks of which edge weights decrease.  
5. Check the pvalues and the sizes of subnetworks with the initial threshold of 0.31.
Becaise pvalue shown here is all corrected already, if it is below 0.05, the cluster had significant negative correlation to age.
results_cbs{3}.p_extent % to see pvalues of subnetworks results_cbs{3}.no % to see the size of subnetworks  
6. Check edges of the largest cluster with the initial threshold of 0.31.
The clusters of results_cbs structure are sorted in desending order of cluster sizes.
cluster=results_cbs{3}.cluster{1}; idx=edge2idx(cluster,82); edge=[cluster,results_perm.r(idx),results_perm.p(idx)]; print_edge(edge, label, {'r','uncorrected p'}) lh.paracentral  lh.posteriorcingulate (r=0.537506, uncorrected p=0.000000) lh.paracentral  lh.precuneus (r=0.351226, uncorrected p=0.000090) lh.precuneus  lh.superiorparietal (r=0.330067, uncorrected p=0.000246) lh.precuneus  rh.precuneus (r=0.319896, uncorrected p=0.000390) rh.cuneus  rh.precuneus (r=0.331242, uncorrected p=0.000233) rh.paracentral  rh.precuneus (r=0.322830, uncorrected p=0.000342)  
Miscellaneous


We are wroking on the GPU boosted version of this library.
We are also interested in the threshold free Cluster Estimation (TFCE) for network edges.


findCluster
(20122013, Last Update: Feb 1, 2013)


Description


A MatLab library for finding clusters of edges or nodes using Breadth First Search (BFS) through matlabBGL.
(related paper: Clusterbased statistics for brain connectivity in correlation with behavioral measures, CE Han, SW Yoo, SW Seo, DL Na, JK Seong, PLoS One)  
If you find any error or have any suggestion, please let me know (mailto:Cheol E Han) .  
How to install


mv findCluster.tar.gz /home/user/matlab/ cd /home/user/matlab/ tar xzvf findCluster.tar.gz  
Or you may use the menu of the MatLab GUI.  
How to use
 
 
 
symMat (20112013, Last Update: Mar 14. 2013)
 
Description
 
This is a MatLab library initially designed for handling symmetric matrix memoryefficiently. This now includes various useful functions for connectivity matrix. Here are the description of the functions.  
The following functions in the library work fine with asymmetric matrix.
 
If you find any error or have any suggestion, please let me know (mailto:Cheol E Han) .  
How to install


 
mv symMat.tar.gz /home/user/matlab/ cd /home/user/matlab/ tar xzvf symMat.tar.gz  
Or you may use the menu of the MatLab GUI.  
How to use


 
 
 
 
 
 
 
Copyright (C) 2013
 
All programs in this webpage are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 
All programs are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 
SCBIA Lab. Korea University. Republic of Korea. 