def draw_preds(agg, data_dir='/auto/tdrive/mschachter/data'): df_best = pd.read_csv('/auto/tdrive/mschachter/data/aggregate/rnn_best.csv') # print 'min_err=', df_best.err.min() bird = 'GreBlu9508M' block = 'Site2' segment = 'Call2' hemi = 'L' best_md5 = 'db5d601c8af2621f341d8e4cbd4108c1' fname = '%s_%s_%s_%s' % (bird, block, segment, hemi) preproc_file = os.path.join(data_dir, bird, 'preprocess', 'RNNPreprocess_%s.h5' % fname) rnn_file = os.path.join(data_dir, bird, 'rnn', 'RNNLFPEncoder_%s_%s.h5' %(fname, best_md5)) pred_file = os.path.join(data_dir, bird, 'rnn', 'RNNLFPEncoderPred_%s_%s.h5' %(fname, best_md5)) linear_file = os.path.join(data_dir, bird, 'rnn', 'LFPEnvelope_%s.h5' % fname) if not os.path.exists(pred_file): rpt = RNNPreprocessTransform.load(preproc_file) rpt.write_pred_file(rnn_file, pred_file, lfp_enc_file=linear_file) visualize_pred_file(pred_file, 3, 0, 2.4, electrode_order=ROSTRAL_CAUDAL_ELECTRODES_LEFT[::-1], dbnoise=4.0) leg = custom_legend(['k', 'r', 'b'], ['Real', 'Linear', 'RNN']) plt.legend(handles=leg) fname = os.path.join(get_this_dir(), 'rnn_preds.svg') plt.savefig(fname, facecolor='w', edgecolor='none') plt.show()
def draw_figures(data_dir='/auto/tdrive/mschachter/data'): preproc_file = os.path.join(data_dir, 'GreBlu9508M', 'preprocess', 'RNNPreprocess_GreBlu9508M_Site4_Call1_L.h5') rp = RNNPreprocessTransform.load(preproc_file) i = rp.event_df.stim_type == 'mlnoise' print 'ml noise stims: ',rp.event_df[i].stim_id.unique() fig = plt.figure(figsize=(23, 10), facecolor='w') fig.subplots_adjust(hspace=0.35, wspace=0.35, right=0.95, left=0.10) gs = plt.GridSpec(3, 2) ax = plt.subplot(gs[0, 0]) plot_specs_with_env(ax, rp, 287) ax = plt.subplot(gs[1, 0]) plot_specs_with_env(ax, rp, 277) ax = plt.subplot(gs[2, 0]) plot_specs_with_env(ax, rp, 68) ax = plt.subplot(gs[:, 1]) plot_temp_mods(ax, rp) fname = os.path.join(get_this_dir(), 'figure.svg') plt.savefig(fname, facecolor=fig.get_facecolor(), edgecolor='none') plt.show()
def draw_figures(data_dir='/auto/tdrive/mschachter/data'): bird = 'GreBlu9508M' block = 'Site4' segment = 'Call1' hemi = 'L' fname = '%s_%s_%s_%s' % (bird, block, segment, hemi) exp_dir = os.path.join(data_dir, bird) preproc_file = os.path.join(exp_dir, 'preprocess', 'RNNPreprocess_%s.h5' % fname) rp = RNNPreprocessTransform.load(preproc_file) pred_file = os.path.join(exp_dir, 'rnn', 'LFPEnvelope_%s.h5' % fname) hf = h5py.File(pred_file, 'r') Ypred = np.array(hf['Ypred']) hf.close() assert Ypred.shape[0] == rp.U.shape[0] stim_id = 277 trial = 5 i = (rp.event_df.stim_id == stim_id) & (rp.event_df.trial == trial) assert i.sum() == 1 start_time = rp.event_df[i].start_time.values[0] end_time = rp.event_df[i].end_time.values[0] si = int(start_time*rp.sample_rate) ei = int(end_time * rp.sample_rate) spec = rp.U[si:ei, :].T spec_freq = rp.spec_freq spec_env = spec.sum(axis=0) spec_env /= spec_env.max() lfp = rp.Yraw[si:ei, :].T lfp_pred = Ypred[si:ei, :].T nt = spec.shape[1] t = np.arange(nt) / rp.sample_rate index2electrode = list(rp.index2electrode) electrode_order = ROSTRAL_CAUDAL_ELECTRODES_LEFT if hemi == 'R': electrode_order = ROSTRAL_CAUDAL_ELECTRODES_RIGHT fig = plt.figure(figsize=(23, 13), facecolor='w') gs = plt.GridSpec(100, 1) ax = plt.subplot(gs[:25, :]) spec_env *= (spec_freq.max() - spec_freq.min()) spec_env += spec_freq.min() plot_spectrogram(t, spec_freq, spec, ax=ax, ticks=True, fmax=8000., colormap='SpectroColorMap', colorbar=False) plt.plot(t, spec_env, 'k-', linewidth=5.0, alpha=0.7) plt.axis('tight') ax = plt.subplot(gs[30:, :]) nelectrodes = len(index2electrode) lfp_spacing = 5. for k in range(nelectrodes): e = electrode_order[nelectrodes-k-1] n = index2electrode.index(e) offset = k*lfp_spacing plt.plot(t, lfp[n, :] + offset, 'k-', alpha=0.7, linewidth=5.0) plt.plot(t, lfp_pred[n, :] + offset, 'r-', alpha=0.7, linewidth=5.0) plt.yticks([]) plt.axis('tight') plt.xlabel('Time (s)') plt.ylabel('LFP') fname = os.path.join(get_this_dir(), 'encoder_pred.svg') plt.savefig(fname, facecolor=fig.get_facecolor(), edgecolor='none') plt.show()