From f14834283c8c04e3d98fdd7714ba276ccef5724e Mon Sep 17 00:00:00 2001 From: kasont Date: Fri, 8 Jul 2016 16:28:23 -0400 Subject: [PATCH 1/5] RE:As per request https://github.com/broadinstitute/picard/issues/519 the output is null. --- src/main/java/htsjdk/variant/variantcontext/VariantContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/htsjdk/variant/variantcontext/VariantContext.java b/src/main/java/htsjdk/variant/variantcontext/VariantContext.java index f64b0ff8e..898030ed6 100644 --- a/src/main/java/htsjdk/variant/variantcontext/VariantContext.java +++ b/src/main/java/htsjdk/variant/variantcontext/VariantContext.java @@ -1701,7 +1701,7 @@ public Allele getAltAlleleWithHighestAlleleCount() { return getAlternateAlleles().stream() .map(allele -> new Tuple<>(allele, getCalledChrCount(allele))) .max((alleleAndCount1, alleleAndCount2) -> Integer.compare(alleleAndCount1.b, alleleAndCount2.b)) - .get() + .orElse(null) .a; } From be1343b074ef9dd14fd1d6d870c77cfbd51981a0 Mon Sep 17 00:00:00 2001 From: kasont Date: Thu, 27 Oct 2016 09:35:30 -0400 Subject: [PATCH 2/5] - responding to review comments instead of kasont --- .../htsjdk/variant/variantcontext/VariantContext.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/main/java/htsjdk/variant/variantcontext/VariantContext.java b/src/main/java/htsjdk/variant/variantcontext/VariantContext.java index 898030ed6..d3d97040a 100644 --- a/src/main/java/htsjdk/variant/variantcontext/VariantContext.java +++ b/src/main/java/htsjdk/variant/variantcontext/VariantContext.java @@ -37,18 +37,7 @@ import htsjdk.variant.vcf.VCFHeaderLineType; import java.io.Serializable; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -1699,10 +1688,8 @@ public Allele getAltAlleleWithHighestAlleleCount() { return getAlternateAllele(0); return getAlternateAlleles().stream() - .map(allele -> new Tuple<>(allele, getCalledChrCount(allele))) - .max((alleleAndCount1, alleleAndCount2) -> Integer.compare(alleleAndCount1.b, alleleAndCount2.b)) - .orElse(null) - .a; + .max(Comparator.comparing(this::getCalledChrCount)) + .orElse(null); } /** From 9126b2ad52002f6736993a78ce8030601ece06da Mon Sep 17 00:00:00 2001 From: Yossi Farjoun Date: Thu, 27 Oct 2016 16:18:46 -0400 Subject: [PATCH 3/5] -Added test --- src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java index be55f8f58..c0154ba0f 100644 --- a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java +++ b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java @@ -464,6 +464,8 @@ public void testAccessingCompleteGenotypes() { Assert.assertEquals(4, vc.getCalledChrCount(T)); Assert.assertEquals(3, vc.getCalledChrCount(ATC)); Assert.assertEquals(2, vc.getCalledChrCount(Allele.NO_CALL)); + + Assert.assertEquals(T, vc.getAltAlleleWithHighestAlleleCount()); } @Test From c179f2261125fc6716463934fa5f2f94314fa04a Mon Sep 17 00:00:00 2001 From: Yossi Farjoun Date: Thu, 27 Oct 2016 16:31:01 -0400 Subject: [PATCH 4/5] -Added tests --- .../variant/variantcontext/VariantContextUnitTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java index c0154ba0f..751772cea 100644 --- a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java +++ b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java @@ -489,6 +489,9 @@ public void testAccessingRefGenotypes() { Assert.assertEquals(4, vc.getCalledChrCount(Aref)); Assert.assertEquals(0, vc.getCalledChrCount(T)); Assert.assertEquals(2, vc.getCalledChrCount(Allele.NO_CALL)); + + //bi allelic, only one alt allele + Assert.assertEquals(T, vc.getAltAlleleWithHighestAlleleCount()); } } @@ -602,6 +605,21 @@ public void testVCFfromGenotypes() { Assert.assertEquals(4, vc125.getCalledChrCount(Aref)); } + @Test + public void testMonomorphicVariant() { + Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref)); + Genotype g2 = GenotypeBuilder.create("BB", Arrays.asList(Aref, Allele.NO_CALL)); + Genotype g3 = GenotypeBuilder.create("CC", Arrays.asList(Allele.NO_CALL,Allele.NO_CALL)); + GenotypesContext gc = GenotypesContext.create(g1, g2, g3); + VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, Collections.singletonList(Aref)).genotypes(gc).make(); + + Assert.assertEquals(vc.getType(), VariantContext.Type.NO_VARIATION); + Assert.assertNull(vc.getAltAlleleWithHighestAlleleCount()); + Assert.assertEquals(vc.getCalledChrCount(Aref), 3); + + } + + public void testGetGenotypeMethods() { Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref)); Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T)); From 3c7209de1b1072c181b874ba5236e31905a9901b Mon Sep 17 00:00:00 2001 From: Yossi Farjoun Date: Mon, 7 Nov 2016 15:21:31 -0500 Subject: [PATCH 5/5] - fixed a test that was failing --- .../htsjdk/variant/variantcontext/VariantContextUnitTest.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java index 751772cea..5fe92c6d2 100644 --- a/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java +++ b/src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java @@ -491,7 +491,14 @@ public void testAccessingRefGenotypes() { Assert.assertEquals(2, vc.getCalledChrCount(Allele.NO_CALL)); //bi allelic, only one alt allele - Assert.assertEquals(T, vc.getAltAlleleWithHighestAlleleCount()); + Allele expected; + if (alleles.size()>1) { + expected = alleles.get(1); + } else { + expected = null; + } + + Assert.assertEquals( vc.getAltAlleleWithHighestAlleleCount(), expected); } }