def designPrimers(p3_args, input_log=None, output_log=None, err_log=None):
''' Return the raw primer3_core output for the provided primer3 args.
Returns an ordered dict of the boulderIO-format primer3 output file
'''
sp = subprocess.Popen([pjoin(PRIMER3_HOME, 'primer3_core')],
stdout=subprocess.PIPE, stdin=subprocess.PIPE,
stderr=subprocess.STDOUT)
p3_args.setdefault('PRIMER_THERMODYNAMIC_PARAMETERS_PATH',
pjoin(PRIMER3_HOME, 'primer3_config/'))
in_str = _formatBoulderIO(p3_args)
if input_log:
input_log.write(in_str)
input_log.flush()
out_str, err_str = sp.communicate(input=in_str)
if output_log:
output_log.write(out_str)
output_log.flush()
if err_log and err_str is not None:
err_log.write(err_str)
err_log.flush()
return _parseBoulderIO(out_str)
评论列表
文章目录