Source code for hippounit.capabilities.cap_ReceivesCurrentStimuli_ProvidesResponse_MultipleLocations
import sciunit
from sciunit import Capability
[docs]class ReceivesSquareCurrent_ProvidesResponse_MultipleLocations(sciunit.Capability):
"""Indicates that current can be injected into the model as
a square pulse. And records at multiple locations."""
[docs] def inject_current_record_respons_multiple_loc(self, amp, delay, dur, section_stim, loc_stim, dend_locations):
"""
This function must be implemented by the model.
Must return numpy arrays containing the time vector and the voltage values recorded on the stimulus location (soma), and a nested dictionary containing voltage vectors of the recorded dendritic locations at the examined distances in this test.
eg.: {dist1: { ('trunk_segment1',location1): numpy.array(voltage trace),
('trunk_segment2',location2): numpy.array(voltage trace)
},
{ ('trunk_segment3',location3): numpy.array(voltage trace),
('trunk_segment4',location4): numpy.array(voltage trace)
},
Parameters
----------
amp : float
amplitude of the current injection (mV)
delay : float
delay before the current injection (ms)
duration : float
duration of the current pulse
section_stim : str
the name of the stimulated section (eg. "soma")
loc_stim : float
location on the stimulated section (eg. 0.5)
dend_locations : list
list of recording locations in the form: dend_loc = (dist1, ['trunk_segment1_1',location],['trunk_segment1_2',location]), (dist2, ['trunk_segment2',location]),(dist3, ['trunk_segment3',location]), (dist4, ['trunk_segment4',location])
"""
raise NotImplementedError()
[docs] def get_multiple_vm(self, amp, delay, dur, section_stim, loc_stim, dend_locations):
"""
This function is called by the test and calls the inject_current_record_respons_multiple_loc() function.
"""
# v : dictionary - keys: dendritic location, values: the voltage trace for each recording locations
t, v_stim, v = self.inject_current_record_respons_multiple_loc(amp, delay, dur, section_stim, loc_stim, dend_locations)
return t, v_stim, v