@@ -32,13 +32,8 @@ def tri_filter(signal, kernel_delta):
3232 width of kernel in datapoints
3333 """
3434 kernel = np .append (np .arange (kernel_delta / 2 ), np .arange (kernel_delta / 2 , - 1 , - 1 ))
35- # convolve2d has proven PAINFULLY slow for some reason
36- # signal_conv = convolve2d(signal,kernel,'same')
37- new_signal = []
38- for x in signal :
39- new_signal .append (convolve (x , kernel , "same" ))
40- signal_conv = np .array (new_signal )
41- return signal_conv
35+ new_signal = [convolve (x , kernel , "same" ) for x in signal ]
36+ return np .array (new_signal )
4237
4338
4439def correlate_signals (signal1 , signal2 ):
@@ -66,8 +61,7 @@ def avg_dotprod_signals(signal1, signal2):
6661 non_silent_sigs .sort ()
6762 product = signal1 [non_silent_sigs ] * signal2 [non_silent_sigs ]
6863 prod_sum = product .sum (axis = 1 )
69- avg_dot_product = prod_sum .mean ()
70- return avg_dot_product
64+ return prod_sum .mean ()
7165
7266
7367def ndp_signals (signal1 , signal2 ):
@@ -103,14 +97,10 @@ def avg_dotprod_signals_tbinned(signal1, signal2, len_bin=1000):
10397 signal2 = np .reshape (signal2 [:, 0 : int ((signal2 .shape [1 ] / len_bin ) * len_bin )], (signal2 .shape [0 ], signal2 .shape [1 ] / len_bin , len_bin ), len_bin )
10498 signal2 = signal2 [:, 0 :5 , :]
10599
106- sig1 = []
107- for x in signal1 :
108- sig1 .append (normalize (x , axis = 1 ))
100+ sig1 = [normalize (x , axis = 1 ) for x in signal1 ]
109101 signal1 = np .array (sig1 )
110102
111- sig2 = []
112- for x in signal2 :
113- sig2 .append (normalize (x , axis = 1 ))
103+ sig2 = [normalize (x , axis = 1 ) for x in signal2 ]
114104 signal2 = np .array (sig2 )
115105
116106 product = signal1 * signal2
@@ -120,8 +110,7 @@ def avg_dotprod_signals_tbinned(signal1, signal2, len_bin=1000):
120110
121111 for x in silent_sigs :
122112 prod_sum [x [0 ], x [1 ]] = np .NaN
123- avg_dot_product = np .nanmean (prod_sum , axis = 0 )
124- return avg_dot_product
113+ return np .nanmean (prod_sum , axis = 0 )
125114
126115
127116def time_stamps_to_signal (time_stamps , dt_signal , t_start , t_stop ):
@@ -135,8 +124,7 @@ def time_stamps_to_signal(time_stamps, dt_signal, t_start, t_stop):
135124 for x in time_stamps :
136125 curr_idc = []
137126 if np .any (x ):
138- for y in x :
139- curr_idc .append ((y - t_start ) / dt_signal )
127+ curr_idc .extend ((y - t_start ) / dt_signal for y in x )
140128 time_idc .append (curr_idc )
141129
142130 # Set the spike indices to 1
@@ -173,11 +161,10 @@ def similarity_measure_leutgeb_BUGGY(signal1, signal2, len_bin):
173161 signal2 = np .reshape (signal2 [:, 0 : int ((signal2 .shape [1 ] / len_bin ) * len_bin )], (signal2 .shape [0 ], signal2 .shape [1 ] / len_bin , len_bin ), len_bin )
174162 signal2 = signal2 .sum (axis = 2 )
175163
176- corr_vector = []
177-
178- for x in range (signal1 .shape [1 ]):
179- corr_vector .append (pearsonr (signal1 [:, x ], signal2 [:, x ])[0 ])
180-
164+ corr_vector = [
165+ pearsonr (signal1 [:, x ], signal2 [:, x ])[0 ]
166+ for x in range (signal1 .shape [1 ])
167+ ]
181168 return np .array (corr_vector )
182169
183170
@@ -189,10 +176,10 @@ def similarity_measure_leutgeb(signal1, signal2, len_bin):
189176 signal2 = np .reshape (signal2 [:, 0 : int (len_bin * int (signal2 .shape [1 ] / len_bin ))], (signal2 .shape [0 ], int (signal2 .shape [1 ] / len_bin ), len_bin ))
190177 signal2 = signal2 .sum (axis = 2 )
191178 pdb .set_trace ()
192- corr_vector = []
193-
194- for x in range (signal1 .shape [1 ]):
195- corr_vector . append ( pearsonr ( signal1 [:, x ], signal2 [:, x ])[ 0 ])
179+ corr_vector = [
180+ pearsonr ( signal1 [:, x ], signal2 [:, x ])[ 0 ]
181+ for x in range (signal1 .shape [1 ])
182+ ]
196183 pdb .set_trace ()
197184 return np .array (corr_vector )
198185
@@ -239,27 +226,17 @@ def sqrt_diff_norm(signal1, signal2, len_bin):
239226def inner_pearsonr_BUGGY (signal1 , len_bin ):
240227 signal1 = np .reshape (signal1 [:, 0 : int ((signal1 .shape [1 ] / len_bin ) * len_bin )], (signal1 .shape [0 ], signal1 .shape [1 ] / len_bin , len_bin ), len_bin )
241228 return signal1
242- signal1 = signal1 .sum (axis = 2 )
243-
244- corr_vector = []
245-
246- for x in range (signal1 .shape [1 ]):
247- corr_vector .append (pearsonr (signal1 [:, 0 ], signal1 [:, x ])[0 ])
248-
249- return corr_vector
250229
251230
252231def inner_pearsonr (signal1 , len_bin ):
253232 signal1 = np .reshape (signal1 , (signal1 .shape [0 ], signal1 .shape [1 ] / len_bin , len_bin ))
254233
255234 signal1 = signal1 .sum (axis = 2 )
256235
257- corr_vector = []
258-
259- for x in range (signal1 .shape [1 ]):
260- corr_vector .append (pearsonr (signal1 [:, 0 ], signal1 [:, x ])[0 ])
261-
262- return corr_vector
236+ return [
237+ pearsonr (signal1 [:, 0 ], signal1 [:, x ])[0 ]
238+ for x in range (signal1 .shape [1 ])
239+ ]
263240
264241
265242if __name__ == "__main__" :
0 commit comments