# HG changeset patch
# User peterjc
# Date 1559582940 14400
# Node ID bbf14bb9607b4e0dba770e49fed659c8ce9b9045
# Parent cee8f9005e43a156e4c587a9431e77755fbdb98c
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit 89578746a1c5b29c84a173d8b2709f086f69a7b6
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/mira4.py
--- a/tools/mira4_0/mira4.py Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/mira4.py Mon Jun 03 13:29:00 2019 -0400
@@ -24,9 +24,12 @@
# however there is some pipe error when doing that here.
cmd = [mira_binary, "-v"]
try:
- child = subprocess.Popen(cmd, universal_newlines=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(
+ cmd,
+ universal_newlines=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ )
except Exception as err:
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (" ".join(cmd), err))
sys.exit(1)
@@ -36,31 +39,56 @@
# Parse Command Line
-usage = """Galaxy MIRA4 wrapper script v%s - use as follows:
+usage = (
+ """Galaxy MIRA4 wrapper script v%s - use as follows:
$ python mira4.py ...
This will run the MIRA binary and collect its output files as directed.
-""" % WRAPPER_VER
+"""
+ % WRAPPER_VER
+)
parser = OptionParser(usage=usage)
-parser.add_option("-m", "--manifest", dest="manifest",
- default=None, metavar="FILE",
- help="MIRA manifest filename")
-parser.add_option("--maf", dest="maf",
- default="-", metavar="FILE",
- help="MIRA MAF output filename")
-parser.add_option("--bam", dest="bam",
- default="-", metavar="FILE",
- help="Unpadded BAM output filename")
-parser.add_option("--fasta", dest="fasta",
- default="-", metavar="FILE",
- help="Unpadded FASTA output filename")
-parser.add_option("--log", dest="log",
- default="-", metavar="FILE",
- help="MIRA logging output filename")
-parser.add_option("-v", "--version", dest="version",
- default=False, action="store_true",
- help="Show version and quit")
+parser.add_option(
+ "-m",
+ "--manifest",
+ dest="manifest",
+ default=None,
+ metavar="FILE",
+ help="MIRA manifest filename",
+)
+parser.add_option(
+ "--maf", dest="maf", default="-", metavar="FILE", help="MIRA MAF output filename"
+)
+parser.add_option(
+ "--bam",
+ dest="bam",
+ default="-",
+ metavar="FILE",
+ help="Unpadded BAM output filename",
+)
+parser.add_option(
+ "--fasta",
+ dest="fasta",
+ default="-",
+ metavar="FILE",
+ help="Unpadded FASTA output filename",
+)
+parser.add_option(
+ "--log",
+ dest="log",
+ default="-",
+ metavar="FILE",
+ help="MIRA logging output filename",
+)
+parser.add_option(
+ "-v",
+ "--version",
+ dest="version",
+ default=False,
+ action="store_true",
+ help="Show version and quit",
+)
options, args = parser.parse_args()
manifest = options.manifest
out_maf = options.maf
@@ -72,14 +100,20 @@
mira_path = os.environ["MIRA4"]
mira_binary = os.path.join(mira_path, "mira")
if not os.path.isfile(mira_binary):
- sys.exit("Missing mira under $MIRA4, %r\nFolder contained: %s"
- % (mira_binary, ", ".join(os.listdir(mira_path))))
+ sys.exit(
+ "Missing mira under $MIRA4, %r\nFolder contained: %s"
+ % (mira_binary, ", ".join(os.listdir(mira_path)))
+ )
mira_convert = os.path.join(mira_path, "miraconvert")
if not os.path.isfile(mira_convert):
- sys.exit("Missing miraconvert under $MIRA4, %r\nFolder contained: %s"
- % (mira_convert, ", ".join(os.listdir(mira_path))))
+ sys.exit(
+ "Missing miraconvert under $MIRA4, %r\nFolder contained: %s"
+ % (mira_convert, ", ".join(os.listdir(mira_path)))
+ )
else:
- sys.stderr.write("DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n")
+ sys.stderr.write(
+ "DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n"
+ )
mira_path = None
mira_binary = "mira"
mira_convert = "miraconvert"
@@ -178,8 +212,7 @@
ref_fasta = "%s/%s_out_ReferenceStrain.padded.fasta" % (f, name)
missing = False
- for old, new in [(old_maf, out_maf),
- (old_fasta, out_fasta)]:
+ for old, new in [(old_maf, out_maf), (old_fasta, out_fasta)]:
if not os.path.isfile(old):
missing = True
elif not new or new == "-":
@@ -245,20 +278,22 @@
handle = open(out_log, "w")
else:
handle = open(os.devnull, "w")
-handle.write("======================== MIRA manifest (instructions) ========================\n")
+handle.write(
+ "======================== MIRA manifest (instructions) ========================\n"
+)
m = open(manifest, "rU")
for line in m:
handle.write(line)
m.close()
del m
handle.write("\n")
-handle.write("============================ Starting MIRA now ===============================\n")
+handle.write(
+ "============================ Starting MIRA now ===============================\n"
+)
handle.flush()
try:
# Run MIRA
- child = subprocess.Popen(cmd_list,
- stdout=handle,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(cmd_list, stdout=handle, stderr=subprocess.STDOUT)
except Exception as err:
log_manifest(manifest)
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err))
@@ -272,7 +307,9 @@
run_time = time.time() - start_time
return_code = child.returncode
handle.write("\n")
-handle.write("============================ MIRA has finished ===============================\n")
+handle.write(
+ "============================ MIRA has finished ===============================\n"
+)
handle.write("MIRA took %0.2f hours\n" % (run_time / 3600.0))
if return_code:
print("MIRA took %0.2f hours" % (run_time / 3600.0))
@@ -288,22 +325,30 @@
if os.path.isfile("MIRA_assembly/MIRA_d_results/ec.log"):
handle.write("\n")
- handle.write("====================== Extract Large Contigs failed ==========================\n")
+ handle.write(
+ "====================== Extract Large Contigs failed ==========================\n" # noqa: E501
+ )
e = open("MIRA_assembly/MIRA_d_results/ec.log", "rU")
for line in e:
handle.write(line)
e.close()
- handle.write("============================ (end of ec.log) =================================\n")
+ handle.write(
+ "============================ (end of ec.log) =================================\n" # noqa: E501
+ )
handle.flush()
# print("Collecting output...")
start_time = time.time()
collect_output(temp, name, handle)
collect_time = time.time() - start_time
-handle.write("MIRA took %0.2f hours; collecting output %0.2f minutes\n"
- % (run_time / 3600.0, collect_time / 60.0))
-print("MIRA took %0.2f hours; collecting output %0.2f minutes\n"
- % (run_time / 3600.0, collect_time / 60.0))
+handle.write(
+ "MIRA took %0.2f hours; collecting output %0.2f minutes\n"
+ % (run_time / 3600.0, collect_time / 60.0)
+)
+print(
+ "MIRA took %0.2f hours; collecting output %0.2f minutes\n"
+ % (run_time / 3600.0, collect_time / 60.0)
+)
if os.path.isfile("MIRA_assembly/MIRA_d_results/ec.log"):
# Treat as an error, but doing this AFTER collect_output
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/mira4_bait.py
--- a/tools/mira4_0/mira4_bait.py Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/mira4_bait.py Mon Jun 03 13:29:00 2019 -0400
@@ -18,9 +18,12 @@
# however there is some pipe error when doing that here.
cmd = [mira_binary, "-v"]
try:
- child = subprocess.Popen(cmd, universal_newlines=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(
+ cmd,
+ universal_newlines=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ )
except Exception as err:
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (" ".join(cmd), err))
sys.exit(1)
@@ -40,10 +43,14 @@
mira_path = os.environ["MIRA4"]
mira_binary = os.path.join(mira_path, "mirabait")
if not os.path.isfile(mira_binary):
- sys.exit("Missing mirabait under $MIRA4, %r\nFolder contained: %s"
- % (mira_binary, ", ".join(os.listdir(mira_path))))
+ sys.exit(
+ "Missing mirabait under $MIRA4, %r\nFolder contained: %s"
+ % (mira_binary, ", ".join(os.listdir(mira_path)))
+ )
else:
- sys.stderr.write("DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n")
+ sys.stderr.write(
+ "DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n"
+ )
mira_path = None
mira_binary = "mirabait"
@@ -55,7 +62,16 @@
sys.exit(0)
-format, output_choice, strand_choice, kmer_length, min_occurance, bait_file, in_file, out_file = sys.argv[1:]
+(
+ format,
+ output_choice,
+ strand_choice,
+ kmer_length,
+ min_occurance,
+ bait_file,
+ in_file,
+ out_file,
+) = sys.argv[1:]
if format.startswith("fastq"):
format = "fastq"
@@ -67,9 +83,20 @@
assert out_file.endswith(".dat")
out_file_stem = out_file[:-4]
-cmd_list = [mira_binary, "-f", format, "-t", format,
- "-k", kmer_length, "-n", min_occurance,
- bait_file, in_file, out_file_stem]
+cmd_list = [
+ mira_binary,
+ "-f",
+ format,
+ "-t",
+ format,
+ "-k",
+ kmer_length,
+ "-n",
+ min_occurance,
+ bait_file,
+ in_file,
+ out_file_stem,
+]
if output_choice == "pos":
pass
elif output_choice == "neg":
@@ -90,9 +117,12 @@
start_time = time.time()
try:
# Run MIRA
- child = subprocess.Popen(cmd_list, universal_newlines=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(
+ cmd_list,
+ universal_newlines=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ )
except Exception as err:
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err))
sys.exit(1)
@@ -105,8 +135,7 @@
if return_code:
sys.stderr.write(stdout)
- sys.exit("Return error code %i from command:\n%s" % (return_code, cmd),
- return_code)
+ sys.exit("Return error code %i from command:\n%s" % (return_code, cmd), return_code)
# Capture output
out_tmp = out_file_stem + "." + format
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/mira4_convert.py
--- a/tools/mira4_0/mira4_convert.py Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/mira4_convert.py Mon Jun 03 13:29:00 2019 -0400
@@ -29,8 +29,9 @@
# Avoid using shell=True when we call subprocess to ensure if the Python
# script is killed, so too is the child process.
try:
- child = subprocess.Popen(cmd, universal_newlines=True,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ child = subprocess.Popen(
+ cmd, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
+ )
except Exception as err:
sys.exit("Error invoking command:\n%s\n\n%s\n" % (" ".join(cmd), err))
# Use .communicate as can get deadlocks with .wait(),
@@ -39,9 +40,14 @@
if return_code:
cmd_str = " ".join(cmd) # doesn't quote spaces etc
if stderr and stdout:
- sys.exit("Return code %i from command:\n%s\n\n%s\n\n%s" % (return_code, cmd_str, stdout, stderr))
+ sys.exit(
+ "Return code %i from command:\n%s\n\n%s\n\n%s"
+ % (return_code, cmd_str, stdout, stderr)
+ )
else:
- sys.exit("Return code %i from command:\n%s\n%s" % (return_code, cmd_str, stderr))
+ sys.exit(
+ "Return code %i from command:\n%s\n%s" % (return_code, cmd_str, stderr)
+ )
def get_version(mira_binary):
@@ -50,9 +56,7 @@
# however there is some pipe error when doing that here.
cmd = [mira_binary, "-v"]
try:
- child = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
except Exception as err:
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (" ".join(cmd), err))
sys.exit(1)
@@ -62,43 +66,63 @@
# Parse Command Line
-usage = """Galaxy MIRA4 wrapper script v%s - use as follows:
+usage = (
+ """Galaxy MIRA4 wrapper script v%s - use as follows:
$ python mira4_convert.py ...
This will run the MIRA miraconvert binary and collect its output files as directed.
-""" % WRAPPER_VER
+"""
+ % WRAPPER_VER
+)
parser = OptionParser(usage=usage)
-parser.add_option("--input", dest="input",
- default=None, metavar="FILE",
- help="MIRA input filename")
-parser.add_option("-x", "--min_length", dest="min_length",
- default="0",
- help="Minimum contig length")
-parser.add_option("-y", "--min_cover", dest="min_cover",
- default="0",
- help="Minimum average contig coverage")
-parser.add_option("-z", "--min_reads", dest="min_reads",
- default="0",
- help="Minimum reads per contig")
-parser.add_option("--maf", dest="maf",
- default="", metavar="FILE",
- help="MIRA MAF output filename")
-parser.add_option("--ace", dest="ace",
- default="", metavar="FILE",
- help="ACE output filename")
-parser.add_option("--bam", dest="bam",
- default="", metavar="FILE",
- help="Unpadded BAM output filename")
-parser.add_option("--fasta", dest="fasta",
- default="", metavar="FILE",
- help="Unpadded FASTA output filename")
-parser.add_option("--cstats", dest="cstats",
- default="", metavar="FILE",
- help="Contig statistics filename")
-parser.add_option("-v", "--version", dest="version",
- default=False, action="store_true",
- help="Show version and quit")
+parser.add_option(
+ "--input", dest="input", default=None, metavar="FILE", help="MIRA input filename"
+)
+parser.add_option(
+ "-x", "--min_length", dest="min_length", default="0", help="Minimum contig length"
+)
+parser.add_option(
+ "-y",
+ "--min_cover",
+ dest="min_cover",
+ default="0",
+ help="Minimum average contig coverage",
+)
+parser.add_option(
+ "-z", "--min_reads", dest="min_reads", default="0", help="Minimum reads per contig"
+)
+parser.add_option(
+ "--maf", dest="maf", default="", metavar="FILE", help="MIRA MAF output filename"
+)
+parser.add_option(
+ "--ace", dest="ace", default="", metavar="FILE", help="ACE output filename"
+)
+parser.add_option(
+ "--bam", dest="bam", default="", metavar="FILE", help="Unpadded BAM output filename"
+)
+parser.add_option(
+ "--fasta",
+ dest="fasta",
+ default="",
+ metavar="FILE",
+ help="Unpadded FASTA output filename",
+)
+parser.add_option(
+ "--cstats",
+ dest="cstats",
+ default="",
+ metavar="FILE",
+ help="Contig statistics filename",
+)
+parser.add_option(
+ "-v",
+ "--version",
+ dest="version",
+ default=False,
+ action="store_true",
+ help="Show version and quit",
+)
options, args = parser.parse_args()
if args:
sys.exit("Expected options (e.g. --input example.maf), not arguments")
@@ -114,16 +138,22 @@
mira_path = os.environ["MIRA4"]
mira_convert = os.path.join(mira_path, "miraconvert")
if not os.path.isfile(mira_convert):
- sys.exit("Missing miraconvert under $MIRA4, %r\nFolder contained: %s"
- % (mira_convert, ", ".join(os.listdir(mira_path))))
+ sys.exit(
+ "Missing miraconvert under $MIRA4, %r\nFolder contained: %s"
+ % (mira_convert, ", ".join(os.listdir(mira_path)))
+ )
else:
- sys.stderr.write("DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n")
+ sys.stderr.write(
+ "DEBUG: Since $MIRA4 is not set, assuming mira binaries are on $PATH.\n"
+ )
mira_path = None
mira_convert = "miraconvert"
mira_convert_ver = get_version(mira_convert)
if not mira_convert_ver.strip().startswith("4.0"):
- sys.exit("This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_convert_ver, mira_convert))
+ sys.exit(
+ "This wrapper is for MIRA V4.0, not:\n%s\n%s" % (mira_convert_ver, mira_convert)
+ )
if options.version:
print("%s, MIRA wrapper version %s" % (mira_convert_ver, WRAPPER_VER))
sys.exit(0)
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/mira4_make_bam.py
--- a/tools/mira4_0/mira4_make_bam.py Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/mira4_make_bam.py Mon Jun 03 13:29:00 2019 -0400
@@ -10,10 +10,13 @@
def run(cmd, log_handle):
try:
- child = subprocess.Popen(cmd, shell=True,
- universal_newlines=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
+ child = subprocess.Popen(
+ cmd,
+ shell=True,
+ universal_newlines=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ )
except Exception as err:
sys.stderr.write("Error invoking command:\n%s\n\n%s\n" % (cmd, err))
# TODO - call clean up?
@@ -32,17 +35,27 @@
def depad(fasta_file, sam_file, bam_file, log_handle):
- log_handle.write("\n================= Converting MIRA assembly from SAM to BAM ===================\n")
+ log_handle.write(
+ "\n================= Converting MIRA assembly from SAM to BAM ===================\n" # noqa: E501
+ )
# Also doing SAM to (uncompressed) BAM during depad
- bam_stem = bam_file + ".tmp" # Have write permissions and want final file in this folder
- cmd = 'samtools depad -S -u -T "%s" "%s" | samtools sort - "%s"' % (fasta_file, sam_file, bam_stem)
+ bam_stem = (
+ bam_file + ".tmp"
+ ) # Have write permissions and want final file in this folder
+ cmd = 'samtools depad -S -u -T "%s" "%s" | samtools sort - "%s"' % (
+ fasta_file,
+ sam_file,
+ bam_stem,
+ )
return_code = run(cmd, log_handle)
if return_code:
return "Error %i from command:\n%s" % (return_code, cmd)
if not os.path.isfile(bam_stem + ".bam"):
return "samtools depad or sort failed to produce BAM file"
- log_handle.write("\n====================== Indexing MIRA assembly BAM file =======================\n")
+ log_handle.write(
+ "\n====================== Indexing MIRA assembly BAM file =======================\n" # noqa: E501
+ )
cmd = 'samtools index "%s.bam"' % bam_stem
return_code = run(cmd, log_handle)
if return_code:
@@ -60,7 +73,9 @@
if not os.path.isfile(fasta_file):
return "Missing padded FASTA file: %r" % fasta_file
- log_handle.write("\n====================== Converting MIRA assembly to SAM =======================\n")
+ log_handle.write(
+ "\n====================== Converting MIRA assembly to SAM =======================\n" # noqa: E501
+ )
tmp_dir = tempfile.mkdtemp()
sam_file = os.path.join(tmp_dir, "x.sam")
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/mira4_validator.py
--- a/tools/mira4_0/mira4_validator.py Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/mira4_validator.py Mon Jun 03 13:29:00 2019 -0400
@@ -36,7 +36,9 @@
try:
min_size_int = int(min_size)
if min_size_int < 0:
- err["min_size"] = "Minumum size must not be negative (%i)" % min_size_int
+ err["min_size"] = (
+ "Minumum size must not be negative (%i)" % min_size_int
+ )
min_size = None # Avoid doing comparison below
except ValueError:
err["min_size"] = "Minimum size is not an integer (%s)" % min_size
@@ -46,14 +48,19 @@
try:
max_size_int = int(max_size)
if max_size_int < 0:
- err["max_size"] = "Maximum size must not be negative (%i)" % max_size_int
+ err["max_size"] = (
+ "Maximum size must not be negative (%i)" % max_size_int
+ )
max_size = None # Avoid doing comparison below
except ValueError:
err["max_size"] = "Maximum size is not an integer (%s)" % max_size
max_size = None # Avoid doing comparison below
if min_size and max_size and min_size_int > max_size_int:
- msg = "Minimum size must be less than maximum size (%i vs %i)" % (min_size_int, max_size_int)
+ msg = "Minimum size must be less than maximum size (%i vs %i)" % (
+ min_size_int,
+ max_size_int,
+ )
err["min_size"] = msg
err["max_size"] = msg
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/repository_dependencies.xml
--- a/tools/mira4_0/repository_dependencies.xml Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/repository_dependencies.xml Mon Jun 03 13:29:00 2019 -0400
@@ -1,4 +1,4 @@
-
+
-
-
+
+
\ No newline at end of file
diff -r cee8f9005e43 -r bbf14bb9607b tools/mira4_0/tool_dependencies.xml
--- a/tools/mira4_0/tool_dependencies.xml Wed Jul 11 12:35:35 2018 -0400
+++ b/tools/mira4_0/tool_dependencies.xml Mon Jun 03 13:29:00 2019 -0400
@@ -1,9 +1,9 @@
-
+
-
+
-
+
-
+
\ No newline at end of file