Esempio n. 1
0
def get_high_low_beta_firing_rates(session,area,unit,epoch,fa,fb):
    Fs=1000
    '''
    Computes the unit firing rates during high and low beta events for
    the given task epoch. Good trials only. Defaults to Fs = 1000
    returns threshold, event_rate, nonevent_rate
    '''
    threshold,events = get_high_beta_events(session,area,get_unit_channel(session,area,unit),epoch,lowf=fa,highf=fb)
    spikes = get_spikes_session_filtered_by_epoch(session,area,unit,epoch)

    n_total_spikes     = len(spikes)
    n_total_times      = len(get_good_trials(session))*(epoch[-1]-epoch[-2])

    events = array(events)
    if shape(events)[0]==0:
        print 'NO EVENTS!!!!!!!'
        return threshold, NaN, Fs*float(n_total_spikes)/n_total_times
    # linear time solution exists but quadratic time solution is quicker to code.
    n_event_spikes     = sum((events[:,1][:,None]>=spikes[None,:])
                            &(events[:,0][:,None]<=spikes[None,:]))
    n_nonevent_spikes  = n_total_spikes-n_event_spikes
    n_event_times      = sum(events[:,1]-events[:,0])
    n_nonevent_times   = n_total_times - n_event_times
    event_rate         = Fs*float(n_event_spikes)/n_event_times
    nonevent_rate      = Fs*float(n_nonevent_spikes)/n_nonevent_times
    print session,area,unit,epoch,event_rate,nonevent_rate, threshold
    return threshold, event_rate, nonevent_rate
Esempio n. 2
0
def get_high_and_low_beta_spikes(session,area,unit,epoch,fa,fb):
    '''
    threshold, event_spikes, nonevent_spikes = get_high_and_low_beta_spikes(session,area,unit,epoch,ishighbeta)
    '''
    threshold,events = get_high_beta_events(session,area,get_unit_channel(session,area,unit),epoch,lowf=fa,highf=fb)
    spikes = get_spikes_session_filtered_by_epoch(session,area,unit,epoch)
    n_total_spikes     = len(spikes)
    n_total_times      = len(get_good_trials(session))*(epoch[-1]-epoch[-2])
    events = array(events)
    if shape(events)[0]==0:
        print 'NO EVENTS!!!!!!!'
        return threshold, NaN, Fs*float(n_total_spikes)/n_total_times
    event_spikes = (events[:,1][:,None]>=spikes[None,:])\
                  &(events[:,0][:,None]<=spikes[None,:])
    is_in_event = sum(event_spikes,0)
    return threshold, spikes[is_in_event==1], spikes[is_in_event==0]