Mercurial > repos > peterjc > samtools_depad
comparison tools/samtools_depad/samtools_depad.py @ 0:2d303f2e09e0 draft
Uploaded v0.0.1, previously only on the Test Tool Shed
author | peterjc |
---|---|
date | Fri, 21 Nov 2014 06:37:20 -0500 |
parents | |
children | 01f8967ce1e0 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:2d303f2e09e0 |
---|---|
1 #!/usr/bin/env python | |
2 """Wrapper for "samtools depad" for use in Galaxy. | |
3 | |
4 This script takes exactly four command line arguments: | |
5 * Input padded reference FASTA file | |
6 * Input SAM/BAM filename | |
7 * Input format ("sam" or "bam") | |
8 * Output BAM filename | |
9 | |
10 Runs "samtools depad" and captures the output to the desired BAM file. | |
11 """ | |
12 import sys | |
13 import os | |
14 import subprocess | |
15 import tempfile | |
16 | |
17 if "-v" in sys.argv or "--version" in sys.argv: | |
18 #Galaxy seems to invert the order of the two lines | |
19 print "(Galaxy wrapper v0.0.1)" | |
20 cmd = "samtools 2>&1 | grep -i ^Version" | |
21 sys.exit(os.system(cmd)) | |
22 | |
23 def stop_err(msg, error_level=1): | |
24 """Print error message to stdout and quit with given error level.""" | |
25 sys.stderr.write("%s\n" % msg) | |
26 sys.exit(error_level) | |
27 | |
28 if len(sys.argv) != 5: | |
29 stop_err("Require four arguments: padded FASTA, SAM/BAM file, format (SAM or BAM), output BAM filenames") | |
30 | |
31 padded_ref, bam_filename, input_format, output_filename = sys.argv[1:] | |
32 | |
33 if not os.path.isfile(padded_ref): | |
34 stop_err("Input padded reference FASTA file not found: %s" % padded_ref) | |
35 if not os.path.isfile(bam_filename): | |
36 stop_err("Input BAM file not found: %s" % bam_filename) | |
37 if input_format.lower() not in ["sam", "bam"]: | |
38 stop_err("Input format should be SAM or BAM, not %r" % input_format) | |
39 | |
40 #Run samtools depad: | |
41 if input_format.lower() == "sam": | |
42 cmd = "samtools depad -S -T %s %s > %s" % (padded_ref, bam_filename, output_filename) | |
43 else: | |
44 cmd = "samtools depad -T %s %s > %s" % (padded_ref, bam_filename, output_filename) | |
45 return_code = os.system(cmd) | |
46 | |
47 if return_code: | |
48 stop_err("Return code %i from command:\n%s" % (return_code, cmd)) |