/** * This genotype is unfiltered * * @return */ public GenotypeBuilder unfiltered() { return filter(null); }
gtBuilder.filter(PASS_FILTER);
gtBuilder.filter(PASS_FILTER);
/** * This genotype is unfiltered * * @return */ public GenotypeBuilder unfiltered() { return filter(null); }
@Test public void testFilters() { Assert.assertFalse(makeGB().make().isFiltered(), "by default Genotypes must be PASS"); Assert.assertNull(makeGB().make().getFilters(), "by default Genotypes must be PASS => getFilters() == null"); Assert.assertFalse(makeGB().filter(null).make().isFiltered(), "setting filter == null => Genotypes must be PASS"); Assert.assertNull(makeGB().filter(null).make().getFilters(), "Genotypes PASS => getFilters == null"); Assert.assertFalse(makeGB().filter("PASS").make().isFiltered(), "setting filter == PASS => Genotypes must be PASS"); Assert.assertNull(makeGB().filter("PASS").make().getFilters(), "Genotypes PASS => getFilters == null"); Assert.assertTrue(makeGB().filter("x").make().isFiltered(), "setting filter != null => Genotypes must be PASS"); Assert.assertEquals(makeGB().filter("x").make().getFilters(), "x", "Should get back the expected filter string"); Assert.assertEquals(makeGB().filters("x", "y").make().getFilters(), "x;y", "Multiple filter field values should be joined with ;"); Assert.assertEquals(makeGB().filters("x", "y", "z").make().getFilters(), "x;y;z", "Multiple filter field values should be joined with ;"); Assert.assertTrue(makeGB().filters("x", "y", "z").make().isFiltered(), "Multiple filter values should be filtered"); Assert.assertEquals(makeGB().filter("x;y;z").make().getFilters(), "x;y;z", "Multiple filter field values should be joined with ;"); Assert.assertEquals(makeGB().filter("x;y;z").make().getAnyAttribute(VCFConstants.GENOTYPE_FILTER_KEY), "x;y;z", "getAnyAttribute(GENOTYPE_FILTER_KEY) should return the filter"); Assert.assertTrue(makeGB().filter("x;y;z").make().hasAnyAttribute(VCFConstants.GENOTYPE_FILTER_KEY), "hasAnyAttribute(GENOTYPE_FILTER_KEY) should return true"); Assert.assertTrue(makeGB().make().hasAnyAttribute(VCFConstants.GENOTYPE_FILTER_KEY), "hasAnyAttribute(GENOTYPE_FILTER_KEY) should return true"); Assert.assertFalse(makeGB().filter("").make().isFiltered(), "empty filters should count as unfiltered"); Assert.assertEquals(makeGB().filter("").make().getFilters(), null, "empty filter string should result in null filters"); }
/** * This genotype is unfiltered * * @return */ public GenotypeBuilder unfiltered() { return filter(null); }
@Override public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException { for ( final GenotypeBuilder gb : gbs ) { Object value = decoder.decodeTypedValue(typeDescriptor, numElements); assert value == null || value instanceof String; gb.filter((String)value); } } }
/** * Tells this builder to make a Genotype object that has had filters applied, * which may be empty (passes) or have some value indicating the reasons * why it's been filtered. * * @param filters non-null list of filters. empty list => PASS * @return this builder */ public GenotypeBuilder filters(final List<String> filters) { if ( filters.isEmpty() ) return filter(null); else if ( filters.size() == 1 ) return filter(filters.get(0)); else return filter(ParsingUtils.join(";", ParsingUtils.sortList(filters))); }
@Override public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException { for ( final GenotypeBuilder gb : gbs ) { Object value = decoder.decodeTypedValue(typeDescriptor, numElements); assert value == null || value instanceof String; gb.filter((String)value); } } }
@Override public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException { for ( final GenotypeBuilder gb : gbs ) { Object value = decoder.decodeTypedValue(typeDescriptor, numElements); assert value == null || value instanceof String; gb.filter((String)value); } } }
/** * Tells this builder to make a Genotype object that has had filters applied, * which may be empty (passes) or have some value indicating the reasons * why it's been filtered. * * @param filters non-null list of filters. empty list => PASS * @return this builder */ public GenotypeBuilder filters(final List<String> filters) { if ( filters.isEmpty() ) return filter(null); else if ( filters.size() == 1 ) return filter(filters.get(0)); else return filter(ParsingUtils.join(";", ParsingUtils.sortList(filters))); }
/** * Tells this builder to make a Genotype object that has had filters applied, * which may be empty (passes) or have some value indicating the reasons * why it's been filtered. * * @param filters non-null list of filters. empty list => PASS * @return this builder */ @Requires("filters != null") public GenotypeBuilder filters(final List<String> filters) { if ( filters.isEmpty() ) return filter(null); else if ( filters.size() == 1 ) return filter(filters.get(0)); else return filter(ParsingUtils.join(";", ParsingUtils.sortList(filters))); }
/** * 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; }