diff emboss_format_corrector.py @ 10:d49956b87f7e draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/emboss_5 commit 2bfbb5ae6b801e43355fdc3f964a5111fe3fe3a1
author iuc
date Wed, 08 Feb 2017 12:42:22 -0500
parents
children ce385837c160
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emboss_format_corrector.py	Wed Feb 08 12:42:22 2017 -0500
@@ -0,0 +1,47 @@
+# EMBOSS format corrector
+import operator
+
+
+# Properly set file formats before job run
+def exec_before_job( app, inp_data=None, out_data=None, tool=None, param_dict=None ):
+    # why isn't items an ordered list?
+    items = out_data.items()
+    items = sorted(items, key=operator.itemgetter(0))
+
+    # normal filetype correction
+    data_count = 1
+    for name, data in items:
+        outputType = param_dict.get( 'out_format' + str(data_count), None )
+        if outputType is not None:
+            if outputType == 'ncbi':
+                outputType = "fasta"
+            elif outputType == 'excel':
+                outputType = "tabular"
+            elif outputType == 'text':
+                outputType = "txt"
+            data = app.datatypes_registry.change_datatype(data, outputType)
+            app.model.context.add( data )
+            app.model.context.flush()
+        data_count += 1
+
+    # html filetype correction
+    data_count = 1
+    for name, data in items:
+        wants_plot = param_dict.get( 'html_out' + str(data_count), None )
+        ext = "html"
+        if wants_plot == "yes":
+            data = app.datatypes_registry.change_datatype(data, ext)
+            app.model.context.add( data )
+            app.model.context.flush()
+        data_count += 1
+
+    # png file correction
+    data_count = 1
+    for name, data in items:
+        wants_plot = param_dict.get( 'plot' + str(data_count), None )
+        ext = "png"
+        if wants_plot == "yes":
+            data = app.datatypes_registry.change_datatype(data, ext)
+            app.model.context.add( data )
+            app.model.context.flush()
+        data_count += 1