-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsniff_shift.py
More file actions
60 lines (51 loc) · 2.15 KB
/
sniff_shift.py
File metadata and controls
60 lines (51 loc) · 2.15 KB
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
"""
A couple of functions to translate recordings from time to sniff basis (counting sniffs not time)
"""
import numpy as np
from tqdm import tqdm
def spikes_to_sb(spike_times, resp_peaks):
"""
Translatate spike times into sniff basis
Args:
spike_times (array): Times of spikes
resp_peaks (array): Times of exhalation peaks
Returns:
spikes_sb (array): Spike times in sniff basis
"""
spikes_sb = []
print('Finding spikes in sb')
for i in tqdm(range(len(resp_peaks) - 1), leave=False):
sniff_spikes = spike_times[(spike_times >= resp_peaks[i]) & (spike_times < resp_peaks[i+1])]
sniff_spikes = [(j - resp_peaks[i])/(resp_peaks[i+1] - resp_peaks[i]) for j in sniff_spikes]
sniff_spikes = [j + i for j in sniff_spikes]
spikes_sb.append(sniff_spikes)
spikes_sb = np.hstack(spikes_sb)
return spikes_sb
def starts_to_sb(trial_starts, trial_ends, resp_peaks):
"""
Shifts trial starts into sniff basis
Args:
trial_starts (array): Times of trial starts
trial_ends (array): Times of trial ends
resp_peaks (array): Times of exhulation peaks
Returns:
trials_sb (array): Trial starts in sniff basis
trial_offs_sb (array): Trial ends in sniff basis
"""
trials_sb = []
trial_offs_sb = []
print('Finding trial starts in sb')
for i in tqdm(range(len(resp_peaks) - 1), leave=False):
sniff_trials = trial_starts[(trial_starts >= resp_peaks[i]) & (trial_starts < resp_peaks[i+1])]
sniff_trials = [(j - resp_peaks[i])/(resp_peaks[i+1] - resp_peaks[i]) for j in sniff_trials]
sniff_trials = [j + i for j in sniff_trials]
trials_sb.append(sniff_trials)
sniff_ends = trial_ends[(trial_ends >= resp_peaks[i]) & (trial_ends < resp_peaks[i+1])]
sniff_ends = [(j - resp_peaks[i])/(resp_peaks[i+1] - resp_peaks[i]) for j in sniff_ends]
sniff_ends = [j + i for j in sniff_ends]
trial_offs_sb.append(sniff_ends)
trials_sb = np.hstack(trials_sb)
trial_offs_sb = np.hstack(trial_offs_sb)
print(trials_sb[:10])
print(trial_offs_sb[:10])
return trials_sb, trial_offs_sb