Mercurial > repos > sanbi-uwc > build_ctb_gene
view build_ctb_gene.py @ 10:cb322069c7bc draft
planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc.git commit f3af88f047a6081a46925bdbb50161ad1244b4f1
author | sanbi-uwc |
---|---|
date | Mon, 16 May 2016 10:34:46 -0400 |
parents | 9cc174f0fb9f |
children | 517691812452 |
line wrap: on
line source
#!/usr/bin/env python from __future__ import print_function import argparse import os import sys import glob import shlex import shutil from subprocess import check_call, CalledProcessError import logging log = logging.getLogger(__name__) class BuildCtbRunner(object): def __init__(self, args=None): ''' Initializes an object to run CtbRunner in Galaxy. ''' # Check whether the options are specified and saves them into the object assert args != None self.args = args def build_ctb_gene(self, output_file1, output_dir, input_file, mount_point): # cmdline_str = "build_ctb_gene goterms ${}".format(input_file) cmdline_str = "touch /tmp/foo.bar" build_ctb = False cmdline_str = self.newSplit(cmdline_str) try: check_call(cmdline_str) build_ctb = True except CalledProcessError: print("Error running the build_ctb_gene gotermS", file=sys.stderr) # Read the files at the mount point and load the html file if build_ctb: files = glob.glob(mount_point) output_file1 = """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="Galaxy %s tool output - see http://g2.trac.bx.psu.edu/" /> <title></title> <link rel="stylesheet" href="/static/style/base.css" type="text/css" /> </head> <body> <div class="toolFormBody"> <table> <th>Files</th> """ for f in files: output_file1 += "<tr><td>" + f + "</td></tr>" output_file1 += """</table></div></body></html>\n""" self.copy_output_file_to_dataset() return output_file1 def newSplit(value): lex = shlex.shlex(value) lex.quotes = '"' lex.whitespace_split = True lex.commenters = '' return list(lex) def copy_output_file_to_dataset(self): ''' Retrieves the output files from the output directory and copies them to the Galaxy output files ''' # retrieve neo4j files to the working gx directory result_file = glob.glob(self.args.mount_point + '/*') with open(result_file[0], 'rb') as fsrc: with open(self.args.outputdir, 'wb') as fdest: shutil.copyfileobj(fsrc, fdest) def main(): parser = argparse.ArgumentParser(description="Tool used to extract data about genes using locus_tags") parser.add_argument('output_file1') parser.add_argument('--outputdir') parser.add_argument('--input_file') parser.add_argument('--mount_point') parser.add_argument('--username') parser.add_argument('--password') parser.add_argument('--url') parser.add_argument('--port') args = parser.parse_args() export_cmd = "export NEO4J_REST_URL=http://${args.username}:${args.password}@${args.url}:${args.port}/db/data/" try: os.system(export_cmd) except: log.debug("Error exporting the NEO4J db environmental values") # make the output directory if not os.path.exists(args.outputdir): os.makedirs(args.outputdir) ctb_gene_runner = BuildCtbRunner(args) ctb_gene_runner.build_ctb_gene(args.output_file1, args.outputdir, args.input_file, args.mount_point) if __name__ == "__main__": main()