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]
예제 #2
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)
예제 #3
0
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)
예제 #4
0
#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()
예제 #5
0
 def run_internal(self):
     HH.run_neurons(self.efferent_neurons, self.run_time)