def view_masks(file_name, t_start=0, t_stop=1, n_elec=0):
params = CircusParser(file_name)
data_file = params.get_data_file()
data_file.open()
N_e = params.getint('data', 'N_e')
N_t = params.getint('detection', 'N_t')
N_total = params.nb_channels
sampling_rate = params.rate
do_temporal_whitening = params.getboolean('whitening', 'temporal')
do_spatial_whitening = params.getboolean('whitening', 'spatial')
spike_thresh = params.getfloat('detection', 'spike_thresh')
file_out_suff = params.get('data', 'file_out_suff')
nodes, edges = get_nodes_and_edges(params)
chunk_size = (t_stop - t_start)*sampling_rate
padding = (t_start*sampling_rate, t_start*sampling_rate)
inv_nodes = numpy.zeros(N_total, dtype=numpy.int32)
inv_nodes[nodes] = numpy.argsort(nodes)
safety_time = params.getint('clustering', 'safety_time')
if do_spatial_whitening:
spatial_whitening = load_data(params, 'spatial_whitening')
if do_temporal_whitening:
temporal_whitening = load_data(params, 'temporal_whitening')
thresholds = load_data(params, 'thresholds')
data = data_file.get_data(0, chunk_size, padding=padding, nodes=nodes)
data_shape = len(data)
data_file.close()
peaks = {}
indices = inv_nodes[edges[nodes[n_elec]]]
if do_spatial_whitening:
data = numpy.dot(data, spatial_whitening)
if do_temporal_whitening:
data = scipy.ndimage.filters.convolve1d(data, temporal_whitening, axis=0, mode='constant')
for i in xrange(N_e):
peaks[i] = algo.detect_peaks(data[:, i], thresholds[i], valley=True, mpd=0)
pylab.figure()
for count, i in enumerate(indices):
pylab.plot(count*5 + data[:, i], '0.25')
#xmin, xmax = pylab.xlim()
pylab.scatter(peaks[i], count*5 + data[peaks[i], i], s=10, c='r')
for count, i in enumerate(peaks[n_elec]):
pylab.axvspan(i - safety_time, i + safety_time, facecolor='r', alpha=0.5)
pylab.ylim(-5, len(indices)*5 )
pylab.xlabel('Time [ms]')
pylab.ylabel('Electrode')
pylab.tight_layout()
pylab.setp(pylab.gca(), yticks=[])
pylab.show()
return peaks
评论列表
文章目录