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