/** * Is this genotype filtered or not? * * @return returns false if getFilters() == null */ public final boolean isFiltered() { return getFilters() != null; }
/** * Is this genotype filtered or not? * * @return returns false if getFilters() == null */ public final boolean isFiltered() { return getFilters() != null; }
/** * Is this genotype filtered or not? * * @return returns false if getFilters() == null */ @Ensures({"result != (getFilters() == null)"}) public final boolean isFiltered() { return getFilters() != null; }
@Override public Object get(String name) { //should matching genotype attributes always supersede vc? if ( attributes.containsKey(name) ) { // dynamic resolution of name -> value via map return attributes.get(name).get(g); } else if ( g.hasAnyAttribute(name) ) { return g.getAnyAttribute(name); } else if ( g.getFilters() != null && g.getFilters().contains(name) ) { return true_string; } else return super.get(name); } }
@Override public Object get(String name) { //should matching genotype attributes always supersede vc? if ( attributes.containsKey(name) ) { // dynamic resolution of name -> value via map return attributes.get(name).get(g); } else if ( g.hasAnyAttribute(name) ) { return g.getAnyAttribute(name); } else if ( g.getFilters() != null && g.getFilters().contains(name) ) { return true_string; } else return super.get(name); } }
@Override public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { final String fieldValue = g.getFilters(); getFieldEncoder().encodeValue(encoder, fieldValue, encodingType, nValuesPerGenotype); }
@Override protected int numElements(final VariantContext vc, final Genotype g) { return getFieldEncoder().numElements(vc, g.getFilters()); } }
@Override public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { final String fieldValue = g.getFilters(); getFieldEncoder().encodeValue(encoder, fieldValue, encodingType, nValuesPerGenotype); }
@Override protected int numElements(final VariantContext vc, final Genotype g) { return getFieldEncoder().numElements(vc, g.getFilters()); } }
@Override protected int numElements(final VariantContext vc, final Genotype g) { return getFieldEncoder().numElements(vc, g.getFilters()); } }
public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { final String fieldValue = g.getFilters(); getFieldEncoder().encodeValue(encoder, fieldValue, encodingType, nValuesPerGenotype); }
/** * Find the number of filtered samples * * @param vc the variant rod VariantContext * @return number of filtered samples */ private int numFilteredGenotypes(final VariantContext vc){ if (vc == null) return 0; int numFiltered = 0; // check if we find it in the variant rod GenotypesContext genotypes = vc.getGenotypes(samples); for (final Genotype g : genotypes) if ( g.isFiltered() && !g.getFilters().isEmpty()) numFiltered++; return numFiltered; }
/** Augment genotype with the given filters and return modified GenotypeBuilder */ public Genotype gtWithAppliedFilters(Genotype gt) { GenotypeBuilder gtBuilder = new GenotypeBuilder(gt); ArrayList<String> filters = new ArrayList<>(); if (gt.isFiltered()) filters.add(gt.getFilters()); filters.addAll(getFiltersFor(gt)); gtBuilder.filters(filters); return gtBuilder.make(); }
public String toString() { return String.format("[%s %s%s%s%s%s%s%s]", getSampleName(), getGenotypeString(false), toStringIfExists(VCFConstants.GENOTYPE_QUALITY_KEY, getGQ()), toStringIfExists(VCFConstants.DEPTH_KEY, getDP()), toStringIfExists(VCFConstants.GENOTYPE_ALLELE_DEPTHS, getAD()), toStringIfExists(VCFConstants.GENOTYPE_PL_KEY, getPL()), toStringIfExists(VCFConstants.GENOTYPE_FILTER_KEY, getFilters()), sortedString(getExtendedAttributes())); }
public String toString() { return String.format("[%s %s%s%s%s%s%s%s]", getSampleName(), getGenotypeString(false), toStringIfExists(VCFConstants.GENOTYPE_QUALITY_KEY, getGQ()), toStringIfExists(VCFConstants.DEPTH_KEY, getDP()), toStringIfExists(VCFConstants.GENOTYPE_ALLELE_DEPTHS, getAD()), toStringIfExists(VCFConstants.GENOTYPE_PL_KEY, getPL()), toStringIfExists(VCFConstants.GENOTYPE_FILTER_KEY, getFilters()), sortedString(getExtendedAttributes())); }
public String toString() { return String.format("[%s %s%s%s%s%s%s%s]", getSampleName(), getGenotypeString(false), toStringIfExists(VCFConstants.GENOTYPE_QUALITY_KEY, getGQ()), toStringIfExists(VCFConstants.DEPTH_KEY, getDP()), toStringIfExists(VCFConstants.GENOTYPE_ALLELE_DEPTHS, getAD()), toStringIfExists(VCFConstants.GENOTYPE_PL_KEY, getPL()), toStringIfExists(VCFConstants.GENOTYPE_FILTER_KEY, getFilters()), sortedString(getExtendedAttributes())); }
@Test public void testApplyGenotypeFilters(){ final VariantContext vc = buildDataForFilters().make(); final String filterName = "LowZ"; //an attribute that doesn't appear in the VariantContext, so there isn't any chance of confusion like with the INFO DP final String filterExpr = "Z < 10"; final List<VariantContextUtils.JexlVCMatchExp> genotypeFilterExps = VariantContextUtils.initializeMatchExps(Arrays.asList(filterName), Arrays.asList(filterExpr)); final VariantContextBuilder anotherVCBuilder = VariantFiltration.applyGenotypeFilters(vc, genotypeFilterExps, false, false, false); final VariantContext anotherVC = anotherVCBuilder.filters().make(); Assert.assertEquals(anotherVC.getGenotype("one").isFiltered(), true); Assert.assertTrue(anotherVC.getGenotype("one").getFilters().equals(filterName)); Assert.assertEquals(anotherVC.getGenotype("two").isFiltered(), false); Assert.assertEquals(anotherVC.getGenotype("three").isFiltered(), false); Assert.assertEquals(anotherVC.getGenotype("four").isFiltered(), false); Assert.assertEquals(anotherVC.getGenotype("five").isFiltered(), false); Assert.assertEquals(anotherVC.getGenotype("six").isFiltered(), false); final VariantContextBuilder yetAnotherVCBuilder = VariantFiltration.applyGenotypeFilters(anotherVC, genotypeFilterExps, false, true, false); final VariantContext yetAnotherVC = yetAnotherVCBuilder.filters().make(); Assert.assertEquals(yetAnotherVC.getGenotype("six").isFiltered(), true); Assert.assertTrue(yetAnotherVC.getGenotype("six").getFilters().equals(filterName)); }
/** * Copy all of the values for this builder from Genotype g * @param g * @return */ public GenotypeBuilder copy(final Genotype g) { name(g.getSampleName()); alleles(g.getAlleles()); phased(g.isPhased()); GQ(g.getGQ()); DP(g.getDP()); AD(g.getAD()); PL(g.getPL()); filter(g.getFilters()); attributes(g.getExtendedAttributes()); return this; }
/** * Copy all of the values for this builder from Genotype g * @param g * @return */ public GenotypeBuilder copy(final Genotype g) { name(g.getSampleName()); alleles(g.getAlleles()); phased(g.isPhased()); GQ(g.getGQ()); DP(g.getDP()); AD(g.getAD()); PL(g.getPL()); filter(g.getFilters()); attributes(g.getExtendedAttributes()); return this; }
/** * Copy all of the values for this builder from Genotype g * @param g * @return */ public GenotypeBuilder copy(final Genotype g) { name(g.getSampleName()); alleles(g.getAlleles()); phased(g.isPhased()); GQ(g.getGQ()); DP(g.getDP()); AD(g.getAD()); PL(g.getPL()); filter(g.getFilters()); attributes(g.getExtendedAttributes()); return this; }