Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
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()