Mercurial > repos > bgruening > bismark
view bismark2report_wrapper.py @ 22:8c191acde702 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/bismark commit 3005cec91ca52f9d28aa2fe0bd4190555abafc35
author | bgruening |
---|---|
date | Tue, 01 Aug 2023 11:42:10 +0000 |
parents | 120b7b35e442 |
children |
line wrap: on
line source
#!/usr/bin/python import argparse import logging import subprocess import sys def stop_err(logger, msg): logger.critical(msg) sys.exit() def log_subprocess_output(logger, pipe): for line in iter(pipe.readline, b""): logger.debug(line.decode().rstrip()) def get_arg(): parser = argparse.ArgumentParser() parser.add_argument( "--alignment_report", dest="alignment_report", action="store", metavar="alignment_report", type=str, ) parser.add_argument( "--dedup_report", dest="dedup_report", action="store", metavar="dedup_report", type=str, ) parser.add_argument( "--splitting_report", dest="splitting_report", action="store", metavar="splitting_report", type=str, ) parser.add_argument( "--mbias_report", dest="mbias_report", action="store", metavar="mbias_report", type=str, ) parser.add_argument( "--nucleotide_report", dest="nucleotide_report", action="store", metavar="nucleotide_report", type=str, ) parser.add_argument( "--output_html_report", dest="output_html_report", action="store", metavar="output_html_report", type=str, ) parser.add_argument( "--log_report", dest="log_report", action="store", metavar="log_report", type=str, ) args = parser.parse_args() return args def __main__(): args = get_arg() logger = logging.getLogger("bismark_deduplicate_wrapper") logger.setLevel(logging.DEBUG) ch = logging.StreamHandler(sys.stdout) if args.log_report: ch.setLevel(logging.WARNING) handler = logging.FileHandler(args.log_report) handler.setLevel(logging.DEBUG) logger.addHandler(handler) else: ch.setLevel(logging.DEBUG) logger.addHandler(ch) cmd = [ "bismark2report", "--verbose", "--alignment_report", args.alignment_report, "--output", args.output_html_report, ] if args.dedup_report: cmd.extend(["--dedup_report", args.dedup_report]) if args.splitting_report: cmd.extend(["--splitting_report", args.splitting_report]) if args.mbias_report: cmd.extend(["--mbias_report", args.mbias_report]) if args.nucleotide_report: cmd.extend(["--nucleotide_report", args.nucleotide_report]) logger.info("Generating report with: '%s'", " ".join(cmd)) process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) with process.stdout: log_subprocess_output(logger, process.stdout) exitcode = process.wait() if exitcode != 0: stop_err( logger, "Bismark pretty report error (also check the log file if any)!\n%s" % process.stderr, ) if __name__ == "__main__": __main__()