def run_loop(params): external_field, radii = params print 'radii: ', radii cort_neuron = MLEF.MorrisLecarElectricField(0.2, soma_current=lambda t: soma_current[t], external_field=lambda t: external_field, p=0.2) MLEF.run_neurons([cort_neuron], run_time) synapse = S.EventTrace(cort_neuron.datas[:,0], peak=0.2) effe_neuron = HH.HodgkinHuxley_passive(radii, I=lambda t: synapse.result_trace[t]) HH.run_neurons([effe_neuron], run_time) return effe_neuron.datas[:,0]
os.chdir('/home/samwiq/snpla/seq-posterior-approx-w-nf-dev/hodgkin_huxley') else: os.chdir('/home/samuel/Documents/projects/seq posterior approx w nf/seq posterior approx w nf dev/hodgkin_huxley') import torch import HodgkinHuxley import numpy as np import functions as func import time nbr_samples = int(len(HodgkinHuxley.h.t_vec) * HodgkinHuxley.h.dt) job = str(data_set) + "_" + str(nbr_params) + "_" + str(nbr_samples) + "_" + str(seed) # Gen data model = HodgkinHuxley.HodgkinHuxley(data_set, nbr_params) v_true, Iinj = model.simulator(model.log_theta_true, seed_data, True) summary_stats_obs = model.calculate_summary_statistics(v_true) # set up model simulator def simulator_wrapper(params): # return tensor return model.calculate_summary_statistics(model.simulator(params, None)) # run pilot to calc mean and std of summary stats whiteness_params = func.pilot_run(model, simulator_wrapper, summary_stats_obs)
import numpy as np import matplotlib.pyplot as plt import MorrisLecarElectricField as MLEF import HodgkinHuxley as HH import EventTrace as S import Muscles as M run_time = 200 input_current = np.abs(30 + 50*np.sin(100 * np.linspace(0, 0.1, run_time / 0.1))) input_current = 40 * np.ones(run_time / 0.1) cort_neuron = MLEF.MorrisLecarElectricField(soma_current=lambda t: input_current[t]) MLEF.run_neurons([cort_neuron], run_time) synapse = S.EventTrace(cort_neuron.datas[:,0], peak=0.2) effe_neuron = HH.HodgkinHuxley_passive(I=lambda t: synapse.result_trace[t]) HH.run_neurons([effe_neuron], run_time) muscle_fiber0 = M.MuscleFiber(effe_neuron, 1, 5.0, 7.0) muscle_fiber1 = M.MuscleFiber(effe_neuron, 5, 40, 80.0) muscle = M.MotorUnit([muscle_fiber0, muscle_fiber1], 2, ) plt.figure() plt.subplot(511) plt.plot(input_current) plt.subplot(512) plt.plot(cort_neuron.datas[:,0]) plt.subplot(513) plt.plot(synapse.result_trace) plt.subplot(514) plt.plot(effe_neuron.datas[:,0]) plt.subplot(515) plt.plot(muscle.total_force)
#m=solver.Model1(p) #fig=plt.figure(1) #fig.canvas.set_window_title('Model1') #output_plot = plt.plot(m.output, 'b', label='output') #plt.legend([output_plot], ['output']) #plt.show() #m2=solver.Model2(p) #fig=plt.figure(2) #fig.canvas.set_window_title('Model2') #output_plot = plt.plot(m2.output[0,:], 'b', label='output') #output_plot = plt.plot(m2.output[1,:], 'r', label='output') #plt.show() m3 = HodgkinHuxley.HoHu(p, i.stim_current) fig = plt.figure(2) fig.canvas.set_window_title('Hogdkin-Huxley model') plt.subplot(2, 1, 1) times = np.linspace(0, p.time_max, num=p.samples) plt.plot(times, m3.V, 'b', label='Vm') plt.title('Membrane potential') plt.ylabel('Vm [mV]') plt.xlabel('[msec]') plt.subplot(2, 1, 2) plt.title('Stimulation') plt.plot(times, i.stim_current, 'b', label='I0') plt.ylabel('I0 [uA]') plt.xlabel('[msec]') plt.show()
def run_internal(self): HH.run_neurons(self.efferent_neurons, self.run_time)