예제 #1
0
 def load_data(self, cell_list):
     
     self.cell_info = cell_list
     reload(hf)
     for row in cell_list: # go through each cell
         cur_exp = hf.load_analyzed_exp(row[0])
         if np.size(cur_exp['spike_times']) >1:
             self.spike_times.append( cur_exp['spike_times'][row[1]] ) # get spike times for given cell
         else: # for single cell files, just append the single cell
             self.spike_times.append( cur_exp['spike_times'] )
         self.laser_times.append( cur_exp['laser_times'][row[2]:row[3]] ) # get laser times for range of trials
         
     # initialize some variables for calculation later
     self.num_cells = np.size(self.cell_info, 0)
     self.mean_pre_isi = np.zeros(self.num_cells)
     self.mean_first_spike = np.zeros(self.num_cells)
     self.std_first_spike = np.zeros(self.num_cells)
     self.first_firing_above_mean = np.zeros(self.num_cells)
     self.inhib_latency = np.zeros(self.num_cells)
     self.failure_rate = np.zeros(self.num_cells)
def main(bool_plot = True):
    reload(hf)
# list of experiments to go through
    exp_list = ['140819B', '140813B', '140812B', '140729B', '140722A', '140718A', '140710A', '140708B']
    
    all_feed_rates = np.empty(0)
    all_nonfeed_rates = np.empty(0)
    
    for cur_exp in exp_list:
        #$pdb.set_trace()
        # load current experiment in list
        cur_data = hf.load_analyzed_exp(cur_exp)
        cur_spike_times = cur_data['spike_times']
        feed_times, water_times = hf.load_feed_times(cur_exp)
        
        # calculate average firing rate for experiment and add to list
        feed_avg, nonfeed_avg = cfrf.main(cur_spike_times, feed_times)
        all_feed_rates = np.append(all_feed_rates, feed_avg)
        all_nonfeed_rates = np.append(all_nonfeed_rates, nonfeed_avg)
    
    
    if bool_plot:
       plot_nonfeed_vs_feed(all_nonfeed_rates, all_feed_rates)
    return all_feed_rates, all_nonfeed_rates