Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
 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)
Beispiel #6
0
 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)))
Beispiel #7
0
 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)))
Beispiel #8
0
 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)
Beispiel #9
0
 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)
Beispiel #10
0
#!/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()
Beispiel #11
0
 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())
Beispiel #12
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)
Beispiel #13
0
 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())
Beispiel #14
0
 def __init__(self, conf_file, dataset, overwrite=False, f_filter=None):
     GenericSource.__init__(self, dataset, overwrite, f_filter)
     BakerlabFilter.__init__(self, conf_file)
Beispiel #15
0
 def __init__(self, conf_file, dataset, overwrite=False, f_filter=None):
     GenericSource.__init__(self, dataset, overwrite, f_filter)
     BakerlabFilter.__init__(self, conf_file)
Beispiel #16
0
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))
Beispiel #17
0
 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())
Beispiel #18
0

#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
Beispiel #19
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)
Beispiel #20
0
#!/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()
Beispiel #21
0
 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())
Beispiel #22
0
#!/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()