# HG changeset patch
# User richard-burhans
# Date 1722369233 0
# Node ID 4cd7884635c279d04085517a173f0c4bf98e85af
# Parent 34d51e66256cdbecf8784357b9113c164b84253b
planemo upload for repository https://github.com/richard-burhans/galaxytools/tree/main/tools/batched_lastz commit 869a01abe21b6283d3c83da38fc68761c2e94ba1
diff -r 34d51e66256c -r 4cd7884635c2 batched_lastz.xml
--- a/batched_lastz.xml Wed Jul 10 18:00:34 2024 +0000
+++ b/batched_lastz.xml Tue Jul 30 19:53:53 2024 +0000
@@ -17,7 +17,7 @@
-
+
diff -r 34d51e66256c -r 4cd7884635c2 run_lastz_tarball.py
--- a/run_lastz_tarball.py Wed Jul 10 18:00:34 2024 +0000
+++ b/run_lastz_tarball.py Tue Jul 30 19:53:53 2024 +0000
@@ -91,13 +91,38 @@
self.debug = debug
self.tarfile = None
self.commands: typing.List[typing.Dict[str, typing.Any]] = []
+ self.format_name = "tabular"
self._extract()
self._load_commands()
+ self._load_format()
def batch_commands(self) -> typing.Iterator[typing.Dict[str, typing.Any]]:
for command in self.commands:
yield command
+ def final_output_format(self) -> str:
+ return self.format_name
+
+ def _extract(self) -> None:
+ try:
+ self.tarball = tarfile.open(
+ name=self.pathname, mode="r:*", format=tarfile.GNU_FORMAT
+ )
+ except FileNotFoundError:
+ sys.exit(f"ERROR: unable to find input tarball: {self.pathname}")
+ except tarfile.ReadError:
+ sys.exit(f"ERROR: error reading input tarball: {self.pathname}")
+
+ begin = time.perf_counter()
+ self.tarball.extractall(filter="data")
+ self.tarball.close()
+ elapsed = time.perf_counter() - begin
+
+ if self.debug:
+ print(
+ f"Extracted tarball in {elapsed} seconds", file=sys.stderr, flush=True
+ )
+
def _load_commands(self) -> None:
try:
f = open("galaxy/commands.json")
@@ -173,25 +198,20 @@
self.commands.append(command_dict)
- def _extract(self) -> None:
+ def _load_format(self) -> None:
try:
- self.tarball = tarfile.open(
- name=self.pathname, mode="r:*", format=tarfile.GNU_FORMAT
+ with open("galaxy/format.txt") as f:
+ format_name = f.readline()
+ format_name = format_name.rstrip("\n")
+ except FileNotFoundError:
+ sys.exit(
+ f"ERROR: input tarball missing galaxy/format.txt: {self.pathname}"
)
- except FileNotFoundError:
- sys.exit(f"ERROR: unable to find input tarball: {self.pathname}")
- except tarfile.ReadError:
- sys.exit(f"ERROR: error reading input tarball: {self.pathname}")
- begin = time.perf_counter()
- self.tarball.extractall(filter="data")
- self.tarball.close()
- elapsed = time.perf_counter() - begin
-
- if self.debug:
- print(
- f"Extracted tarball in {elapsed} seconds", file=sys.stderr, flush=True
- )
+ if format_name in ["bam", "maf"]:
+ self.format_name = format_name
+ elif format_name == "differences":
+ self.format_name = "interval"
class TarRunner:
@@ -302,19 +322,31 @@
def _cleanup(self) -> None:
num_output_files = len(self.output_files.keys())
+ if num_output_files != 1:
+ sys.exit(f"ERROR: expecting a single output file, found {num_output_files}")
+
+ final_output_format = self.batch_tar.final_output_format()
for file_type, file_list in self.output_files.items():
- with open(f"output.{file_type}", "w") as ofh:
- print("##maf version=1", file=ofh)
+ with open(f"output.{final_output_format}", "w") as ofh:
+ if final_output_format == "maf":
+ print("##maf version=1", file=ofh)
for filename in file_list:
with open(f"galaxy/files/{filename}") as ifh:
for line in ifh:
ofh.write(line)
- if num_output_files == 1:
- file_type = list(self.output_files.keys())[0]
- src_filename = f"output.{file_type}"
- shutil.copy2(src_filename, self.output_pathname)
+ src_filename = f"output.{final_output_format}"
+ shutil.copy2(src_filename, self.output_pathname)
+
+ output_metadata = {
+ "output": {
+ "ext": final_output_format,
+ }
+ }
+
+ with open("galaxy.json", "w") as ofh:
+ json.dump(output_metadata, ofh)
def main() -> None:
diff -r 34d51e66256c -r 4cd7884635c2 test-data/input.tgz
Binary file test-data/input.tgz has changed