annotate tools/samtools_depad/samtools_depad.py @ 3:588c6ce25867 draft default tip

v0.0.5 Python 3 compatible print function.
author peterjc
date Wed, 17 May 2017 09:15:32 -0400
parents 02572789ef6c
children
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 """
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
12
3
588c6ce25867 v0.0.5 Python 3 compatible print function.
peterjc
parents: 2
diff changeset
13 from __future__ import print_function
588c6ce25867 v0.0.5 Python 3 compatible print function.
peterjc
parents: 2
diff changeset
14
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
15 import os
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
16 import sys
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
17
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
18 if "-v" in sys.argv or "--version" in sys.argv:
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
19 # Galaxy seems to invert the order of the two lines
3
588c6ce25867 v0.0.5 Python 3 compatible print function.
peterjc
parents: 2
diff changeset
20 print("(Galaxy wrapper v0.0.5)")
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
21 cmd = "samtools 2>&1 | grep -i ^Version"
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
22 sys.exit(os.system(cmd))
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
23
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
24 if len(sys.argv) != 5:
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
25 sys.exit("Require four arguments: padded FASTA, SAM/BAM file, format (SAM or BAM), output BAM filenames")
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
26
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
27 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
28
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
29 if not os.path.isfile(padded_ref):
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
30 sys.exit("Input padded reference FASTA file not found: %s" % padded_ref)
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
31 if not os.path.isfile(bam_filename):
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
32 sys.exit("Input BAM file not found: %s" % bam_filename)
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
33 if input_format.lower() not in ["sam", "bam"]:
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
34 sys.exit("Input format should be SAM or BAM, not %r" % input_format)
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
35
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
36 # Run samtools depad:
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
37 if input_format.lower() == "sam":
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
38 cmd = "samtools depad -S -T '%s' '%s' > '%s'" % (padded_ref, bam_filename, output_filename)
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
39 else:
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
40 cmd = "samtools depad -T '%s' '%s' > '%s'" % (padded_ref, bam_filename, output_filename)
0
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
41 return_code = os.system(cmd)
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
42
2d303f2e09e0 Uploaded v0.0.1, previously only on the Test Tool Shed
peterjc
parents:
diff changeset
43 if return_code:
2
02572789ef6c v0.0.4 Internal changes to command line handling
peterjc
parents: 1
diff changeset
44 sys.exit("Return code %i from command:\n%s" % (return_code, cmd))