Mercurial > repos > sanbi-uwc > build_ctb_explorer
changeset 1:0819302402d3 draft
planemo upload for repository https://github.com/SANBI-SA/tools-sanbi-uwc/tree/master/tools/build_ctb_explorer commit ea7fb439a8f9fbb055af51db4aa3dd3469f273b0
| author | sanbi-uwc |
|---|---|
| date | Fri, 10 Jun 2016 05:01:56 -0400 |
| parents | e80a66932a1e |
| children | 4af7d0144c82 |
| files | build_ctb_explorer.py build_ctb_explorer.xml |
| diffstat | 2 files changed, 54 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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 @@ <exit_code range="1:" /> </stdio> <command interpreter="python"> - 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} </command> <inputs> - <param name="input_file1" type="data" format="neostore" label="Choose the neo4jdb dataset" help="Specify the neo4jdb file" optional="False" /> - <param name="input_file2" type="data" format="ctbreport" label="Choose the ctb report dataset" help="Specify the ctb report file" optional="False" /> + <param name="input_neo4jdb" type="data" format="neostore" label="Choose the neo4jdb dataset" help="Specify the neo4jdb file" optional="False" /> + <param name="input_jbrowser" type="data" format="ctbreport" label="Choose the ctb report dataset" help="Specify the ctb report file" optional="False" /> </inputs> <outputs> <data format="ctbreport" name="outputFile1"/>
