# %%
import numpy as np
import pickle
with open('tuning_3.4.pickle', 'rb') as f:
data = pickle.load(f)
#%%
data['neuron1'].shape
import matplotlib.pyplot as plt
# plt.plot(data['stim'],data['neuron1'].mean(axis=0))
# plt.show()
# plt.plot(data['stim'],data['neuron2'].mean(axis=0))
# plt.show()
# plt.plot(data['stim'],data['neuron3'].mean(axis=0))
# plt.show()
# plt.plot(data['stim'],data['neuron4'].mean(axis=0))
# plt.show()
import numpy as np
def fano(neuron):
d = data[neuron]
f = (100/10) * d.std(axis=0) / d.mean(axis=0)
return f
# calc r_max per neuron
r_max={}
for i in range(1,5):
n = f'neuron{i}'
print(f'fano of {n}:', np.nanmean(fano(n)))
# r_max_index = data[n].mean(axis=0).argmax()
# r_max[n] = data['stim'][r_max_index]
r_max[n] = data[n].mean(axis=0).max()
print('r_max: ', r_max)
#%%
# part 2 (last question)
with open('pop_coding_3.4.pickle', 'rb') as f:
pdata = pickle.load(f)
r0 = 0
v_total = [0,0]
for n in range(1,5):
v = pdata[f'c{n}'] * np.mean(pdata[f'r{n}']) / r_max[f'neuron{n}']
v_total += v
# map to the expected coord (clockwise, y-axis is zero degree)
v_deg = np.rad2deg(np.arctan(v_total)[1])
np.round(-(v_deg - 90) % 360)