diff jbrowseArchiveCreator.py @ 6:237707a6b74d draft

planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
author yating-l
date Thu, 15 Feb 2018 17:05:05 -0500
parents
children 62dee5369e80
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jbrowseArchiveCreator.py	Thu Feb 15 17:05:05 2018 -0500
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+# -*- coding: utf8 -*-
+
+"""
+This Galaxy tool permits to prepare your files to be ready for JBrowse visualization.
+"""
+
+import sys
+import argparse
+import json
+import logging
+import collections
+
+
+# Internal dependencies
+from util.Reader import Reader
+from util.Logger import Logger 
+from TrackHub import TrackHub
+
+
+def main(argv):
+    parser = argparse.ArgumentParser(description='Create a hub to display in jbrowse.')
+    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 JBrowse 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()
+    track_type = reader.getTrackType()
+    
+ 
+    #### 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('#### JBrowseArchiveCreator: Start ####\n')
+    logging.debug('---- Welcome in JBrowseArchiveCreator Debug Mode ----\n')
+    logging.debug('JSON parameters: %s\n\n', json.dumps(reader.args))
+    #### END Logging management ####
+ 
+    # Create the Track Hub folder
+    logging.info('#### JBrowseArchiveCreator: Creating the Track Hub folder ####\n')
+    trackHub = TrackHub(reference_genome, outputFile, extra_files_path, toolDirectory, track_type) 
+
+    # Create Ordered Dictionary to add the tracks in the tool form order
+    logging.info('#### JBrowseArchiveCreator: 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('#### JBrowseArchiveCreator: 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('#### JBrowseArchiveCreator: Creating the HTML file ####\n')
+    trackHub.terminate(debug_mode)
+
+    logging.debug('---- End of JBrowseArchiveCreator Debug Mode: Bye! ----\n')
+    logging.info('#### JBrowseArchiveCreator: Congratulation! Assembly Hub is created! ####\n')
+
+    sys.exit(0)
+
+if __name__ == "__main__":
+    main(sys.argv)
\ No newline at end of file