comparison tools/protein_analysis/signalp3.py @ 18:eb6ac44d4b8e draft

Suite v0.2.8, record Promoter 2 verion + misc internal updates
author peterjc
date Tue, 01 Sep 2015 09:56:36 -0400
parents 99b82a2b1272
children f3ecd80850e2
comparison
equal deleted inserted replaced
17:e6cc27d182a8 18:eb6ac44d4b8e
54 the predictors which gives a cleavage site). *WORK IN PROGRESS* 54 the predictors which gives a cleavage site). *WORK IN PROGRESS*
55 """ 55 """
56 import sys 56 import sys
57 import os 57 import os
58 import tempfile 58 import tempfile
59 from seq_analysis_utils import stop_err, split_fasta, fasta_iterator 59 from seq_analysis_utils import sys_exit, split_fasta, fasta_iterator
60 from seq_analysis_utils import run_jobs, thread_count 60 from seq_analysis_utils import run_jobs, thread_count
61 61
62 FASTA_CHUNK = 500 62 FASTA_CHUNK = 500
63 MAX_LEN = 6000 #Found by trial and error 63 MAX_LEN = 6000 #Found by trial and error
64 64
65 if len(sys.argv) not in [6,8]: 65 if len(sys.argv) not in [6,8]:
66 stop_err("Require five (or 7) arguments, organism, truncate, threads, " 66 sys_exit("Require five (or 7) arguments, organism, truncate, threads, "
67 "input protein FASTA file & output tabular file (plus " 67 "input protein FASTA file & output tabular file (plus "
68 "optionally cut method and GFF3 output file). " 68 "optionally cut method and GFF3 output file). "
69 "Got %i arguments." % (len(sys.argv)-1)) 69 "Got %i arguments." % (len(sys.argv)-1))
70 70
71 organism = sys.argv[1] 71 organism = sys.argv[1]
72 if organism not in ["euk", "gram+", "gram-"]: 72 if organism not in ["euk", "gram+", "gram-"]:
73 stop_err("Organism argument %s is not one of euk, gram+ or gram-" % organism) 73 sys_exit("Organism argument %s is not one of euk, gram+ or gram-" % organism)
74 74
75 try: 75 try:
76 truncate = int(sys.argv[2]) 76 truncate = int(sys.argv[2])
77 except: 77 except:
78 truncate = 0 78 truncate = 0
79 if truncate < 0: 79 if truncate < 0:
80 stop_err("Truncate argument %s is not a positive integer (or zero)" % sys.argv[2]) 80 sys_exit("Truncate argument %s is not a positive integer (or zero)" % sys.argv[2])
81 81
82 num_threads = thread_count(sys.argv[3], default=4) 82 num_threads = thread_count(sys.argv[3], default=4)
83 fasta_file = sys.argv[4] 83 fasta_file = sys.argv[4]
84 tabular_file = sys.argv[5] 84 tabular_file = sys.argv[5]
85 85
86 if len(sys.argv) == 8: 86 if len(sys.argv) == 8:
87 cut_method = sys.argv[6] 87 cut_method = sys.argv[6]
88 if cut_method not in ["NN_Cmax", "NN_Ymax", "NN_Smax", "HMM_Cmax"]: 88 if cut_method not in ["NN_Cmax", "NN_Ymax", "NN_Smax", "HMM_Cmax"]:
89 stop_err("Invalid cut method %r" % cut_method) 89 sys_exit("Invalid cut method %r" % cut_method)
90 gff3_file = sys.argv[7] 90 gff3_file = sys.argv[7]
91 else: 91 else:
92 cut_method = None 92 cut_method = None
93 gff3_file = None 93 gff3_file = None
94 94
195 output = open(temp).readline() 195 output = open(temp).readline()
196 except IOError: 196 except IOError:
197 output = "(no output)" 197 output = "(no output)"
198 if error_level or output.lower().startswith("error running"): 198 if error_level or output.lower().startswith("error running"):
199 clean_up(fasta_files + temp_files) 199 clean_up(fasta_files + temp_files)
200 stop_err("One or more tasks failed, e.g. %i from %r gave:\n%s" % (error_level, cmd, output), 200 sys_exit("One or more tasks failed, e.g. %i from %r gave:\n%s" % (error_level, cmd, output),
201 error_level) 201 error_level)
202 del results 202 del results
203 203
204 out_handle = open(tabular_file, "w") 204 out_handle = open(tabular_file, "w")
205 fields = ["ID"] 205 fields = ["ID"]