diff emboss_format_corrector.py @ 0:de3a45e9ccce draft

"planemo upload for repository https://github.com/brinkmanlab/galaxy-tools/tree/master/emboss commit eaefd81cf7afec08ffc570ac53d6718d62743a99"
author brinkmanlab
date Tue, 25 Jan 2022 03:26:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emboss_format_corrector.py	Tue Jan 25 03:26:28 2022 +0000
@@ -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