def generate(morphologies=[16,17,18,19]): for m in morphologies: # try: db = Database( db_name='postgresql://hal08.g-node.pri/morphjongleur', exec_role='morphjokey_admin', exec_path='mitsubachi') # must be mapped before Object is created #mapping = morphjongleur.orm.experiment.Mapper( db.engine ) mapping = morphjongleur.orm.morphology.Mapper( db.engine ) mapping.orm_map() morphology = db.load_morphology( m ) print morphology iclamp = morphjongleur.model.clamp.IClamp(morphology.biggest) r = morphjongleur.model.experiment.RecordingPoint(morphology.compartments[len(morphology.compartments)-1]) experiment = morphjongleur.model.experiment.Experiment( morphology, clamps=[iclamp], recording_points=r, neuron_passive_parameter=Neuron_passive_parameter(Ra=35.4,g=0.001) ) db.store( experiment ) print experiment experiment.run_simulation() voltage_trace = experiment.get_voltage_trace() db.store( voltage_trace ) print voltage_trace
def sinus_maxima(morphologies, rounds=3, frequency=265, xlim=None, ylim=None, picture_file='/tmp/', picture_formats=['png']): import numpy maxima = {} minima = {} titles = {} for morphology in morphologies: voltage_traces = {} cs = [morphology.biggest] cs.extend( morphology.leafs ) print len(cs) print cs leafs = {} for c in cs: leafs[c.radius] = c cs = leafs.values()#TODO: remove pseudo representative choice print len(cs) print cs maxima[morphology] = [] minima[morphology] = [] titles[morphology] = morphology.name for c in cs: recording_point = morphjongleur.model.experiment.RecordingPoint(compartment=morphology.biggest) print str(cs.index(c)+1)+"/"+str(len(cs)) iclamp = morphjongleur.util.pattern_generator.SinusClamp(compartment=c, frequency=frequency, duration=rounds/float(frequency) ) neuron_passive_parameter = Neuron_passive_parameter(Ra=35.4,g=0.001) experiment = morphjongleur.model.experiment.Experiment( morphology, clamps=[iclamp], recording_points=[recording_point], neuron_passive_parameter=neuron_passive_parameter, duration=rounds/float(frequency), dt=numpy.power(10, - (numpy.ceil(numpy.log10(265))+1) ),#one magnitue greater: e.g. 265 -> 1e-4, description = u"%f µm @ %i" % (c.radius, c.compartment_id) ) #print experiment experiment.run_simulation() voltage_trace = recording_point.get_voltage_trace() maxima[morphology].append(voltage_trace.v_max) minima[morphology].append(voltage_trace.v_min) #print voltage_trace voltage_traces[c] = voltage_trace voltage_traces[morphology.biggest].plot_ensemble(voltage_traces.values(), title="Voltagetrace in %s for sinusoidal inputsignal at %i Hz" % (morphology.name, frequency), ylim=ylim, picture_file=picture_file+'voltage_trace_f-'+str(frequency)+'_'+str(morphology.name), picture_formats=picture_formats) plot_daempfung(maxima.values(),titles=titles.values(), picture_file=picture_file+'/daempfung_maxima_f-265_'+str(morphology.name), picture_formats=picture_formats) plot_daempfung(minima.values(),titles=titles.values(), picture_file=picture_file+'/daempfung_minima_f-265_'+str(morphology.name), picture_formats=picture_formats)
def sinusclamp(morphology, rounds=3, frequency=265, picture_file='/tmp/voltage_trace_f-265_sinusclamp_', picture_formats=['png']): iclamp = morphjongleur.util.pattern_generator.SinusClamp(compartment=morphology.biggest, frequency=frequency, duration=rounds/float(frequency) ) r = morphjongleur.model.experiment.RecordingPoint(morphology.compartments[len(morphology.compartments)-1]) experiment = morphjongleur.model.experiment.Experiment( morphology=morphology, clamps=[iclamp], recording_points=r, neuron_passive_parameter = Neuron_passive_parameter(Ra=35.4,g=0.001), duration=rounds/float(frequency) ) print experiment experiment.run_simulation() voltage_trace = r.get_voltage_trace() print voltage_trace voltage_trace.plot(picture_file=picture_file+str(morphology.name), picture_formats=picture_formats)
def taus(morphology): recordingpoints = [morphjongleur.model.experiment.RecordingPoint(compartment=recordingpoint) for recordingpoint in morphology.compartments] iclamp = morphjongleur.model.clamp.IClamp(compartment=morphology.root, amplitude=-1e-9, delay=0e-3, duration=3e-3 ) neuron_passive_parameter = morphjongleur.model.neuron_passive.Neuron_passive_parameter(Ra=35.4,g=0.001) experiment = morphjongleur.model.experiment.Experiment( morphology=morphology, recordingpoints=recordingpoints, clamps=[iclamp], neuron_passive_parameter=neuron_passive_parameter, duration=5e-3, dt=1e-4, description = "TauExperiment @ %i\t%s " % (morphology.root.compartment_id, morphology.name), ) experiment.run_simulation() taus = [recordingpoint.get_tau_fit(iclamp) for recordingpoint in recordingpoints] return taus
def amplitudes(morphology): recordingpoints = [morphjongleur.model.experiment.RecordingPoint(compartment=recordingpoint) for recordingpoint in morphology.compartments] iclamp = morphjongleur.model.clamp.IClamp(compartment=morphology.root, amplitude=-1e-9, delay=0e-3, duration=3e-3 ) neuron_passive_parameter = morphjongleur.model.neuron_passive.Neuron_passive_parameter(Ra=35.4,g=0.001) experiment = morphjongleur.model.experiment.Experiment( morphology=morphology, recordingpoints=recordingpoints, clamps=[iclamp], neuron_passive_parameter=neuron_passive_parameter, duration=5e-3, dt=1e-4, description = "TauExperiment @ %i\t%s " % (morphology.root.compartment_id, morphology.name), ) experiment.run_simulation() #voltage_trace = experiment.get_voltage_trace(delay=2./frequency)# nach Einschwinphase return recordingpoints
def experiment(morphology, compartment, frequency, amplitude=-1e-9):#, amplitude recordingpoints = [morphjongleur.model.experiment.RecordingPoint(compartment=recordingpoint) for recordingpoint in morphology.terminal_tips] iclamp = morphjongleur.util.pattern_generator.SinusClamp(compartment=compartment, amplitude=amplitude, frequency=frequency, duration=3./frequency ) neuron_passive_parameter = morphjongleur.model.neuron_passive.Neuron_passive_parameter(Ra=35.4,g=0.001) experiment = morphjongleur.model.experiment.Experiment( morphology=morphology, recordingpoints=recordingpoints, clamps=[iclamp], neuron_passive_parameter=neuron_passive_parameter, duration=5e-3, dt=1e-4, description = "TauExperiment @ %i\t%s " % (morphology.root.compartment_id, morphology.name), ) experiment.run_simulation() return recordingpoints
def experiment(morphology):#, amplitude recordingpoint = morphjongleur.model.experiment.RecordingPoint(compartment=morphology.root) iclamp = morphjongleur.model.clamp.IClamp(compartment=morphology.root, amplitude=-1e-9, delay=0e-3, duration=3e-3 ) neuron_passive_parameter = morphjongleur.model.neuron_passive.Neuron_passive_parameter(Ra=35.4,g=0.001) experiment = morphjongleur.model.experiment.Experiment( morphology=morphology, recordingpoints=[recordingpoint], clamps=[iclamp], neuron_passive_parameter=neuron_passive_parameter, duration=5e-3, dt=1e-4, description = "TauExperiment @ %i\t%s " % (morphology.root.compartment_id, morphology.name), ) experiment.run_simulation() tau_fit = recordingpoint.get_tau_fit(iclamp) print "%f %f %f" % (tau_fit.get_R_in(), tau_fit.get_tau_eff(), tau_fit.tau_lin_fit()) return tau_fit