private static boolean containsVCWithMatchingAlleles( final List<VariantContext> list, final VariantContext vcToTest ) { for( final VariantContext vc : list ) { if( vc.hasSameAllelesAs(vcToTest) ) { return true; } } return false; }
@Override public boolean equals( final Object obj ) { return obj instanceof Event && ((((Event) obj).vc == null && vc == null) || (((Event) obj).vc != null && vc != null && ((Event) obj).vc.hasSameAllelesAs(vc))) ; }
@Requires({"haplotypes.size() >= eventsAtThisLoc.size() + 1"}) @Ensures({"result.size() == eventsAtThisLoc.size() + 1"}) protected static Map<Event, List<Haplotype>> createEventMapper( final int loc, final List<VariantContext> eventsAtThisLoc, final List<Haplotype> haplotypes) { final Map<Event, List<Haplotype>> eventMapper = new LinkedHashMap<>(eventsAtThisLoc.size()+1); final Event refEvent = new Event(null); eventMapper.put(refEvent, new ArrayList<>()); for( final VariantContext vc : eventsAtThisLoc ) { eventMapper.put(new Event(vc), new ArrayList<>()); } for( final Haplotype h : haplotypes ) { if( h.getEventMap().get(loc) == null ) { eventMapper.get(refEvent).add(h); } else { for( final VariantContext vcAtThisLoc : eventsAtThisLoc ) { if( h.getEventMap().get(loc).hasSameAllelesAs(vcAtThisLoc) ) { eventMapper.get(new Event(vcAtThisLoc)).add(h); break; } } } } return eventMapper; }
boolean alreadyExists = false; for( final VariantContext eventToTest : eventsAtThisLoc ) { if( eventToTest.hasSameAllelesAs(candidateEventToAdd) ) { alreadyExists = true;
@Test public void testMatchingAlleles() { List<Allele> alleles = Arrays.asList(ATCref, del); VariantContext vc = new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, alleles).make(); VariantContext vc2 = new VariantContextBuilder("test2", delLoc, delLocStart+12, delLocStop+12, alleles).make(); Assert.assertTrue(vc.hasSameAllelesAs(vc2)); Assert.assertTrue(vc.hasSameAlternateAllelesAs(vc2)); }
public static void assertEquals(final VariantContext actual, final VariantContext expected) { if (expected == null) { Assert.assertNull(actual); return; } final String expectedString = expected.toString(); Assert.assertNotNull(actual, "null status"); Assert.assertEquals(actual.getContig(), expected.getContig(), expectedString + " Different contigs: "); Assert.assertEquals(actual.getStart(), expected.getStart(), expectedString + " Different starts: "); Assert.assertEquals(actual.getEnd(), expected.getEnd(), expectedString + " Different ends: "); Assert.assertTrue(actual.hasSameAllelesAs(expected), "Alleles differ between " + actual + " and " + expected + ": "); assertEquals(actual.getGenotypes(), expected.getGenotypes()); Assert.assertEquals(actual.getID(), expected.getID(), "IDs differ for " + expectedString); Assert.assertEquals(actual.getFilters(), expected.getFilters(), "Filters differ for " + expectedString); Assert.assertEquals(actual.getAttributes(), expected.getAttributes(), "Attributes differ for " + expectedString); }
if( mergeData.firstVC == null ) { mergeData.firstVC = thisHapVC; } else if( !thisHapVC.hasSameAllelesAs( mergeData.firstVC) ) { return mergeData.cantBeMerged(); if( mergeData.secondVC == null ) { mergeData.secondVC = nextHapVC; } else if( !nextHapVC.hasSameAllelesAs( mergeData.secondVC) ) { return mergeData.cantBeMerged();
@Test public void TestReallyMergeIntoMNP( ){ final VariantContext vc = PhasingUtils.reallyMergeIntoMNP(vc1, vc2, referenceFile); final List<Allele> alleleList = Arrays.asList(Allele.create("TG", true), Allele.create("TA", false), Allele.create("CG", false)); final Map<String,Object> attributes = new HashMap<String,Object>(){{ put("AC", new ArrayList<Integer>(Arrays.asList(1, 1))); put("AF", new ArrayList<Double>(Arrays.asList(0.5, 0.5))); put("AN", 2); }}; final Map<String, Object> extendedAttributes = new HashMap<String, Object>(){{ put("PQ", 100.0); put("HP", new String[]{"10-1", "10-2"}); }}; final List<Allele> alleleListMeged = Arrays.asList(Allele.create("TA"), Allele.create("CG")); final Genotype genotype = new GenotypeBuilder().name("sample").attributes(extendedAttributes).alleles(alleleListMeged).make(); final VariantContext vcExpected = new VariantContextBuilder().chr(contig).id("id1;id2").source("TC_GA").start(start).stop(start+1).alleles(alleleList).genotypes(genotype).attributes(attributes).make(); Assert.assertTrue(genotype.sameGenotype(vcExpected.getGenotypes().get("sample"))); Assert.assertTrue(vcExpected.hasSameAllelesAs(vc)); Assert.assertEquals(vcExpected.getChr(), vc.getChr()); Assert.assertEquals(vcExpected.getStart(), vc.getStart()); Assert.assertEquals(vcExpected.getEnd(), vc.getEnd()); Assert.assertEquals(vcExpected.getID(), vc.getID()); Assert.assertEquals(vcExpected.getSource(), vc.getSource()); Assert.assertEquals(vcExpected.isFiltered(), vc.isFiltered()); Assert.assertEquals(vcExpected.getPhredScaledQual(), vc.getPhredScaledQual()); Assert.assertEquals(vcExpected.getAttribute("PQ"), vc.getAttribute("PQ")); Assert.assertEquals(vcExpected.getAttribute("HP"), vc.getAttribute("HP")); }
@Test public void TestMergeIntoMNP(){ final AlwaysTrueMergeRule alleleMergeRule = new AlwaysTrueMergeRule(); final VariantContext vc = PhasingUtils.mergeIntoMNP(genomeLocParser, vc1, vc2, referenceFile, alleleMergeRule); final List<Allele> alleleList = Arrays.asList(Allele.create("TG", true), Allele.create("TA", false), Allele.create("CG", false)); final Map<String,Object> attributes = new HashMap<String,Object>(){{ put("AC", new ArrayList<Integer>(Arrays.asList(1, 1))); put("AF", new ArrayList<Double>(Arrays.asList(0.5, 0.5))); put("AN", 2); }}; final Map<String, Object> extendedAttributes = new HashMap<String, Object>(){{ put("PQ", 100.0); put("HP", new String[]{"10-1", "10-2"}); }}; final List<Allele> alleleListMeged = Arrays.asList(Allele.create("TA"), Allele.create("CG")); final Genotype genotype = new GenotypeBuilder().name("sample").attributes(extendedAttributes).alleles(alleleListMeged).make(); final VariantContext vcExpected = new VariantContextBuilder().chr(contig).id("id1;id2").source("TC_GA").start(start).stop(start+1).alleles(alleleList).genotypes(genotype).attributes(attributes).make(); Assert.assertTrue(genotype.sameGenotype(vcExpected.getGenotypes().get("sample"))); Assert.assertTrue(vcExpected.hasSameAllelesAs(vc)); Assert.assertEquals(vcExpected.getChr(), vc.getChr()); Assert.assertEquals(vcExpected.getStart(), vc.getStart()); Assert.assertEquals(vcExpected.getEnd(), vc.getEnd()); Assert.assertEquals(vcExpected.getID(), vc.getID()); Assert.assertEquals(vcExpected.getSource(), vc.getSource()); Assert.assertEquals(vcExpected.isFiltered(), vc.isFiltered()); Assert.assertEquals(vcExpected.getPhredScaledQual(), vc.getPhredScaledQual()); Assert.assertEquals(vcExpected.getAttribute("PQ"), vc.getAttribute("PQ")); Assert.assertEquals(vcExpected.getAttribute("HP"), vc.getAttribute("HP")); }
VariantContext mergedVC = merger.createMergedVariantContext(thisVC, nextVC, ref, refLoc); logger.warn(truthVC + " == " + mergedVC); Assert.assertTrue(truthVC.hasSameAllelesAs(mergedVC)); Assert.assertEquals(truthVC.getStart(), mergedVC.getStart()); Assert.assertEquals(truthVC.getEnd(), mergedVC.getEnd()); mergedVC = merger.createMergedVariantContext(thisVC, nextVC, ref, refLoc); logger.warn(truthVC + " == " + mergedVC); Assert.assertTrue(truthVC.hasSameAllelesAs(mergedVC)); Assert.assertEquals(truthVC.getStart(), mergedVC.getStart()); Assert.assertEquals(truthVC.getEnd(), mergedVC.getEnd()); mergedVC = merger.createMergedVariantContext(thisVC, nextVC, ref, refLoc); logger.warn(truthVC + " == " + mergedVC); Assert.assertTrue(truthVC.hasSameAllelesAs(mergedVC)); Assert.assertEquals(truthVC.getStart(), mergedVC.getStart()); Assert.assertEquals(truthVC.getEnd(), mergedVC.getEnd()); mergedVC = merger.createMergedVariantContext(thisVC, nextVC, ref, refLoc); logger.warn(truthVC + " == " + mergedVC); Assert.assertTrue(truthVC.hasSameAllelesAs(mergedVC)); Assert.assertEquals(truthVC.getStart(), mergedVC.getStart()); Assert.assertEquals(truthVC.getEnd(), mergedVC.getEnd()); mergedVC = merger.createMergedVariantContext(thisVC, nextVC, ref, refLoc); logger.warn(truthVC + " == " + mergedVC); Assert.assertTrue(truthVC.hasSameAllelesAs(mergedVC)); Assert.assertEquals(truthVC.getStart(), mergedVC.getStart()); Assert.assertEquals(truthVC.getEnd(), mergedVC.getEnd());