Generate manifest files for ENCODE3
[htsworkflow.git] / encode_submission / trackhub.py
index c5c254358f972289bba132deae366c9dbcc897f9..197d7f34092ef87e9b2a617b0a8474d3896ae3f9 100644 (file)
@@ -27,7 +27,6 @@ import RDF
 if not 'DJANGO_SETTINGS_MODULE' in os.environ:
     os.environ['DJANGO_SETTINGS_MODULE'] = 'htsworkflow.settings'
 
-
 from htsworkflow.util import api
 from htsworkflow.util.rdfhelp import \
      dafTermOntology, \
@@ -78,10 +77,10 @@ def main(cmdline=None):
             logger.warn("File %s doesn't exist.", a)
 
     if opts.make_link_tree_from is not None:
-        results.make_tree_from(opts.make_tree_from, link=True)
+        results.make_tree_from(opts.make_link_tree_from, link=True)
 
     if opts.copy_tree_from is not None:
-        results.make_tree_from(opts.make_tree_from, link=False)
+        results.make_tree_from(opts.copy_tree_from, link=False)
 
     if opts.fastq:
         logger.info("Building fastq extraction scripts")
@@ -97,8 +96,11 @@ def main(cmdline=None):
         mapper.scan_submission_dirs(results)
 
     if opts.make_hub:
-        make_hub(results)
+        make_hub(mapper, results, opts.make_hub)
 
+    if opts.make_manifest:
+        make_manifest(mapper, results, opts.make_manifest)
+        
     if opts.sparql:
         sparql_query(model, opts.sparql)
 
@@ -107,17 +109,23 @@ def main(cmdline=None):
         print writer.serialize_model_to_string(model)
 
 
-def make_hub(results):
+def make_hub(mapper, results, filename=None):
     trackdb = mapper.make_hub(results)
-    manifest = mapper.make_manifest(results)
 
-    trackstream = sys.stdout
-    #with open('trackDb.txt', 'w') as trackstream:
-    trackstream.write(trackdb)
+    if filename is None or filename == '-':
+        sys.stdout.write(trackdb)
+    else:
+        with open('trackDb.txt', 'w') as trackstream:
+            trackstream.write(trackdb)
+
+def make_manifest(mapper, results, filename=None):
+    manifest = mapper.make_manifest(results)
 
-    #with open('manifest.txt', 'w') as mainifeststream:
-    manifeststream = sys.stdout
-    mainifeststream.write(mainifest)
+    if filename is None or filename == '-':
+        sys.stdout.write(manifest)
+    else:
+        with open(filename, 'w') as mainifeststream:
+            mainifeststream.write(manifest)
         
 def make_parser():
     parser = OptionParser()
@@ -146,8 +154,12 @@ def make_parser():
                         help="generate scripts for making fastq files")
     commands.add_option('--scan-submission', default=False, action="store_true",
                       help="Import metadata for submission into our model")
-    commands.add_option('--make-hub', help='make the hub file', default=False,
-                      action="store_true")
+    commands.add_option('--make-hub', default=None, 
+                        help='name the hub file or - for stdout to create it')
+    commands.add_option('--make-manifest', 
+                        help='name the manifest file name or - for stdout to create it', 
+                        default=None)
+
 
     parser.add_option_group(commands)