Mercurial > repos > yating-l > hubarchivecreatortest
diff hubArchiveCreator.py @ 1:85195e0d4b71 draft
planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit b1ae7349f118a0fe7923d765020dfc684cf84116-dirty
| author | yating-l |
|---|---|
| date | Fri, 29 Sep 2017 13:32:23 -0400 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hubArchiveCreator.py Fri Sep 29 13:32:23 2017 -0400 @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf8 -*- + +""" +This Galaxy tool permits to prepare your files to be ready for +Assembly Hub visualization. +Program test arguments: +hubArchiveCreator.py -g test-data/augustusDbia3.gff3 -f '{"false_path": "./test-data/common/dbia3.fa", "name":"dbia3"}' -d . -u ./tools -o output.html +""" + +import argparse +import collections +import json +import logging +import os +import sys + +# Internal dependencies +from util.Reader import Reader +from util.Logger import Logger +from TrackHub import TrackHub + + + +# TODO: Verify each subprocessed dependency is accessible [gff3ToGenePred, genePredToBed, twoBitInfo, faToTwoBit, bedToBigBed, sort + + +def main(argv): + + # Command Line parsing init + parser = argparse.ArgumentParser(description='Create a foo.txt inside the given folder.') + parser.add_argument('-j', '--data_json', help='JSON file containing the metadata of the inputs') + parser.add_argument('-o', '--output', help='Name of the HTML summarizing the content of the Track Hub Archive') + + # Get the args passed in parameter + args = parser.parse_args() + json_inputs_data = args.data_json + outputFile = args.output + + ##Parse JSON file with Reader + reader = Reader(json_inputs_data) + + # Begin init variables + extra_files_path = reader.getExtFilesPath() + toolDirectory = reader.getToolDir() + #outputFile = reader.getOutputDir() + user_email = reader.getUserEmail() + reference_genome = reader.getRefGenome() + debug_mode = reader.getDebugMode() + + #### Logging management #### + # If we are in Debug mode, also print in stdout the debug dump + log = Logger(tool_directory=toolDirectory, debug=debug_mode, extra_files_path=extra_files_path) + log.setup_logging() + logging.info('#### HubArchiveCreator: Start ####\n') + logging.debug('---- Welcome in HubArchiveCreator Debug Mode ----\n') + logging.debug('JSON parameters: %s\n\n', json.dumps(reader.args)) + #### END Logging management #### + + # Create the Track Hub folder + logging.info('#### HubArchiveCreator: Creating the Track Hub folder ####\n') + trackHub = TrackHub(reference_genome, user_email, outputFile, extra_files_path, toolDirectory) + + # Create Ordered Dictionary to add the tracks in the tool form order + logging.info('#### HubArchiveCreator: Preparing track data ####\n') + all_datatype_dictionary = reader.getTracksData() + all_datatype_ordered_dictionary = collections.OrderedDict(all_datatype_dictionary) + + logging.debug("----- End of all_datatype_dictionary processing -----") + #logging.debug("all_datatype_ordered_dictionary are: %s", json.dumps(all_datatype_ordered_dictionary)) + + logging.info('#### HubArchiveCreator: Adding tracks to Track Hub ####\n') + logging.debug("----- Beginning of Track adding processing -----") + + for index, datatypeObject in all_datatype_ordered_dictionary.iteritems(): + trackHub.addTrack(datatypeObject.track.track_db) + + logging.debug("----- End of Track adding processing -----") + + # We terminate the process and so create a HTML file summarizing all the files + logging.info('#### HubArchiveCreator: Creating the HTML file ####\n') + trackHub.terminate() + + logging.debug('---- End of HubArchiveCreator Debug Mode: Bye! ----\n') + logging.info('#### HubArchiveCreator: Congratulation! Assembly Hub is created! ####\n') + + sys.exit(0) + +if __name__ == "__main__": + main(sys.argv)
