-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProject.py
104 lines (90 loc) · 3.33 KB
/
Project.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import os, requests
from matplotlib import rcParams
from matplotlib import pyplot as plt
import numpy as np
rcParams['figure.figsize'] = [20, 4]
rcParams['font.size'] =15
rcParams['axes.spines.top'] = False
rcParams['axes.spines.right'] = False
rcParams['figure.autolayout'] = True
fname = []
for j in range(3):
fname.append('steinmetz_part{}.npz'.format(j))
url = ["https://osf.io/agvxh/download"]
url.append("https://osf.io/uv3mw/download")
url.append("https://osf.io/ehmw2/download")
for j in range(len(url)):
if not os.path.isfile(fname[j]):
try:
r = requests.get(url[j])
except requests.ConnectionError:
print("!!! Failed to download data !!!")
else:
if r.status_code != requests.codes.ok:
print("!!! Failed to download data !!!")
else:
with open(fname[j], "wb") as fid:
fid.write(r.content)
alldat = np.array([])
for j in range(len(fname)):
alldat = np.hstack((alldat, np.load('steinmetz_part%d.npz'%j, allow_pickle=True)['dat']))
###########################################################################################
number_trials=np.zeros(len(alldat))
trial_outcome=[]
number_neurons=np.zeros(len(alldat))
neurons=[]
spike_data=[]
response_time=[]
pupil_area=[]
names=[]
face_energy=[]
brain_regions=[]
stim_time=0.5
for i,dat in enumerate(alldat):
number_trials[i]=len(dat['contrast_left'])
number_neurons[i]=len(dat['brain_area'])
neurons.append(dat['brain_area'])
trial_outcome.append(dat['feedback_type'])
spike_data.append(dat['spks'])
response_time.append(dat['response_time'])
pupil_area.append(dat['pupil'][0])
names.append(dat['mouse_name'])
face_energy.append(dat['face'][0])
brain_regions.append(np.unique(dat['brain_area'],return_counts=True))
number_trials=number_trials.astype('int')
number_neurons=number_neurons.astype('int')
names=np.array(names)
brain_regions=np.array(brain_regions)
np.save('Brain_regions.npy',brain_regions)
Names=np.unique(names)
for i in range(len(alldat)):
np.save('Spike_data_{}.npy'.format(i),spike_data[i])
np.save('Response_time_{}.npy'.format(i),response_time[i])
np.save('Trial_outcome_{}.npy'.format(i),trial_outcome[i])
np.save('Stimulation_time.npy',stim_time)
pupil_area_names=[]
face_energy_names=[]
trial_outcome_names=[]
response_time_names=[]
for i,name in enumerate(Names):
name_id=np.where(names==name)[0]
pupili=[]
triali=[]
facei=[]
timei=[]
braini=[]
for j in name_id:
pupili.append(pupil_area[j])
triali.append(trial_outcome[j])
facei.append(face_energy[j])
timei.append(response_time[j])
pupil_area_names.append(np.concatenate(pupili,0))
trial_outcome_names.append(np.concatenate(triali,0))
face_energy_names.append(np.concatenate(facei,0))
response_time_names.append(np.concatenate(timei,0))
np.save('Pupil_area_'+name+'.npy',pupil_area_names[i])
np.save('Trial_outcome_'+name+'.npy',trial_outcome_names[i])
np.save('Face_energy_'+name+'.npy',face_energy_names[i])
np.save('Response_time'+name+'.npy',response_time_names[i])
np.save('Mice_names.npy',np.array(Names))
np.save('Mice_names_data_set.npy',np.array(names))