comparison tools/mira4_0/mira4_make_bam.py @ 39:bbf14bb9607b draft default tip

planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit 89578746a1c5b29c84a173d8b2709f086f69a7b6
author peterjc
date Mon, 03 Jun 2019 13:29:00 -0400
parents cee8f9005e43
children
comparison
equal deleted inserted replaced
38:cee8f9005e43 39:bbf14bb9607b
8 import tempfile 8 import tempfile
9 9
10 10
11 def run(cmd, log_handle): 11 def run(cmd, log_handle):
12 try: 12 try:
13 child = subprocess.Popen(cmd, shell=True, 13 child = subprocess.Popen(
14 universal_newlines=True, 14 cmd,
15 stdout=subprocess.PIPE, 15 shell=True,
16 stderr=subprocess.STDOUT) 16 universal_newlines=True,
17 stdout=subprocess.PIPE,
18 stderr=subprocess.STDOUT,
19 )
17 except Exception as err: 20 except Exception as err:
18 sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err)) 21 sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err))
19 # TODO - call clean up? 22 # TODO - call clean up?
20 log_handle.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err)) 23 log_handle.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err))
21 sys.exit(1) 24 sys.exit(1)
30 log_handle.write(stdout) 33 log_handle.write(stdout)
31 return child.returncode 34 return child.returncode
32 35
33 36
34 def depad(fasta_file, sam_file, bam_file, log_handle): 37 def depad(fasta_file, sam_file, bam_file, log_handle):
35 log_handle.write("\n================= Converting MIRA assembly from SAM to BAM ===================\n") 38 log_handle.write(
39 "\n================= Converting MIRA assembly from SAM to BAM ===================\n" # noqa: E501
40 )
36 # Also doing SAM to (uncompressed) BAM during depad 41 # Also doing SAM to (uncompressed) BAM during depad
37 bam_stem = bam_file + ".tmp" # Have write permissions and want final file in this folder 42 bam_stem = (
38 cmd = 'samtools depad -S -u -T "%s" "%s" | samtools sort - "%s"' % (fasta_file, sam_file, bam_stem) 43 bam_file + ".tmp"
44 ) # Have write permissions and want final file in this folder
45 cmd = 'samtools depad -S -u -T "%s" "%s" | samtools sort - "%s"' % (
46 fasta_file,
47 sam_file,
48 bam_stem,
49 )
39 return_code = run(cmd, log_handle) 50 return_code = run(cmd, log_handle)
40 if return_code: 51 if return_code:
41 return "Error %i from command:\n%s" % (return_code, cmd) 52 return "Error %i from command:\n%s" % (return_code, cmd)
42 if not os.path.isfile(bam_stem + ".bam"): 53 if not os.path.isfile(bam_stem + ".bam"):
43 return "samtools depad or sort failed to produce BAM file" 54 return "samtools depad or sort failed to produce BAM file"
44 55
45 log_handle.write("\n====================== Indexing MIRA assembly BAM file =======================\n") 56 log_handle.write(
57 "\n====================== Indexing MIRA assembly BAM file =======================\n" # noqa: E501
58 )
46 cmd = 'samtools index "%s.bam"' % bam_stem 59 cmd = 'samtools index "%s.bam"' % bam_stem
47 return_code = run(cmd, log_handle) 60 return_code = run(cmd, log_handle)
48 if return_code: 61 if return_code:
49 return "Error %i from command:\n%s" % (return_code, cmd) 62 return "Error %i from command:\n%s" % (return_code, cmd)
50 if not os.path.isfile(bam_stem + ".bam.bai"): 63 if not os.path.isfile(bam_stem + ".bam.bai"):
58 if not os.path.isfile(maf_file): 71 if not os.path.isfile(maf_file):
59 return "Missing input MIRA file: %r" % maf_file 72 return "Missing input MIRA file: %r" % maf_file
60 if not os.path.isfile(fasta_file): 73 if not os.path.isfile(fasta_file):
61 return "Missing padded FASTA file: %r" % fasta_file 74 return "Missing padded FASTA file: %r" % fasta_file
62 75
63 log_handle.write("\n====================== Converting MIRA assembly to SAM =======================\n") 76 log_handle.write(
77 "\n====================== Converting MIRA assembly to SAM =======================\n" # noqa: E501
78 )
64 tmp_dir = tempfile.mkdtemp() 79 tmp_dir = tempfile.mkdtemp()
65 sam_file = os.path.join(tmp_dir, "x.sam") 80 sam_file = os.path.join(tmp_dir, "x.sam")
66 81
67 # Note add nbb to the template name, possible MIRA 4.0 RC4 bug 82 # Note add nbb to the template name, possible MIRA 4.0 RC4 bug
68 cmd = '"%s" -f maf -t samnbb "%s" "%snbb"' % (mira_convert, maf_file, sam_file) 83 cmd = '"%s" -f maf -t samnbb "%s" "%snbb"' % (mira_convert, maf_file, sam_file)