def test_write_spt(self): cell_node_tmp = '/Test/s32test01/el2/cell1' spt_dict = {'data': self.spt_data} filter = BakerlabFilter(self.conf_file) filter.write_spt(spt_dict, cell_node_tmp) files_eq = filecmp.cmp(self.spt_fname, "32test0121.spt", shallow=0) os.unlink("32test0121.spt") ok_(files_eq)
def test_write_sp(self): el_node_tmp = '/Test/s32test01/el2' sp_dict = {'data': self.data[np.newaxis, :]} filter = BakerlabFilter(self.conf_file) filter.write_sp(sp_dict, el_node_tmp) files_eq = filecmp.cmp("32test011.sp", "32test012.sp", shallow=0) os.unlink("32test012.sp") ok_(files_eq)
def test_write_sp(self): el_node_tmp = "/Test/s32test01/el2" sp_dict = {"data": self.data[np.newaxis, :]} filter = BakerlabFilter(self.conf_file) filter.write_sp(sp_dict, el_node_tmp) files_eq = filecmp.cmp("32test011.sp", "32test012.sp", shallow=0) os.unlink("32test012.sp") ok_(files_eq)
def test_write_spt(self): cell_node_tmp = "/Test/s32test01/el2/cell1" spt_dict = {"data": self.spt_data} filter = BakerlabFilter(self.conf_file) filter.write_spt(spt_dict, cell_node_tmp) files_eq = filecmp.cmp(self.spt_fname, "32test0121.spt", shallow=0) os.unlink("32test0121.spt") ok_(files_eq)
def test_write_spt_metadata(self): cell_node_tmp = '/Test/s32test01/el2/cell1' spt_dict = {'data':self.spt_data, 'metadata':self.spt_metadata} filter = BakerlabFilter(self.conf_file) filter.write_spt(spt_dict, cell_node_tmp, overwrite=True) files_eq = filecmp.cmp(self.spt_log_fname,"32test0121.log", shallow=0) os.unlink("32test0121.spt") os.unlink("32test0121.log") ok_(files_eq)
def test_sp_shape(self): with open(self.conf_file, 'r+') as fid: file_desc = json.load(fid) file_desc['n_contacts'] = 4 fid.seek(0) json.dump(file_desc, fid) filter = BakerlabFilter(self.conf_file) sp = filter.read_sp(self.el_node) data = sp['data'] ok_(data.shape == (4, len(self.data)))
def test_sp_shape(self): with open(self.conf_file, "r+") as fid: file_desc = json.load(fid) file_desc["n_contacts"] = 4 fid.seek(0) json.dump(file_desc, fid) filter = BakerlabFilter(self.conf_file) sp = filter.read_sp(self.el_node) data = sp["data"] ok_(data.shape == (4, len(self.data)))
def test_write_multichan(self): n_contacts = 4 data = np.repeat(self.data[np.newaxis, :], n_contacts, 0) sp_dict = {"data": data} with open(self.conf_file, "r+") as fid: file_desc = json.load(fid) file_desc["n_contacts"] = 4 file_desc["fspike"] = "test{contact_id}.sp" fid.seek(0) json.dump(file_desc, fid) filter = BakerlabFilter(self.conf_file) filter.write_sp(sp_dict, self.el_node) all_chan_files = glob.glob("test?.sp") [os.unlink(p) for p in all_chan_files] eq_(len(all_chan_files), n_contacts)
def test_write_multichan(self): n_contacts = 4 data = np.repeat(self.data[np.newaxis, :], n_contacts, 0) sp_dict = {'data': data} with open(self.conf_file, 'r+') as fid: file_desc = json.load(fid) file_desc['n_contacts'] = 4 file_desc["fspike"] = "test{contact_id}.sp" fid.seek(0) json.dump(file_desc, fid) filter = BakerlabFilter(self.conf_file) filter.write_sp(sp_dict, self.el_node) all_chan_files = glob.glob("test?.sp") [os.unlink(p) for p in all_chan_files] eq_(len(all_chan_files), n_contacts)
#!/usr/bin/env python #coding=utf-8 import os import matplotlib.pyplot as plt from spike_analysis import dashboard from spike_sort.io.filters import BakerlabFilter if __name__ == "__main__": cell = "/Gollum/s39gollum03/el1/cell1" path = os.path.join(os.pardir, os.pardir, 'data', 'gollum_export.inf') filt = BakerlabFilter(path) dashboard.show_cell(filt, cell) plt.show()
def test_read_sp(self): filter = BakerlabFilter(self.conf_file) sp = filter.read_sp(self.el_node) read_data = sp["data"][0, :] print read_data.shape ok_((np.abs(read_data - self.data) <= 1 / 200.0).all())
def test_writespt_overwrite_exc(self): cell_node_tmp = '/Test/s32test01/el1/cell1' spt_dict = {'data': self.spt_data} filter = BakerlabFilter(self.conf_file) filter.write_spt(spt_dict, cell_node_tmp)
def test_read_spt(self): filter = BakerlabFilter(self.conf_file) sp = filter.read_spt(self.cell_node) read_data = sp['data'] ok_((np.abs(read_data - self.spt_data) <= 1 / 200.).all())
def __init__(self, conf_file, dataset, overwrite=False, f_filter=None): GenericSource.__init__(self, dataset, overwrite, f_filter) BakerlabFilter.__init__(self, conf_file)
from spike_sort.io.filters import PyTablesFilter, BakerlabFilter from spike_sort.io import export DATAPATH = "../data" if __name__ == "__main__": dataset = "/Gollum/s39gollum01/el1" cell_templ = "/Gollum/s39gollum01/el1/cell{cell_id}" stim_node = "/".join(dataset.split("/")[:3] + ["stim"]) sp_win = [-0.2, 0.8] start = time.time() io_filter = BakerlabFilter("../data/gollum.inf") export_filter = PyTablesFilter("../data/exported.h5") sp = io_filter.read_sp(dataset, memmap="none") spt = sort.extract.detect_spikes(sp, contact=3, thresh="auto") spt = sort.extract.align_spikes(sp, spt, sp_win, type="max", contact=3, resample=10) sp_waves = sort.extract.extract_spikes(sp, spt, sp_win) features = sort.features.combine( (sort.features.fetP2P(sp_waves, contacts=[0, 1, 2, 3]), sort.features.fetPCs(sp_waves, ncomps=1)), normalize=True, ) clust_idx = sort.cluster.cluster("gmm", features, 5) features = sort.features.combine((sort.features.fetSpIdx(sp_waves), features))
def test_read_sp(self): filter = BakerlabFilter(self.conf_file) sp = filter.read_sp(self.el_node) read_data = sp['data'][0, :] print read_data.shape ok_((np.abs(read_data - self.data) <= 1 / 200.).all())
#cell_db = '../cell_bwoser/src/cell_db.h5' #DATAPATH= '/Volumes/PortableData/Data/dmytro/' DATAPATH = os.environ['DATAPATH'] #output_fname = 'exported_cells.csv' _, cell_db, output_fname = sys.argv if __name__ == "__main__": records = [] h5f = tables.openFile(cell_db) cell_csv = csv2rec(DATAPATH+'cell_db.csv') data_filter = BakerlabFilter(DATAPATH+'gollum_export.inf') for cellid in cell_csv['id']: node = h5f.getNode('/', cellid) cell_path = "/".join(cellid.split('/')) stim_path = "/".join(cellid.split('/')[:-1]+['stim']) try: events = node.cache.events.read() n_events = len(events)-1 except NoSuchNodeError: n_events = 1 try: score = int(node.cache.score[0]) except NoSuchNodeError: score = 0
def test_writespt_overwrite_exc(self): cell_node_tmp = "/Test/s32test01/el1/cell1" spt_dict = {"data": self.spt_data} filter = BakerlabFilter(self.conf_file) filter.write_spt(spt_dict, cell_node_tmp)
#!/usr/bin/env python #coding=utf-8 import numpy as np import matplotlib.pyplot as plt from spike_sort.io.filters import BakerlabFilter from spike_analysis import io_tools, xcorr cell_pattern = "/Gollum/s4gollum*/el*/cell*" filter = BakerlabFilter("../../data/gollum.inf") if __name__ == "__main__": cell_nodes = io_tools.list_cells(filter, cell_pattern) cells = [io_tools.read_dataset(filter, node) for node in cell_nodes] for data, name in zip(cells, cell_nodes): data['dataset'] = name xcorr.show_xcorr(cells) plt.show()
def test_read_spt(self): filter = BakerlabFilter(self.conf_file) sp = filter.read_spt(self.cell_node) read_data = sp["data"] ok_((np.abs(read_data - self.spt_data) <= 1 / 200.0).all())
#!/usr/bin/env python #coding=utf-8 import numpy as np import matplotlib.pyplot as plt import sys from spike_analysis import dashboard from spike_sort.io.filters import BakerlabFilter if __name__ == "__main__": cell = "/Gollum/s39gollum03/el1/cell1" filter = BakerlabFilter("../../data/gollum_export.inf") dashboard.show_cell(filter, cell) plt.show()
#!/usr/bin/env python #coding=utf-8 from spike_sort.io.filters import PyTablesFilter, BakerlabFilter in_dataset = "/Gollum/s5gollum01/el3" out_dataset = "/SubjectA/session01/el1/raw" in_filter = BakerlabFilter("gollum.inf") out_filter = PyTablesFilter("tutorial.h5") sp = in_filter.read_sp(in_dataset) out_filter.write_sp(sp, out_dataset) in_filter.close() out_filter.close()