diff multigps.xml @ 7:6d6ceda98d94 draft

Uploaded
author iuc
date Tue, 04 Apr 2017 14:40:36 -0400
parents 7dc47046b54c
children 2e5d3c304171
line wrap: on
line diff
--- a/multigps.xml	Tue Apr 04 10:29:15 2017 -0400
+++ b/multigps.xml	Tue Apr 04 14:40:36 2017 -0400
@@ -10,40 +10,9 @@
         <![CDATA[
             #set output_dir = $output_html.files_path
             mkdir -p $output_dir &&
-            python '$design_file_script' '$inputs' &&
+            '$design_file' &&
             multigps
             ## General options
-            #set single_or_multi_expt = $single_or_multi_expt_cond.single_or_multi_expt
-            #if str($single_or_multi_expt) == 'multi':
-                #for $i in $single_or_multi_expt_cond['input_items']:
-                    #set label_cond = $i['label_cond']
-                    #set experiment_file_name = $label_cond.input
-                    #set label = $label_cond.label
-                    #set file_format = $label_cond.input.ext
-                    #set control_file_name = $label_cond.control
-                    #set condition_name = $label_cond.condition_name
-                    #set replicate_name = 'None'
-                    #set experiment_type = $label_cond.experiment_type
-                    #set fixed_read_count = $label_cond.fixedreadcount
-                    #if str($label) == 'Signal':
-                        #set replicate_name = $label_cond.replicate_name
-                    #else if str($label) == 'Control':
-                        #set rncond = $label_cond.replicate_name_cond
-                        #if str($rncond.specify_replicate_name) == 'yes':
-                            #set replicate_name = $rncond.replicate_name
-                        #end if
-                    #end if
-                    --input_item '$experiment_file_name' '$control_file_name' '$label' '$file_format' '$condition_name' '$replicate_name' '$experiment_type' '$fixed_read_count'
-                #end for
-            #else:
-                #set expt = $single_or_multi_expt_cond.expt
-                #set control = $single_or_multi_expt_cond.control
-                --expt '$expt'
-                --format $expt.ext
-                #if str($control) != 'None':
-                    --control '$control'
-                #end if
-            #end if
             ## Append .txt extensions to events hrefs
             ## in output dataset so files will render
             ## in the browser.
@@ -185,76 +154,70 @@
     </command>
     <configfiles>
         <inputs name="inputs"/>
-        <configfile name="design_file_script">
+        <configfile name="design_file">
 <![CDATA[
-import sys
-import json
-
-input_json_path = sys.argv[1]
-params = json.load(open(input_json_path, "r"))
-
-if params['single_or_multi_expt_cond']['single_or_multi_expt'] == 'multi':
-    input_items = params['single_or_multi_expt_cond']['input_items']
-    design_file = open('design.tabular', 'w')
-    for item in input_items:
-        experiment_file_name, control_file_name, label, file_format, condition_name, replicate_name, experiment_type, fixed_read_count = item
-        if control_file_name not in ['None', None, '']:
-            control_file_names.append(control_file_name)
-        file_format = file_format.upper()
-        items = [experiment_file_name, label, file_format, condition_name]
-        if replicate_name not in ['None', None, '']:
-            items.append(replicate_name)
-        if experiment_type not in ['None', None, '']:
-            items.append(experiment_type)
-        if fixed_read_count not in ['None', None, '']:
-            items.append(fixed_read_count)
-        design_file.write('%s\n' % '\t'.join(items))
-    design_file.close()
+#for cond_i, condition_items in enumerate($condition_repeat):
+    #for experiment_items in condition_items['experiment_repeat']:
+        #set experiment = $experiment_items['experiment']
+        #set replicate_name = $experiment_items['replicate_name']
+        #set experiment_type = $experiment_items['experiment_type']
+        #set line = str($experiment) + 'Signal' + str($experiment.ext.upper()) + str($cond_i) + str($replicate_name) + str($experiment_type)
+        #set fixedreadcount_cond = $experiment_items['fixedreadcount_cond']
+        #set fixedreadcount_select = $fixedreadcount_cond['fixedreadcount_select']
+        #if str($fixedreadcount_select) == 'yes':
+            #set $line += str($fixedreadcount_cond['fixedreadcount'])
+        #end if
+        '%s\n' % $line
+    #end for
+    #for control_items in condition_items['control_repeat']:
+        #set control = $control_items['control']
+        #set experiment_type = $control_items['experiment_type']
+        #set line = str($control_items) + 'Control' + str($control.ext.upper()) + str($cond_i)
+        #set specify_replicate_name_cond = $control_items['specify_replicate_name_cond']
+        #set specify_replicate_name = $specify_replicate_name_cond.specify_replicate_name
+        #if str($specify_replicate_name) == 'yes':
+            #set $line += str($specify_replicate_name_cond['replicate_name'])
+        #end if
+        #set $line += str($experiment_type)
+        #set fixedreadcount_cond = $experiment_items['fixedreadcount_cond']
+        #set fixedreadcount_select = $fixedreadcount_cond['fixedreadcount_select']
+        #if str($fixedreadcount_select) == 'yes':
+            #set $line += str($fixedreadcount_cond['fixedreadcount'])
+        #end if
+        '%s\n' % $line
+    #end for
+#end for
 ]]>
         </configfile>
     </configfiles>
     <inputs>
-        <conditional name="single_or_multi_expt_cond">
-            <param name="single_or_multi_expt" type="select" label="Run MultiGPS on single or multiple inputs?">
-                <option value="multi" selected="True">Multiple inputs</option>
-                <option value="single">Single input</option>
-            </param>
-            <when value="multi">
-                <repeat name="input_items" title="Input files, attributes and options" min="2">
-                    <conditional name="label_cond">
-                        <param name="label" type="select" label="This experiment is">
-                            <option value="Signal" selected="True">Signal</option>
-                            <option value="Control">Control</option>
-                        </param>
-                        <when value="Signal">
-                            <expand macro="label_cond_params_start" />
-                            <param name="replicate_name" type="text" label="Replicate name" />
-                            <expand macro="label_cond_params_end" />
-                        </when>
-                        <when value="Control">
-                            <expand macro="label_cond_params_start" />
-                            <conditional name="replicate_name_cond">
-                                <param  name="specify_replicate_name" type="select" label="Specify replicate name?" help="Optional for control experiments.  If used, the control will only be used for the corresponding named signal replicate">
-                                    <option value="no" selected="True">No</option>
-                                    <option value="yes">Yes</option>
-                                </param>
-                                <when value="yes">
-                                    <param name="replicate_name" type="text" optional="True" label="Replicate name"/>
-                                </when>
-                                <when value="no" />
-                            </conditional>
-                            <expand macro="label_cond_params_end" />
-                        </when>
-                    </conditional>
-                </repeat>
-            </when>
-            <when value="single">
-                <param name="expt" type="data" format="bam,bed,scidx" label="Run MultiGPS on">
+        <repeat name="condition_repeat" title="Condition" min="1">
+            <repeat name="experiment_repeat" title="Experiment" min="1">
+                <param name="experiment" type="data" format="bam,bed,scidx" label="Select experiment" help="Supported formats are bam, bed and scidx">
+                    <validator type="unspecified_build" />
+                </param>
+                <expand macro="param_experiment_type" />
+                <param name="replicate_name" type="text" label="Replicate name" />
+                <expand macro="cond_fixedreadcount" />
+            </repeat>
+            <repeat name="control_repeat" title="Control" min="0">
+                <param name="control" type="data" format="bam,bed,scidx" label="Select control" help="Optional, supported formats are bam, bed and scidx">
                     <validator type="unspecified_build" />
                 </param>
-                <param name="control" type="data" format="bam,bed,scidx" optional="True" label="Optional file containing reads from a control experiment" help="Must be same forat as the input above" />
-            </when>
-        </conditional>
+                <expand macro="param_experiment_type" />
+                <conditional name="specify_replicate_name_cond">
+                    <param  name="specify_replicate_name" type="select" label="Specify replicate name?" help="Optional for control experiments.  If used, the control will only be used for the corresponding named signal replicate">
+                        <option value="no" selected="True">No</option>
+                        <option value="yes">Yes</option>
+                    </param>
+                    <when value="yes">
+                        <param name="replicate_name" type="text" optional="True" label="Replicate name"/>
+                    </when>
+                    <when value="no" />
+                </conditional>
+                <expand macro="cond_fixedreadcount" />
+            </repeat>
+        </repeat>
         <!-- Advanced options -->
         <conditional name="advanced_options_cond">
             <param name="advanced_options" type="select" label="Advanced options">