def simulate(self, current_base, current_rebound): sim = self.env.Simulation(**self.sim_kwargs) cell = self.cell_functor(sim=sim) soma_loc = cell.get_location('soma') cc1 = sim.create_currentclamp(name="cclamp", amp=current_base, dur="100:ms", delay="50:ms", cell_location=soma_loc) cc2 = sim.create_currentclamp(name="cclamp2", amp=-1 * current_rebound, dur="5:ms", delay="80:ms", cell_location=soma_loc) cc3 = sim.create_currentclamp(name="cclamp3", amp=-1 * current_rebound, dur="5:ms", delay="120:ms", cell_location=soma_loc) sim.record(cc1, name="Current1", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cc2, name="Current2", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cc3, name="Current3", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cell, name="SomaVoltage", cell_location=soma_loc, what=Cell.Recordables.MembraneVoltage, description="Response to iInj1=%s iInj2=%s" % (current_base, current_rebound)) res = sim.run() #SimulationSummariser(res, "/home/michael/Desktop/ForRoman.pdf") i = res.get_trace('Current1').convert_to_fixed( unit("0.5:ms")) + res.get_trace('Current2').convert_to_fixed( unit("0.5:ms")) + res.get_trace('Current3').convert_to_fixed( unit("0.5:ms")) i = TraceConverter.rebase_to_fixed_dt(res.get_trace('Current1' ), dt=unit('0.5:ms')) \ + TraceConverter.rebase_to_fixed_dt(res.get_trace('Current2' ), dt=unit('0.5:ms')) \ + TraceConverter.rebase_to_fixed_dt(res.get_trace('Current3' ), dt=unit('0.5:ms')) i.tags = [StandardTags.Current] return (res.get_trace('SomaVoltage'), i)
def simulate(self, current_base, current_rebound): sim = self.env.Simulation(**self.sim_kwargs) cell = self.cell_functor(sim=sim) soma_loc = cell.get_location('soma') cc1 = sim.create_currentclamp(name="cclamp", amp=current_base, dur="100:ms", delay="50:ms", cell_location=soma_loc) cc2 = sim.create_currentclamp(name="cclamp2", amp=-1*current_rebound, dur="5:ms", delay="80:ms", cell_location=soma_loc) cc3 = sim.create_currentclamp(name="cclamp3", amp=-1*current_rebound, dur="5:ms", delay="120:ms", cell_location=soma_loc) sim.record(cc1, name="Current1", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cc2, name="Current2", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cc3, name="Current3", what=CurrentClamp.Recordables.Current, description="CurrentClampCurrent") sim.record(cell, name="SomaVoltage", cell_location=soma_loc, what=Cell.Recordables.MembraneVoltage, description="Response to iInj1=%s iInj2=%s"%(current_base, current_rebound)) res = sim.run() #SimulationSummariser(res, "/home/michael/Desktop/ForRoman.pdf") i = res.get_trace('Current1').convert_to_fixed(unit("0.5:ms")) + res.get_trace('Current2').convert_to_fixed(unit("0.5:ms")) + res.get_trace('Current3').convert_to_fixed(unit("0.5:ms")) i = TraceConverter.rebase_to_fixed_dt(res.get_trace('Current1' ), dt=unit('0.5:ms')) \ + TraceConverter.rebase_to_fixed_dt(res.get_trace('Current2' ), dt=unit('0.5:ms')) \ + TraceConverter.rebase_to_fixed_dt(res.get_trace('Current3' ), dt=unit('0.5:ms')) i.tags = [StandardTags.Current] return (res.get_trace('SomaVoltage'), i)
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ---------------------------------------------------------------------- from morphforge.traces.traceobjpluginctrl import copy_trace_attrs from morphforge.traces.traceobjpluginctrl import TraceMethodCtrl from morphforge.traces import TraceFixedDT from morphforge.traces import TraceVariableDT from morphforge.traces import TracePiecewise from morphforge.traces.methods.MMtrace_conversion import TraceConverter, TraceApproximator # Conversion to: FixedDT: ######################### TraceMethodCtrl.register(TraceFixedDT, 'convert_to_fixed', lambda tr, dt: copy_trace_attrs(tr_old=tr, tr_new=TraceConverter.rebase_to_fixed_dt(tr, dt))) TraceMethodCtrl.register(TraceVariableDT, 'convert_to_fixed', lambda tr, dt: copy_trace_attrs(tr_old=tr, tr_new=TraceConverter.rebase_to_fixed_dt(tr, dt))) TraceMethodCtrl.register(TracePiecewise, 'convert_to_fixed', lambda tr, dt: copy_trace_attrs(tr_old=tr, tr_new=TraceConverter.rebase_to_fixed_dt(tr, dt))) # Conversion to VariableDT: ########################### TraceMethodCtrl.register( TraceFixedDT, 'convert_to_variable', lambda tr, eps: copy_trace_attrs(tr_old=tr, tr_new=TraceConverter.reduce_to_variable_dt_trace(original_trace=tr, epsilon=eps))) TraceMethodCtrl.register( TraceVariableDT,
def wrapped_func(self, *args, **kwargs): tr_new = TraceConverter.rebase_to_fixed_dt(self, dt=fixed_trace_dt) return func(tr_new, *args, **kwargs)