In [1]:
import os
import numpy as np
import memory_profiler
import gc
from operator import itemgetter
from pympler.asizeof import asizeof
from klustaviewa.dataio import HDF5Loader
from klustaviewa.control import Controller
from memprof import profile_mem, fmtsize

In [2]:
filename = r"D:\Spike sorting\second\testalignment_secondnearest_subset_129989.clu.1"

In [3]:
loader = HDF5Loader(filename=filename)


2013-08-02 11:23:21  hdf5loader:65           Similarity measure: gaussian.
2013-08-02 11:23:21  hdf5loader:66           Opening D:\Spike sorting\second\testalignment_secondnearest_subset_129989.main.h5.

In [4]:
controller = Controller(loader)

In [5]:
profile_mem(loader)


TOTAL SIZE: 51.655 MB

24.049 MB	background_masks
24.049 MB	background_features
0.757 MB	__dict__
0.756 MB	logfile
0.496 MB	spiketimes
0.496 MB	clusters
0.248 MB	background_clusters
0.096 MB	features
0.096 MB	masks
0.096 MB	masks_full
0.096 MB	main
0.096 MB	groups_table
0.096 MB	clusters_table
0.096 MB	spike_table
0.096 MB	wave_table
0.029 MB	waveforms
0.006 MB	counter

In [6]:
profile_mem(controller)


TOTAL SIZE: 2.272 MB

0.757 MB	__dict__
0.757 MB	loader
0.757 MB	processor

In [7]:
loader.get_clusters_unique()


Out[7]:
array([ 2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
       19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
       36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52])

In [8]:
controller.merge_clusters([5, 6])


2013-08-02 11:23:23  controller:71           Process action merge_clusters([5, ..., 5], [3, ..., 3], [4, ..., 5], 53)
Out[8]:
('merge_clusters',
 {'cluster_merged': 53,
  'cluster_merged_colors': (34, 34),
  'clusters_to_merge': Int64Index([5, 6], dtype=int64)})

In [9]:
profile_mem(loader)


TOTAL SIZE: 51.694 MB

24.049 MB	background_masks
24.049 MB	background_features
0.776 MB	__dict__
0.776 MB	logfile
0.496 MB	spiketimes
0.496 MB	clusters
0.248 MB	background_clusters
0.096 MB	features
0.096 MB	masks
0.096 MB	masks_full
0.096 MB	main
0.096 MB	groups_table
0.096 MB	clusters_table
0.096 MB	spike_table
0.096 MB	wave_table
0.029 MB	waveforms
0.005 MB	counter

In [10]:
controller.undo()


2013-08-02 11:23:43  controller:150          Undo action merge_clusters([5, ..., 5], [3, ..., 3], [4, ..., 5], 53)
Out[10]:
('merge_clusters_undo',
 {'cluster_merged': 53,
  'cluster_to_merge_colors': (array(4L, dtype=int64), array(5L, dtype=int64)),
  'clusters_to_merge': Int64Index([5, 6], dtype=int64)})

In [11]:
profile_mem(loader)


TOTAL SIZE: 51.703 MB

24.049 MB	background_masks
24.049 MB	background_features
0.780 MB	__dict__
0.780 MB	logfile
0.496 MB	spiketimes
0.496 MB	clusters
0.248 MB	background_clusters
0.096 MB	features
0.096 MB	masks
0.096 MB	masks_full
0.096 MB	main
0.096 MB	groups_table
0.096 MB	clusters_table
0.096 MB	spike_table
0.096 MB	wave_table
0.029 MB	waveforms
0.006 MB	counter

In [12]:
for n in xrange(50):
    controller.merge_clusters(range(5, 20, 2))
    controller.undo()


2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:14  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:15  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:16  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:17  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:18  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:19  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:20  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:21  controller:71           Process action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)
2013-08-02 11:24:22  controller:150          Undo action merge_clusters([19, ..., 19], [3, ..., 3], [4, ..., 18], 53)

In [13]:
profile_mem(loader)


TOTAL SIZE: 51.706 MB

24.049 MB	background_masks
24.049 MB	background_features
0.782 MB	logfile
0.782 MB	__dict__
0.496 MB	spiketimes
0.496 MB	clusters
0.248 MB	background_clusters
0.096 MB	features
0.096 MB	masks
0.096 MB	masks_full
0.096 MB	main
0.096 MB	groups_table
0.096 MB	clusters_table
0.096 MB	spike_table
0.096 MB	wave_table
0.029 MB	waveforms
0.006 MB	counter

In [ ]: