Esempio n. 1
0
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
Esempio n. 2
0
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)
Esempio n. 3
0
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
Esempio n. 6
0
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