In [1]:
import sys
import brainbox as bb
from matplotlib import pyplot as plt
import scipy.spatial.distance as dist
import scipy.cluster.hierarchy as clh

In [2]:
in_path = '/data1/abide/Out/Remote/some_failed/out'
out_path = '/data1/abide/Analysis/Remote/some_missing'
metric = 'stability_maps'

In [3]:
file_dict = bb.fileOps.grab_files(in_path, '.nii.gz', sub=metric)


I will be pulling files from /data1/abide/Out/Remote/some_failed/out/stability_maps

In [4]:
array_dict = bb.dataOps.read_files(file_dict)


I found 607 files to load.
 100.0 % done 0.00 seconds to go.
We are done

Compute the similarity of network metrics among the subjects for all network

This could be done in parallel if Marc gives me more memory


In [6]:
result_list = []
for n_id in range(10):
    sys.stdout.write('\rRunning network {}.'.format(n_id))
    sys.stdout.flush()
    
    eucl = dist.squareform(dist.pdist(array_dict[metric][..., n_id], 'euclidean'))
    Y = clh.linkage(eucl, method='ward')
    result_list.append((eucl, Y))


Running network 9.

Visualize the things


In [8]:
f = plt.figure(figsize=(18, 50))
order_net = None
for n_id in range(10):
    n_id += 1
    sys.stdout.write('\rRunning network {}.'.format(n_id))
    sys.stdout.flush()
    (eucl, Y) = result_list[n_id-1]
    ax = f.add_subplot(5,2,n_id)
    subdend = bb.visuOps.add_subplot_axes(ax, [0, 0.71, 1, 0.29])
    submat = bb.visuOps.add_subplot_axes(ax, [0, 0, 1, 0.7])
    if order_net:
        Y = result_list[order_net][1]
    
    Z1 = clh.dendrogram(Y, ax=subdend)
    if order_net:
        subdend.matshow(np.ones((100,20)), aspect='auto')

    idx = Z1['leaves']
    tmp = eucl[idx, :]
    D = tmp[:, idx]
    a = submat.matshow(-D, aspect='auto')
    submat.set_xticks([])
    submat.set_yticks([])
    subdend.set_xticks([])
    subdend.set_yticks([])
    ax.set_xticks([])
    ax.set_yticks([])
    ax.set_title('Network {}'.format(n_id))
f.suptitle('Stability Maps')


Running network 10.
Out[8]:
<matplotlib.text.Text at 0x13b7af50>

In [7]: