Mercurial > repos > petr-novak > various_galaxy_tools
comparison extract_GFF_Features.py @ 0:696e702ebf74 draft
"planemo upload commit 0f6eca49bafc3c946189d793161a7f81d595e1a1-dirty"
| author | petr-novak |
|---|---|
| date | Mon, 09 May 2022 08:26:30 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:696e702ebf74 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 # Guruprasad Ananda | |
| 3 """ | |
| 4 Extract features from GFF file. | |
| 5 | |
| 6 usage: %prog input1 out_file1 column features | |
| 7 """ | |
| 8 from __future__ import print_function | |
| 9 | |
| 10 import sys | |
| 11 | |
| 12 from bx.cookbook import doc_optparse | |
| 13 | |
| 14 | |
| 15 def stop_err(msg): | |
| 16 sys.stderr.write(msg) | |
| 17 sys.exit() | |
| 18 | |
| 19 | |
| 20 def main(): | |
| 21 # Parsing Command Line here | |
| 22 options, args = doc_optparse.parse(__doc__) | |
| 23 | |
| 24 try: | |
| 25 inp_file, out_file, column, features = args | |
| 26 except ValueError: | |
| 27 stop_err("One or more arguments is missing or invalid.\nUsage: prog input output column features") | |
| 28 try: | |
| 29 column = int(column) | |
| 30 except ValueError: | |
| 31 stop_err("Column %s is an invalid column." % column) | |
| 32 | |
| 33 if features is None: | |
| 34 stop_err("Column %d has no features to display, select another column." % (column + 1)) | |
| 35 | |
| 36 fo = open(out_file, "w") | |
| 37 for line in open(inp_file): | |
| 38 line = line.rstrip("\r\n") | |
| 39 if line and line.startswith("#"): | |
| 40 # Keep valid comment lines in the output | |
| 41 fo.write("%s\n" % line) | |
| 42 else: | |
| 43 try: | |
| 44 if line.split("\t")[column] in features.split(","): | |
| 45 fo.write("%s\n" % line) | |
| 46 except Exception: | |
| 47 pass | |
| 48 fo.close() | |
| 49 | |
| 50 print("Column %d features: %s" % (column + 1, features)) | |
| 51 | |
| 52 | |
| 53 if __name__ == "__main__": | |
| 54 main() |
