view cherry_pick_fasta.py @ 0:e3aee4ba49c6 draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/cherry_pick_fasta commit a5e865d017e0434dae013565929ad5e6e5129fd3
author artbio
date Sun, 15 Oct 2017 13:26:45 -0400
parents
children ea8fde9c6f82
line wrap: on
line source

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Chery pick of fasta sequences satisfying a query string in their header/name
"""

import argparse


def Parser():
    the_parser = argparse.ArgumentParser(
        description="Cherry pick fasta sequences")
    the_parser.add_argument('--input', action="store", type=str,
                            help="input fasta file")
    the_parser.add_argument('--query-string', dest="query_string",
                            action="store", type=str,
                            help="header containing the string will be\
                                  extracted as well as the corresponding\
                                  sequence")
    the_parser.add_argument(
        '--output', action="store", type=str, help="output fasta file")
    args = the_parser.parse_args()
    return args


def __main__():
    """ main function """
    args = Parser()
    search_term = args.query_string
    CrudeFasta = open(args.input, "r").read()
    Output = open(args.output, "w")
    FastaListe = CrudeFasta.split(">")
    for sequence in FastaListe:
        if search_term in sequence:
            Output.write(">%s\n" % sequence.rstrip())
    Output.close()


if __name__ == "__main__":
    __main__()