evaluation of the trial_summary initiated. Now the fun beginns
This commit is contained in:
parent
3c9bbb6a91
commit
42640c17d9
@ -177,8 +177,9 @@ def main(data_folder=None):
|
||||
sr = 20_000
|
||||
light_start_sec = 3*60*60
|
||||
|
||||
trial_summary = pd.DataFrame(columns=['group', 'win_fish', 'lose_fish', 'sex_win', 'sex_lose', 'size_win', 'size_lose', 'EODf_win', 'EODf_lose',
|
||||
'exp_win', 'exp_lose', 'chirps_win', 'chirps_lose', 'rises_win', 'rise_lose'])
|
||||
trial_summary = pd.DataFrame(columns=['recording', 'group', 'win_fish', 'lose_fish', 'sex_win', 'sex_lose',
|
||||
'size_win', 'size_lose', 'EODf_win', 'EODf_lose', 'exp_win', 'exp_lose',
|
||||
'chirps_win', 'chirps_lose', 'rises_win', 'rise_lose', 'draw'])
|
||||
trial_summary_row = {f'{s}':None for s in trial_summary.keys()}
|
||||
|
||||
for trial_idx in tqdm(np.arange(len(trials_meta)), desc='Trials'):
|
||||
@ -186,6 +187,7 @@ def main(data_folder=None):
|
||||
|
||||
group = trials_meta['group'][trial_idx]
|
||||
recording = trials_meta['recording'][trial_idx][1:-1]
|
||||
|
||||
print('')
|
||||
print(recording)
|
||||
rec_id1 = trials_meta['rec_id1'][trial_idx]
|
||||
@ -209,6 +211,16 @@ def main(data_folder=None):
|
||||
|
||||
#############################################################################################################
|
||||
### meta collect
|
||||
if (winner_fish := trials_meta['winner'][trial_idx]) == -1:
|
||||
pass
|
||||
elif np.isnan(winner_fish):
|
||||
continue
|
||||
elif winner_fish != trials_meta['fish1'][trial_idx] and winner_fish != trials_meta['fish2'][trial_idx]:
|
||||
embed()
|
||||
quit()
|
||||
print(f'not participating winner in {recording}!!!')
|
||||
continue
|
||||
|
||||
win_id = rec_id1 if trials_meta['fish1'][trial_idx] == trials_meta['winner'][trial_idx] else rec_id2
|
||||
lose_id = rec_id2 if trials_meta['fish1'][trial_idx] == trials_meta['winner'][trial_idx] else rec_id1
|
||||
|
||||
@ -270,7 +282,8 @@ def main(data_folder=None):
|
||||
lose_fish_no = trials_meta['fish2'][trial_idx] if trials_meta['fish1'][trial_idx] == trials_meta['winner'][trial_idx] else trials_meta['fish1'][trial_idx]
|
||||
|
||||
trial_summary.loc[len(trial_summary)] = trial_summary_row
|
||||
trial_summary.iloc[-1] = {'group': trials_meta['group'][trial_idx],
|
||||
trial_summary.iloc[-1] = {'recording' : recording,
|
||||
'group': trials_meta['group'][trial_idx],
|
||||
'win_fish': win_fish_no,
|
||||
'lose_fish': lose_fish_no,
|
||||
'sex_win': 'n',
|
||||
@ -284,7 +297,8 @@ def main(data_folder=None):
|
||||
'chirps_win': len(chirp_times[0]),
|
||||
'chirps_lose': len(chirp_times[1]),
|
||||
'rises_win': len(rise_idx_int[0]),
|
||||
'rise_lose': len(rise_idx_int[1])
|
||||
'rise_lose': len(rise_idx_int[1]),
|
||||
'draw': 1 if trials_meta['winner'][trial_idx] == -1 else 0
|
||||
}
|
||||
# embed()
|
||||
|
||||
@ -340,9 +354,6 @@ def main(data_folder=None):
|
||||
plt.savefig(os.path.join(os.path.join(os.path.split(__file__)[0], 'figures', f'{recording}.png')), dpi=300)
|
||||
plt.close()
|
||||
|
||||
embed()
|
||||
quit()
|
||||
|
||||
fig = plt.figure(figsize=(20/2.54, 20/2.54))
|
||||
gs = gridspec.GridSpec(2, 2, left=0.1, bottom=0.1, right=0.95, top=0.95, height_ratios=[1, 3], width_ratios=[3, 1])
|
||||
ax = fig.add_subplot(gs[1, 0])
|
||||
@ -380,7 +391,8 @@ def main(data_folder=None):
|
||||
sex = 'm'
|
||||
trial_summary['sex_win'][(trial_summary['group'] == g) & (trial_summary['win_fish'] == f)] = sex
|
||||
trial_summary['sex_lose'][(trial_summary['group'] == g) & (trial_summary['lose_fish'] == f)] = sex
|
||||
|
||||
embed()
|
||||
quit()
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
44
trial_summary.csv
Normal file
44
trial_summary.csv
Normal file
@ -0,0 +1,44 @@
|
||||
,recording,group,win_fish,lose_fish,sex_win,sex_lose,size_win,size_lose,EODf_win,EODf_lose,exp_win,exp_lose,chirps_win,chirps_lose,rises_win,rise_lose,draw
|
||||
0,2019-11-25-09_59,3,1,2,f,f,13.2,12.0,713.0544113886845,762.0273047058653,1,1,36,2657,22,165,0
|
||||
1,2019-11-26-10_00,3,4,3,m,m,15.5,17.5,883.141322780704,918.0584506431281,1,1,472,1322,17,481,0
|
||||
2,2019-11-27-10_00,3,5,6,f,f,14.4,12.65,728.1663791991439,650.6079943890219,1,1,16,2041,14,311,0
|
||||
3,2019-11-28-09_58,3,1,3,f,m,13.2,17.5,720.9491781126661,888.9029901347602,2,2,370,30,26,37,0
|
||||
4,2019-11-29-09_59,3,4,2,m,f,15.5,12.0,927.3677808126133,757.8912786740188,2,2,119,1232,56,161,0
|
||||
5,2019-12-02-10_00,3,3,5,m,f,17.5,14.4,866.5433040990971,719.3596160671729,3,2,2,759,28,165,0
|
||||
6,2019-12-03-10_01,3,1,6,f,f,13.2,12.65,709.888382193265,645.345316200243,3,2,61,3191,23,230,0
|
||||
7,2019-12-04-10_00,3,3,2,m,f,17.5,12.0,867.515070390076,732.5567785654214,4,3,2,1005,31,73,0
|
||||
8,2019-12-06-10_00,3,4,6,m,f,15.5,12.65,912.2881743174412,652.9837532796978,3,3,34,306,58,188,0
|
||||
9,2019-12-09-10_00,3,5,2,f,f,14.4,12.0,715.5845509704202,726.7506510306094,4,4,446,2345,10,180,0
|
||||
10,2019-12-10-10_00,3,3,6,m,f,17.5,12.65,853.973867720756,640.9374451096469,5,4,1,205,31,165,0
|
||||
11,2019-12-11-10_00,3,4,1,m,f,15.5,13.2,909.5564241038855,704.759181051688,4,5,44,260,48,165,0
|
||||
12,2019-12-12-10_00,3,2,6,f,f,12.0,12.65,708.2029632781753,649.3215729301896,5,5,55,1489,26,152,0
|
||||
13,2019-12-16-10_00,3,4,5,m,f,15.5,14.4,911.4475182245616,734.3463774893517,5,5,52,963,39,123,0
|
||||
14,2020-03-13-10_00,4,5,4,m,f,12.5,12.266666666666666,726.3470010966499,705.1654694195288,2,2,54,941,70,177,0
|
||||
15,2020-03-16-10_00,4,3,1,m,f,11.933333333333332,11.299999999999999,852.2318545355058,642.0347177867645,3,3,1304,724,57,154,0
|
||||
16,2020-03-18-10_34,4,5,3,m,m,12.5,11.933333333333332,725.8257351336636,863.6524533012707,3,4,16557,2089,339,43,1
|
||||
17,2020-03-19-10_00,4,1,4,f,f,11.299999999999999,12.266666666666666,659.5490944255365,697.5034008357667,4,4,52,1583,36,197,0
|
||||
18,2020-03-20-10_00,4,5,2,m,f,12.5,12.266666666666666,,,4,4,45,665,75,76,0
|
||||
19,2020-03-23-09_58,4,2,1,f,f,12.266666666666666,11.299999999999999,699.4914052830558,654.7533296886725,5,5,84,1158,17,67,1
|
||||
20,2020-03-24-10_00,4,4,3,f,m,12.266666666666666,11.933333333333332,684.578069899078,854.0458114588357,5,5,883,2,184,86,1
|
||||
21,2020-03-25-10_00,4,5,1,m,f,12.5,11.299999999999999,733.5001619575638,647.9874053272127,5,6,819,1831,48,70,1
|
||||
22,2020-03-31-09_59,4,3,2,m,f,11.933333333333332,12.266666666666666,860.5459022492297,692.2978867242133,6,6,10,225,26,50,1
|
||||
23,2020-05-11-10_00,5,1,2,m,f,12.333333333333334,13.166666666666666,834.369973908149,667.9762847453638,1,1,4,631,25,230,0
|
||||
24,2020-05-12-10_00,5,5,3,f,m,19.0,10.666666666666666,697.6088902440882,818.2108387976053,1,1,1,117,8,429,0
|
||||
25,2020-05-13-10_00,5,4,2,m,f,17.5,13.166666666666666,885.2957289220773,681.372424868242,1,2,34,614,22,98,0
|
||||
26,2020-05-14-10_00,5,5,1,f,m,19.0,12.333333333333334,703.5828000211009,840.457519990521,2,2,83,316,10,232,0
|
||||
27,2020-05-15-10_00,5,4,3,m,m,17.5,10.666666666666666,875.2647282681933,824.4852744512042,2,2,98,745,27,255,0
|
||||
28,2020-05-18-10_00,5,2,3,f,m,13.166666666666666,10.666666666666666,677.7516154017525,837.794665426305,3,3,338,530,28,270,0
|
||||
29,2020-05-19-10_00,5,5,4,f,m,19.0,17.5,699.3246023368515,881.0368775083901,3,3,628,1457,2,256,0
|
||||
30,2020-05-21-10_00,5,5,2,f,f,19.0,13.166666666666666,702.20947265625,684.967041015625,4,4,86,671,43,257,0
|
||||
31,2020-05-25-10_00,5,4,1,m,m,17.5,12.333333333333334,880.891870115058,842.1688052017244,4,4,125,165,37,122,0
|
||||
32,2020-05-27-10_00,6,3,1,f,m,13.5,9.0,686.4001347696975,815.713300982056,1,1,17,92,8,330,0
|
||||
33,2020-05-28-10_00,6,2,4,m,f,11.0,11.0,774.6150067187118,728.8412253286924,1,1,69,684,84,342,0
|
||||
34,2020-05-29-10_00,6,5,3,m,f,17.5,13.5,805.4542233630881,681.7640419584177,1,2,373,478,18,58,0
|
||||
35,2020-06-02-10_00,6,1,4,m,f,9.0,11.0,820.4496652837709,723.7667250846596,2,2,485,1253,69,309,0
|
||||
36,2020-06-03-10_10,6,5,2,m,m,17.5,11.0,810.7042669363011,783.6640529162586,2,2,54,182,16,74,0
|
||||
37,2020-06-04-10_00,6,3,4,f,f,13.5,11.0,695.5929553333448,714.6541711375795,3,3,44,994,34,291,0
|
||||
38,2020-06-05-10_00,6,2,1,m,m,11.0,9.0,804.8998142492978,827.5225072258723,3,3,117,425,41,143,0
|
||||
39,2020-06-08-10_00,6,5,3,m,f,17.5,13.5,816.1812754102803,691.6736840654672,3,4,1087,170,8,14,1
|
||||
40,2020-06-09-10_00,6,3,2,f,m,13.5,11.0,691.8529359583595,798.4298849024372,5,4,18,632,21,391,0
|
||||
41,2020-06-10-10_00,6,5,1,m,m,17.5,9.0,815.498890219021,828.5259822280207,4,4,66,269,1,14,0
|
||||
42,2020-06-11-10_00,6,5,4,m,f,17.5,11.0,817.6355361855158,730.7609124893474,5,4,144,1100,2,54,0
|
|
126
trial_summary_eval.py
Normal file
126
trial_summary_eval.py
Normal file
@ -0,0 +1,126 @@
|
||||
import numpy as np
|
||||
import itertools
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.gridspec as gridspec
|
||||
from IPython import embed
|
||||
|
||||
colors = ['#BA2D22', '#53379B', '#F47F17', '#3673A4', '#AAB71B', '#DC143C', '#1E90FF']
|
||||
female_color, male_color = '#e74c3c', '#3498db'
|
||||
Wc, Lc = 'darkgreen', '#3673A4'
|
||||
|
||||
|
||||
def plot_chirp_rise_count_per_pairing(trial_summary):
|
||||
win_chirps = []
|
||||
lose_chirps = []
|
||||
|
||||
win_rises = []
|
||||
lose_rises = []
|
||||
|
||||
for win_sex, lose_sex in itertools.product(['m', 'f'], repeat=2):
|
||||
win_chirps.append(trial_summary['chirps_win'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
lose_chirps.append(trial_summary['chirps_lose'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
win_rises.append(trial_summary['rises_win'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
lose_rises.append(trial_summary['rise_lose'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
|
||||
|
||||
fig = plt.figure(figsize=(20/2.54, 12/2.54))
|
||||
gs = gridspec.GridSpec(1, 1, left=0.1, bottom=0.1, right=0.95, top=0.95)
|
||||
ax = fig.add_subplot(gs[0, 0])
|
||||
ax.boxplot(win_chirps, positions=np.arange(len(win_chirps))-0.15, widths= .2, sym='')
|
||||
ax.boxplot(lose_chirps, positions=np.arange(len(lose_chirps))+0.15, widths= .2, sym='')
|
||||
|
||||
ax.set_xticks(np.arange(len(win_chirps)))
|
||||
# ax.set_xticklabels([u'\u2642\u2642', u'\u2642\u2640', u'\u2640\u2642', u'\u2640\u2640'])
|
||||
ax.set_xticklabels(['mm', 'mf', 'fm', 'ff'])
|
||||
y0, y1 = ax.get_ylim()
|
||||
for i in range(len(win_chirps)):
|
||||
ax.text(i, y1, f'n={len(win_chirps[i]):.0f}', fontsize=10, ha='center', va='bottom')
|
||||
ax.set_ylim(top = y1*1.1)
|
||||
ax.set_ylabel('chirps [n]', fontsize=12)
|
||||
plt.tick_params(labelsize=10)
|
||||
|
||||
fig = plt.figure(figsize=(20/2.54, 12/2.54))
|
||||
gs = gridspec.GridSpec(1, 1, left=0.1, bottom=0.1, right=0.95, top=0.95)
|
||||
ax = fig.add_subplot(gs[0, 0])
|
||||
ax.boxplot(win_rises, positions=np.arange(len(win_rises))-0.15, widths= .2, sym='')
|
||||
ax.boxplot(lose_rises, positions=np.arange(len(lose_rises))+0.15, widths= .2, sym='')
|
||||
|
||||
ax.set_xticks(np.arange(len(win_rises)))
|
||||
# ax.set_xticklabels([u'\u2642\u2642', u'\u2642\u2640', u'\u2640\u2642', u'\u2640\u2640'])
|
||||
ax.set_xticklabels(['mm', 'mf', 'fm', 'ff'])
|
||||
y0, y1 = ax.get_ylim()
|
||||
for i in range(len(win_rises)):
|
||||
ax.text(i, y1, f'n={len(win_rises[i]):.0f}', fontsize=10, ha='center', va='bottom')
|
||||
ax.set_ylim(top = y1*1.1)
|
||||
ax.set_ylabel('rises [n]', fontsize=12)
|
||||
plt.tick_params(labelsize=10)
|
||||
plt.show()
|
||||
|
||||
def plot_chirp_rise_count_per_vs_size_diff(trial_summary):
|
||||
win_chirps = []
|
||||
lose_chirps = []
|
||||
|
||||
win_rises = []
|
||||
lose_rises = []
|
||||
|
||||
d_size = []
|
||||
|
||||
for win_sex, lose_sex in itertools.product(['m', 'f'], repeat=2):
|
||||
win_chirps.append(trial_summary['chirps_win'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
lose_chirps.append(trial_summary['chirps_lose'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
win_rises.append(trial_summary['rises_win'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
lose_rises.append(trial_summary['rise_lose'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy())
|
||||
|
||||
w_size = trial_summary['size_win'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy()
|
||||
l_size = trial_summary['size_lose'][(trial_summary["sex_win"] == win_sex) &
|
||||
(trial_summary["sex_lose"] == lose_sex) &
|
||||
(trial_summary["draw"] == 0)].to_numpy()
|
||||
|
||||
d_size.append(w_size-l_size)
|
||||
embed()
|
||||
quit()
|
||||
|
||||
fig = plt.figure(figsize=(20/2.54, 12/2.54))
|
||||
gs = gridspec.GridSpec(1, 1, left=0.1, bottom=0.1, right=0.95, top=0.95)
|
||||
ax = fig.add_subplot(gs[0, 0])
|
||||
mek = ['k', 'None', 'None', 'k']
|
||||
|
||||
c = [male_color, male_color, female_color, female_color]
|
||||
for i in range(len(lose_rises)):
|
||||
ax.plot(d_size[i]*-1, lose_rises[i], 'p', color=c[i], markeredgecolor=mek[i], markersize=8)
|
||||
|
||||
ax.set_ylabel('rises [n]', fontsize=12)
|
||||
plt.tick_params(labelsize=10)
|
||||
|
||||
|
||||
def main():
|
||||
trial_summary = pd.read_csv('trial_summary.csv', index_col=0)
|
||||
|
||||
plot_chirp_rise_count_per_pairing(trial_summary)
|
||||
|
||||
plot_chirp_rise_count_per_vs_size_diff(trial_summary)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user