From f0e8ab9e4cbe30b1246e85232c59e2ae05d6b9b4 Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Fri, 18 Feb 2022 17:59:56 +0100 Subject: [PATCH 001/350] replace pysam in converters by command line tools - removes popen call - removes outdated pysam dependency fixes https://github.com/galaxyproject/galaxy/issues/9672 if desired we can keep pysam (updated) and just replace the popen calls --- lib/galaxy/datatypes/converters/bgzip.py | 53 ----------------- .../interval_to_bgzip_converter.xml | 25 ++++---- .../converters/interval_to_tabix_converter.py | 59 ------------------- .../interval_to_tabix_converter.xml | 22 ++++--- .../datatypes/converters/tabular_to_dbnsfp.py | 35 ----------- .../converters/tabular_to_dbnsfp.xml | 8 ++- .../datatypes/converters/vcf_to_vcf_bgzip.py | 25 -------- .../converters/vcf_to_vcf_bgzip_converter.xml | 7 ++- 8 files changed, 40 insertions(+), 194 deletions(-) delete mode 100644 lib/galaxy/datatypes/converters/bgzip.py delete mode 100644 lib/galaxy/datatypes/converters/interval_to_tabix_converter.py delete mode 100644 lib/galaxy/datatypes/converters/tabular_to_dbnsfp.py delete mode 100644 lib/galaxy/datatypes/converters/vcf_to_vcf_bgzip.py diff --git a/lib/galaxy/datatypes/converters/bgzip.py b/lib/galaxy/datatypes/converters/bgzip.py deleted file mode 100644 index 3e996c5442a..00000000000 --- a/lib/galaxy/datatypes/converters/bgzip.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python - -""" -Uses pysam to bgzip a file - -usage: %prog in_file out_file -""" -import optparse -import subprocess -import tempfile - -import pysam - - -def main(): - # Read options, args. - parser = optparse.OptionParser() - parser.add_option("-c", "--chr-col", type="int", dest="chrom_col") - parser.add_option("-s", "--start-col", type="int", dest="start_col") - parser.add_option("-e", "--end-col", type="int", dest="end_col") - parser.add_option("-P", "--preset", dest="preset") - (options, args) = parser.parse_args() - input_fname, output_fname = args - - tmpfile = tempfile.NamedTemporaryFile() - sort_params = None - - if options.chrom_col and options.start_col and options.end_col: - sort_params = [ - "sort", - "-k{i},{i}".format(i=options.chrom_col), - "-k%(i)i,%(i)in" % {"i": options.start_col}, - "-k%(i)i,%(i)in" % {"i": options.end_col}, - ] - elif options.preset == "bed": - sort_params = ["sort", "-k1,1", "-k2,2n", "-k3,3n"] - elif options.preset == "vcf": - sort_params = ["sort", "-k1,1", "-k2,2n"] - elif options.preset == "gff": - sort_params = ["sort", "-s", "-k1,1", "-k4,4n"] # stable sort on start column - # Skip any lines starting with "#" and "track" - grepped = subprocess.Popen( - ["grep", "-e", '^"#"', "-e", "^track", "-v", input_fname], stderr=subprocess.PIPE, stdout=subprocess.PIPE - ) - after_sort = subprocess.Popen(sort_params, stdin=grepped.stdout, stderr=subprocess.PIPE, stdout=tmpfile) - grepped.stdout.close() - output, err = after_sort.communicate() - - pysam.tabix_compress(tmpfile.name, output_fname, force=True) - - -if __name__ == "__main__": - main() diff --git a/lib/galaxy/datatypes/converters/interval_to_bgzip_converter.xml b/lib/galaxy/datatypes/converters/interval_to_bgzip_converter.xml index 9eab8ea4c53..0650215db60 100644 --- a/lib/galaxy/datatypes/converters/interval_to_bgzip_converter.xml +++ b/lib/galaxy/datatypes/converters/interval_to_bgzip_converter.xml @@ -1,22 +1,27 @@