Mercurial > repos > peterjc > mira4_assembler
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) |
