/** * Annotate VariantContext with the pedigree-based filters * * @param vc the {@link VariantContext} to annotate * @return copy of <code>vc</code> with applied annotations */ public VariantContext annotateVariantContext(VariantContext vc) { VariantContextBuilder builder = new VariantContextBuilder(vc); List<Genotype> gts = annotateGenotypes(builder, vc); builder.genotypes(gts); return builder.make(); }
/** * @deprecated use variant context builder version instead * @param vc the variant context * @param keysToPreserve the keys to preserve * @return a pruned version of the original variant context */ @Deprecated public static VariantContext pruneVariantContext(final VariantContext vc, Collection<String> keysToPreserve ) { return pruneVariantContext(new VariantContextBuilder(vc), keysToPreserve).make(); }
public static VariantContextBuilder pruneVariantContext(final VariantContextBuilder builder, Collection<String> keysToPreserve ) { final VariantContext vc = builder.make(); if ( keysToPreserve == null ) keysToPreserve = Collections.emptyList(); // VC info final Map<String, Object> attributes = subsetAttributes(vc.getCommonInfo(), keysToPreserve); // Genotypes final GenotypesContext genotypes = GenotypesContext.create(vc.getNSamples()); for ( final Genotype g : vc.getGenotypes() ) { final GenotypeBuilder gb = new GenotypeBuilder(g); // remove AD, DP, PL, and all extended attributes, keeping just GT and GQ gb.noAD().noDP().noPL().noAttributes(); genotypes.add(gb.make()); } return builder.genotypes(genotypes).attributes(attributes); }
public static VariantContext subsetAlleles(final VariantContext originalVc, final List<Allele> allelesToKeep) { VariantContextBuilder vcBuilder = new VariantContextBuilder(originalVc).alleles(allelesToKeep); GenotypesContext newGenotypes = subsetAlleles(originalVc.getGenotypes(), originalVc.getAlleles(), allelesToKeep); vcBuilder.genotypes(newGenotypes); return vcBuilder.make(); }
/** * Returns a newly allocated VC that is the same as VC, but without genotypes * @param vc variant context * @return new VC without genotypes */ public static VariantContext sitesOnlyVariantContext(VariantContext vc) { return new VariantContextBuilder(vc).noGenotypes().make(); }
/** Makes a new VariantContext with only the desired samples. */ private static VariantContext subsetToSamplesWithOriginalAnnotations(final VariantContext ctx, final Set<String> samples) { final VariantContextBuilder builder = new VariantContextBuilder(ctx); final GenotypesContext newGenotypes = ctx.getGenotypes().subsetToSamples(samples); builder.alleles(ctx.getAlleles()); return builder.genotypes(newGenotypes).make(); } }
/** * Returns a newly allocated VC that is the same as VC, but without genotypes * @param vc variant context * @return new VC without genotypes */ public static VariantContext sitesOnlyVariantContext(VariantContext vc) { return new VariantContextBuilder(vc).noGenotypes().make(); }
public VariantContext createEmptyContext(VariantContext other, List<String> samples) { VariantContextBuilder builder = new VariantContextBuilder(); // set the alleles to be the same builder.alleles(other.getAlleles()); builder.loc(other.getChr(),other.getStart(),other.getEnd()); // set all genotypes to empty List<Genotype> genotypes = new ArrayList<Genotype>(samples.size()); for ( String sample : samples ) genotypes.add(GenotypeBuilder.create(sample, new ArrayList<Allele>(0))); builder.genotypes(genotypes); return builder.make(); }
/** * Annotate VariantContext with the threshold-based filters. * * @param vc the {@link VariantContext} to annotate * @return copy of <code>vc</code> with applied annotations */ public VariantContext annotateVariantContext(VariantContext vc) { VariantContextBuilder builder = new VariantContextBuilder(vc); annotateGenotypes(builder, vc); return builder.make(); }
public static VariantContext purgeUnallowedGenotypeAttributes(VariantContext vc, Set<String> allowedAttributes) { if ( allowedAttributes == null ) return vc; final GenotypesContext newGenotypes = GenotypesContext.create(vc.getNSamples()); for ( final Genotype genotype : vc.getGenotypes() ) { final Map<String, Object> attrs = new HashMap<>(); for ( final Map.Entry<String, Object> attr : genotype.getExtendedAttributes().entrySet() ) { if ( allowedAttributes.contains(attr.getKey()) ) attrs.put(attr.getKey(), attr.getValue()); } newGenotypes.add(new GenotypeBuilder(genotype).attributes(attrs).make()); } return new VariantContextBuilder(vc).genotypes(newGenotypes).make(); }
private void writeOne(final VariantContext vc, final String set, final String status) { final Map<String, Object> attrs = new HashMap<>(); if ( SET_KEY != null && set != null ) attrs.put(SET_KEY, set); if ( STATUS_KEY != null && status != null ) attrs.put(STATUS_KEY, status); writer.add(new VariantContextBuilder(vc).attributes(attrs).make()); }
public static VariantContext subsetAlleles(final VariantContext originalVc, final List<Allele> allelesToKeep) { VariantContextBuilder vcBuilder = new VariantContextBuilder(originalVc).alleles(allelesToKeep); GenotypesContext newGenotypes = subsetAlleles(originalVc.getGenotypes(), originalVc.getAlleles(), allelesToKeep); vcBuilder.genotypes(newGenotypes); return vcBuilder.make(); }
private VariantContext addNonRefSymbolicAllele(final VariantContext mergedVC) { final VariantContextBuilder vcb = new VariantContextBuilder(mergedVC); final List<Allele> originalList = mergedVC.getAlleles(); final List<Allele> alleleList = new ArrayList<>(originalList.size() + 1); alleleList.addAll(mergedVC.getAlleles()); alleleList.add(GATKVCFConstants.NON_REF_SYMBOLIC_ALLELE); vcb.alleles(alleleList); return vcb.make(); }
/** Makes a new VariantContext with only the desired samples. */ private static VariantContext subsetToSamplesWithOriginalAnnotations(final VariantContext ctx, final Set<String> samples) { final VariantContextBuilder builder = new VariantContextBuilder(ctx); final GenotypesContext newGenotypes = ctx.getGenotypes().subsetToSamples(samples); builder.alleles(ctx.getAlleles()); return builder.genotypes(newGenotypes).make(); } }
private SitesAndGenotypesVC(String name, VariantContext original) { this.name = name; this.vc = original; this.copy = new VariantContextBuilder(original).make(); }
public VariantContext toVariantContext() { GenotypesContext gc = GenotypesContext.copy(this.genotypes.values()); return new VariantContextBuilder(name, contig, start, stop, alleles).id(id) .genotypes(gc).log10PError(log10PError).filters(filters).attributes(attributes).make(); }
private VariantContext updateRecord(List<VariantEvaluation> variantEvaluations, Gene gene, ModeOfInheritance modeOfInheritance) { // create a new VariantContextBuilder, based on the original line // n.b. variantContexts with alternative alleles will be shared between // the alternative allele variant objects - Exomiser works on a 1 Variant = 1 Allele principle VariantEvaluation variantEvaluation = variantEvaluations.get(0); VariantContext variantContext = variantEvaluation.getVariantContext(); VariantContextBuilder builder = new VariantContextBuilder(variantContext); // update filter and info fields and write out to writer. updateFilterField(builder, variantEvaluation, modeOfInheritance); updateInfoField(builder, variantEvaluations, gene, modeOfInheritance); return builder.make(); }
/** * Add physical phase information to the provided variant context * * @param vc the variant context * @param ID the ID to use * @param phaseGT the phase GT string to use * @return phased non-null variant context */ private static VariantContext phaseVC(final VariantContext vc, final String ID, final String phaseGT) { final List<Genotype> phasedGenotypes = new ArrayList<>(); for ( final Genotype g : vc.getGenotypes() ) phasedGenotypes.add(new GenotypeBuilder(g).attribute(GATKVCFConstants.HAPLOTYPE_CALLER_PHASING_ID_KEY, ID).attribute(GATKVCFConstants.HAPLOTYPE_CALLER_PHASING_GT_KEY, phaseGT).make()); return new VariantContextBuilder(vc).genotypes(phasedGenotypes).make(); }
@Test (expectedExceptions = Throwable.class) public void testBadLoc1() { List<Allele> alleles = Arrays.asList(Aref, T, del); new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, alleles).make(); }
private VariantContext makeVC(String source, List<Allele> alleles, Genotype... genotypes) { int start = 10; int stop = start; // alleles.contains(ATC) ? start + 3 : start; return new VariantContextBuilder(source, "1", start, stop, alleles) .genotypes(Arrays.asList(genotypes)) .filters((String)null) .make(); }