In [1]:
import os
import tables
import klustaviewa.dataio as kvio

In [2]:
folder = r"D:\Spike sorting\sirota"
basename = "ec016.694_711"

In [3]:
filenames = kvio.find_filenames(os.path.join(folder, basename))
fileindex = kvio.find_index(os.path.join(folder, basename))

In [5]:
filenames


Out[5]:
{'aclu': 'D:\\Spike sorting\\sirota\\ec016.694_711.aclu.7',
 'acluinfo': 'D:\\Spike sorting\\sirota\\ec016.694_711.acluinfo.7',
 'clu': 'D:\\Spike sorting\\sirota\\ec016.694_711.clu.7',
 'dat': 'D:\\Spike sorting\\sirota\\ec016.694_711.dat.7',
 'fet': 'D:\\Spike sorting\\sirota\\ec016.694_711.fet.7',
 'groupinfo': 'D:\\Spike sorting\\sirota\\ec016.694_711.groupinfo.7',
 'mask': 'D:\\Spike sorting\\sirota\\ec016.694_711.fmask.7',
 'probe': None,
 'res': 'D:\\Spike sorting\\sirota\\ec016.694_711.res.7',
 'spk': 'D:\\Spike sorting\\sirota\\ec016.694_711.spk.7',
 'xml': 'D:\\Spike sorting\\sirota\\ec016.694_711.xml'}

In [7]:
clusters = kvio.read_clusters(filenames['clu'])
#aclusters = kvio.read_clusters(filenames['aclu'])
#acluinfo = kvio.read_cluster_info(filenames['acluinfo'])
#groupinfo = kvio.read_group_info(filenames['groupinfo'])
metadata = kvio.read_xml(filenames['xml'], fileindex)
#probe = kvio.read_probe(filenames['probe'])

In [8]:
metadata


Out[8]:
{'fetdim': 3, 'freq': 20000.0, 'nchannels': 8, 'nsamples': 32}

In [6]:
hdf_main = tables.openFile('basename' + '.h5', mode='w')

In [7]:
shanks = hdf_main.createGroup('/', 'shanks')
shank0 = hdf_main.createGroup('/shanks', 'shank0')

In [8]:
spikes_description = dict(time=tables.Int64Col(),
                          mask_binary=tables.BoolCol(shape=(metadata['nchannels'],)),
                          mask_float=tables.Float32Col(shape=(metadata['nchannels'],)),
                          features=tables.Float32Col(shape=(metadata['fetdim'], metadata['nchannels'],)),
                          cluster=tables.Int32Col(),)

In [9]:
spikes_table = hdf_main.createTable('/shanks/shank0', 'spikes', spikes_description)

In [11]:



Out[11]:
/shanks/shank0/spikes.row (Row), pointing to row #0

In [19]:
spike = 0
spikes_table.row['time']


Out[19]:
{'fetdim': 3, 'freq': 30000.0, 'nchannels': 10, 'nsamples': 30}