From c05a9af4c87b60f2eec2b98a88fa7348babffa2b Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 9 Feb 2020 11:49:46 +0100 Subject: [PATCH] Move wiggle_to_interval out of GALAXY_LIB_TOOLS_UNVERSIONED --- .../converters/wiggle_to_simple_converter.py | 34 ++++------------ .../converters/wiggle_to_simple_converter.xml | 6 ++- lib/galaxy/tools/__init__.py | 4 +- tools/filters/wiggle_to_simple.py | 40 +++++-------------- tools/filters/wiggle_to_simple.xml | 8 +++- 5 files changed, 31 insertions(+), 61 deletions(-) diff --git a/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.py b/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.py index ac965e105ae..b2c3229bc86 100644 --- a/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.py +++ b/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.py @@ -11,40 +11,20 @@ import sys import bx.wiggle -from galaxy.util import unicodify from galaxy.util.ucsc import ( UCSCLimitException, UCSCOutWrapper ) -def stop_err(msg): - sys.stderr.write(msg) - sys.exit(1) - - def main(): - if len(sys.argv) > 1: - in_file = open(sys.argv[1]) - else: - in_file = open(sys.stdin) - - if len(sys.argv) > 2: - out_file = open(sys.argv[2], "w") - else: - out_file = sys.stdout - - try: - for fields in bx.wiggle.IntervalReader(UCSCOutWrapper(in_file)): - out_file.write("%s\n" % "\t".join(map(str, fields))) - except UCSCLimitException: - # Wiggle data was truncated, at the very least need to warn the user. - print('Encountered message from UCSC: "Reached output limit of 100000 data values", so be aware your data was truncated.') - except ValueError as e: - stop_err(unicodify(e)) - finally: - in_file.close() - out_file.close() + with open(sys.argv[1]) as in_file, open(sys.argv[2], "w") as out_file: + try: + for fields in bx.wiggle.IntervalReader(UCSCOutWrapper(in_file)): + out_file.write("%s\n" % "\t".join(map(str, fields))) + except UCSCLimitException: + # Wiggle data was truncated, at the very least need to warn the user. + sys.stderr.write('Encountered message from UCSC: "Reached output limit of 100000 data values", so be aware your data was truncated.') if __name__ == "__main__": diff --git a/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.xml b/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.xml index 29c494189ad..5befe7746dc 100644 --- a/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.xml +++ b/lib/galaxy/datatypes/converters/wiggle_to_simple_converter.xml @@ -1,6 +1,10 @@ - + + + galaxy-util + bx-python + python '$__tool_directory__/wiggle_to_simple_converter.py' '$input' '$out_file1' diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index b25397258d5..66a58102a1a 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -143,7 +143,6 @@ GALAXY_LIB_TOOLS_UNVERSIONED = [ "MAF_split_blocks_by_species1", "MAF_Limit_To_Species1", "maf_by_block_number1", - "wiggle2simple1", # Converters "CONVERTER_bed_to_fli_0", "CONVERTER_fastq_to_fqtoc0", @@ -151,7 +150,6 @@ GALAXY_LIB_TOOLS_UNVERSIONED = [ "CONVERTER_gff_to_interval_index_0", "CONVERTER_maf_to_fasta_0", "CONVERTER_maf_to_interval_0", - "CONVERTER_wiggle_to_interval_0", "CONVERTER_tar_to_directory", # Tools improperly migrated to the tool shed (devteam) "qualityFilter", @@ -191,6 +189,8 @@ GALAXY_LIB_TOOLS_VERSIONED = { "vcf_to_maf_customtrack1": packaging.version.parse("1.0.1"), "secure_hash_message_digest": packaging.version.parse("0.0.2"), "join1": packaging.version.parse("2.1.3"), + "wiggle2simple1": packaging.version.parse("1.0.1"), + "CONVERTER_wiggle_to_interval_0": packaging.version.parse("1.0.1"), } diff --git a/tools/filters/wiggle_to_simple.py b/tools/filters/wiggle_to_simple.py index f1fcf045c8f..d619a8dc3f7 100755 --- a/tools/filters/wiggle_to_simple.py +++ b/tools/filters/wiggle_to_simple.py @@ -10,38 +10,20 @@ import sys import bx.wiggle -from galaxy.util.ucsc import UCSCLimitException, UCSCOutWrapper - - -def stop_err(msg): - sys.stderr.write(msg) - sys.exit() +from galaxy.util.ucsc import ( + UCSCLimitException, + UCSCOutWrapper +) def main(): - if len(sys.argv) > 1: - in_file = open(sys.argv[1]) - else: - in_file = open(sys.stdin) - - if len(sys.argv) > 2: - out_file = open(sys.argv[2], "w") - else: - out_file = sys.stdout - - try: - for fields in bx.wiggle.IntervalReader(UCSCOutWrapper(in_file)): - out_file.write("%s\n" % "\t".join(map(str, fields))) - except UCSCLimitException: - # Wiggle data was truncated, at the very least need to warn the user. - print('Encountered message from UCSC: "Reached output limit of 100000 data values", so be aware your data was truncated.') - except ValueError as e: - in_file.close() - out_file.close() - stop_err(str(e)) - - in_file.close() - out_file.close() + with open(sys.argv[1]) as in_file, open(sys.argv[2], "w") as out_file: + try: + for fields in bx.wiggle.IntervalReader(UCSCOutWrapper(in_file)): + out_file.write("%s\n" % "\t".join(map(str, fields))) + except UCSCLimitException: + # Wiggle data was truncated, at the very least need to warn the user. + sys.stderr.write('Encountered message from UCSC: "Reached output limit of 100000 data values", so be aware your data was truncated.') if __name__ == "__main__": diff --git a/tools/filters/wiggle_to_simple.xml b/tools/filters/wiggle_to_simple.xml index 991ce655148..b4362369cae 100644 --- a/tools/filters/wiggle_to_simple.xml +++ b/tools/filters/wiggle_to_simple.xml @@ -1,6 +1,10 @@ - + converter - wiggle_to_simple.py $input $out_file1 + + galaxy-util + bx-python + + python '$__tool_directory__/wiggle_to_simple.py' '$input' '$out_file1'