comparison AddOrReplaceReadGroups.xml @ 47:6d723a7fe8c7 draft

Uploaded
author devteam
date Sun, 16 Feb 2014 23:58:41 -0500
parents d0c2cba2bdce
children
comparison
equal deleted inserted replaced
46:7f39041ec022 47:6d723a7fe8c7
1 <tool name="Add or Replace Groups" id="picard_ARRG" version="1.106.0">
2 <description>Replaces all read groups</description>
3 <requirements><requirement type="package" version="1.106.0">picard</requirement></requirements>
4 <command interpreter="bash">
5 simple_wrapper.sh AddOrReplaceReadGroups.jar
6 INPUT="${inputFile}"
7 RGLB="${rglb}"
8 RGPL="${rgpl}"
9 RGPU="${rgpu}"
10 RGSM="${rgsm}"
11 RGID="${rgid}"
12 #if $readGroupOpts.rgOpts == "full"
13 RGCN="${readGroupOpts.rgcn}"
14 RGDS="${readGroupOpts.rgds}"
15 RGPI="${readGroupOpts.rgpi}"
16 #end if
17 #if $reporting.opt == "full"
18 VALIDATION_STRINGENCY="${reporting.vs}"
19 QUIET="${reporting.verbosity}"
20 #else
21 VALIDATION_STRINGENCY=LENIENT
22 QUIET=True
23 #end if
24 OUTPUT="${outFile}"
25 TMP_DIR="${__new_file_path__}"
26 </command>
27
28 <stdio>
29 <exit_code range="0" level="warning" description="Tool finished correctly" />
30 </stdio>
31
32
33 <inputs>
34 <param format="bam,sam" name="inputFile" type="data" label="SAM/BAM dataset to add or replace read groups in"
35 help="If empty, upload or import a SAM/BAM dataset." />
36 <param name="rgid" value="1" type="text" label="Read group ID (ID tag)" help="The most important read group tag. Galaxy will use a value of '1' if nothing provided." />
37 <param name="rgsm" value="" type="text" label="Read group sample name (SM tag). Required." />
38 <param name="rglb" value="" type="text" label="Read group library (LB tag). Required." />
39 <param name="rgpl" value="Illumina" type="text" label="Read group platform (PL tag). Required." help="illumina, solid, 454, pacbio, helicos" />
40 <param name="rgpu" value="" type="text" label="Read group platform unit. Required." help="like run barcode, etc." />
41 <conditional name="readGroupOpts">
42 <param name="rgOpts" type="select" label="Specify additional (optional) arguments" help="Allows you to set GCN, RGDS, and RGPI">
43 <option value="preSet">Use pre-set defaults</option>
44 <option value="full">Set optional arguments</option>
45 </param>
46 <when value="preSet" />
47 <when value="full">
48 <param name="rgcn" value="" type="text" label="Read group sequencing center name" help="Leave set to &lt;null&gt; for default (none)" />
49 <param name="rgds" value="" type="text" label="Read group description" help="Leave set to &lt;null&gt; for default (none)" />
50 <param name="rgpi" value="" type="text" label="Predicted insert size" help="Leave set to &lt;null&gt; for default (none)" />
51 </when>
52 </conditional>
53
54 <conditional name="reporting">
55 <param name="opt" type="select" label="Change reporting options" help="Allows you to set Validation Stringency and Verbosity">
56 <option value="preSet">Use pre-set defaults</option>
57 <option value="full">Set optional arguments</option>
58 </param>
59 <when value="preSet" />
60 <when value="full">
61 <param name="vs" type="select" label="Set validation stringency">
62 <option value="LENIENT" selected="True">Lenient</option>
63 <option value="STRICT">Strict</option>
64 <option value="SILENT">Silent</option>
65 </param>
66 <param name="verbosity" type="select" label="Enable or supress reporting of job summary to Standard Error">
67 <option value="True" selected="True">Supress</option>
68 <option value="False">Enable</option>
69 </param>
70 </when>
71 </conditional>
72
73 </inputs>
74 <outputs>
75 <data name="outFile" format="bam">
76 </data>
77 </outputs>
78 <tests>
79 <test>
80 <!-- Command for replacing read groups in bam:
81 java -jar AddOrReplaceReadGroups.jar VALIDATION_STRINGENCY=LENIENT INPUT=./test-data/PICARD-in-noHeader.sam OUTPUT=./test-data/PICARD-ARRG-test1.bam RGLB=test1 RGPL=Illumina RGPU=PLAT RGSM=sample1 RGID=test1 QUIET=True
82 -->
83 <param name="inputFile" value="PICARD-in-noHeader.sam" />
84 <param name="rglb" value="test1" />
85 <param name="rgpl" value="Illumina" />
86 <param name="rgpu" value="PLAT" />
87 <param name="rgsm" value="sample1" />
88 <param name="rgid" value="test1" />
89 <param name="rgOpts" value="preSet" />
90 <param name="opt" value="preSet" />
91 <output name="outFile" file="PICARD-ARRG-test1.bam" lines_diff="2" ftype="bam" />
92 </test>
93 <test>
94 <!-- Command for replacing read groups in sam:
95 java -jar AddOrReplaceReadGroups.jar VALIDATION_STRINGENCY=LENIENT INPUT=./test-data/in.sam OUTPUT=./test-data/PICARD-ARRG-test2.bam RGLB=test2 RGPL=Illumina RGPU=PLAT RGSM=sample2 RGID=test2 QUIET=True
96 picard_ARRG_input1.bam can be created from picard_ARRG_input1.sam
97 -->
98 <param name="inputFile" value="PICARD-in.sam" />
99 <param name="rglb" value="test2" />
100 <param name="rgpl" value="Illumina" />
101 <param name="rgpu" value="PLAT" />
102 <param name="rgsm" value="sample2" />
103 <param name="rgid" value="test2" />
104 <param name="rgOpts" value="preSet" />
105 <param name="opt" value="preSet" />
106 <output name="outFile" file="PICARD-ARRG-test2.bam" lines_diff="2" ftype="bam" />
107 </test>
108 <test>
109 <!-- Command for adding read groups in sam:
110 java -jar AddOrReplaceReadGroups.jar VALIDATION_STRINGENCY=LENIENT INPUT=./test-data/in.bam OUTPUT=./test-data/PICARD-ARRG-test3.bam RGLB=test3 RGPL=Illumina RGPU=PLAT RGSM=sample3 RGID=test3 QUIET=True
111 -->
112 <param name="inputFile" value="PICARD-in.bam" />
113 <param name="rglb" value="test3" />
114 <param name="rgpl" value="Illumina" />
115 <param name="rgpu" value="PLAT" />
116 <param name="rgsm" value="sample3" />
117 <param name="rgid" value="test3" />
118 <param name="rgOpts" value="preSet" />
119 <param name="opt" value="preSet" />
120 <output name="outFile" file="PICARD-ARRG-test3.bam" lines_diff="2" ftype="bam" />
121 </test>
122 </tests>
123 <help>
124
125 .. class:: infomark
126
127 **Purpose**
128
129 Add or Replace Read Groups in an input BAM or SAM file.
130
131 **Read Groups are Important!**
132
133 Setting read groups correctly from the start will simplify your life greatly because you can merge multiple BAM files into one significantly reducing the number of analysis steps. Below we provide an explanation of read groups fields taken from GATK FAQ webpage:
134
135 .. csv-table::
136 :header-rows: 1
137
138 Tag,Importance,Definition,Meaning
139 "ID","Required","Read group identifier. Each @RG line must have a unique ID. The value of ID is used in the RG tags of alignment records. Must be unique among all read groups in header section. Read group IDs may be modified when merging SAM files in order to handle collisions.","Ideally, this should be a globally unique identify across all sequencing data in the world, such as the Illumina flowcell + lane name and number. Will be referenced by each read with the RG:Z field, allowing tools to determine the read group information associated with each read, including the sample from which the read came. Also, a read group is effectively treated as a separate run of the NGS instrument in tools like base quality score recalibration (a GATK component) -- all reads within a read group are assumed to come from the same instrument run and to therefore share the same error model."
140 "SM","Sample. Use pool name where a pool is being sequenced.","Required. As important as ID.","The name of the sample sequenced in this read group. GATK tools treat all read groups with the same SM value as containing sequencing data for the same sample. Therefore it's critical that the SM field be correctly specified, especially when using multi-sample tools like the Unified Genotyper (a GATK component)."
141 "PL","Platform/technology used to produce the read. Valid values: ILLUMINA, SOLID, LS454, HELICOS and PACBIO.","Important. Not currently used in the GATK, but was in the past, and may return. The only way to known the sequencing technology used to generate the sequencing data","It's a good idea to use this field."
142 "LB","DNA preparation library identify","Essential for MarkDuplicates","MarkDuplicates uses the LB field to determine which read groups might contain molecular duplicates, in case the same DNA library was sequenced on multiple lanes."
143
144 **Example of Read Group usage**
145
146 Support we have a trio of samples: MOM, DAD, and KID. Each has two DNA libraries prepared, one with 400 bp inserts and another with 200 bp inserts. Each of these libraries is run on two lanes of an illumina hiseq, requiring 3 x 2 x 2 = 12 lanes of data. When the data come off the sequencer, we would create 12 BAM files, with the following @RG fields in the header::
147
148 Dad's data:
149 @RG ID:FLOWCELL1.LANE1 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200
150 @RG ID:FLOWCELL1.LANE2 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200
151 @RG ID:FLOWCELL1.LANE3 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400
152 @RG ID:FLOWCELL1.LANE4 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400
153
154 Mom's data:
155 @RG ID:FLOWCELL1.LANE5 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200
156 @RG ID:FLOWCELL1.LANE6 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200
157 @RG ID:FLOWCELL1.LANE7 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400
158 @RG ID:FLOWCELL1.LANE8 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400
159
160 Kid's data:
161 @RG ID:FLOWCELL2.LANE1 PL:illumina LB:LIB-KID-1 SM:KID PI:200
162 @RG ID:FLOWCELL2.LANE2 PL:illumina LB:LIB-KID-1 SM:KID PI:200
163 @RG ID:FLOWCELL2.LANE3 PL:illumina LB:LIB-KID-2 SM:KID PI:400
164 @RG ID:FLOWCELL2.LANE4 PL:illumina LB:LIB-KID-2 SM:KID PI:400
165
166 Note the hierarchical relationship between read groups (unique for each lane) to libraries (sequenced on two lanes) and samples (across four lanes, two lanes for each library).
167
168 **Picard documentation**
169
170 This is a Galaxy wrapper for AddOrReplaceReadGroups, a part of the external package Picard-tools_.
171
172 .. _Picard-tools: http://www.google.com/search?q=picard+samtools
173
174 ------
175
176 .. class:: infomark
177
178 **Inputs, outputs, and parameters**
179
180 Either a sam file or a bam file must be supplied. If a bam file is used, it must
181 be coordinate-sorted. Galaxy currently coordinate-sorts all bam files.
182
183 The output file is either bam (the default) or sam, according to user selection,
184 and contains the same information as the input file except for the appropraite
185 additional (or modified) read group tags. Bam is recommended since it is smaller.
186
187 From the Picard documentation.
188
189 AddOrReplaceReadGroups REQUIRED parameters::
190
191 Option (Type) Description
192
193 RGLB=String Read Group Library
194 RGPL=String Read Group platform (e.g. illumina, solid)
195 RGPU=String Read Group platform unit (eg. run barcode)
196 RGSM=String Read Group sample name
197 RGID=String Read Group ID; Default value: null (empty)
198
199 AddOrReplaceReadGroups OPTIONAL parameters::
200
201 Option (Type) Description
202
203 RGCN=String Read Group sequencing center name; Default value: null (empty)
204 RGDS=String Read Group description Default value: null (empty)
205
206 AddOrReplaceReadGroups REPORTING parameters::
207
208 Option (Type) Description
209
210 VALIDATION_STRINGENCY=ValidationStringency Validation stringency for all SAM files read by this program.
211 Setting stringency to SILENT can improve performance when
212 processing a BAM file in which variable-length data (read,
213 qualities, tags) do not otherwise need to be decoded.
214 Default value (in Galaxy): LENIENT.
215
216 QUIET=Boolean Whether to suppress job-summary info on System.err.
217 Default value (in Galaxy): True.
218
219
220 .. class:: warningmark
221
222 **Warning on SAM/BAM quality**
223
224 Many SAM/BAM files produced externally and uploaded to Galaxy do not fully conform to SAM/BAM specifications. Galaxy deals with this by using the **LENIENT**
225 flag when it runs Picard, which allows reads to be discarded if they're empty or don't map. This appears
226 to be the only way to deal with SAM/BAM that cannot be parsed.
227
228
229 </help>
230 </tool>
231
232
233
234
235
236
237
238
239
240
241
242
243