Mercurial > repos > peterjc > mira4_assembler
comparison tools/mira4_0/mira4.py @ 31:fd95aaef8818 draft
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit bc3d484c5cd68ddcf456db2fff489d584aa2034c
author | peterjc |
---|---|
date | Wed, 10 Feb 2016 09:07:39 -0500 |
parents | 55ae131c5862 |
children | 56b421d59805 |
comparison
equal
deleted
inserted
replaced
30:b506e3b779fa | 31:fd95aaef8818 |
---|---|
11 | 11 |
12 #Do we need any PYTHONPATH magic? | 12 #Do we need any PYTHONPATH magic? |
13 from mira4_make_bam import make_bam | 13 from mira4_make_bam import make_bam |
14 | 14 |
15 WRAPPER_VER = "0.0.4" #Keep in sync with the XML file | 15 WRAPPER_VER = "0.0.4" #Keep in sync with the XML file |
16 | |
17 def sys_exit(msg, err=1): | |
18 sys.stderr.write(msg+"\n") | |
19 sys.exit(err) | |
20 | 16 |
21 | 17 |
22 def get_version(mira_binary): | 18 def get_version(mira_binary): |
23 """Run MIRA to find its version number""" | 19 """Run MIRA to find its version number""" |
24 # At the commend line I would use: mira -v | head -n 1 | 20 # At the commend line I would use: mira -v | head -n 1 |
69 out_log = options.log | 65 out_log = options.log |
70 | 66 |
71 try: | 67 try: |
72 mira_path = os.environ["MIRA4"] | 68 mira_path = os.environ["MIRA4"] |
73 except KeyError: | 69 except KeyError: |
74 sys_exit("Environment variable $MIRA4 not set") | 70 sys.exit("Environment variable $MIRA4 not set") |
75 mira_binary = os.path.join(mira_path, "mira") | 71 mira_binary = os.path.join(mira_path, "mira") |
76 if not os.path.isfile(mira_binary): | 72 if not os.path.isfile(mira_binary): |
77 sys_exit("Missing mira under $MIRA4, %r\nFolder contained: %s" | 73 sys.exit("Missing mira under $MIRA4, %r\nFolder contained: %s" |
78 % (mira_binary, ", ".join(os.listdir(mira_path)))) | 74 % (mira_binary, ", ".join(os.listdir(mira_path)))) |
79 mira_convert = os.path.join(mira_path, "miraconvert") | 75 mira_convert = os.path.join(mira_path, "miraconvert") |
80 if not os.path.isfile(mira_convert): | 76 if not os.path.isfile(mira_convert): |
81 sys_exit("Missing miraconvert under $MIRA4, %r\nFolder contained: %s" | 77 sys.exit("Missing miraconvert under $MIRA4, %r\nFolder contained: %s" |
82 % (mira_convert, ", ".join(os.listdir(mira_path)))) | 78 % (mira_convert, ", ".join(os.listdir(mira_path)))) |
83 | 79 |
84 mira_ver = get_version(mira_binary) | 80 mira_ver = get_version(mira_binary) |
85 if not mira_ver.strip().startswith("4.0"): | 81 if not mira_ver.strip().startswith("4.0"): |
86 sys_exit("This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_ver, mira_binary)) | 82 sys.exit("This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_ver, mira_binary)) |
87 mira_convert_ver = get_version(mira_convert) | 83 mira_convert_ver = get_version(mira_convert) |
88 if not mira_convert_ver.strip().startswith("4.0"): | 84 if not mira_convert_ver.strip().startswith("4.0"): |
89 sys_exit("This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_ver, mira_convert)) | 85 sys.exit("This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_ver, mira_convert)) |
90 if options.version: | 86 if options.version: |
91 print "%s, MIRA wrapper version %s" % (mira_ver, WRAPPER_VER) | 87 print "%s, MIRA wrapper version %s" % (mira_ver, WRAPPER_VER) |
92 if mira_ver != mira_convert_ver: | 88 if mira_ver != mira_convert_ver: |
93 print "WARNING: miraconvert %s" % mira_convert_ver | 89 print "WARNING: miraconvert %s" % mira_convert_ver |
94 sys.exit(0) | 90 sys.exit(0) |
95 | 91 |
96 if not manifest: | 92 if not manifest: |
97 sys_exit("Manifest is required") | 93 sys.exit("Manifest is required") |
98 elif not os.path.isfile(manifest): | 94 elif not os.path.isfile(manifest): |
99 sys_exit("Missing input MIRA manifest file: %r" % manifest) | 95 sys.exit("Missing input MIRA manifest file: %r" % manifest) |
100 | 96 |
101 | 97 |
102 try: | 98 try: |
103 threads = int(os.environ.get("GALAXY_SLOTS", "1")) | 99 threads = int(os.environ.get("GALAXY_SLOTS", "1")) |
104 except ValueError: | 100 except ValueError: |
147 sys.stderr.write("\n%s\nEnd of manifest\n%s\n" % ("="*60, "="*60)) | 143 sys.stderr.write("\n%s\nEnd of manifest\n%s\n" % ("="*60, "="*60)) |
148 | 144 |
149 | 145 |
150 def collect_output(temp, name, handle): | 146 def collect_output(temp, name, handle): |
151 """Moves files to the output filenames (global variables).""" | 147 """Moves files to the output filenames (global variables).""" |
152 n3 = (temp, name, name, name) | |
153 f = "%s/%s_assembly/%s_d_results" % (temp, name, name) | 148 f = "%s/%s_assembly/%s_d_results" % (temp, name, name) |
154 if not os.path.isdir(f): | 149 if not os.path.isdir(f): |
155 log_manifest(manifest) | 150 log_manifest(manifest) |
156 sys_exit("Missing output folder") | 151 sys.exit("Missing output folder") |
157 if not os.listdir(f): | 152 if not os.listdir(f): |
158 log_manifest(manifest) | 153 log_manifest(manifest) |
159 sys_exit("Empty output folder") | 154 sys.exit("Empty output folder") |
160 missing = [] | 155 missing = [] |
161 | 156 |
162 old_maf = "%s/%s_out.maf" % (f, name) | 157 old_maf = "%s/%s_out.maf" % (f, name) |
163 if not os.path.isfile(old_maf): | 158 if not os.path.isfile(old_maf): |
164 #Triggered extractLargeContigs.sh? | 159 #Triggered extractLargeContigs.sh? |
199 msg = make_bam(mira_convert, out_maf, ref_fasta, out_bam, handle) | 194 msg = make_bam(mira_convert, out_maf, ref_fasta, out_bam, handle) |
200 else: | 195 else: |
201 #Not collecting the MAF file, use original location | 196 #Not collecting the MAF file, use original location |
202 msg = make_bam(mira_convert, old_maf, ref_fasta, out_bam, handle) | 197 msg = make_bam(mira_convert, old_maf, ref_fasta, out_bam, handle) |
203 if msg: | 198 if msg: |
204 sys_exit(msg) | 199 sys.exit(msg) |
205 | 200 |
206 def clean_up(temp, name): | 201 def clean_up(temp, name): |
207 folder = "%s/%s_assembly" % (temp, name) | 202 folder = "%s/%s_assembly" % (temp, name) |
208 if os.path.isdir(folder): | 203 if os.path.isdir(folder): |
209 shutil.rmtree(folder) | 204 shutil.rmtree(folder) |
275 handle.write("Return error code %i from command:\n" % return_code) | 270 handle.write("Return error code %i from command:\n" % return_code) |
276 handle.write(cmd + "\n") | 271 handle.write(cmd + "\n") |
277 handle.close() | 272 handle.close() |
278 clean_up(temp, name) | 273 clean_up(temp, name) |
279 log_manifest(manifest) | 274 log_manifest(manifest) |
280 sys_exit("Return error code %i from command:\n%s" % (return_code, cmd), | 275 sys.stderr.write("Return error code %i from command:\n" % return_code) |
281 return_code) | 276 sys.stderr.write(cmd + "\n") |
277 sys.exit(eturn_code) | |
282 handle.flush() | 278 handle.flush() |
283 | 279 |
284 if os.path.isfile("MIRA_assembly/MIRA_d_results/ec.log"): | 280 if os.path.isfile("MIRA_assembly/MIRA_d_results/ec.log"): |
285 handle.write("\n") | 281 handle.write("\n") |
286 handle.write("====================== Extract Large Contigs failed ==========================\n") | 282 handle.write("====================== Extract Large Contigs failed ==========================\n") |