-
Notifications
You must be signed in to change notification settings - Fork 0
/
macs2_wrapper.xml
228 lines (203 loc) · 11.7 KB
/
macs2_wrapper.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<tool id="macs2_peakcalling" name="MACS2" version="2.0.10">
<description>Model-based Analysis of ChIP-Seq</description>
<command interpreter="python">macs2_wrapper.py $options_file $outputs_file</command>
<inputs>
<!--experiment name and option of selecting paired or single end will always be present-->
<param name="experiment_name" type="text" value="MACS2 in Galaxy" size="50" label="Experiment Name"/>
<!--select one of the 7 major commands offered by macs2-->
<conditional name="major_command">
<param name="major_command_selector" type="select" label="Select action to be performed">
<option value="callpeak">Peak Calling</option>
<!--<option value="filterdup">filterdup</option>
<option value="randsample">randsample</option>-->
<option value="bdgcmp">Compare .bdg Files</option>
<!--<option value="bdgdiff">bdgdiff</option>
<option value="bdgpeakcall">bdgpeakcall</option>
<option value="bdgbroadcall">bdgbroadcall</option>-->
</param>
<!--callpeak option of macs2-->
<when value="callpeak">
<!--may need to add a few more formats at later time-->
<param name="input_chipseq_file1" type="data" format="bam" label="ChIP-Seq Tag File" />
<param name="input_control_file1" type="data" format="bam" optional="True" label="ChIP-Seq Control File" />
<param name="gsize" type="float" label="Effective genome size" value="2.7e+9" help="Human: 3.3e+9, Mouse: 3.0e+9, Fly: 1.9e+8, Worm: 1.3e+8 (--gsize)"/>
<param name="bw" type="integer" label="Band width" value="300" help="(--bw)"/>
<param name="xls_to_interval" label="Parse xls files into into distinct interval files" type="boolean" truevalue="True" falsevalue="False" checked="False"/>
<param name="bdg" label="Save fragment pileup, control lambda, -log10pvalue/qvalue in bedGraph" type="boolean" truevalue="-B" falsevalue="" checked="False" help="files located in html report"/>
<conditional name="pq_options">
<param name="pq_options_selector" type="select" label="Select p-value or q-value" help="default uses q-value">
<option value="qvalue">q-value</option>
<option value="pvalue">p-value</option>
</param>
<when value="pvalue">
<param name="pvalue" type="float" label="p-value cutoff for peak detection" value="1e-2" help="default: 1e-2 (--pvalue)"/>
</when>
<when value="qvalue">
<param name="qvalue" type="float" label="q-value cutoff for peak detection" value="5e-2" help="default: 5e-2 (--qvalue)"/>
</when>
</conditional>
<conditional name="advanced_options">
<param name="advanced_options_selector" type="select" label="Display advanced options">
<option value="off">Hide</option>
<option value="on">Display</option>
</param>
<when value="on">
<param name="mfoldlo" type="integer" label="Select the regions with MFOLD high-confidence enrichment ratio against background to build model (lower-limit)" value="10" help="(--mfold)"/>
<param name="mfoldhi" type="integer" label="Select the regions with MFOLD high-confidence enrichment ratio against background to build model (upper-limit)" value="30" help="(--mfold)"/>
<param name="nolambda" label="Use fixed background lambda as local lambda for every peak region" type="boolean" truevalue="--nolambda" falsevalue="" checked="False" help="up to 9X more time consuming (--nolambda)"/>
</when>
<when value="off">
<!--display nothing-->
</when>
</conditional>
<conditional name="nomodel_type">
<param name="nomodel_type_selector" type="select" label="Build Model">
<option value="nomodel">Do not build the shifting model (--nomodel enabled)</option>
<option value="create_model" selected="true">Build the shifting model (--nomodel disabled)</option>
</param>
<when value="nomodel">
<param name="shiftsize" type="integer" label="Arbitrary shift size in bp" value="100" help="(--shiftsize)"/>
</when>
</conditional>
</when>
<!--callpeak option of macs2-->
<when value="bdgcmp">
<param name="input_chipseq_file1" type="data" format="bam" label="ChIP-Seq Tag File" />
<param name="input_control_file1" type="data" format="bam" optional="True" label="ChIP-Seq Control File" />
<param name="pseudocount" type="float" label="Set pseudocount" value="0.00001" help="default: 0.00001 (-p)"/>
<conditional name="bdgcmp_options">
<param name="bdgcmp_options_selector" type="select" label="Select action to be performed">
<option value="ppois">ppois</option>
<option value="qpois">qpois</option>
<option value="subtract">subtract</option>
<option value="logFE">logFE</option>
<option value="FE">FE</option>
<option value="logLR">logLR</option>
</param>
</conditional>
</when>
</conditional>
</inputs>
<outputs>
<!--callpeaks output-->
<data name="output_bed_file" format="bed" label="${tool.name}: callpeak on ${on_string} (peaks: bed)">
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<data name="output_extra_files" format="html" label="${tool.name}: callpeak on ${on_string} (html report)">
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<data name="output_peaks_file" format="xls" label="${tool.name}: callpeak on ${on_string} (peaks: xls)">
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<data name="output_narrowpeaks_file" format="txt" label="${tool.name}: callpeak on ${on_string} (peaks: encodePeak)">
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<data name="output_xls_to_interval_peaks_file" format="interval" label="${tool.name}: callpeak on ${on_string} (peaks: interval)">
<filter>major_command['xls_to_interval'] is True</filter>
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<data name="output_xls_to_interval_negative_peaks_file" format="interval" label="${tool.name}: callpeak on ${on_string} (negative peaks: interval)">
<filter>major_command['xls_to_interval'] is True</filter>
<filter>major_command['input_control_file1'] is not None</filter>
<filter>major_command['major_command_selector'] == 'callpeak'</filter>
</data>
<!--bdgcmp output-->
<data name="output_bdgcmp_file" format="bdg" label="${tool.name}: bdgcmp on ${on_string} (bdg)">
<filter>major_command['major_command_selector'] == 'bdgcmp'</filter>
</data>
</outputs>
<configfiles>
<configfile name="outputs_file"><%
import json
%>
##=======================================================================================
#set $__outputs = { 'command':str( $major_command.major_command_selector ) }
#if str( $major_command.major_command_selector ) == 'callpeak':
#set $__outputs['output_bed_file'] = str( $output_bed_file )
#set $__outputs['output_extra_file'] = str( $output_extra_files )
#set $__outputs['output_extra_file_path'] = str( $output_extra_files.files_path )
#set $__outputs['output_peaks_file'] = str( $output_peaks_file )
#set $__outputs['output_narrowpeaks_file'] = str( $output_narrowpeaks_file )
#set $__outputs['output_xls_to_interval_peaks_file'] = str( $output_xls_to_interval_peaks_file )
#set $__outputs['output_xls_to_interval_negative_peaks_file'] = str( $output_xls_to_interval_negative_peaks_file )
#end if
##=======================================================================================
#if str( $major_command.major_command_selector ) == 'bdgcmp':
#set $__outputs['output_bdgcmp_file'] = str( $output_bdgcmp_file )
#end if
${ json.dumps( __outputs ) }
</configfile>
<configfile name="options_file"><%
import json
%>
##=======================================================================================
#set $__options = { 'experiment_name':str( $experiment_name ) }
##treatment/tag input files and format
#set $__options['input_chipseq'] = [ str( $major_command.input_chipseq_file1 ) ]
#set $__options['format'] = $major_command.input_chipseq_file1.extension.upper()
##control/input files
#set $__options['input_control'] = []
#if str( $major_command.input_control_file1 ) != 'None':
#set $_hole = __options['input_control'].append( str( $major_command.input_control_file1 ) )
#end if
#if str( $major_command.major_command_selector ) == 'callpeak':
#set $__options['command'] = str( "callpeak" )
#set $__options['gsize'] = int( $major_command.gsize )
#set $__options['bw'] = str( $major_command.bw )
#set $__options['bdg'] = str( $major_command.bdg )
#set $__options['xls_to_interval'] = str( $major_command.xls_to_interval )
##advanced options
#if str( $major_command.advanced_options.advanced_options_selector ) == 'on':
#set $__options['mfoldlo'] = int( $major_command.advanced_options.mfoldlo )
#set $__options['mfoldhi'] = int( $major_command.advanced_options.mfoldhi )
#set $__options['nolambda'] = str( $major_command.advanced_options.nolambda )
#else:
#set $__options['mfoldlo'] = int( "10" )
#set $__options['mfoldhi'] = int( "30" )
#set $__options['nolambda'] = str( "" )
#end if
##enable xls file options
##if str( $major_command.xls_to_interval ) == 'create':
##set $__options['xls_to_interval'] = { 'peaks_file': str( $output_xls_to_interval_peaks_file ), 'negative_peaks_file': str( $output_xls_to_interval_negative_peaks_file ) }
##end if
##pq value select options
#if str( $major_command.pq_options.pq_options_selector ) == 'qvalue':
#set $__options['qvalue'] = str( $major_command.pq_options.qvalue )
#else:
#set $__options['pvalue'] = str( $major_command.pq_options.pvalue )
#end if
##model options
#if str( $major_command.nomodel_type.nomodel_type_selector ) == 'nomodel':
#set $__options['nomodel'] = str( $major_command.nomodel_type.shiftsize )
#end if
#end if
##=======================================================================================
#if str( $major_command.major_command_selector ) == 'bdgcmp':
#set $__options['command'] = str( "bdgcmp" )
#set $__options['pseudocount'] = float( str( $major_command.pseudocount ) )
#set $__options['m'] = str( $major_command.bdgcmp_options.bdgcmp_options_selector )
#end if
##=======================================================================================
${ json.dumps( __options ) }
</configfile>
</configfiles>
<tests>
<!--none yet for macs2-->
</tests>
<help>
**What it does**
With the improvement of sequencing techniques, chromatin immunoprecipitation followed by high throughput sequencing (ChIP-Seq)
is getting popular to study genome-wide protein-DNA interactions. To address the lack of powerful ChIP-Seq analysis method, we present a novel algorithm, named Model-based Analysis of ChIP-Seq (MACS), for
identifying transcript factor binding sites. MACS captures the influence of genome complexity to evaluate the significance of enriched ChIP regions, and MACS improves the spatial resolution of
binding sites through combining the information of both sequencing tag position and orientation. MACS can be easily used for ChIP-Seq data alone, or with control sample with the increase of specificity.
View the original MACS2 documentation: https://github.com/taoliu/MACS/blob/master/README
------
**Usage**
**Peak Calling**: Main MACS2 Function to Call peaks from alignment results.
**Compare .bdg files**: Deduct noise by comparing two signal tracks in bedGraph.
------
**Citation**
For the underlying tool, please cite Zhang Y, Liu T, Meyer CA, Eeckhoute J, Johnson DS, Bernstein BE, Nusbaum C, Myers RM, Brown M, Li W, Liu XS. Model-based analysis of ChIP-Seq (MACS). Genome Biol. 2008;9(9):R137.
Integration of MACS2 with Galaxy performed by Ziru Zhou ( [email protected] ). Please send your comments/questions to modENCODE DCC at [email protected].
</help>
</tool>