def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'LocallySparseNoise') self.l0_events = core.get_L0_events(self.session_id) self.stim_table_sp, _, _ = core.get_stim_table(self.session_id, 'spontaneous') self.dxcm = core.get_running_speed(self.session_id) try: lsn_name = 'locally_sparse_noise' self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, lsn_name) self.LSN = core.get_stimulus_template(self.session_id, lsn_name) self.sweep_events, self.mean_sweep_events, self.sweep_p_values, self.running_speed, self.response_events_on, self.response_events_off = self.get_stimulus_response( self.LSN) except: lsn_name = 'locally_sparse_noise_4deg' self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, lsn_name) self.LSN_4deg = core.get_stimulus_template(self.session_id, lsn_name) self.sweep_events_4deg, self.mean_sweep_events_4deg, self.sweep_p_values_4deg, self.running_speed_4deg, self.response_events_on_4deg, self.response_events_off_4deg = self.get_stimulus_response( self.LSN_4deg) lsn_name = 'locally_sparse_noise_8deg' self.stim_table, _, _ = core.get_stim_table( self.session_id, lsn_name) self.LSN_8deg = core.get_stimulus_template(self.session_id, lsn_name) self.sweep_events_8deg, self.mean_sweep_events_8deg, self.sweep_p_values_8deg, self.running_speed_8deg, self.response_events_on_8deg, self.response_events_off_8deg = self.get_stimulus_response( self.LSN_8deg) self.peak = self.get_peak(lsn_name) self.save_data(lsn_name)
def __init__(self, *args, **kwargs): for k, v in kwargs.iteritems(): setattr(self, k, v) self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'NaturalMovies') self.l0_events = core.get_L0_events(self.session_id) self.stim_table_1b, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, 'natural_movie_one')
def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'NaturalScenes') self.l0_events = core.get_L0_events(self.session_id) self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table(self.session_id, 'natural_scenes') self.stim_table_sp,_,_ = core.get_stim_table(self.session_id, 'spontaneous') self.dxcm = core.get_running_speed(self.session_id) self.sweep_events, self.mean_sweep_events, self.sweep_p_values, self.running_speed, self.response_events, self.response_trials = self.get_stimulus_response() self.peak = self.get_peak() self.save_data()
def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'NaturalMoviesB') self.l0_events = core.get_L0_events(self.session_id) self.stim_table_1b, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, 'natural_movie_one') self.response_events_1b, self.response_trials_1b = self.get_stimulus_response_one( ) self.peak = self.get_peak() self.save_data()
def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'DriftingGratings') self.l0_events = core.get_L0_events(self.session_id) self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, 'drifting_gratings') self.dxcm = core.get_running_speed(self.session_id) self.stim_table_sp, _, _ = core.get_stim_table(self.session_id, 'spontaneous') self.orivals = range(0, 360, 45) self.tfvals = [0, 1, 2, 4, 8, 15] self.sweep_events, self.mean_sweep_events, self.sweep_p_values, self.running_speed, self.response_events, self.response_trials = self.get_stimulus_response( ) self.peak = self.get_peak() self.save_data()
def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'StaticGratings') self.l0_events = core.get_L0_events(self.session_id) self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, 'static_gratings') self.stim_table_sp, _, _ = core.get_stim_table(self.session_id, 'spontaneous') self.dxcm = core.get_running_speed(self.session_id) self.orivals = range(0, 180, 30) self.sfvals = [0, 0.02, 0.04, 0.08, 0.16, 0.32] self.phasevals = [0, 0.25, 0.5, 0.75] self.sweep_events, self.mean_sweep_events, self.sweep_p_values, self.running_speed, self.response_events, self.response_trials = self.get_stimulus_response( ) self.peak = self.get_peak() self.save_data()
def __init__(self, session_id): self.session_id = session_id save_path_head = core.get_save_path() self.save_path = os.path.join(save_path_head, 'LocallySparseNoise') self.l0_events = core.get_L0_events(self.session_id) #TODO: enable lsn, lsn4, lsn8 lsn_name = 'locally_sparse_noise' self.stim_table, self.numbercells, self.specimen_ids = core.get_stim_table( self.session_id, 'locally_sparse_noise') self.LSN = core.get_stimulus_template('locally_sparse_noise') self.stim_table_sp, _, _ = core.get_stim_table(self.session_id, 'spontaneous') self.dxcm = core.get_running_speed(self.session_id) self.sweep_events, self.mean_sweep_events, self.sweep_p_values, self.running_speed, self.response_events, self.response_trials = self.get_stimulus_response( ) self.peak = self.get_peak() self.save_data()
print i subset = exps[exps.experiment_container_id==a] session_A = subset[subset.session_type=='three_session_A'].id.values[0] session_B = subset[subset.session_type=='three_session_B'].id.values[0] try: session_C = subset[subset.session_type=='three_session_C'].id.values[0] except: session_C = subset[subset.session_type=='three_session_C2'].id.values[0] dataset_A = boc.get_ophys_experiment_data(session_A) specimen_ids_A = dataset_A.get_cell_specimen_ids() dataset_B = boc.get_ophys_experiment_data(session_B) specimen_ids_B = dataset_B.get_cell_specimen_ids() dataset_C = boc.get_ophys_experiment_data(session_C) specimen_ids_C = dataset_C.get_cell_specimen_ids() l0_A = core.get_L0_events(session_A) l0_B = core.get_L0_events(session_B) l0_C = core.get_L0_events(session_C) stim = dataset_A.get_stimulus_table('spontaneous') spontaneous_rate_A = l0_A[:,int(stim.start):int(stim.end)].mean(axis=1) stim = dataset_B.get_stimulus_table('spontaneous') spontaneous_rate_B = l0_B[:,int(stim.start):int(stim.end)].mean(axis=1) stim = dataset_C.get_stimulus_table('spontaneous') spontaneous_1 = l0_C[:,int(stim.start[0]):int(stim.end[0])].mean(axis=1) spontaneous_2 = l0_C[:,int(stim.start[1]):int(stim.end[1])].mean(axis=1) spontaneous_rate_C = (spontaneous_1+spontaneous_2)/2. table_A = pd.DataFrame(columns=('cell_specimen_id','spontaneous_A'), index=range(len(specimen_ids_A))) table_B = pd.DataFrame(columns=('cell_specimen_id','spontaneous_B'), index=range(len(specimen_ids_B))) table_C = pd.DataFrame(columns=('cell_specimen_id','spontaneous_C'), index=range(len(specimen_ids_C)))
def Speed_Tuning(session_id, binsize=900): save_path_head = core.get_save_path() save_path = os.path.join(save_path_head, 'SpeedTuning') l0_events = core.get_L0_events(session_id) dxcm = core.get_running_speed(session_id) _, numbercells, specimen_ids = core.get_stim_table(session_id, 'spontaneous') # numbercells = l0_events.shape numbins = 1 + len(dxcm[np.where(dxcm > 1)] / binsize) #remove any NaNs from running and activity traces dx_trim = dxcm[~np.isnan(dxcm)] l0_trim = l0_events[:, ~np.isnan(dxcm)] #rank sort traces by running speed dx_sorted = dx_trim[np.argsort(dx_trim)] events_sorted = l0_trim[:, np.argsort(dx_trim)] #bin running and activity binned_cells = np.zeros((numbercells, numbins, 2)) binned_dx = np.zeros((numbins, 2)) for i in range(numbins): offset = np.were(dx_sorted > 1)[0][0] if i == 0: binned_dx[i, 0] = np.mean(dx_sorted[:offset]) binned_dx[i, 1] = np.std(dx_sorted[:offset]) / np.sqrt(offset) binned_cells[:, i, 0] = np.mean(events_sorted[:, :offset], axis=1) binned_cells[:, i, 1] = np.std(events_sorted[:, :offset], axis=1) / np.sqrt(offset) else: start = offset + (i - 1) * binsize binned_dx[i, 0] = np.mean(dx_sorted[start:start + binsize]) binned_dx[i, 1] = np.std( dx_sorted[start:start + binsize]) / np.sqrt(binsize) binned_cells[:, i, 0] = np.mean(events_sorted[:, start:start + binsize], axis=1) binned_cells[:, i, 1] = np.std(events_sorted[:, start:start + binsize], axis=1) / np.sqrt(binsize) #shuffled activity to get significance binned_cells_shuffled = np.empty((numbercells, numbins, 2, 200)) for shuf in range(200): events_shuffled = l0_trim[:, np.random.permutation(np.size(l0_trim, 1))] events_shuffled_sorted = events_shuffled[:, np.argsort(dx_trim)] for i in range(numbins): offset = np.were(dx_sorted > 1)[0][0] if i == 0: binned_cells_shuffled[:, i, 0, shuf] = np.mean( events_shuffled_sorted[:, :offset], axis=1) binned_cells_shuffled[:, i, 1, shuf] = np.std( events_shuffled_sorted[:, :offset], axis=1) / np.sqrt(offset) else: start = offset + (i - 1) * binsize binned_cells_shuffled[:, i, 0, shuf] = np.mean( events_shuffled_sorted[:, start:start + binsize], axis=1) binned_cells_shuffled[:, i, 1, shuf] = np.std( events_shuffled_sorted[:, start:start + binsize], axis=1) / np.sqrt(binsize) shuffled_variance = binned_cells_shuffled[:, :, 0, :].std(axis=1)**2 variance_threshold = np.percentile(shuffled_variance, 99.9, axis=1) response_variance = binned_cells[:, :, 0].std(axis=1)**2 peak = pd.DataFrame(columns=('cell_specimen_id', 'run_mod'), index=range(numbercells)) peak.cell_specimen_id = specimen_ids peak.run_mod = response_variance > variance_threshold #save data save_file = os.path.join(save_path, str(session_id) + '_speed_tuning_events.h5') store = pd.HDFStore(save_file) store['peak'] = peak store.close() f = h5py.File(save_file, 'r+') dset = f.create_dataset('binned_dx', data=binned_dx) dset1 = f.create_dataset('binned_cells', data=binned_cells) dset2 = f.create_dataset('binned_cells_shuffled', data=binned_cells_shuffled) f.close()