5
|
1 <tool name="MergeBamAlignment" id="picard_MergeBamAlignment" version="1.126.0">
|
|
2 <description>merge alignment data with additional info stored in an unmapped BAM dataset</description>
|
|
3 <requirements><requirement type="package" version="1.126.0">picard</requirement></requirements>
|
|
4
|
|
5 <macros>
|
|
6 <import>picard_macros.xml</import>
|
|
7 </macros>
|
|
8
|
|
9 <command>
|
|
10 @java_options@
|
|
11 #set $picard_dict = "localref.dict"
|
|
12 #set $ref_fasta = "localref.fa" ## This is done because picards "likes" .fa extension
|
|
13
|
|
14 ln -s "${reference_source.ref_file}" "${ref_fasta}" &&
|
|
15
|
|
16 #if str( $reference_source.reference_source_selector ) == "history":
|
|
17
|
|
18 java -jar \$JAVA_JAR_PATH/picard.jar CreateSequenceDictionary REFERENCE="${ref_fasta}" OUTPUT="${picard_dict}"
|
|
19 QUIET=true
|
|
20 VERBOSITY=ERROR
|
|
21
|
|
22 &&
|
|
23
|
|
24 #else:
|
|
25
|
|
26 #set $ref_fasta = str( $reference_source.ref_file.fields.path )
|
|
27
|
|
28 #end if
|
|
29
|
|
30 java -jar \$JAVA_JAR_PATH/picard.jar
|
|
31 MergeBamAlignment
|
|
32 UNMAPPED_BAM="${unmapped_bam}"
|
|
33
|
|
34 PAIRED_RUN=true ##This argument is ignored and will be removed. Required. Possible values: {true, false}
|
|
35
|
|
36 #if str( $aligned_or_read1_and_read2.aligned_or_read1_and_read2_selector ) == "paired_one_file":
|
|
37 #for $dataset in $aligned_or_read1_and_read2.aligned_bams:
|
|
38 ALIGNED_BAM="${dataset.aligned_bam}"
|
|
39 #end for
|
|
40 #elif str( $aligned_or_read1_and_read2.aligned_or_read1_and_read2_selector ) == "paired_two_files":
|
|
41 #for $dataset in $aligned_or_read1_and_read2.read1_aligned_bams:
|
|
42 READ1_ALIGNED_BAM="${dataset.read1_aligned_bam}"
|
|
43 #end for
|
|
44 #for $dataset in $aligned_or_read1_and_read2.read2_aligned_bams:
|
|
45 READ2_ALIGNED_BAM="${dataset.read1_aligned_bam}"
|
|
46 #end for
|
|
47 #else
|
|
48 #for $dataset in $aligned_or_read1_and_read2.read1_aligned_bams:
|
|
49 READ1_ALIGNED_BAM="${dataset.read1_aligned_bam}"
|
|
50 #end for
|
|
51 #end if
|
|
52
|
|
53 OUTPUT="${outFile}"
|
|
54 REFERENCE_SEQUENCE="${ref_fasta}"
|
|
55
|
|
56 CLIP_ADAPTERS="${clip_adapters}"
|
|
57 IS_BISULFITE_SEQUENCE="${is_bisulfite_sequence}"
|
|
58 ALIGNED_READS_ONLY="${aligned_reads_only}"
|
|
59 MAX_INSERTIONS_OR_DELETIONS="${max_insertions_or_deletions}"
|
|
60
|
|
61 #for $attribute in $attributes_to_retain:
|
|
62 ATTRIBUTES_TO_RETAIN="${$attribute.attribute}"
|
|
63 #end for
|
|
64
|
|
65 #for $attribute in $attributes_to_remove:
|
|
66 ATTRIBUTES_TO_REMOVE="${$attribute.attribute}"
|
|
67 #end for
|
|
68
|
|
69 READ1_TRIM="${read1_trim}"
|
|
70 READ2_TRIM="${read2_trim}"
|
|
71
|
|
72 #if str( $orientations ) != "None":
|
|
73 #for $orientation in str( $orientations ).split(','): ## See trello card https://trello.com/c/9nW02Zhd
|
|
74 EXPECTED_ORIENTATIONS="${orientation}"
|
|
75 #end for
|
|
76 #end if
|
|
77
|
|
78 ALIGNER_PROPER_PAIR_FLAGS="${aligner_proper_pair_flags}"
|
|
79 PRIMARY_ALIGNMENT_STRATEGY="${primary_alignment_strategy}"
|
|
80 CLIP_OVERLAPPING_READS="${clip_overlapping_reads}"
|
|
81 INCLUDE_SECONDARY_ALIGNMENTS="${include_secondary_alignments}"
|
|
82 ADD_MATE_CIGAR="${add_mate_cigar}"
|
|
83
|
|
84 VALIDATION_STRINGENCY="${validation_stringency}"
|
|
85
|
|
86 SORT_ORDER=coordinate
|
|
87 QUIET=true
|
|
88 VERBOSITY=ERROR
|
|
89
|
|
90 </command>
|
|
91
|
|
92 <inputs>
|
|
93
|
|
94 <conditional name="reference_source">
|
|
95 <param name="reference_source_selector" type="select" label="Load reference genome from">
|
|
96 <option value="cached">Local cache</option>
|
|
97 <option value="history">History</option>
|
|
98 </param>
|
|
99 <when value="cached">
|
|
100 <param name="ref_file" type="select" label="Use dictionary from the list" help="Select genome from the list">
|
|
101 <options from_data_table="picard_indexes">
|
|
102 <filter type="sort_by" column="2" />
|
|
103 <validator type="no_options" message="No indexes are available" />
|
|
104 </options>
|
|
105 <validator type="no_options" message="A built-in dictionary is not available for the build associated with the selected input file"/>
|
|
106 </param>
|
|
107 </when>
|
|
108 <when value="history">
|
|
109 <param name="ref_file" type="data" format="fasta" label="Use the following dataset to create dictionary" help="You can upload a FASTA sequence to the history from which Picard will automatically generate dictionary using CreateSequenceDictionary command" />
|
|
110 </when>
|
|
111 </conditional>
|
|
112
|
|
113 <param format="sam,bam" name="unmapped_bam" type="data" label="Selected unaligned SAM or BAM with original reads" help="UNMAPPED_BAM; This dataset must be sorted in queryname order (use picard_SortSam to do this)" />
|
|
114 <conditional name="aligned_or_read1_and_read2">
|
|
115 <param name="aligned_or_read1_and_read2_selector" type="select" label="What type of aligned data do you have?">
|
|
116 <option value="paired_one_file">Paired data in a single BAM file (ALIGNED_BAM)</option>
|
|
117 <option value="paired_two_files">Paired data in separate files (READ1_ALIGNED_BAM and READ2_ALIGNED_BAM)</option>
|
|
118 <option value="single_file">Singe end data (READ1_ALIGNED_BAM)</option>
|
|
119 </param>
|
|
120 <when value="paired_one_file">
|
|
121 <repeat name="aligned_bams" title="Aligned SAM or BAM dataset" min="1" help="You can provide multiple datasets">
|
|
122 <param name="aligned_bam" type="data" format="sam,bam" label="SAM or BAM dataset(s) with alignment data" help="ALIGNED_BAM"/>
|
|
123 </repeat>
|
|
124 </when>
|
|
125 <when value="paired_two_files">
|
|
126 <repeat name="read1_aligned_bams" title="Aligned SAM or BAM dataset for Read 1" min="1" help="You can provide multiple datasets">
|
|
127 <param name="read1_aligned_bam" type="data" format="sam,bam" label="SAM or BAM dataset(s) with alignment data for Read1" help="READ1_ALIGNED_BAM"/>
|
|
128 </repeat>
|
|
129 <repeat name="read2_aligned_bams" title="Aligned SAM or BAM dataset for Read 2" min="1" help="You can provide multiple datasets">
|
|
130 <param name="read2_aligned_bam" type="data" format="sam,bam" label="SAM or BAM dataset(s) with alignment data for Read2" help="READ2_ALIGNED_BAM"/>
|
|
131 </repeat>
|
|
132 </when>
|
|
133 <when value="single_file">
|
|
134 <repeat name="read1_aligned_bams" title="Aligned SAM or BAM dataset for Single Reads" min="1" help="You can provide multiple datasets">
|
|
135 <param name="read1_aligned_bam" type="data" format="sam,bam" label="SAM or BAM dataset(s) with alignment data" help="READ1_ALIGNED_BAM"/>
|
|
136 </repeat>
|
|
137 </when>
|
|
138 </conditional>
|
|
139
|
|
140 <param name="clip_adapters" type="boolean" checked="true" label="Whether to clip adapters where identified" help="CLIP_ADAPTERS; default=True"/>
|
|
141 <param name="is_bisulfite_sequence" type="boolean" label="Whether the data is from bisulfite sequencing (used when caculating the NM tag)" help="IS_BISULFITE_SEQUENCE; default=False"/>
|
|
142 <param name="aligned_reads_only" type="boolean" label="Whether to output only aligned reads" help="ALIGNED_READS_ONLY; default=False"/>
|
|
143 <param name="max_insertions_or_deletions" type="integer" value="1" label="The maximum number of insertions or deletions permitted for an alignment to be included" help="MAX_INSERTIONS_OR_DELETIONS; Alignments with more than this many insertions or deletions will be ignored. Set to -1 to allow any number of insertions or deletions. default=1"/>
|
|
144
|
|
145 <repeat name="attributes_to_retain" title="Retain the following alignment attribute" min="0" help="You can provide multiple attributes">
|
|
146 <param name="attribute" type="text" size="4" label="Reserved alignment attributes (tags starting with X, Y, or Z) that should be brought over from the alignment data when merging" help="ATTRIBUTES_TO_RETAIN; example: XA"/>
|
|
147 </repeat>
|
|
148
|
|
149 <repeat name="attributes_to_remove" title="Remove the following alignment attribute" min="0" help="You can provide multiple attributes">
|
|
150 <param name="attribute" type="text" size="4" label="Attributes from the alignment record that should be removed when merging." help="ATTRIBUTES_TO_REMOVE; This overrides ATTRIBUTES_TO_RETAIN if they share common tags"/>
|
|
151 </repeat>
|
|
152
|
|
153 <param name="read1_trim" type="integer" value="0" label="The number of bases trimmed from the beginning of read 1 prior to alignment" help="READ1_TRIM; default=0"/>
|
|
154 <param name="read2_trim" type="integer" value="0" label="The number of bases trimmed from the beginning of read 2 prior to alignment" help="READ2_TRIM; default=0"/>
|
|
155
|
|
156 <param name="orientations" type="select" multiple="True" display="checkboxes" label="The expected orientation of proper read pairs" help="EXPECTED_ORIENTATIONS; multiple orinetations can be selected">
|
|
157 <option value="FR">Forward/Reverse (FR)</option>
|
|
158 <option value="RF">Reverse/Forward (RF)</option>
|
|
159 <option value="TANDEM">Tandem</option>
|
|
160 </param>
|
|
161
|
|
162
|
|
163 <param name="aligner_proper_pair_flags" type="boolean" label="Use the aligner's idea of what a proper pair is rather than computing in this program" help="ALIGNER_PROPER_PAIR_FLAGS; default=False"/>
|
|
164
|
|
165 <param name="primary_alignment_strategy" type="select" label="Strategy for selecting primary alignment when the aligner has provided more than one alignment for a pair or fragments" help="PRIMARY_ALIGNMENT_STRATEGY; see help below for more info; default=BestMapq">
|
|
166 <option value="BestMapq" selected="True">BestMapq</option>
|
|
167 <option value="EarliestFragment">EarliestFragment</option>
|
|
168 <option value="BestEndMapq">BestEndMapq</option>
|
|
169 <option value="MostDistant">MostDistant</option>
|
|
170 </param>
|
|
171
|
|
172 <param name="clip_overlapping_reads" type="boolean" checked="True" label="For paired reads, soft clip the 3' end of each read if necessary so that it does not extend past the 5' end of its mate" help="CLIP_OVERLAPPING_READS; default=True"/>
|
|
173 <param name="include_secondary_alignments" type="boolean" checked="True" label="If false, do not write secondary alignments to output" help="INCLUDE_SECONDARY_ALIGNMENTS; default=True"/>
|
|
174 <param name="add_mate_cigar" type="boolean" checked="True" label="Adds the mate CIGAR tag (MC) if true, does not if false" help="ADD_MATE_CIGAR; default=True"/>
|
|
175 <expand macro="VS" />
|
|
176 </inputs>
|
|
177 <outputs>
|
|
178 <data name="outFile" format="bam" label="${tool.name} on ${on_string}: BAM with merged alignments"/>
|
|
179 </outputs>
|
|
180 <tests>
|
|
181 <test>
|
|
182 <param name="reference_source_selector" value="history" />
|
|
183 <param name="ref_file" value="picard_MergeBamAlignment_ref.fa" ftype="fasta" />
|
|
184 <param name="unmapped_bam" value="picard_MergeBamAlignment_unaligned.bam" ftype="bam"/>
|
|
185 <param name="aligned_or_read1_and_read2_selector" value="paired_one_file"/>
|
|
186 <param name="aligned_bam" value="picard_MergeBamAlignment_aligned.bam" ftype="bam"/>
|
|
187 <param name="clip_adapters" value="True"/>
|
|
188 <param name="is_bisulfite_sequence" value="False"/>
|
|
189 <param name="aligned_reads_only" value="False"/>
|
|
190 <param name="max_insertions_or_deletions" value="1"/>
|
|
191 <param name="read1_trim" value="0"/>
|
|
192 <param name="read2_trim" value="0"/>
|
|
193 <param name="orientation" value="FR"/>
|
|
194 <param name="aligner_proper_pair_flags" value="False"/>
|
|
195 <param name="primary_alignment_strategy" value="BestMapq"/>
|
|
196 <param name="clip_overlapping_reads" value="True"/>
|
|
197 <param name="include_secondary_alignments" value="True"/>
|
|
198 <param name="add_mate_cigar" value="True"/>
|
|
199 <output name="outFile" file="picard_MergeBamAlignment_test1.bam" ftype="bam" lines_diff="2"/>
|
|
200 </test>
|
|
201 </tests>
|
|
202
|
|
203 <stdio>
|
|
204 <exit_code range="1:" level="fatal"/>
|
|
205 </stdio>
|
|
206
|
|
207 <help>
|
|
208
|
|
209 .. class:: infomark
|
|
210
|
|
211 **Purpose**
|
|
212
|
|
213 Merges alignment data from a SAM or BAM dataset with additional data stored in an unmapped BAM dataset and produces a third SAM or BAM dataset of aligned and unaligned reads.
|
|
214
|
|
215 @dataset_collections@
|
|
216
|
|
217 @description@
|
|
218
|
|
219 UNMAPPED_BAM=File
|
|
220 UNMAPPED=File Original SAM or BAM file of unmapped reads, which must be in queryname order. Required.
|
|
221
|
|
222 ALIGNED_BAM=File
|
|
223 ALIGNED=File SAM or BAM file(s) with alignment data. This option may be specified 0 or more times.
|
|
224 Cannot be used in conjuction with option(s) READ1_ALIGNED_BAM (R1_ALIGNED)
|
|
225 READ2_ALIGNED_BAM (R2_ALIGNED)
|
|
226
|
|
227 READ1_ALIGNED_BAM=File
|
|
228 R1_ALIGNED=File SAM or BAM file(s) with alignment data from the first read of a pair. This option may be
|
|
229 specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM
|
|
230 (ALIGNED)
|
|
231
|
|
232 READ2_ALIGNED_BAM=File
|
|
233 R2_ALIGNED=File SAM or BAM file(s) with alignment data from the second read of a pair. This option may
|
|
234 be specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM
|
|
235 (ALIGNED)
|
|
236
|
|
237 PAIRED_RUN=Boolean
|
|
238 PE=Boolean This argument is ignored and will be removed. Required. Possible values: {true, false}
|
|
239
|
|
240 JUMP_SIZE=Integer
|
|
241 JUMP=Integer The expected jump size (required if this is a jumping library). Deprecated. Use
|
|
242 EXPECTED_ORIENTATIONS instead Default value: null. Cannot be used in conjuction with
|
|
243 option(s) EXPECTED_ORIENTATIONS (ORIENTATIONS)
|
|
244
|
|
245 CLIP_ADAPTERS=Boolean Whether to clip adapters where identified. Default value: true. Possible values: {true, false}
|
|
246
|
|
247 IS_BISULFITE_SEQUENCE=Boolean Whether the lane is bisulfite sequence (used when caculating the NM tag). Default value:
|
|
248 false. Possible values: {true, false}
|
|
249
|
|
250 ALIGNED_READS_ONLY=Boolean Whether to output only aligned reads. Default value: false. Possible values: {true, false}
|
|
251
|
|
252 MAX_INSERTIONS_OR_DELETIONS=Integer
|
|
253 MAX_GAPS=Integer The maximum number of insertions or deletions permitted for an alignment to be included.
|
|
254 Alignments with more than this many insertions or deletions will be ignored. Set to -1 to
|
|
255 allow any number of insertions or deletions. Default value: 1.
|
|
256
|
|
257 ATTRIBUTES_TO_RETAIN=String Reserved alignment attributes (tags starting with X, Y, or Z) that should be brought over
|
|
258 from the alignment data when merging. This option may be specified 0 or more times.
|
|
259
|
|
260 ATTRIBUTES_TO_REMOVE=String Attributes from the alignment record that should be removed when merging. This overrides
|
|
261 ATTRIBUTES_TO_RETAIN if they share common tags. This option may be specified 0 or more
|
|
262 times.
|
|
263
|
|
264 READ1_TRIM=Integer
|
|
265 R1_TRIM=Integer The number of bases trimmed from the beginning of read 1 prior to alignment Default
|
|
266 value: 0.
|
|
267
|
|
268 READ2_TRIM=Integer
|
|
269 R2_TRIM=Integer The number of bases trimmed from the beginning of read 2 prior to alignment Default
|
|
270 value: 0.
|
|
271
|
|
272 EXPECTED_ORIENTATIONS=PairOrientation
|
|
273 ORIENTATIONS=PairOrientation The expected orientation of proper read pairs. Replaces JUMP_SIZE Possible values: {FR,
|
|
274 RF, TANDEM} This option may be specified 0 or more times. Cannot be used in conjuction
|
|
275 with option(s) JUMP_SIZE (JUMP)
|
|
276
|
|
277 ALIGNER_PROPER_PAIR_FLAGS=Boolean
|
|
278 Use the aligner's idea of what a proper pair is rather than computing in this program.
|
|
279 Default value: false. Possible values: {true, false}
|
|
280
|
|
281 SORT_ORDER=SortOrder
|
|
282 SO=SortOrder The order in which the merged reads should be output. Default value: coordinate.
|
|
283 Possible values: {unsorted, queryname, coordinate}
|
|
284
|
|
285 PRIMARY_ALIGNMENT_STRATEGY=PrimaryAlignmentStrategy
|
|
286 Strategy for selecting primary alignment when the aligner has provided more than one
|
|
287 alignment for a pair or fragment, and none are marked as primary, more than one is marked
|
|
288 as primary, or the primary alignment is filtered out for some reason. BestMapq expects
|
|
289 that multiple alignments will be correlated with HI tag, and prefers the pair of
|
|
290 alignments with the largest MAPQ, in the absence of a primary selected by the aligner.
|
|
291 EarliestFragment prefers the alignment which maps the earliest base in the read. Note
|
|
292 that EarliestFragment may not be used for paired reads. BestEndMapq is appropriate for
|
|
293 cases in which the aligner is not pair-aware, and does not output the HI tag. It simply
|
|
294 picks the alignment for each end with the highest MAPQ, and makes those alignments
|
|
295 primary, regardless of whether the two alignments make sense together.MostDistant is also
|
|
296 for a non-pair-aware aligner, and picks the alignment pair with the largest insert size.
|
|
297 If all alignments would be chimeric, it picks the alignments for each end with the best
|
|
298 MAPQ. For all algorithms, ties are resolved arbitrarily. Default value: BestMapq.
|
|
299 Possible values: {BestMapq, EarliestFragment, BestEndMapq, MostDistant}
|
|
300
|
|
301 CLIP_OVERLAPPING_READS=BooleanFor paired reads, soft clip the 3' end of each read if necessary so that it does not
|
|
302 extend past the 5' end of its mate. Default value: true. Possible values: {true, false}
|
|
303
|
|
304 INCLUDE_SECONDARY_ALIGNMENTS=Boolean
|
|
305 If false, do not write secondary alignments to output. Default value: true.
|
|
306 Possible values: {true, false}
|
|
307
|
|
308 ADD_MATE_CIGAR=Boolean
|
|
309 MC=Boolean Adds the mate CIGAR tag (MC) if true, does not if false. Possible values: {true, false}
|
|
310
|
|
311
|
|
312
|
|
313
|
|
314 @more_info@
|
|
315 </help>
|
|
316 </tool>
|
|
317
|
|
318
|
|
319
|
|
320
|
|
321
|
|
322
|
|
323
|
|
324
|
|
325
|
|
326
|
|
327
|
|
328
|
|
329
|