java -Xmx4G -jar picard.jar AddOrReplaceReadGroups \
I=$SNIC_TMP/WCRO84_S23_L005.bam \ O=WCRO84_S23_L005.bam \ RGID=WCRO84_S23_L005 \ RGLB=WCRO84 \ RGPL=illumina \ RGPU=WCRO84_S23_L005 \ RGSM=WCRO84  or java -Xmx4G -jar picard.jar AddOrReplaceReadGroups \ I=$SNIC_TMP/WCRO84_S23_L005.bam \
O=WCRO84_S23_L005.bam \
RGID=WCRO84_S23_L005 \
RGLB=WCRO84_S23_L005 \
RGPL=illumina \
RGPU=WCRO84_S23_L005 \
RGSM=WCRO84_S23_L005


Or is a better way to determine read groups?

Usually it doesn't actually matter, but if you want it to be very correct:

RGID=SomeLibraryID \
RGLB=SomeLibraryID \
RGPL=illumina \
RGPU=Some_Sequencer_ID \
RGSM=SomeSampleID


That assumes you have one library per sample and aren't splitting the output BAM files by lane.

• Is it possible to get it automatically determine by reading the FASTQ header or filename? Feb 18, 2019 at 13:16
• If you have control of how the data is produced then yes, you can set all of that automatically. Otherwise you can't be certain the file/read names are meaningful. Feb 18, 2019 at 13:18