def _run_subroutine(self, func, args, p_entry, p_name=None): '''Run a func in a thread with args''' routine_name = p_name if p_name else func.__name__ routine_id = p_entry['id'] args = [p_entry['counter']]+(list(args) if args else []) subroutine = WaitingThread(self._print_lock, routine_id, target=func, name=routine_name, args=args) p_entry['process'] = subroutine with self._print_lock: self._print(('\nStarting CPU-intensive task #%d:\n ' ' %s\nThis may take awhile...') % (routine_id, routine_name)) subroutine.start()
def _run_subroutine(self, func, args, p_entry, p_name=None): '''Run a func in a thread with args''' routine_name = p_name if p_name else func.__name__ routine_id = p_entry['id'] args = [p_entry['counter']] + (list(args) if args else []) subroutine = WaitingThread(self._print_lock, routine_id, target=func, name=routine_name, args=args) p_entry['process'] = subroutine with self._print_lock: self._print( ('\nStarting CPU-intensive task #%d:\n ' ' %s\nThis may take awhile...') % (routine_id, routine_name)) subroutine.start()
def _main(self): from threading import Lock from BioUtils.Tools import WaitingThread from DegenPrimer.Primer import Primer from DegenPrimer.SeqUtils import load_sequence from DegenPrimer.PCR_Optimizer import PCR_Optimizer from DegenPrimer import TD_Functions as tdf tdf.PCR_P.PCR_T = 53 tdf.PCR_P.Mg = 3e-3 tdf.PCR_P.dNTP = 300e-6 tdf.PCR_P.DNA = 1e-10 fwd_primer = Primer(load_sequence('ATATTCTACRACGGCTATCC', 'fwd_test', 'fwd_test'), 0.43e-6, True) rev_primer = Primer(load_sequence('GAASGCRAAKATYGGGAAC', 'rev_test', 'rev_test'), 0.43e-6, True) optimizer = PCR_Optimizer(self.abort_event, 100, 5, max_mismatches=5, job_id='test-job', primers=[fwd_primer, rev_primer], min_amplicon=50, max_amplicon=2000, polymerase=40000, with_exonuclease=False, num_cycles=30, side_reactions=None, side_concentrations=None, include_side_annealings=False) plock = Lock() job = WaitingThread(plock, 1, target=optimizer.optimize_PCR_parameters, name='optimize PCR', args=('../data/ThGa.fa', ({'start':47920, 'end':49321},), ( {'name':'PCR_T', 'min':50, 'ini':60, 'max':72}, # {'name':'dNTP', # 'min':100e-6, 'ini':200e-6, 'max':900e-6}, ), )) job.start(); print '' job.join() optimizer.write_report()
def _main(self): import time import DegenPrimer.TD_Functions as tdf from DegenPrimer.Primer import Primer from DegenPrimer.SeqUtils import load_sequence from DegenPrimer.WorkCounter import WorkCounterManager from BioUtils.Tools import WaitingThread from DegenPrimer.iPCR import iPCR from threading import Lock import cProfile tdf.PCR_P.PCR_T = 53 tdf.PCR_P.Mg = 3e-3 tdf.PCR_P.dNTP = 300e-6 tdf.PCR_P.DNA = 1e-10 fwd_primer = Primer(load_sequence('ATATTCTACRACGGCTATCC', 'fwd_test', 'fwd_test'), 0.43e-6, True) rev_primer = Primer(load_sequence('GAASGCRAAKATYGGGAAC', 'rev_test', 'rev_test'), 0.43e-6, True) ipcr = iPCR(self.abort_event, max_mismatches=6, job_id='test-job', primers=[fwd_primer, rev_primer], min_amplicon=50, max_amplicon=2000, polymerase=40000, with_exonuclease=False, num_cycles=30, side_reactions=None, side_concentrations=None, include_side_annealings=True) cmgr = WorkCounterManager() cmgr.start() counter = cmgr.WorkCounter() plock = Lock() job = WaitingThread(plock, 1, target=ipcr.simulate_PCR, name='simulate_PCR', args=(counter, ( '../data/ThGa.fa', #single sequence # '../data/Ch5_gnm.fa', '../data/ThDS1.fa', '../data/ThES1.fa', #long sequences '../data/ThDS1-FC.fa', '../data/ThDS1-850b-product.fa', #short sequences ),)) job.start(); print '' while job.is_alive(): if counter.changed_percent(): with plock: print counter time.sleep(1) job.join() with plock: print counter ipcr.write_report() cProfile.runctx('for i in xrange(100): ipcr.write_reports()', globals(), locals(), 'iPCR.write_reports.profile')
def _main(self): from threading import Lock from BioUtils.Tools import WaitingThread from DegenPrimer.Primer import Primer from DegenPrimer.SeqUtils import load_sequence from DegenPrimer.PCR_Optimizer import PCR_Optimizer from DegenPrimer import TD_Functions as tdf tdf.PCR_P.PCR_T = 53 tdf.PCR_P.Mg = 3e-3 tdf.PCR_P.dNTP = 300e-6 tdf.PCR_P.DNA = 1e-10 fwd_primer = Primer( load_sequence('ATATTCTACRACGGCTATCC', 'fwd_test', 'fwd_test'), 0.43e-6, True) rev_primer = Primer( load_sequence('GAASGCRAAKATYGGGAAC', 'rev_test', 'rev_test'), 0.43e-6, True) optimizer = PCR_Optimizer(self.abort_event, 100, 5, max_mismatches=5, job_id='test-job', primers=[fwd_primer, rev_primer], min_amplicon=50, max_amplicon=2000, polymerase=40000, with_exonuclease=False, num_cycles=30, side_reactions=None, side_concentrations=None, include_side_annealings=False) plock = Lock() job = WaitingThread( plock, 1, target=optimizer.optimize_PCR_parameters, name='optimize PCR', args=( '../data/ThGa.fa', ({ 'start': 47920, 'end': 49321 }, ), ({ 'name': 'PCR_T', 'min': 50, 'ini': 60, 'max': 72 }, # {'name':'dNTP', # 'min':100e-6, 'ini':200e-6, 'max':900e-6}, ), )) job.start() print '' job.join() optimizer.write_report()
def _main(self): import time import DegenPrimer.TD_Functions as tdf from DegenPrimer.Primer import Primer from DegenPrimer.SeqUtils import load_sequence from DegenPrimer.WorkCounter import WorkCounterManager from BioUtils.Tools import WaitingThread from DegenPrimer.iPCR import iPCR from threading import Lock import cProfile tdf.PCR_P.PCR_T = 53 tdf.PCR_P.Mg = 3e-3 tdf.PCR_P.dNTP = 300e-6 tdf.PCR_P.DNA = 1e-10 fwd_primer = Primer( load_sequence('ATATTCTACRACGGCTATCC', 'fwd_test', 'fwd_test'), 0.43e-6, True) rev_primer = Primer( load_sequence('GAASGCRAAKATYGGGAAC', 'rev_test', 'rev_test'), 0.43e-6, True) ipcr = iPCR(self.abort_event, max_mismatches=6, job_id='test-job', primers=[fwd_primer, rev_primer], min_amplicon=50, max_amplicon=2000, polymerase=40000, with_exonuclease=False, num_cycles=30, side_reactions=None, side_concentrations=None, include_side_annealings=True) cmgr = WorkCounterManager() cmgr.start() counter = cmgr.WorkCounter() plock = Lock() job = WaitingThread( plock, 1, target=ipcr.simulate_PCR, name='simulate_PCR', args=( counter, ( '../data/ThGa.fa', #single sequence # '../data/Ch5_gnm.fa', '../data/ThDS1.fa', '../data/ThES1.fa', #long sequences '../data/ThDS1-FC.fa', '../data/ThDS1-850b-product.fa', #short sequences ), )) job.start() print '' while job.is_alive(): if counter.changed_percent(): with plock: print counter time.sleep(1) job.join() with plock: print counter ipcr.write_report() cProfile.runctx('for i in xrange(100): ipcr.write_reports()', globals(), locals(), 'iPCR.write_reports.profile')