# HG changeset patch # User sanbi-uwc # Date 1465549316 14400 # Node ID 0819302402d3cfe39090d13de197df4a8b7d52c8 # Parent e80a66932a1eb3113d99e061d6a49a045c2ae48c planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc/tree/master/tools/build_ctb_explorer commit ea7fb439a8f9fbb055af51db4aa3dd3469f273b0 diff -r e80a66932a1e -r 0819302402d3 build_ctb_explorer.py --- a/build_ctb_explorer.py Thu Jun 09 09:55:53 2016 -0400 +++ b/build_ctb_explorer.py Fri Jun 10 05:01:56 2016 -0400 @@ -1,16 +1,12 @@ #!/usr/bin/env python from __future__ import print_function + import argparse -import os -import sys +import datetime import glob -import shlex import shutil -import datetime -import time -import random -from subprocess import check_call, check_output, CalledProcessError -import socket + +import os try: from urllib.parse import urlparse @@ -21,6 +17,32 @@ log = logging.getLogger(__name__) +def copy_output_file_to_dataset(dir_name, input_dir, dt_type=None): + """ + Copy the datasets file to the news dataset cbt_browser + :param dir_name: the target output directory for the ctb_explorer dataset + :param input_dir: the input files + :param dt_type: the type of input dataset (neo4jdb, jbrowse - default to None) + :return: boolean + """ + dt_loc = input_dir.rpartition('/')[2].replace(".dat", "_files") + if dt_type: + if dt_type == "neo4jdb": + src_files = glob.glob(os.path.dirname(input_dir) + '/{}/{}'.format(dt_loc, dt_type) + "/*" ) + else: + src_files = glob.glob(os.path.dirname(input_dir) + '/{}'.format(dt_loc) + "/*" ) + else: + return False + for file_name in src_files: + if os.path.isfile(file_name): + shutil.copy2(file_name, dir_name) + elif os.path.isdir(file_name): + # create the parent dir before copytree + os.chdir(dir_name) + shutil.copytree(file_name, file_name.rsplit('/', 1)[-1]) + return True + + class BuildCtbExplorerRunner(object): def __init__(self, args=None): """ @@ -28,54 +50,46 @@ """ # Check whether the options are specified and saves them into the object self.args = args - self.outputdir1 = args.outputdir1 - self.outputdir2 = args.outputdir2 - self.input_file1 = args.input_file1 - self.input_file2 = args.input_file2 + self.output_neo4jdb = args.output_neo4jdb + self.output_jbrowser = args.output_jbrowser + self.input_neo4jdb = args.input_neo4jdb + self.input_jbrowser = args.input_jbrowser def build_ctb_explorer(self): """ :rtype: boolean """ - self.copy_output_file_to_dataset(self.outputdir1, self.input_file1) - self.copy_output_file_to_dataset(self.outputdir2, self.input_file2) + if copy_output_file_to_dataset(self.output_neo4jdb, self.input_neo4jdb, dt_type="neo4jdb") and \ + copy_output_file_to_dataset(self.output_jbrowser, self.input_jbrowser, dt_type="jbrowser"): + print("CTB Report run time: %s" % str(datetime.date.today())) + print("Neo4jDB - Input: %s" % str(self.args.input_neo4jdb)) + print("JBrowser - Input: %s" % str(self.args.input_jbrowser)) + else: + return False return True - def copy_output_file_to_dataset(self, dir, input_dir): - """ - Retrieves the output files from the gx working directory and copy them to the Galaxy output directory - """ - result_file = glob.glob(input_dir + '/*') - for file_name in result_file: - if os.path.isfile(file_name): - shutil.copy2(file_name, dir) - elif os.path.isdir(file_name): - # create the parent dir before copytree - os.chdir(dir) - shutil.copytree(file_name, file_name.rsplit('/', 1)[-1]) - def main(): parser = argparse.ArgumentParser(description="Tool used to build a combat-tb explorer dataset") - parser.add_argument('--outputdir1') - parser.add_argument('--outputdir2') - parser.add_argument('--input_file1') - parser.add_argument('--input_file2') + parser.add_argument('--output_neo4jdb') + parser.add_argument('--output_jbrowser') + parser.add_argument('--input_neo4jdb') + parser.add_argument('--input_jbrowser') args = parser.parse_args() ctb_explorer_runner = BuildCtbExplorerRunner(args) # make the output directory (neo4j) - if not os.path.exists(args.outputdir1): - os.makedirs(args.outputdir1) + if not os.path.exists(args.output_neo4jdb): + os.makedirs(args.output_neo4jdb) # make the output directory (jbrowser) - if not os.path.exists(args.outputdir2): - os.makedirs(args.outputdir2) + if not os.path.exists(args.output_jbrowser): + os.makedirs(args.output_jbrowser) status = ctb_explorer_runner.build_ctb_explorer() if status is None: exit(1) -if __name__ == "__main__": main() +if __name__ == "__main__": main() \ No newline at end of file diff -r e80a66932a1e -r 0819302402d3 build_ctb_explorer.xml --- a/build_ctb_explorer.xml Thu Jun 09 09:55:53 2016 -0400 +++ b/build_ctb_explorer.xml Fri Jun 10 05:01:56 2016 -0400 @@ -6,12 +6,12 @@ - build_ctb_explorer.py --outputdir1 "${os.path.join($outputFile1.files_path,'neo4jdb')}"\ - --outputdir2 "${os.path.join($outputFile1.files_path,'jbrowser')}" --input_file1 "${input_file1}" --input_file2 "${input_file2}" > ${outputFile1} + build_ctb_explorer.py --output_neo4jdb "${os.path.join($outputFile1.files_path,'neo4jdb')}"\ + --output_jbrowser "${os.path.join($outputFile1.files_path,'jbrowser')}" --input_neo4jdb "${input_neo4jdb}" --input_jbrowser "${input_jbrowser}" > ${outputFile1} - - + +