|
5
|
1 <tool id="meme_chip" name="MEME-ChIP" version="4.11.2">
|
|
0
|
2 <description>- motif discovery, enrichment analysis and clustering on large nucleotide datasets</description>
|
|
|
3 <macros>
|
|
|
4 <import>macros.xml</import>
|
|
|
5 </macros>
|
|
|
6 <expand macro="requirements" />
|
|
5
|
7 <code file="get_meme_motif_databases.py" />
|
|
0
|
8 <command detect_errors="exit_code"><![CDATA[
|
|
3
|
9 #import os
|
|
|
10 #set primary_output = $os.path.join($output.files_path, "index.html")
|
|
0
|
11 #set options_type = $options_type_cond.options_type
|
|
5
|
12 meme-chip '$input'
|
|
0
|
13 -noecho
|
|
5
|
14 #if str($control):
|
|
3
|
15 -neg '$control'
|
|
|
16 #end if
|
|
0
|
17 -o '$output.files_path'
|
|
|
18 #if str($options_type)=='advanced':
|
|
5
|
19 ## FIXME: CentriMo cannot be run, See the comments in the input section.
|
|
|
20 ## #set run_centrimo = $options_type_cond.run_centrimo_cond.run_centrimo
|
|
3
|
21 ## #if str($run_centrimo) == "yes":
|
|
|
22 ## -db $options_type_cond.run_centrimo_cond.meme_motif_databases.fields.path
|
|
5
|
23 ## #if str($options_type_cond.run_centrimo_cond.centrimo_local):
|
|
3
|
24 ## -centrimo-local
|
|
|
25 ## #end if
|
|
5
|
26 ## #if str($options_type_cond.run_centrimo_cond.centrimo_score):
|
|
3
|
27 ## -centrimo-score $options_type_cond.run_centrimo_cond.centrimo_score
|
|
|
28 ## #end if
|
|
5
|
29 ## #if str($options_type_cond.run_centrimo_cond.centrimo_maxreg):
|
|
3
|
30 ## -centrimo-maxreg $options_type_cond.run_centrimo_cond.centrimo_maxreg
|
|
|
31 ## #end if
|
|
5
|
32 ## #if str($options_type_cond.run_centrimo_cond.centrimo_ethresh):
|
|
3
|
33 ## -centrimo-ethresh $options_type_cond.run_centrimo_cond.centrimo_ethresh
|
|
|
34 ## #end if
|
|
5
|
35 ## #if str($options_type_cond.run_centrimo_cond.centrimo_noseq):
|
|
3
|
36 ## -centrimo-noseq
|
|
|
37 ## #end if
|
|
5
|
38 ## #if str($options_type_cond.run_centrimo_cond.centrimo_flip):
|
|
3
|
39 ## -centrimo-flip
|
|
|
40 ## #end if
|
|
|
41 ## #end if
|
|
5
|
42 #if str($options_type_cond.search_given_strand):
|
|
3
|
43 -norc
|
|
|
44 #end if
|
|
0
|
45 -order $options_type_cond.background_model_order
|
|
3
|
46 #if str($options_type_cond.subsampling_cond.subsampling) == "no":
|
|
0
|
47 -norand
|
|
|
48 #set seed = $options_type_cond.subsampling_cond.subsampling.seed
|
|
5
|
49 #if str($seed):
|
|
0
|
50 -seed $options_type_cond.subsampling_cond.subsampling.seed
|
|
|
51 #end if
|
|
|
52 #end if
|
|
5
|
53 #if str($options_type_cond.nmeme):
|
|
0
|
54 -nmeme $options_type_cond.nmeme
|
|
|
55 #end if
|
|
5
|
56 #if str($options_type_cond.ccut):
|
|
0
|
57 -ccut $options_type_cond.ccut
|
|
|
58 #end if
|
|
|
59 -group-thresh $options_type_cond.group_threash
|
|
5
|
60 #if str($options_type_cond.group_weak):
|
|
0
|
61 -group-weak $options_type_cond.group_weak
|
|
|
62 #end if
|
|
5
|
63 -filter-thresh $options_type_cond.filter_thresh
|
|
|
64 #if str($options_type_cond.old_clustering):
|
|
3
|
65 -old-clustering
|
|
|
66 #end if
|
|
0
|
67 -meme-mod $options_type_cond.meme_mod
|
|
5
|
68 #if str($options_type_cond.meme_minw):
|
|
0
|
69 -meme-minw $options_type_cond.meme_minw
|
|
|
70 #end if
|
|
5
|
71 #if str($options_type_cond.meme_maxw):
|
|
0
|
72 -meme-maxw $options_type_cond.meme_maxw
|
|
|
73 #end if
|
|
5
|
74 #if str($options_type_cond.meme_nmotifs):
|
|
0
|
75 -meme-nmotifs $options_type_cond.meme_nmotifs
|
|
|
76 #end if
|
|
5
|
77 #if str($options_type_cond.meme_minsites):
|
|
0
|
78 -meme-minsites $options_type_cond.meme_minsites
|
|
|
79 #end if
|
|
5
|
80 #if str($options_type_cond.meme_maxsites):
|
|
0
|
81 -meme-maxsites $options_type_cond.meme_maxsites
|
|
|
82 #end if
|
|
5
|
83 #if str($options_type_cond.meme_pal):
|
|
0
|
84 -meme-pal
|
|
|
85 #end if
|
|
|
86 -dreme-e $options_type_cond.dreme_e
|
|
|
87 -dreme-m $options_type_cond.dreme_m
|
|
|
88 -spamo-skip
|
|
|
89 -fimo-skip
|
|
|
90 #end if
|
|
3
|
91 && rm '$output'
|
|
|
92 && ln -s $primary_output '$output'
|
|
|
93 ]]></command>
|
|
0
|
94 <inputs>
|
|
|
95 <param name="input" type="data" format="fasta" label="Primary sequences" help="Nucleotide sequences must have equal length"/>
|
|
3
|
96 <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"/>
|
|
0
|
97 <param name="sequence_alphabet" type="select" label="Sequence alphabet">
|
|
5
|
98 <option value="-dna" selected="true">DNA</option>
|
|
|
99 <option value="-rna">RNA</option>
|
|
0
|
100 </param>
|
|
|
101 <conditional name="options_type_cond">
|
|
|
102 <param name="options_type" type="select" label="Options Configuration">
|
|
|
103 <option value="basic" selected="true">Basic</option>
|
|
|
104 <option value="advanced">Advanced</option>
|
|
|
105 </param>
|
|
|
106 <when value="basic"/>
|
|
|
107 <when value="advanced">
|
|
3
|
108 <!--
|
|
|
109 FIXME: CentriMo cannot be run since the tool form cannot populate the mem_motif_database select list below.
|
|
|
110 <conditional name="run_centrimo_cond">
|
|
|
111 <param name="run_centrimo" type="select" label="Run TOMTOM and CentriMo?">
|
|
|
112 <option value="yes" selected="true">Yes</option>
|
|
|
113 <option value="no">No</option>
|
|
|
114 </param>
|
|
|
115 <when value="yes">
|
|
|
116
|
|
|
117 We have 2 dynamic select lists here. The first select list (meme_motif_database_dir) is populated from the meme_motif_databases
|
|
|
118 data table. The second select list (meme_motif_database) is dynamically re-rendered whenever the selection in the meme_motif_database_dir
|
|
|
119 select list is changed. This composition used to work (see Examples->Dynamic Options section of
|
|
|
120 https://docs.galaxyproject.org/en/latest/dev/schema.html) but no longer does. We'll have to figure out what is broken in
|
|
|
121 the dynamic options code in ~/parameters/basic.py in order to uncomment this block.
|
|
|
122
|
|
|
123 <param name="meme_motif_database_dir" type="select" label="Select the motifs (DNA)" refresh_on_change="True">
|
|
|
124 <options from_data_table="meme_motif_databases">
|
|
|
125 <filter type="sort_by" column="1"/>
|
|
|
126 <validator type="no_options" message="No MEME motif databases are available for the selected input"/>
|
|
|
127 </options>
|
|
|
128 </param>
|
|
|
129 <param name="meme_motif_database" type="select" label="MEME motif database" dynamic_options="get_meme_motif_database_options(file_path=meme_motif_database_dir)"/>
|
|
|
130 <param name="centrimo_local" type="boolean" truevalue="true" falsevalue="" checked="False" label="Compute enrichment of all regions"/>
|
|
5
|
131 <param name="centrimo_score" type="integer" optional="true" value="0" min="0" label="Minimum allowed CentriMo match score"/>
|
|
|
132 <param name="centrimo_maxreg" type="integer" optional="true" value="0" min="0" label="Maximum CentriMo region size to be considered"/>
|
|
|
133 <param name="centrimo_ethresh" type="integer" optional="true" value="0" min="0" label="CentriMo E-value threshold for reporting" />
|
|
3
|
134 <param name="centrimo_noseq" type="boolean" truevalue="true" falsevalue="" checked="False" label="Store CentriMo sequence IDs in the output"/>
|
|
|
135 <param name="centrimo_flip" type="boolean" truevalue="true" falsevalue="" checked="False" label="Reflect CentriMo matches on reverse strand around center"/>
|
|
|
136 </when>
|
|
|
137 <when value="no"/>
|
|
|
138 </conditional>
|
|
|
139 -->
|
|
0
|
140 <param name="background_model_order" type="select" label="Select the order of the Markov background model">
|
|
|
141 <option value="0">0-order model of sequences</option>
|
|
|
142 <option value="1" selected="True">1st order model of sequences</option>
|
|
|
143 <option value="2">2nd order model of sequences</option>
|
|
|
144 <option value="3">3rd order model of sequences</option>
|
|
|
145 <option value="4">4th order model of sequences</option>
|
|
|
146 </param>
|
|
5
|
147 <param name="nmeme" type="integer" optional="true" value="0" min="0" label="Limit of sequences to pass to MEME" help="Zero value has no effect"/>
|
|
0
|
148 <conditional name="subsampling_cond">
|
|
|
149 <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)">
|
|
|
150 <option value="yes" selected="true">Yes</option>
|
|
|
151 <option value="no">No</option>
|
|
|
152 </param>
|
|
|
153 <when value="yes">
|
|
5
|
154 <param name="seed" type="integer" optional="true" value="0" min="0" label="Seed for the randomized selection of sequences" help="Zero value indicates random seeding"/>
|
|
0
|
155 </when>
|
|
|
156 <when value="no"/>
|
|
|
157 </conditional>
|
|
5
|
158 <param name="ccut" type="integer" optional="true" 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"/>
|
|
0
|
159 <param name="group_threash" type="float" value="0.05" min="0" label="Primary threshold for clustering motifs" />
|
|
5
|
160 <param name="group_weak" type="float" optional="true" value="0" min="0" label="Secondary threshold for clustering motifs" help="Zero value results in 2*primary threshold"/>
|
|
0
|
161 <param name="filter_thresh" type="float" value="0.05" min="0" label="E-value threshold for including motifs"/>
|
|
3
|
162 <param name="search_given_strand" type="boolean" truevalue="true" falsevalue="" checked="False" label="Search given strand only"/>
|
|
|
163 <param name="old_clustering" type="boolean" truevalue="true" falsevalue="" checked="False" label="Pick cluster seed motifs based only on significance"/>
|
|
0
|
164 <param name="meme_mod" type="select" label="What is the expected motif site distribution?">
|
|
|
165 <option value="oops" selected="True">One occurance per sequence</option>
|
|
|
166 <option value="zoops">Zero or one occurances per sequence</option>
|
|
|
167 <option value="anr">Any number of repititions</option>
|
|
|
168 </param>
|
|
5
|
169 <param name="meme_minw" type="integer" optional="true" value="0" min="0" label="Minimum motif width"/>
|
|
|
170 <param name="meme_maxw" type="integer" optional="true" value="0" min="0" label="Maximum motif width"/>
|
|
|
171 <param name="meme_nmotifs" type="integer" optional="true" value="0" min="0" label="Maximum number of motifs to find"/>
|
|
|
172 <param name="meme_minsites" type="integer" optional="true" value="0" min="0" label="Minimum number of sites per motif"/>
|
|
|
173 <param name="meme_maxsites" type="integer" optional="true" value="0" label="Maximum number of sites per motif"/>
|
|
0
|
174 <param name="meme_pal" type="boolean" truevalue="true" falsevalue="" checked="False" label="Look for palindromes only"/>
|
|
|
175 <param name="dreme_e" type="float" value="0.05" min="0" label="Stop DREME searching after reaching this E-value threshold"/>
|
|
|
176 <param name="dreme_m" type="integer" value="10" min="1" label="Stop DREME searching after finding this many motifs" />
|
|
|
177 </when>
|
|
|
178 </conditional>
|
|
|
179 <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">
|
|
|
180 <validator type="expression" message="This tool is only available for non-commercial use.">value == True</validator>
|
|
|
181 </param>
|
|
|
182 </inputs>
|
|
|
183 <outputs>
|
|
|
184 <data name="output" format="html" label="${tool.name} (html) on ${on_string}"/>
|
|
|
185 </outputs>
|
|
|
186 <tests>
|
|
|
187 <test>
|
|
5
|
188 <param name="input" value="input1.fasta" ftype="fasta"/>
|
|
|
189 <param name="non_commercial_use" value="True"/>
|
|
|
190 <output name="output" file="output1.html" ftype="html" compare="contains"/>
|
|
|
191 </test>
|
|
|
192 <test>
|
|
|
193 <param name="input" value="input1.fasta" ftype="fasta"/>
|
|
|
194 <param name="sequence_alphabet" value="rna"/>
|
|
|
195 <param name="options_type" value="advanced"/>
|
|
|
196 <param name="background_model_order" value="0"/>
|
|
|
197 <param name="non_commercial_use" value="True"/>
|
|
|
198 <output name="output" file="output1.html" ftype="html" compare="contains"/>
|
|
0
|
199 </test>
|
|
|
200 </tests>
|
|
|
201 <help>
|
|
|
202 .. class:: warningmark
|
|
|
203
|
|
|
204 **WARNING: This tool is only available for non-commercial use. Use for educational, research and non-profit purposes is permitted.
|
|
|
205 Before using, be sure to review, agree, and comply with the license.**
|
|
|
206
|
|
|
207 MWMW-ChIP perform motif discovery, motif enrichment analysis and clustering on large nucleotide datasets.
|
|
|
208
|
|
|
209 If you want to specify sequence weights, you must include them at the top of your input FASTA file.
|
|
|
210
|
|
|
211 MEME discovers novel, ungapped motifs (recurring, fixed-length patterns) in your sequences (sample output from sequences).
|
|
|
212 MEME splits variable-length patterns into two or more separate motifs. A motif is a sequence pattern that occurs repeatedly
|
|
|
213 in a group of related sequences. MEME represents motifs as position-dependent letter-probability matrices which describe the
|
|
|
214 probability of each possible letter at each position in the pattern. Individual MEME motifs do not contain gaps. Patterns
|
|
|
215 with variable-length gaps are split by MEME into two or more separate motifs. MEME takes as input a group of sequences and
|
|
|
216 outputs as many motifs as requested. MEME uses statistical modeling techniques to automatically choose the best width, number
|
|
|
217 of occurrences, and description for each motif.
|
|
|
218
|
|
|
219 .. class:: infomark
|
|
|
220
|
|
|
221 For detailed information on MEME, click here_, or view the license_.
|
|
|
222
|
|
|
223 .. _here: http://meme-suite.org/doc/meme.html?man_type=web
|
|
|
224 .. _license: http://meme-suite.org/doc/copyright.html?man_type=web
|
|
|
225
|
|
|
226 </help>
|
|
|
227 <citations>
|
|
3
|
228 <citation type="doi">10.1093/bioinformatics/btr189</citation>
|
|
0
|
229 </citations>
|
|
|
230 </tool>
|
|
3
|
231
|