예제 #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  = mrj.orm.experiment.Mapper( db.engine )
        mapping     = mrj.orm.morphology.Mapper( db.engine )
        mapping.orm_map()
        
        morphology = db.load_morphology( m )
        print morphology 

        iclamp  = mrj.model.clamp.IClamp(morphology.biggest)
        r  = mrj.model.experiment.RecordingPoint(morphology.compartments[len(morphology.compartments)-1])

        experiment  = mrj.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
예제 #2
0
def import_swc(swcs):
    db = Database(db_name="postgresql://hal08.g-node.pri/lehmann", exec_role="morphjokey_admin", exec_path="morphjokey")
    swc_parser = SwcParser()

    for swc in swcs:
        print(swc)
        m_swc = swc_parser.parse(swc)
        db.store(m_swc)
        print("start to commit data according to '%s'." % (swc))
        tic = time.time()
        db.session.commit()
        toc = time.time()
        print("Done. It took %s seconds." % (toc - tic))
예제 #3
0
# -*- coding: utf-8 -*-
from mrj.io.swc import SwcParser
from mrj.io.database import Database

db = Database(
    db_name='postgresql://hal08.g-node.pri/lehmann',
    exec_role='morphjokey_admin',
    exec_path='morphjokey')
swc_parser  = SwcParser(db)

m   = swc_parser.parse('../../../Data/example_morph.swc')
#print( m )
#print( m._compartments[0])

db.store( m )
#db.create_subtree( m )
# morphology_key mapped via sqlalchemy:
print m.morphology_key
m = db.load_morphology( m.morphology_key )

print( m )  # contains ALL auto calculated data from database
#print( m._compartments[0])

#print "\n\n\ncompartments as dicts:"
#for c in m._compartments:
#    print c.info.__dict__

#a = db.session.execute("SELECT compartment_id,compartment_parent_id,children FROM morphjokey.mrj_v_compartments_children WHERE morphology_key = 150;")
#b = a.fetchall()
예제 #4
0
        return mrj.model.sinusresult.SinusResult(voltage_trace, compartment, frequency, amplitude)

if __name__ == '__main__':
    import mrj.io.swc
    from mrj.io.database import Database
    db = Database(
                db_name='postgresql://hal08.g-node.pri/morphjongleur',
                exec_role='morphjokey_admin',
                exec_path='mitsubachi'
            )
    # must be mapped before Object is created
    import mrj.orm.sinusresult
    import mrj.model.morphology
    mapping = mrj.orm.sinusresult.Mapper( db )
    mapping.orm_map()

    for swc in ['../../../data/H060602DB_10_2_zentai_.swc','../../../data/H060602VB_10_2_zentai_.swc','../../../data/H060607DB_10_2(zentai).swc','../../../data/H060607VB_10_2(zentai).swc']:#['../../../data/test.swc']:
        print swc
        morphology   = mrj.model.morphology.swc_parse(swc)
        cs  = []#morphology.biggest
        cs.extend( morphology.terminal_tips )
        for f in range(10,1001,15):
            print "%i Hz" % (f)
            i = 0
            for c in cs:
                i = i + 1 
                print "%i/%i\t\r" % (cs.index(c)+1, len(cs)), 
                sinusresult = experiment(morphology=morphology, compartment=c, frequency=f, amplitude=-1e-9)
                #sinusresult.save()
                db.store(sinusresult)
예제 #5
0
                for f in fs:
                    for gn in gns:
                        run_start   = start_time
                        print "(%i,%i,%f,%i,%f,%s)\t" % (i,m,r,n,f,gn) ,
                        if resumepoint != None:
                            if resumepoint == (i,m,r,n,f,gn):
                                morphology  = db.load_morphology( m )
                                resumepoint = None
                            else: 
                                print "skipped"
                                continue

                        mso_neuron   = Neuron_MSO( morphology )
                        experiment = Experiment_MSO(mso_neuron, f=f, r=r, n=n, group_name=gn, duration=duration, description=description)
                        #print experiment
                        db.store( experiment )
                        experiment.neuron_create()

                        end_time = time.time()
                        print "%f" %(end_time-start_time) ,
                        start_time = end_time
                        
                        experiment.run_simulation()

                        end_time = time.time()
                        experiment.calc_time = end_time-start_time
                        print "+ %f" %(experiment.calc_time) ,
                        start_time = end_time

                        result  = experiment.get_result()
                        #print result