def finalize(self, event):
if comm.rank == 0:
self.app.setOverrideCursor(QCursor(Qt.WaitCursor))
self.mpi_wait = comm.bcast(numpy.array([1], dtype=numpy.int32), root=0)
comm.Barrier()
self.all_merges = comm.bcast(self.all_merges, root=0)
self.to_delete = comm.bcast(self.to_delete, root=0)
slice_templates(self.params, to_merge=self.all_merges, to_remove=list(self.to_delete), extension=self.ext_out)
slice_clusters(self.params, self.clusters, to_merge=self.all_merges, to_remove=list(self.to_delete), extension=self.ext_out, light=True)
if comm.rank == 0:
new_result = {'spiketimes' : {}, 'amplitudes' : {}}
to_keep = set(numpy.unique(self.indices)) - set(self.to_delete)
to_keep = numpy.array(list(to_keep))
for count, temp_id in enumerate(to_keep):
key_before = 'temp_' + str(temp_id)
key_after = 'temp_' + str(count)
new_result['spiketimes'][key_after] = self.result['spiketimes'].pop(key_before)
new_result['amplitudes'][key_after] = self.result['amplitudes'].pop(key_before)
keys = ['spiketimes', 'amplitudes']
if self.params.getboolean('fitting', 'collect_all'):
keys += ['gspikes']
new_result['gspikes'] = io.get_garbage(self.params)['gspikes']
mydata = h5py.File(self.file_out_suff + '.result%s.hdf5' %self.ext_out, 'w', libver='latest')
for key in keys:
mydata.create_group(key)
for temp in new_result[key].keys():
tmp_path = '%s/%s' %(key, temp)
mydata.create_dataset(tmp_path, data=new_result[key][temp])
mydata.close()
mydata = h5py.File(self.file_out_suff + '.templates%s.hdf5' %self.ext_out, 'r+', libver='latest')
version = mydata.create_dataset('version', data=numpy.array([circus.__version__.encode('ascii', 'ignore')]))
maxoverlaps = mydata.create_dataset('maxoverlap', shape=(len(to_keep), len(to_keep)), dtype=numpy.float32)
maxlag = mydata.create_dataset('maxlag', shape=(len(to_keep), len(to_keep)), dtype=numpy.int32)
for c, i in enumerate(to_keep):
maxoverlaps[c, :] = self.overlap[i, to_keep]*self.shape[0] * self.shape[1]
maxlag[c, :] = self.lag[i, to_keep]
mydata.close()
self.app.restoreOverrideCursor()
sys.exit(0)
评论列表
文章目录