def automateMain(passArguments):
# Parse arguments
argParser = argparse.ArgumentParser(description='PALADIN Pipeline Plugins: Automate', prog='automate')
argParser.add_argument('reference', metavar='REFERENCE', type=str, help='Reference database')
argParser.add_argument('root', metavar='ROOT', type=str, help='Root path to search')
argParser.add_argument('pattern', metavar='PATTERN', type=str, help='Input reads search pattern')
argParser.add_argument('options', metavar='OPTIONS', type=str, nargs=argparse.REMAINDER, help='PALADIN options')
arguments = argParser.parse_known_args(shlex.split(passArguments))
for root, dirs, files in os.walk(arguments[0].root):
for fileName in files:
if not re.search(arguments[0].pattern, fileName): continue
# Matching input sequence, execute PALADIN
baseName = fileName
if '.' in baseName: baseName = baseName[:baseName.index('.')]
baseName = os.path.join(root, baseName)
fullFile = os.path.join(root, fileName)
command = "paladin align {0} {1} -o {2} {3}".format(arguments[0].reference, fullFile, baseName, ' '.join(arguments[0].options))
output = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
with open("{0}.log".format(baseName), 'wb') as fileHandle:
fileHandle.write(output)
评论列表
文章目录