view snippy_core_wrapper.py @ 17:412683e7a8fe draft

planemo upload for repository https://github.com/tseemann/snippy commit f4fe84a2dc64bcc8a68de2cdc68c32872294708b-dirty
author dfornika
date Tue, 22 Jan 2019 14:40:08 -0500
parents a69f73853101
children 9d8519bf7a40
line wrap: on
line source

#!/usr/bin/env python

# --------------------------------------
#
#        snippy_core_wrapper.py
#
# This is an intermediary script between snippy-core.xml and snippy-core
# It:
#   - Copys the supplied zipped snippy output files to the working dir
#   - Untars them to their datafile name
#   - Builds the snippy-core command
#   - Runs the snippy-core command
#
# --------------------------------------

import argparse
import os
import subprocess
from shutil import copyfile

def main():


    parser = argparse.ArgumentParser()
    parser.add_argument('-r', '--ref', help='Reference fasta', required=True)
    parser.add_argument('-i', '--indirs', help='Comma-separated list of input datasets')
    args = parser.parse_args()

    snippy_core_command_line = ['snippy-core', '--ref', args.ref]

    for input_dataset in args.indirs.split(','):
        base_name = os.path.basename(input_dataset)
        copyfile(input_dataset, base_name)
        subprocess.Popen(['tar', '-xf', base_name]).wait()

    extracted_dirs = [f for f in os.listdir('.') if os.path.isdir(f) ]
    for extracted_dir in extracted_dirs:
        snippy_core_command_line.append(extracted_dir)

    subprocess.Popen(snippy_core_command_line).wait()


if __name__ == '__main__':
    main()