Code for Orthogonal Connectivity Factorization
This page contains code implementing the algorithm(s) introduced in:
The method takes as input a set of connectivity matrices (or network connection matrices, or weighted graph adjacency matrices). The connectivity matrices can be computed for
Collect the connectivity matrices in a tensor so that connTensor(:,:,i) contains the i-th matrix. The basic call of the code is then
[W,V]=ocf(connTensor);Here, the first rows of W and V, i.e. W(1,:), V(1,:) gives one component pair of maximum connectivity variability. That is, the connectivity between the components (spatial patterns) given in the data space by those two rows explain more of the connectivity differences than any other pair of linear components.
Just like in PCA, the method gives you more components than one, so that the k-th rows W(k,:) and V(k,:) gives you the k-th component pair. So, the rows of W and V should be interpreted as patterns in the data space. They should always be interpreted in pairs, since it is the connectivity between those two components that changes maximally.
See the ocf.m file for different additional options. For example, the default number of components computed (five) can be changed by just giving the number as an additional parameter like in ocf(connTensor,20).
While some parts of the papers above were written for the purpose of brain imaging, there is absolutely no need for the data to be from brain imaging. If you just have a number of correlation or covariance matrices, you can input them in to the method, and it will give you linear components in the data space such that their correlations changes as much as possible over the correlations matrices.
Page updated in Oct 2015 by Aapo Hyvärinen.