Exemplo n.º 1
0
        # sorts jobs to process recent submissions and non-batch jobs first
        def priority(j):
            # return 1 * j.id
            from random import random

            f = 1 if random() > 0.5 else -1
            if j.key == "7956546276189290":
                return -100000
            if j.batch is not None:
                return 100000000
            else:
                return f * j.id

        top_job = sorted(selected_hit_jobs, key=priority)[0]
        if not top_job in Session:
            top_job = Session.merge(j)
        # spacers may be deleted from the session in the interior of this loop
        for i, s in enumerate([s for s in top_job.spacers if s.score is None][:2]):
            if not s in Session:
                s = Session.merge(s)
            with transaction.manager:
                try:
                    print "Computing hits for spacer: {0} (Job {1})".format(s.id, j.id)
                    genome_db.compute_hits_for_spacer(s.id)
                except JobERR, e:
                    print "excepted a job/spacer error on COMPUTE for job {0}".format(s.job.id, top_job)
                except SpacerERR, e:
                    print "excepted a spacer error for spacer id {0}".format(s.id)


def main():
Exemplo n.º 2
0
        proc.daemon=True
        proc.start()
        procs.append(proc)


    if len(selected_hit_jobs) > 0:
        with transaction.manager:
            def priority(j):
                from random import random
                f = 1 if random() > .5 else -1
                if j.batch is not None: return 100000000
                else: return f* j.id 

            for i,j in enumerate(selected_hit_jobs):
                if not j in Session: 
                    selected_hit_jobs[i] = Session.merge(j)

            batched_jobs = [j for j in selected_hit_jobs if j.batch is not None]
            #sorts jobs to process recent submissions and non-batch jobs first        
            top_jobs = sorted(selected_hit_jobs, key = priority)[:12]
            for top_job in top_jobs:
                if not top_job in Session: top_job = Session.merge(top_job)

                #spacers may be deleted from the session in the interior of this loop

                print "GENOME NAME: {0}".format(top_job.genome_name)
                print "SAVING ID INTO QUEUE", top_job.spacers[0] 
            
                for i,s in enumerate([s for s in top_job.spacers if s.score is None][:2]):
                    jobs_q.put({"genome_name":s.job.genome_name,
                                "guide":s.guide,
Exemplo n.º 3
0
                            )
        proc.daemon=True
        proc.start()
        procs.append(proc)
    
    top_job_id = []
    if len(selected_hit_jobs) > 0:
        with transaction.manager:
            def priority(j):
                from random import random
                f = 1 if random() > .5 else -1
                return f* j.id                   

            for i,j in enumerate(selected_hit_jobs):
                if not j in Session:
                    selected_hit_jobs[i] = Session.merge(j)
            single_jobs = [j for j in selected_hit_jobs if j.batch is None]
            batched_jobs = [j for j in selected_hit_jobs if j.batch is not None]
            #sorts jobs to process recent submissions and non-batch jobs first
            single_jobs = sorted(single_jobs, key = priority)
            top_jobs = (single_jobs + batched_jobs)[:12]
            for top_job in top_jobs:
                if not top_job in Session: top_job = Session.merge(top_job)
                top_job_id.append(top_job.id)

                #spacers may be deleted from the session in the interior of this loop

                print "GENOME NAME: {0}".format(top_job.genome_name)
                print "SAVING ID INTO QUEUE", top_job.spacers[0] 
            
                for i,s in enumerate([s for s in top_job.spacers if s.score is None][:2]):
Exemplo n.º 4
0
    ]

    if len(selected_hit_jobs) > 0:
        batched_jobs = [j for j in selected_hit_jobs if j.batch is not None]

        #sorts jobs to process recent submissions and non-batch jobs first
        def priority(j):
            #return 1 * j.id
            from random import random
            f = 1 if random() > .5 else -1
            if j.key == "7956546276189290": return -100000
            if j.batch is not None: return 100000000
            else: return f * j.id

        top_job = sorted(selected_hit_jobs, key=priority)[0]
        if not top_job in Session: top_job = Session.merge(j)
        #spacers may be deleted from the session in the interior of this loop
        for i, s in enumerate([s for s in top_job.spacers
                               if s.score is None][:2]):
            if not s in Session: s = Session.merge(s)
            with transaction.manager:
                try:
                    print "Computing hits for spacer: {0} (Job {1})".format(
                        s.id, j.id)
                    genome_db.compute_hits_for_spacer(s.id)
                except JobERR, e:
                    print "excepted a job/spacer error on COMPUTE for job {0}".format(
                        s.job.id, top_job)
                except SpacerERR, e:
                    print "excepted a spacer error for spacer id {0}".format(
                        s.id)
Exemplo n.º 5
0

    if len(selected_hit_jobs) > 0:
        batched_jobs = [j for j in selected_hit_jobs if j.batch is not None]
        #sorts jobs to process recent submissions and non-batch jobs first
        def priority(j):
            #return 1 * j.id
            from random import random
            f = 1 if random() > .5 else -1
            if j.key == "7956546276189290" : return -100000
            if j.batch is not None: return 100000000
            else: return f* j.id 
            
        
        top_job = sorted(selected_hit_jobs, key = priority)[0]
        if not top_job in Session: top_job = Session.merge(j)
        #spacers may be deleted from the session in the interior of this loop
        for i,s in enumerate([s for s in top_job.spacers if s.score is None][:2]):
            if not s in Session: s = Session.merge(s)
            with transaction.manager:
                    try:
                        print "Computing hits for spacer: {0} (Job {1})".format(s.id, j.id)
                        genome_db.compute_hits_for_spacer(s.id)
                    except JobERR, e:
                        print "excepted a job/spacer error on COMPUTE for job {0}".format(s.job.id, top_job)
                    except SpacerERR, e:
                        print "excepted a spacer error for spacer id {0}".format(s.id)

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--reset','-r',dest="reset",