From a301ba1977817cab5b6cb1cc10bd306ee394a8ac Mon Sep 17 00:00:00 2001 From: Pierre Lindenbaum Date: Fri, 23 Sep 2016 11:17:24 +0200 Subject: [PATCH] Add read group identifier to column names If two SAMReadGroupRecords share the same sample name, the output will contain duplicate column headers. This PR fix the problem. --- .../diagnostics/ReadLengthDistribution.java | 2 +- ...ReadLengthDistributionIntegrationTest.java | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 public/gatk-tools-public/src/test/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistributionIntegrationTest.java diff --git a/public/gatk-tools-public/src/main/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistribution.java b/public/gatk-tools-public/src/main/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistribution.java index 098d4d4ba..1e7e48c5a 100644 --- a/public/gatk-tools-public/src/main/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistribution.java +++ b/public/gatk-tools-public/src/main/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistribution.java @@ -163,7 +163,7 @@ public class ReadLengthDistribution extends ReadWalker { } else{ for (SAMReadGroupRecord rg : readGroups) - tableReport.addColumn(rg.getSample()); + tableReport.addColumn(rg.getSample() + "[rg:" + rg.getReadGroupId() +"]"); int rowIndex = 0; for (Integer length : table.keySet()){ tableReport.set(rowIndex,0,length); diff --git a/public/gatk-tools-public/src/test/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistributionIntegrationTest.java b/public/gatk-tools-public/src/test/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistributionIntegrationTest.java new file mode 100644 index 000000000..e25b1be8c --- /dev/null +++ b/public/gatk-tools-public/src/test/java/org/broadinstitute/gatk/tools/walkers/diagnostics/ReadLengthDistributionIntegrationTest.java @@ -0,0 +1,42 @@ +/* +* Copyright 2012-2016 Broad Institute, Inc. +* +* Permission is hereby granted, free of charge, to any person +* obtaining a copy of this software and associated documentation +* files (the "Software"), to deal in the Software without +* restriction, including without limitation the rights to use, +* copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following +* conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +* THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +package org.broadinstitute.gatk.tools.walkers.diagnostics; + +import org.broadinstitute.gatk.engine.walkers.WalkerTest; +import org.testng.annotations.Test; + +import java.util.Arrays; + +public class ReadLengthDistributionIntegrationTest extends WalkerTest { + + @Test + public void testReadLengthDistributionMultiSample() { + WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec( + "-T ReadLengthDistribution -R " + b37KGReference + " -I " + privateTestDir + "testReadPos.snippet.bam -rf NotPrimaryAlignment -rf UnmappedRead -rf FailsVendorQualityCheck -rf DuplicateRead -o %s", 1, + Arrays.asList("9f0551e7116c7c8a56d6f7f756d02795")); + executeTest("test ReadLengthDistribution with a bame with multiple read groups", spec); + } +}