view STACKS_clone_filter.py @ 12:7a8369cfa7c1 draft default tip

planemo upload commit 9b504bd948d6079168cbd5cf6f9aa5e5488cde9b-dirty
author tiagoantao
date Wed, 10 Feb 2016 14:04:19 -0500
parents 92ba49d68ef1
children
line wrap: on
line source

#!/usr/bin/python
# -*- coding: utf-8 -*-

import argparse
import glob
import os
import subprocess
import shutil


def __main__():
    parser = argparse.ArgumentParser()

    #files (single or pair)
    parser.add_argument('-f', type=str)
    parser.add_argument('-fwd', type=str)
    parser.add_argument('-rev', type=str)

    #oligos
    parser.add_argument('-oligo_len_1', type=int)
    parser.add_argument('-oligo_len_2', type=int)

    #options (allways there)
    parser.add_argument('-opt', type=str)

    #parser.add_argument('-k', action='store_true')

    options = parser.parse_args()

    # create the working dir
    os.mkdir('job_outputs')
    os.chdir('job_outputs')

    # create the populations command input line
    cmd_line=['clone_filter']
    if options.f is not None:
        cmd_line.extend(['-f', options.f])
    else:
        cmd_line.extend(['-1', options.fwd])
        cmd_line.extend(['-2', options.rev])

    if options.oligo_len_1 > -1:
        cmd_line.extend(['--oligo_len_1', options.oligo_len_1])
    if options.oligo_len_2 > -1:
        cmd_line.extend(['--oligo_len_2', options.oligo_len_2])
    cmd_line.append('--' + options.opt)

    print "[CMD]:"+' '.join(cmd_line)
    subprocess.call(cmd_line)

    # postprocesses
    clean_files = glob.glob('*.fq*')
    if options.f is not None:
        shutil.copy(clean_files[0], 'clean.fq')
    else:
        shutil.copy(clean_files[0], 'fwd.fq')
        shutil.copy(clean_files[1], 'rev.fq')


if __name__ == '__main__':
    __main__()