Galaxy | Tool Preview

AddOrReplaceReadGroups (version 3.1.1.0)
If empty, upload or import a SAM/BAM dataset
Use dataset name or collection information to automatically assign this value
This value must be unique among multiple samples in your experiment
Use dataset name or collection information to automatically assign this value
This value should be descriptive. Use pool name where a pool is being sequenced
Use dataset name or collection information to automatically assign this value
Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)
ISO8601 format date or date/time, like YYYY-MM-DD
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.

Purpose

Add or Replace Read Groups in an input BAM or SAM file.


Dataset collections - processing large numbers of datasets at once

This will be added shortly


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:

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).


Inputs, outputs, and parameters

Either a SAM file or a BAM file must be supplied. Galaxy automatically coordinate-sorts all uploaded BAM files.

From Picard documentation( http://broadinstitute.github.io/picard/):

INPUT=File
I=File                  Input file (bam or sam).  Required.

OUTPUT=File
O=File                  Output file (bam or sam).  Required.

SORT_ORDER=SortOrder
SO=SortOrder            Optional sort order to output in. If not supplied OUTPUT is in the same order as INPUT.
                        Default value: null. Possible values: {unsorted, queryname, coordinate}

RGID=String
ID=String               Read Group ID  Default value: 1. This option can be set to 'null' to clear the default
                        value.

RGLB=String
LB=String               Read Group Library  Required.

RGPL=String
PL=String               Read Group platform (e.g. illumina, solid)  Required.

RGPU=String
PU=String               Read Group platform unit (eg. run barcode)  Required.

RGSM=String
SM=String               Read Group sample name  Required.

RGCN=String
CN=String               Read Group sequencing center name  Default value: null.

RGDS=String
DS=String               Read Group description  Default value: null.

RGDT=Iso8601Date
DT=Iso8601Date          Read Group run date  Default value: null.

RGPI=Integer
PI=Integer              Read Group predicted insert size  Default value: null.

Additional information

Additional information about Picard tools is available from Picard web site at http://broadinstitute.github.io/picard/ .