stage_bins[strain] = exp.stage_bins(data[strain], nbins=1) dat_bin_s[strain] = exp.bin_data(dat[strain], stage_bins[strain]) #%% Order by activity order = {} for strain in strains: order[strain] = np.argsort(np.sum(dat[strain], axis=1)) #%% Plot Data # plot roaming fraction plt.figure(70) plt.clf() fplt.plot_image_array([dat_bin[s][order[s]] for s in strains], names=strains, vmax=1.0, cmap='jet') #%% Calculate distributions max_feat = 1.0 #distributions dist_t = {} dist_s = {} dist_g = {} dist_a = np.zeros((dbins, 1)) for strain in strains: #time resolved distribution dist_t[strain] = np.zeros((dbins, tbins))
ax.scatter(Y_full[(i*nbins):((i+1)*nbins), 0], Y_full[(i*nbins):((i+1)*nbins), 1], Y_full[(i*nbins):((i+1)*nbins),2], c = color, cmap=cmap) plt.title("MDS %s" % s1); plt.tight_layout(); fplt.plot_pca() plt.figure(6); plt.clf(); fplt.plot_image_array((dist,), names = ['dist_%s' % feat], invert_y = True, nplots = 3); plt.subplot(3,1,2); plt.plot(dat_mean, 'r'); plt.title('%s_%s mean' % (strain, feat)) plt.subplot(3,1,3) plt.plot(dat_var, 'b'); plt.title('%s_%s var' % (strain, feat)) # entropies /cross entropies ent = np.zeros((nbins, nbins)); for b in range(nbins): for b2 in range(nbins): if b==b2: ent[b,b2] = stats.entropy(dist[:,b]);
else: dur_dw_max[w,b] = 1; dur_dw_min[w,b] = 0; dur_dw_mean[w,b] = 0; dord = exp.load('%s_%s_order.npy' % (strain, feat)); mm = dur_up_mean.max() dur_up_mean[dur_up_mean == mm] = 0; plt.figure(2); plt.clf(); dur_names = ['dur_up_max', 'dur_up_min', 'dur_dw_max', 'dur_dw_min', 'dur_up_mean', 'dur_dw_mean', 'ndurs_up']; fplt.plot_image_array((dur_up_max, dur_up_min, dur_dw_max, dur_dw_min, dur_up_mean, dur_dw_mean, ndurs_up), order = dord, names = dur_names) plt.tight_layout() # make histograms for each worm dbins = 10; dist_dur_up = np.zeros((nworms, nbins, dbins)); dist_dur_dw = np.zeros((nworms, nbins, dbins)); for w in range(nworms): for b in range(nbins): dist_dur_up[w,b] = np.histogram(durs_up[w][b], range = (0, dur_up_max[w,b]), bins = dbins)[0]; dist_dur_dw[w,b] = np.histogram(durs_dw[w][b], range = (0, dur_dw_max[w,b]), bins = dbins)[0]; cutoff = 5;