# HG changeset patch # User devteam # Date 1391546084 18000 # Node ID bbe7940ff423119c8d2c472e0412589be8fc5e1e # Parent 0260ca585cefbde2af5d1247f1447625d3a28aea Uploaded diff -r 0260ca585cef -r bbe7940ff423 AddOrReplaceReadGroups.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AddOrReplaceReadGroups.xml Tue Feb 04 15:34:44 2014 -0500 @@ -0,0 +1,241 @@ + + + $JAVA_JAR_PATH/AddOrReplaceReadGroups.jar + INPUT="${inputFile}" + RGLB="${rglb}" + RGPL="${rgpl}" + RGPU="${rgpu}" + RGSM="${rgsm}" + RGID="${rgid}" + #if $readGroupOpts.rgOpts == "full" + RGCN="${readGroupOpts.rgcn}" + RGDS="${readGroupOpts.rgds}" + RGPI="${readGroupOpts.rgpi}" + #end if + #if $reporting.opt == "full" + VALIDATION_STRINGENCY="${reporting.vs}" + QUIET="${reporting.verbosity}" + #else + VALIDATION_STRINGENCY=LENIENT + QUIET=True + #end if + OUTPUT="${outFile}" + TMP_DIR="${__new_file_path__}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Add or Replace Read Groups in an input BAM or SAM file. + +**Read Groups are Important!** + +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: + +.. csv-table:: + :header-rows: 1 + + Tag,Importance,Definition,Meaning + "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." + "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)." + "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." + "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." + +**Example of Read Group usage** + +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:: + + Dad's data: + @RG ID:FLOWCELL1.LANE1 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE2 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE3 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + @RG ID:FLOWCELL1.LANE4 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + + Mom's data: + @RG ID:FLOWCELL1.LANE5 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE6 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE7 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + @RG ID:FLOWCELL1.LANE8 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + + Kid's data: + @RG ID:FLOWCELL2.LANE1 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE2 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE3 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + @RG ID:FLOWCELL2.LANE4 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + +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). + +**Picard documentation** + +This is a Galaxy wrapper for AddOrReplaceReadGroups, a part of the external package Picard-tools_. + + .. _Picard-tools: http://www.google.com/search?q=picard+samtools + +------ + +.. class:: infomark + +**Inputs, outputs, and parameters** + +Either a sam file or a bam file must be supplied. If a bam file is used, it must +be coordinate-sorted. Galaxy currently coordinate-sorts all bam files. + +The output file is either bam (the default) or sam, according to user selection, +and contains the same information as the input file except for the appropraite +additional (or modified) read group tags. Bam is recommended since it is smaller. + +From the Picard documentation. + +AddOrReplaceReadGroups REQUIRED parameters:: + + Option (Type) Description + + RGLB=String Read Group Library + RGPL=String Read Group platform (e.g. illumina, solid) + RGPU=String Read Group platform unit (eg. run barcode) + RGSM=String Read Group sample name + RGID=String Read Group ID; Default value: null (empty) + +AddOrReplaceReadGroups OPTIONAL parameters:: + + Option (Type) Description + + RGCN=String Read Group sequencing center name; Default value: null (empty) + RGDS=String Read Group description Default value: null (empty) + +AddOrReplaceReadGroups REPORTING parameters:: + + Option (Type) Description + + VALIDATION_STRINGENCY=ValidationStringency Validation stringency for all SAM files read by this program. + Setting stringency to SILENT can improve performance when + processing a BAM file in which variable-length data (read, + qualities, tags) do not otherwise need to be decoded. + Default value (in Galaxy): LENIENT. + + QUIET=Boolean Whether to suppress job-summary info on System.err. + Default value (in Galaxy): True. + + +.. class:: warningmark + +**Warning on SAM/BAM quality** + +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** +flag when it runs Picard, which allows reads to be discarded if they're empty or don't map. This appears +to be the only way to deal with SAM/BAM that cannot be parsed. + + + + + + + + + + + + + + + + +