Skip to content
Snippets Groups Projects
Commit 2bf73b7d authored by Noordijk, Ben's avatar Noordijk, Ben
Browse files

Added ability to extract unfiltered data

parent 77b82102
No related branches found
No related tags found
No related merge requests found
......@@ -15,8 +15,7 @@ class AbfData:
:param lowpass_freq: Frequency to use for low pass filter in KHz
:type lowpass_freq: float
"""
def __init__(self, abf_fn, normalization, lowpass_freq,
def __init__(self, abf_fn, normalization=False, lowpass_freq=80,
baseline_threshold=0.65):
self.abf_fn = abf_fn
self.normalization = normalization
......@@ -33,6 +32,7 @@ class AbfData:
@raw.setter
def raw(self, _):
abf = pyabf.ABF(self.abf_fn)
self.unfiltered_raw = abf.sweepY[~np.isnan(abf.sweepY)]
pyabf.filter.gaussian(abf, self.smoothing_sigma)
abf.setSweep(0)
# Drop NaNs because they show up at the edges due to smoothing
......@@ -61,7 +61,7 @@ class AbfData:
plt.hist(event_lengths, bins=100)
plt.show()
def get_pos(self, width, uncenter_kmer=True):
def get_pos(self, width, unfiltered=False):
while True:
event = random.choice(self.pos_events)
start_idx = event[0]
......@@ -73,13 +73,17 @@ class AbfData:
start_idx -= random_offset
end_idx += room_left - random_offset
assert (end_idx - start_idx) == width
if unfiltered:
return self.unfiltered_raw[start_idx: end_idx]
return self.raw[start_idx: end_idx]
def get_neg(self, width):
def get_neg(self, width, unfiltered=False):
while True:
random_idx = random.randint(0, len(self.raw)-width)
candidate_indices = np.arange(random_idx, random_idx+width)
if not np.any(np.isin(candidate_indices, self.flat_pos_indices)):
if unfiltered:
return self.unfiltered_raw[candidate_indices]
return self.raw[candidate_indices]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment