diff meme_chip.xml @ 3:8d3877046d78 draft

Uploaded
author iuc
date Thu, 15 Mar 2018 13:15:53 -0400
parents fd58302909b8
children ff7dc6057652
line wrap: on
line diff
--- a/meme_chip.xml	Wed Mar 14 11:20:49 2018 -0400
+++ b/meme_chip.xml	Thu Mar 15 13:15:53 2018 -0400
@@ -5,24 +5,50 @@
     </macros>
     <expand macro="requirements" />
     <command detect_errors="exit_code"><![CDATA[
+#import os
+#set primary_output = $os.path.join($output.files_path, "index.html")
 #set options_type = $options_type_cond.options_type
 meme-chip $input
 -noecho
--db $meme_motif_databases.fields.path
+#if str($control) not in ['', 'None']:
+    -neg '$control'
+#end if
 #if $sequence_alphabet == 'dna':
     -dna
 #else:
     -rna
-    -norc
 #end if
 -o '$output.files_path'
-
 #if str($options_type)=='advanced':
+    #set run_centrimo = $options_type_cond.run_centrimo_cond.run_centrimo
+    ## FIXME: CentriMo cannot be run,  See the comments in the input tag section.
+    ## #if str($run_centrimo) == "yes":
+    ##     -db $options_type_cond.run_centrimo_cond.meme_motif_databases.fields.path
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_local) == "true":
+    ##         -centrimo-local
+    ##     #end if
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_score) != "0":
+    ##         -centrimo-score $options_type_cond.run_centrimo_cond.centrimo_score
+    ##     #end if
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_maxreg) != "0":
+    ##         -centrimo-maxreg $options_type_cond.run_centrimo_cond.centrimo_maxreg
+    ##     #end if
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_ethresh) != "0":
+    ##         -centrimo-ethresh $options_type_cond.run_centrimo_cond.centrimo_ethresh
+    ##     #end if
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_noseq) == "true":
+    ##         -centrimo-noseq
+    ##     #end if
+    ##     #if str($options_type_cond.run_centrimo_cond.centrimo_flip) == "true":
+    ##         -centrimo-flip
+    ##     #end if
+    ## #end if
+    #if str($options_type_cond.search_given_strand) == "true":
+        -norc
+    #end if
     -order $options_type_cond.background_model_order
-    #if str($options_type_cond.subsampling) == "no":
+    #if str($options_type_cond.subsampling_cond.subsampling) == "no":
         -norand
-    #end if
-    #if str($options_type_cond.subsampling_cond.subsampling) != "yes":
         #set seed = $options_type_cond.subsampling_cond.subsampling.seed
         #if str($seed) != "0":
             -seed $options_type_cond.subsampling_cond.subsampling.seed
@@ -39,6 +65,9 @@
         -group-weak $options_type_cond.group_weak
     #end if
     -filter-thresh $options_type_cond.filter_threash
+    #if str($options_type_cond.old_clustering) == "true":
+        -old-clustering
+    #end if
     -meme-mod $options_type_cond.meme_mod
     #if str($options_type_cond.meme_minw) != "0":
         -meme-minw $options_type_cond.meme_minw
@@ -60,24 +89,6 @@
     #end if
     -dreme-e $options_type_cond.dreme_e
     -dreme-m $options_type_cond.dreme_m
-    #if str($options_type_cond.centrimo_local) == "true":
-        -centrimo-local
-    #end if
-    #if str($options_type_cond.centrimo_score) != "0":
-        -centrimo-score $options_type_cond.centrimo_score
-    #end if
-    #if str($options_type_cond.centrimo_maxreg) != "0":
-        -centrimo-maxreg $options_type_cond.centrimo_maxreg
-    #end if
-    #if str($options_type_cond.centrimo_ethresh) != "0":
-        -centrimo-ethresh $options_type_cond.centrimo_ethresh
-    #end if
-    #if str($options_type_cond.centrimo_noseq) == "true":
-        -centrimo-noseq
-    #end if
-    #if str($options_type_cond.centrimo_flip) == "true":
-        -centrimo-flip
-    #end if
     -spamo-skip
     -fimo-skip
 #end if
@@ -85,19 +96,17 @@
 if [[ $? -ne 0 ]]; then
     cp meme_chip_log.txt '$output';
     exit 1;
-fi]]></command>
+fi
+&& rm '$output'
+&& ln -s $primary_output '$output'
+    ]]></command>
     <inputs>
         <param name="input" type="data" format="fasta" label="Primary sequences" help="Nucleotide sequences must have equal length"/>
+        <param name="control" type="data" format="fasta" optional="true" label="Control sequences" help="If no selection, positive sequences in the input are shuffled to create the negative set"/>
         <param name="sequence_alphabet" type="select" label="Sequence alphabet">
             <option value="dna" selected="true">DNA</option>
             <option value="rna">RNA</option>
         </param>
-        <param name="meme_motif_databases" type="select" label="MEME motif database">
-            <options from_data_table="meme_motif_databases">
-                <filter type="sort_by" column="1"/>
-                <validator type="no_options" message="No MEME motif databases are available for the selected input"/>
-            </options>
-        </param>
         <conditional name="options_type_cond">
             <param name="options_type" type="select" label="Options Configuration">
                 <option value="basic" selected="true">Basic</option>
@@ -105,6 +114,38 @@
             </param>
             <when value="basic"/>
             <when value="advanced">
+                <!--
+                FIXME: CentriMo cannot be run since the tool form cannot populate the mem_motif_database select list below.
+                <conditional name="run_centrimo_cond">
+                    <param name="run_centrimo" type="select" label="Run TOMTOM and CentriMo?">
+                        <option value="yes" selected="true">Yes</option>
+                        <option value="no">No</option>
+                    </param>
+                    <when value="yes">
+
+                        We have 2 dynamic select lists here.  The first select list (meme_motif_database_dir) is populated from the meme_motif_databases
+                        data table.  The second select list (meme_motif_database) is dynamically re-rendered whenever the selection in the meme_motif_database_dir
+                        select list is changed.  This composition used to work (see Examples->Dynamic Options section of
+                        https://docs.galaxyproject.org/en/latest/dev/schema.html) but no longer does.  We'll have to figure out what is broken in
+                        the dynamic options code in ~/parameters/basic.py in order to uncomment this block.
+
+                        <param name="meme_motif_database_dir" type="select" label="Select the motifs (DNA)" refresh_on_change="True">
+                            <options from_data_table="meme_motif_databases">
+                                <filter type="sort_by" column="1"/>
+                                <validator type="no_options" message="No MEME motif databases are available for the selected input"/>
+                            </options>
+                        </param>
+                        <param name="meme_motif_database" type="select" label="MEME motif database" dynamic_options="get_meme_motif_database_options(file_path=meme_motif_database_dir)"/>
+                        <param name="centrimo_local" type="boolean" truevalue="true" falsevalue="" checked="False" label="Compute enrichment of all regions"/>
+                        <param name="centrimo_score" type="integer" value="0" min="0" label="Minimum allowed CentriMo match score"/>
+                        <param name="centrimo_maxreg" type="integer" value="0" min="0" label="Maximum CentriMo region size to be considered"/>
+                        <param name="centrimo_ethresh" type="integer" value="0" min="0" label="CentriMo E-value threshold for reporting" />
+                        <param name="centrimo_noseq" type="boolean" truevalue="true" falsevalue="" checked="False" label="Store CentriMo sequence IDs in the output"/>
+                        <param name="centrimo_flip" type="boolean" truevalue="true" falsevalue="" checked="False" label="Reflect CentriMo matches on reverse strand around center"/>
+                    </when>
+                    <when value="no"/>
+                </conditional>
+                -->
                 <param name="background_model_order" type="select" label="Select the order of the Markov background model">
                     <option value="0">0-order model of sequences</option>
                     <option value="1" selected="True">1st order model of sequences</option>
@@ -112,6 +153,7 @@
                     <option value="3">3rd order model of sequences</option>
                     <option value="4">4th order model of sequences</option>
                 </param>
+                <param name="nmeme" type="integer" value="0" min="0" label="Limit of sequences to pass to MEME" help="Zero value has no effect"/>
                 <conditional name="subsampling_cond">
                     <param name="subsampling" type="select" label="Should subsampling be random?" help="Select 'No' if your input sequences are sorted in order of confidence (best to worst)">
                         <option value="yes" selected="true">Yes</option>
@@ -122,11 +164,12 @@
                     </when>
                     <when value="no"/>
                 </conditional>
-                <param name="nmeme" type="integer" value="0" min="0" label="Limit of sequences to pass to MEME" help="Zero value has no effect"/>
                 <param name="ccut" type="integer" value="100" min="0" label="maximum size of a sequence before it is cut down to a centered section" help="Zero value indicates the sequences should not be cut down"/>
                 <param name="group_threash" type="float" value="0.05" min="0" label="Primary threshold for clustering motifs" />
                 <param name="group_weak" type="float" value="0" min="0" label="Secondary threshold for clustering motifs" help="Zero value results in 2*primary threshold"/>
                 <param name="filter_thresh" type="float" value="0.05" min="0" label="E-value threshold for including motifs"/>
+                <param name="search_given_strand" type="boolean" truevalue="true" falsevalue="" checked="False" label="Search given strand only"/>
+                <param name="old_clustering" type="boolean" truevalue="true" falsevalue="" checked="False" label="Pick cluster seed motifs based only on significance"/>
                 <param name="meme_mod" type="select" label="What is the expected motif site distribution?">
                     <option value="oops" selected="True">One occurance per sequence</option>
                     <option value="zoops">Zero or one occurances per sequence</option>
@@ -140,12 +183,6 @@
                 <param name="meme_pal" type="boolean" truevalue="true" falsevalue="" checked="False" label="Look for palindromes only"/>
                 <param name="dreme_e" type="float" value="0.05" min="0" label="Stop DREME searching after reaching this E-value threshold"/>
                 <param name="dreme_m" type="integer" value="10" min="1" label="Stop DREME searching after finding this many motifs" />
-                <param name="centrimo_local" type="boolean" truevalue="true" falsevalue="" checked="False" label="Compute enrichment of all regions"/>
-                <param name="centrimo_score" type="integer" value="0" min="0" label="Minimum allowed CentriMo match score"/>
-                <param name="centrimo_maxreg" type="integer" value="0" min="0" label="Maximum CentriMo region size to be considered"/>
-                <param name="centrimo_ethresh" type="integer" value="0" min="0" label="CentriMo E-value threshold for reporting" />
-                <param name="centrimo_noseq" type="boolean" truevalue="true" falsevalue="" checked="False" label="Store CentriMo sequence IDs in the output"/>
-                <param name="centrimo_flip" type="boolean" truevalue="true" falsevalue="" checked="False" label="Reflect CentriMo matches on reverse strand around center"/>
             </when>
         </conditional>
         <param name="non_commercial_use" label="I certify that I am not using this tool for commercial purposes." type="boolean" truevalue="NON_COMMERCIAL_USE" falsevalue="COMMERCIAL_USE" checked="False">
@@ -188,13 +225,7 @@
 
     </help>
     <citations>
-        <citation type="bibtex">
-            @article{Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology, pp. 28-36, AAAI Press, Menlo Park, California,
-            author = {Bailey,Timothy L. and Elkan, Charles},
-            title = {Fitting a mixture model by expectation maximization to discover motifs in biopolymers},
-            year = {1994},
-            eprint = {None},
-            url = {http://www.sdsc.edu/~tbailey/papers/ismb94.pdf}
-        }</citation>
+        <citation type="doi">10.1093/bioinformatics/btr189</citation>
     </citations>
 </tool>
+