private ArrayList<String> buildBasicInfo(VariantContextBuilder builder, ArrayListMultimap<Integer, ClinVarAnnotation> matchMap) { ArrayList<String> result = new ArrayList<>(); for (int alleleNo : matchMap.keySet().stream().sorted().toArray(Integer[]::new)) { for (ClinVarAnnotation anno : matchMap.get(alleleNo)) { ArrayList<String> tmp = new ArrayList<>(); tmp.add(encode(builder.getAlleles().get(alleleNo).toString())); tmp.add(encode(anno.getHgvsVariant())); tmp.add(Joiner.on("&").join(anno.getOrigin())); result.add(Joiner.on('|').useForNull("").join(tmp)); } } return result; }
private ArrayList<String> buildVarInfo(VariantContextBuilder builder, ArrayListMultimap<Integer, ClinVarAnnotation> matchMap) { ArrayList<String> result = new ArrayList<>(); for (int alleleNo : matchMap.keySet().stream().sorted().toArray(Integer[]::new)) { for (ClinVarAnnotation anno : matchMap.get(alleleNo)) { for (ClinVarSourceInfo srcInfo : anno.getSourceInfos()) { ArrayList<String> tmp = new ArrayList<>(); tmp.add(encode(builder.getAlleles().get(alleleNo).toString())); tmp.add(encode(srcInfo.getDbName())); tmp.add(encode(srcInfo.getDbId())); tmp.add(encode(Joiner.on("&").join(anno.getOrigin()))); result.add(Joiner.on('|').useForNull("").join(tmp)); } } } return result; }
private ArrayList<String> buildDiseaseInfo(VariantContextBuilder builder, ArrayListMultimap<Integer, ClinVarAnnotation> matchMap) { ArrayList<String> result = new ArrayList<>(); for (int alleleNo : matchMap.keySet().stream().sorted().toArray(Integer[]::new)) { for (ClinVarAnnotation anno : matchMap.get(alleleNo)) { for (ClinVarDiseaseInfo diseaseInfo : anno.getDiseaseInfos()) { ArrayList<String> tmp = new ArrayList<>(); tmp.add(encode(builder.getAlleles().get(alleleNo).toString())); tmp.add(encode(diseaseInfo.getSignificance().getLabel())); tmp.add(encode(diseaseInfo.getDiseaseDB())); tmp.add(encode(diseaseInfo.getDiseaseDBID())); tmp.add(encode(diseaseInfo.getDiseaseDBName())); tmp.add(encode(diseaseInfo.getRevisionStatus().getLabel())); tmp.add(encode(diseaseInfo.getClinicalAccession())); result.add(Joiner.on('|').useForNull("").join(tmp)); } } } return result; }
if (builder.getAlleles() == null) throw new IllegalArgumentException("the variant context builder alleles cannot be null"); final List<Allele> alleles = builder.getAlleles(); if (alleles.size() < 2) throw new IllegalArgumentException("the variant context builder must contain at least 2 alleles"); boolean keepOriginal = ( vc.getAlleles().size() == builder.getAlleles().size() );
genotypeBuilder.alleles(Arrays.asList(builder.getAlleles().get(1), builder.getAlleles().get(0))); } else { genotypeBuilder.alleles(builder.getAlleles());
else { final VariantContextBuilder vcb = new VariantContextBuilder(vc); final Allele reference = vcb.getAlleles().get(0); vcb.alleles(Arrays.asList(reference, GATKVCFConstants.NON_REF_SYMBOLIC_ALLELE)); final int genotypeCount = GenotypeLikelihoodCalculators.genotypeCount(2, vc.getNAlleles());
genotypeBuilder.alleles(Arrays.asList(builder.getAlleles().get(1), builder.getAlleles().get(0))); } else { genotypeBuilder.alleles(builder.getAlleles());
protected static VariantContextBuilder reverseComplementVariantContext(final VariantContext source, final Interval target, final ReferenceSequence refSeq) { if (target.isPositiveStrand()) { throw new IllegalArgumentException("This should only be called for negative strand liftovers"); } final List<Allele> origAlleles = new ArrayList<>(source.getAlleles()); final VariantContextBuilder vcb = new VariantContextBuilder(source); vcb.chr(target.getContig()); // By convention, indels are left aligned and include the base prior to that indel. // When reverse complementing, will be necessary to include this additional base. // This check prevents the extremely rare situation in which the indel occurs on the // first base of the sequence final boolean addToStart = source.isIndel() && target.getStart() > 1; final int start = target.getStart() - (addToStart ? 1 : 0); vcb.start(start); final int stop = target.getEnd() - (addToStart ? 1 : 0); vcb.stop(stop); vcb.alleles(reverseComplementAlleles(origAlleles, target, refSeq, source.isIndel(), addToStart)); if (!source.isSNP()) { // check that the reverse complemented bases match the new reference if (!referenceAlleleMatchesReferenceForIndel(vcb.getAlleles(), refSeq, start, stop)) { return null; } leftAlignVariant(vcb, start, stop, vcb.getAlleles(), refSeq); } vcb.genotypes(fixGenotypes(source.getGenotypes(), origAlleles, vcb.getAlleles())); return vcb; }
protected static VariantContextBuilder reverseComplementVariantContext(final VariantContext source, final Interval target, final ReferenceSequence refSeq) { if (target.isPositiveStrand()) { throw new IllegalArgumentException("This should only be called for negative strand liftovers"); } final List<Allele> origAlleles = new ArrayList<>(source.getAlleles()); final VariantContextBuilder vcb = new VariantContextBuilder(source); vcb.chr(target.getContig()); // By convention, indels are left aligned and include the base prior to that indel. // When reverse complementing, will be necessary to include this additional base. // This check prevents the extremely rare situation in which the indel occurs on the // first base of the sequence final boolean addToStart = source.isIndel() && target.getStart() > 1; final int start = target.getStart() - (addToStart ? 1 : 0); vcb.start(start); final int stop = target.getEnd() - (addToStart ? 1 : 0); vcb.stop(stop); vcb.alleles(reverseComplementAlleles(origAlleles, target, refSeq, source.isIndel(), addToStart)); if (!source.isSNP()) { // check that the reverse complemented bases match the new reference if (!referenceAlleleMatchesReferenceForIndel(vcb.getAlleles(), refSeq, start, stop)) { return null; } leftAlignVariant(vcb, start, stop, vcb.getAlleles(), refSeq); } vcb.genotypes(fixGenotypes(source.getGenotypes(), origAlleles, vcb.getAlleles())); return vcb; }
alleleMap.put(vc.getAlleles().get(0), swappedBuilder.getAlleles().get(1)); alleleMap.put(vc.getAlleles().get(1), swappedBuilder.getAlleles().get(0));
alleleMap.put(vc.getAlleles().get(0), swappedBuilder.getAlleles().get(1)); alleleMap.put(vc.getAlleles().get(1), swappedBuilder.getAlleles().get(0));
final List<Allele> newAlleles = builder.getAlleles(); final int numOriginalAlleles = originalVC.getNAlleles();
@Test(dataProvider = "leftAlignAllelesData") public void testLeftAlignVariants(final VariantContext source, final ReferenceSequence reference, final VariantContext result) { VariantContextBuilder vcb = new VariantContextBuilder(source); LiftoverUtils.leftAlignVariant(vcb, source.getStart(), source.getEnd(), source.getAlleles(), reference); vcb.genotypes(LiftoverUtils.fixGenotypes(source.getGenotypes(), source.getAlleles(), vcb.getAlleles())); VcfTestUtils.assertEquals(vcb.make(), result); }
if (writeOriginalAlleles && !source.getAlleles().equals(builder.getAlleles())) { builder.attribute(LiftoverVcf.ORIGINAL_ALLELES, allelesToStringList(source.getAlleles()));
genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.start(start).stop(stop).alleles(CollectionUtil.makeList(RefG, A)); result_builder.start(stop).stop(start).alleles(CollectionUtil.makeList(RefG, A)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles());
if (writeOriginalAlleles && !source.getAlleles().equals(builder.getAlleles())) { builder.attribute(LiftoverVcf.ORIGINAL_ALLELES, allelesToStringList(source.getAlleles()));
result_builder.start(start).stop(stop).alleles(CollectionUtil.makeList(A, RefC)); genotypeBuilder.alleles(builder.getAlleles()).AD(new int[]{5, 4}).PL(new int[]{40, 0, 60}); resultGenotypeBuilder.alleles(result_builder.getAlleles()).AD(new int[]{4, 5}).PL(new int[]{60, 0, 40});
builder.start(1).stop(1).alleles(CollectionUtil.makeList(CRef, A)); result_builder.start(1).stop(1).alleles(CollectionUtil.makeList(CRef, A)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.start(start).stop(stop).alleles(CollectionUtil.makeList(CAAARef, CAA)); result_builder.start(1).stop(4).alleles(CollectionUtil.makeList(CAAARef, CAA)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.start(537).stop(540).alleles(CollectionUtil.makeList(AAAARef, AAA)); result_builder.start(537).stop(540).alleles(CollectionUtil.makeList(AAAARef, AAA)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.start(540).stop(540).alleles(CollectionUtil.makeList(ARef, T)); result_builder.start(540).stop(540).alleles(CollectionUtil.makeList(ARef, T)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.start(538).stop(541).alleles(CollectionUtil.makeList(AAAARef, AAA));
genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.source("test2").alleles(CollectionUtil.makeList(RefT, TTT)).stop(stop); result_builder.alleles(CollectionUtil.makeList(RefC, CAA)).start(1).stop(1); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.source("test4").stop(stop).start(start).alleles(CollectionUtil.makeList(RefA, ACGT)); result_builder.start(10).stop(10).alleles(CollectionUtil.makeList(RefA, AACG)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make()); result_builder.genotypes(resultGenotypeBuilder.make()); builder.source("test5").stop(stop).start(start).alleles(CollectionUtil.makeList(RefG, GTT)); result_builder.start(1).stop(1).alleles(CollectionUtil.makeList(RefC, AAC)); genotypeBuilder.alleles(builder.getAlleles()); resultGenotypeBuilder.alleles(result_builder.getAlleles()); builder.genotypes(genotypeBuilder.make());
result_builder.start(liftedStart).stop(liftedStart).alleles(CollectionUtil.makeList(GRef, A, DEL)); result_builder.attribute(LiftoverVcf.ORIGINAL_START, start); result_builder.attribute(LiftoverVcf.ORIGINAL_ALLELES, LiftoverUtils.allelesToStringList(builder.getAlleles())); result_builder.attribute(LiftoverUtils.REV_COMPED_ALLELES, true); result_builder.start(liftedStart).stop(liftedStart).alleles(CollectionUtil.makeList(GRef, A)); result_builder.attribute(LiftoverVcf.ORIGINAL_START, start); result_builder.attribute(LiftoverVcf.ORIGINAL_ALLELES, LiftoverUtils.allelesToStringList(builder.getAlleles())); genotypeBuilder.alleles(CollectionUtil.makeList(T, Allele.NO_CALL)); resultGenotypeBuilder.alleles(CollectionUtil.makeList(A, Allele.NO_CALL));