Skip to content

Commit

Permalink
Minor bug fixes + parallelization of dev decoding
Browse files Browse the repository at this point in the history
- functions/dependent_bayes_deviation_analysis.py: bug fix rename variables
- functions/dependent_decoding_funcs.py: bug fix handle missing data
- functions/dev_sequence_funcs.py: remove unnecessary code, bug fix to handle missing data, parallelization of decoding deviation events
- functions/deviation_sequence_analysis.py: bug fix filled out missing param pulls
- functions/run_analysis_handler.py: added calls to dev decoding pipeline legs
  • Loading branch information
hfgem committed Nov 22, 2024
1 parent af2a11e commit 83475e5
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 841 deletions.
30 changes: 6 additions & 24 deletions functions/dependent_bayes_deviation_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def gather_variables(self,):
self.e_skip_time = self.metadata['params_dict']['bayes_params']['e_skip_time']
self.e_skip_dt = np.ceil(self.e_skip_time*1000).astype('int')
self.taste_e_len_time = self.metadata['params_dict']['bayes_params']['taste_e_len_time']
self.taste_e_len_dt = np.ceil(self.e_len_time*1000).astype('int')
self.taste_e_len_dt = np.ceil(self.taste_e_len_time*1000).astype('int')
self.seg_e_len_time = self.metadata['params_dict']['bayes_params']['seg_e_len_time']
self.seg_e_len_dt = np.ceil(self.seg_e_len_time*1000).astype('int')
self.bayes_fr_bins = self.metadata['params_dict']['bayes_params']['fr_bins']
Expand All @@ -79,7 +79,7 @@ def gather_variables(self,):
self.seg_stat_bin = self.metadata['params_dict']['bayes_params']['seg_stat_bin']
self.trial_start_frac = self.metadata['params_dict']['bayes_params']['trial_start_frac']
self.decode_prob_cutoff = self.metadata['params_dict']['bayes_params']['decode_prob_cutoff']
self.bin_time = self.metadata['params_dict']['bayes_params']['bin_time']
self.bin_time = self.metadata['params_dict']['bayes_params']['z_score_bin_time']
self.bin_dt = np.ceil(self.bin_time*1000).astype('int')
# Import changepoint data
pop_taste_cp_raster_inds = hf5.pull_data_from_hdf5(
Expand Down Expand Up @@ -168,30 +168,12 @@ def decode_all_neurons(self,):
self.dig_in_names, self.segment_times,
self.segment_names, self.start_dig_in_times,
self.taste_num_deliv, self.segment_dev_times,
self.segment_dev_fr_vecs, self.taste_select_neur,
self.bin_dt, self.decode_dir, False,
self.segment_dev_fr_vecs, self.bin_dt,
self.decode_dir, False,
self.epochs_to_analyze, self.segments_to_analyze)

self.plot_decoded_data()

# def decode_taste_selective_neurons(self,):
# print("\tDecoding taste selective neurons")
# decode_dir = self.bayes_dir + 'Taste_Selective/'
# if os.path.isdir(decode_dir) == False:
# os.mkdir(decode_dir)
# self.decode_dir = decode_dir

# taste_select_neur = self.discrim_neur
# self.taste_select_neur = taste_select_neur

# ddf.decode_deviations_is_taste_which_taste(self.tastant_fr_dist_pop, self.segment_spike_times,
# self.dig_in_names, self.segment_times,
# self.segment_names, self.start_dig_in_times,
# self.taste_num_deliv, self.segment_dev_times,
# self.segment_dev_fr_vecs, self.taste_select_neur,
# self.bin_dt, self.decode_dir, False,
# self.epochs_to_analyze, self.segments_to_analyze)

def decode_all_neurons_zscore(self,):
print("\tDecoding all neurons")
all_neur_z_dir = self.bayes_dir + 'All_Neurons_Z_Scored/'
Expand All @@ -211,8 +193,8 @@ def decode_all_neurons_zscore(self,):
self.dig_in_names, self.segment_times,
self.segment_names, self.start_dig_in_times,
self.taste_num_deliv, self.segment_dev_times,
self.segment_dev_fr_vecs_zscore, self.taste_select_neur,
self.bin_dt, self.decode_dir, True,
self.segment_dev_fr_vecs_zscore, self.bin_dt,
self.decode_dir, True,
self.epochs_to_analyze, self.segments_to_analyze)

self.plot_decoded_data()
Expand Down
45 changes: 27 additions & 18 deletions functions/dependent_decoding_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,12 +292,15 @@ def decode_epochs(tastant_fr_dist, segment_spike_times, post_taste_dt,
train_taste_data = []
taste_num_deliv = len(tastant_fr_dist[t_i])
for d_i in range(taste_num_deliv):
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
try:
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
except:
train_taste_data.extend([])
if t_i < num_tastes-1:
true_taste_train_data.extend(train_taste_data)
else: #None condition - augment with randomized data in neuron firing range + single spike examples
Expand Down Expand Up @@ -551,12 +554,15 @@ def decode_deviations_epochs(tastant_fr_dist, segment_spike_times, dig_in_names,
train_taste_data = []
taste_num_deliv = len(tastant_fr_dist[t_i])
for d_i in range(taste_num_deliv):
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
try:
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
except:
train_taste_data.extend([])
if t_i < num_tastes-1:
true_taste_train_data.extend(train_taste_data)
else: #None condition - augment with randomized data in neuron firing range + single spike examples
Expand Down Expand Up @@ -806,12 +812,15 @@ def decode_deviations_is_taste_which_taste(tastant_fr_dist, segment_spike_times,
train_taste_data = []
for e_i in epochs_to_analyze:
for d_i in range(num_deliveries):
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
try:
if np.shape(tastant_fr_dist[t_i][d_i][e_i])[0] == num_neur:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i].T))
else:
train_taste_data.extend(
list(tastant_fr_dist[t_i][d_i][e_i]))
except:
train_taste_data.extend([])
if t_i < num_tastes-1:
true_taste_train_data.extend(train_taste_data)
else:
Expand Down
Loading

0 comments on commit 83475e5

Please sign in to comment.