Skip to content

Commit

Permalink
GH AllenInstitute#533 - Add tests for sweep with autobias_v = None
Browse files Browse the repository at this point in the history
Setup a test sweep with autobias_v = None and added assert statements to
functions to verify outputs for sweeps with autobias_v = None. Removed
test_none_autobias_v function as no longer returning delta = None if
autobias_v = None, but returning delta between mean pre and post-
stimulus baselines.
  • Loading branch information
ru57y34nn committed Oct 8, 2021
1 parent 75972db commit 1ac7139
Showing 1 changed file with 36 additions and 18 deletions.
54 changes: 36 additions & 18 deletions tests/test_pre_and_post_vm_delta.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,29 @@
dt = 1./sampling_rate
t = np.arange(0,len(i))*dt

passing_sweep = Sweep(t, passing_v, i, sampling_rate=sampling_rate, autobias_v=autobias_v, clamp_mode="CurrentClamp")
failing_sweep = Sweep(t, failing_v, i, sampling_rate=sampling_rate, autobias_v=autobias_v, clamp_mode="CurrentClamp")
passing_sweep = Sweep(t, passing_v, i, "CurrentClamp", sampling_rate, sweep_number=1, autobias_v=autobias_v)
failing_sweep = Sweep(t, failing_v, i, "CurrentClamp", sampling_rate, sweep_number=1, autobias_v=autobias_v)
no_autobias_sweep = Sweep(t, passing_v, i, "CurrentClamp", sampling_rate, sweep_number=1, autobias_v=None)

passing_mean_first_stability_epoch, _ = qcf.measure_vm(passing_v[4:7])
passing_mean_last_stability_epoch, _ = qcf.measure_vm(passing_v[12:16])
passing_mean_first_stability_epoch, _ = qcf.measure_vm(passing_sweep.v[4:7])
passing_mean_last_stability_epoch, _ = qcf.measure_vm(passing_sweep.v[12:16])

failing_mean_first_stability_epoch, _ = qcf.measure_vm(failing_v[4:7])
failing_mean_last_stability_epoch, _ = qcf.measure_vm(failing_v[12:16])
failing_mean_first_stability_epoch, _ = qcf.measure_vm(failing_sweep.v[4:7])
failing_mean_last_stability_epoch, _ = qcf.measure_vm(failing_sweep.v[12:16])

no_autobias_mean_first_stability_epoch, _ = qcf.measure_vm(no_autobias_sweep.v[4:7])
no_autobias_mean_last_stability_epoch, _ = qcf.measure_vm(no_autobias_sweep.v[12:16])

passing_qc_features = qfex.current_clamp_sweep_qc_features(passing_sweep, False)
failing_qc_features = qfex.current_clamp_sweep_qc_features(failing_sweep, False)
no_autobias_qc_features = qfex.current_clamp_sweep_qc_features(no_autobias_sweep, False)


def test_sweep_autobias_v():

assert passing_sweep.autobias_v == autobias_v
assert failing_sweep.autobias_v == autobias_v
assert no_autobias_sweep.autobias_v == None


def test_measure_vm_delta():
Expand All @@ -43,32 +49,44 @@ def test_measure_vm_delta():
assert round(qcf.measure_vm_delta(failing_mean_first_stability_epoch, failing_sweep.autobias_v), 2) == 1.01
assert round(qcf.measure_vm_delta(failing_mean_last_stability_epoch, failing_sweep.autobias_v), 2) == 1.01

assert round(qcf.measure_vm_delta(no_autobias_mean_first_stability_epoch, no_autobias_mean_last_stability_epoch), 2) == 1.98


def test_current_clamp_qc_features():

assert passing_qc_features["pre_vm_delta_mv"] < vm_delta_mv_max
assert passing_qc_features["post_vm_delta_mv"] < vm_delta_mv_max
assert passing_qc_features["vm_delta_mv"] == None

assert failing_qc_features["pre_vm_delta_mv"] > vm_delta_mv_max
assert failing_qc_features["post_vm_delta_mv"] > vm_delta_mv_max
assert failing_qc_features["vm_delta_mv"] == None

assert no_autobias_qc_features["vm_delta_mv"] > vm_delta_mv_max
assert no_autobias_qc_features["pre_vm_delta_mv"] == None
assert no_autobias_qc_features["post_vm_delta_mv"] == None


def test_qc_current_clamp_sweep():

failing_qc_features["sweep_number"] = 1
failing_qc_features["stimulus_name"] = "test_stimulus"
sweep_num = 1
stim_name = "test_stimulus"

fail_tags = qfev.qc_current_clamp_sweep(failing_qc_features, False)

assert fail_tags[0] == "pre Vm delta: 1.010 above threshold:1.000"
assert fail_tags[1] == "post Vm delta: 1.010 above threshold:1.000"
passing_qc_features["sweep_number"] = sweep_num
failing_qc_features["sweep_number"] = sweep_num
no_autobias_qc_features["sweep_number"] = sweep_num
passing_qc_features["stimulus_name"] = stim_name
failing_qc_features["stimulus_name"] = stim_name
no_autobias_qc_features["stimulus_name"] = stim_name

passing_fail_tags = qfev.qc_current_clamp_sweep(passing_qc_features, False)
failing_fail_tags = qfev.qc_current_clamp_sweep(failing_qc_features, False)
no_autobias_fail_tags = qfev.qc_current_clamp_sweep(no_autobias_qc_features, False)

assert passing_fail_tags == []

def test_none_autobias_v():
assert failing_fail_tags[0] == "pre Vm delta: 1.010 above threshold: 1.000"
assert failing_fail_tags[1] == "post Vm delta: 1.010 above threshold: 1.000"

none_autobias_v = None
sweep = Sweep(t, passing_v, i, sampling_rate=sampling_rate, autobias_v=none_autobias_v, clamp_mode="CurrentClamp")
delta = qcf.measure_vm_delta(passing_mean_first_stability_epoch, sweep.autobias_v)

assert delta is None
assert no_autobias_fail_tags == ["Vm delta: 1.980 above threshold: 1.000"]

0 comments on commit 1ac7139

Please sign in to comment.