diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cherry_pick_fasta.py	Sun Oct 15 13:26:45 2017 -0400
@@ -0,0 +1,40 @@
+#!/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__()