def single_run(filter, spk_src, bg_src, params): import evaluate as eval sp_win = params['sp_win'] spadd_win = params['sp_add_win'] pow_frac = params['pow_frac'] f_filter = params['f_filter'] type = params['sp_type'] thresh = params['thresh'] feats = params['features'] contacts = params['contacts'] n_pts = params['n_pts'] sp, stim, spt_real = eval.mix_cellbg(filter, spk_src, bg_src, spadd_win, pow_frac) sp = eval.filter_data(sp, f_filter) spt, clust_idx, n_missing = eval.spike_clusters(sp, spt_real, stim, thresh, type, sp_win) features = eval.calc_features(sp, spt, sp_win, feats, contacts) uni_metric = eval.univariate_metric(eval.mutual_information, features, clust_idx) multi_metric = eval.k_nearest(features, clust_idx, n_pts=n_pts) n_total = len(spt_real['data']) result_dict= {"cell" : spk_src, "electrode" : bg_src, "spikes_total" : n_total, "spikes_missed" : n_missing, "mutual_information" : uni_metric, "k_nearest" : multi_metric} result_dict.update(params) import socket #from sim_manager import get_version result_dict['host'] = socket.gethostname() #result_dict['dependencies'] ={'evaluate': get_version(eval), # 'spike_sort': get_version(eval.sort)} return result_dict
from spike_analysis import basic import evaluate as eval spike_src = "/Gollum/s44gollum07/el3/cell1" background_src = "/Gollum/s44gollum01/el4" sp_win = [-2, 2] pow_frac = 5 out_dataset = "/TestSubject/sSession01/el1" if __name__ == "__main__": in_filter = filters.BakerlabFilter("../data/gollum.inf") out_filter = filters.PyTablesFilter("simulated.h5") sp_sim, stim_bg, spt_sim = eval.mix_cellbg(in_filter, spike_src, background_src, sp_win, pow_frac) #export out_filter.write_spt(spt_sim, out_dataset+"/cell1_orig", overwrite=True) out_filter.write_spt(stim_bg,out_dataset+ "stim", overwrite=True) out_filter.write_sp(sp_sim, out_dataset+"/raw", overwrite=True) #plotting print "Total spikes: ", len(spt_sim['data']) raw_bg, _ = eval.read_data(in_filter, background_src) basic.plotPSTH(spt_sim['data'], stim_bg['data'], win=[0,300]) plt.figure() plt.plot(raw_bg['data'][0,:25E3])