Mercurial > repos > peterjc > mira_assembler
comparison tools/mira3/mira.py @ 12:63ebe9726219 draft default tip
v0.0.11 move dependency to package_mira_3_4_1_1 etc
| author | peterjc |
|---|---|
| date | Wed, 05 Aug 2015 11:28:05 -0400 |
| parents | a2fb1e67bd11 |
| children |
comparison
equal
deleted
inserted
replaced
| 11:e59904c855ae | 12:63ebe9726219 |
|---|---|
| 7 import shutil | 7 import shutil |
| 8 import time | 8 import time |
| 9 | 9 |
| 10 WRAPPER_VER = "0.0.5" #Keep in sync with the XML file | 10 WRAPPER_VER = "0.0.5" #Keep in sync with the XML file |
| 11 | 11 |
| 12 def stop_err(msg, err=1): | 12 def sys_exit(msg, err=1): |
| 13 sys.stderr.write(msg+"\n") | 13 sys.stderr.write(msg+"\n") |
| 14 sys.exit(err) | 14 sys.exit(err) |
| 15 | 15 |
| 16 | 16 |
| 17 def get_version(): | 17 def get_version(): |
| 31 return ver.split("\n", 1)[0] | 31 return ver.split("\n", 1)[0] |
| 32 | 32 |
| 33 | 33 |
| 34 mira_ver = get_version() | 34 mira_ver = get_version() |
| 35 if "V3.4." not in mira_ver: | 35 if "V3.4." not in mira_ver: |
| 36 stop_err("This wrapper is for MIRA V3.4, not %s" % mira_ver) | 36 sys_exit("This wrapper is for MIRA V3.4, not %s" % mira_ver) |
| 37 if "-v" in sys.argv: | 37 if "-v" in sys.argv: |
| 38 print "MIRA wrapper version %s," % WRAPPER_VER | 38 print "MIRA wrapper version %s," % WRAPPER_VER |
| 39 print mira_ver | 39 print mira_ver |
| 40 sys.exit(0) | 40 sys.exit(0) |
| 41 | 41 |
| 42 | 42 |
| 43 def collect_output(temp, name): | 43 def collect_output(temp, name): |
| 44 n3 = (temp, name, name, name) | 44 n3 = (temp, name, name, name) |
| 45 f = "%s/%s_assembly/%s_d_results" % (temp, name, name) | 45 f = "%s/%s_assembly/%s_d_results" % (temp, name, name) |
| 46 if not os.path.isdir(f): | 46 if not os.path.isdir(f): |
| 47 stop_err("Missing output folder") | 47 sys_exit("Missing output folder") |
| 48 if not os.listdir(f): | 48 if not os.listdir(f): |
| 49 stop_err("Empty output folder") | 49 sys_exit("Empty output folder") |
| 50 missing = [] | 50 missing = [] |
| 51 for old, new in [("%s/%s_out.unpadded.fasta" % (f, name), out_fasta), | 51 for old, new in [("%s/%s_out.unpadded.fasta" % (f, name), out_fasta), |
| 52 ("%s/%s_out.unpadded.fasta.qual" % (f, name), out_qual), | 52 ("%s/%s_out.unpadded.fasta.qual" % (f, name), out_qual), |
| 53 ("%s/%s_out.wig" % (f, name), out_wig), | 53 ("%s/%s_out.wig" % (f, name), out_wig), |
| 54 ("%s/%s_out.caf" % (f, name), out_caf), | 54 ("%s/%s_out.caf" % (f, name), out_caf), |
| 56 if not os.path.isfile(old): | 56 if not os.path.isfile(old): |
| 57 missing.append(os.path.splitext(old)[-1]) | 57 missing.append(os.path.splitext(old)[-1]) |
| 58 else: | 58 else: |
| 59 shutil.move(old, new) | 59 shutil.move(old, new) |
| 60 if missing: | 60 if missing: |
| 61 stop_err("Missing output files: %s" % ", ".join(missing)) | 61 sys_exit("Missing output files: %s" % ", ".join(missing)) |
| 62 | 62 |
| 63 def clean_up(temp, name): | 63 def clean_up(temp, name): |
| 64 folder = "%s/%s_assembly" % (temp, name) | 64 folder = "%s/%s_assembly" % (temp, name) |
| 65 if os.path.isdir(folder): | 65 if os.path.isdir(folder): |
| 66 shutil.rmtree(folder) | 66 shutil.rmtree(folder) |
| 110 if return_code: | 110 if return_code: |
| 111 handle.write("Return error code %i from command:\n" % return_code) | 111 handle.write("Return error code %i from command:\n" % return_code) |
| 112 handle.write(cmd + "\n") | 112 handle.write(cmd + "\n") |
| 113 handle.close() | 113 handle.close() |
| 114 clean_up(temp, name) | 114 clean_up(temp, name) |
| 115 stop_err("Return error code %i from command:\n%s" % (return_code, cmd), | 115 sys_exit("Return error code %i from command:\n%s" % (return_code, cmd), |
| 116 return_code) | 116 return_code) |
| 117 handle.close() | 117 handle.close() |
| 118 | 118 |
| 119 #print "Collecting output..." | 119 #print "Collecting output..." |
| 120 collect_output(temp, name) | 120 collect_output(temp, name) |
