/** * varargs version of #filters * @param filters * @return */ public GenotypeBuilder filters(final String ... filters) { return filters(Arrays.asList(filters)); }
/** * varargs version of #filters * @param filters * @return */ public GenotypeBuilder filters(final String ... filters) { return filters(Arrays.asList(filters)); }
/** * varargs version of #filters * @param filters * @return */ @Requires("filters != null") public GenotypeBuilder filters(final String ... filters) { return filters(Arrays.asList(filters)); }
/** 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(); }
filters.add(val.getStringValue()); builder.filters(filters); continue;
if ( filters != null ) gb.filters(filters); } else if ( genotypeValues.get(i).equals(VCFConstants.MISSING_VALUE_v4) ) {
if ( filters != null ) gb.filters(filters); } else if ( genotypeValues.get(i).equals(VCFConstants.MISSING_VALUE_v4) ) {
final List<String> filters = parseFilters(getCachedString(genotypeValues.get(i))); if (filters != null) { gb.filters(filters);
final List<String> filters = parseFilters(getCachedString(genotypeValues.get(i))); if (filters != null) { gb.filters(filters);
gtBuilder.filters(filters);
gtBuilder.filters(filters);
if ( filters != null ) gb.filters(filters); } else if ( GTValueArray[i].equals(VCFConstants.MISSING_VALUE_v4) ) {
extraFts.get(gt.getSampleName()).add(0, gt.getFilters()); gtBuilder.filters(extraFts.get(gt.getSampleName()));
gb.attribute(GATKVCFConstants.LOW_COVERAGE_LOCI, sampleStat.getNLowCoveredLoci()); gb.attribute(GATKVCFConstants.ZERO_COVERAGE_LOCI, sampleStat.getNUncoveredLoci()); gb.filters(statusToStrings(stats.getSampleStatistics(sample).callableStatuses(), false));
@Test public void TestMergeIntoMNPvalidationFilterNoCall() { final List<String> filters = Arrays.asList("filter"); final List<Allele> alleleList = Arrays.asList(Allele.create("T", true), Allele.create(".", false)); final Genotype genotype = new GenotypeBuilder().name("sample").attribute("HP", new String[]{"10-1", "10-2"}).alleles(alleleList).filters(filters).make(); final VariantContext vc = new VariantContextBuilder().chr(contig).id("id1").source("TC").start(start).stop(start).alleles(alleleList1).genotypes(genotype).make(); Assert.assertFalse(PhasingUtils.mergeIntoMNPvalidationCheck(genomeLocParser, vc, vc2)); }
@Test public void TestMergeIntoMNPvalidationFiltered() { final List<String> filters = Arrays.asList("filter"); final Genotype genotype = new GenotypeBuilder().name("sample").attribute("HP", new String[]{"10-1", "10-2"}).alleles(alleleList1).filters(filters).make(); final VariantContext vc = new VariantContextBuilder().chr(contig).id("id1").source("TC").start(start).stop(start).alleles(alleleList1).genotypes(genotype).make(); Assert.assertFalse(PhasingUtils.mergeIntoMNPvalidationCheck(genomeLocParser, vc, vc2)); }
@Test public void testGenotypeConcordanceDetermineStateFilter() throws Exception { final Set<String> filters = new HashSet<String>(Arrays.asList("BAD!")); // Filtering on the variant context final List<Allele> alleles1 = makeUniqueListOfAlleles(Aref, C); final Genotype gt1 = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)); final VariantContext vcFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles1).genotypes(gt1).filters(filters).make(); final List<Allele> alleles2 = makeUniqueListOfAlleles(Aref, T); final Genotype gt2 = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, T)); final VariantContext vcNotFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles2).genotypes(gt2).make(); testGenotypeConcordanceDetermineState(vcFiltered, TruthState.VC_FILTERED, vcNotFiltered, CallState.HET_REF_VAR1, 0, 0); testGenotypeConcordanceDetermineState(vcNotFiltered, TruthState.HET_REF_VAR1, vcFiltered, CallState.VC_FILTERED, 0, 0); testGenotypeConcordanceDetermineState(vcFiltered, TruthState.VC_FILTERED, vcFiltered, CallState.VC_FILTERED, 0, 0); // Filtering on the genotype final List<String> gtFilters = new ArrayList<String>(Arrays.asList("WICKED")); final List<Allele> alleles3 = makeUniqueListOfAlleles(Aref, C); final Genotype gt3 = new GenotypeBuilder(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)).filters(gtFilters).make(); final VariantContext vcGtFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles3).genotypes(gt3).make(); testGenotypeConcordanceDetermineState(vcGtFiltered, TruthState.GT_FILTERED, vcNotFiltered, CallState.HET_REF_VAR1, 0, 0); testGenotypeConcordanceDetermineState(vcNotFiltered, TruthState.HET_REF_VAR1, vcGtFiltered, CallState.GT_FILTERED, 0, 0); testGenotypeConcordanceDetermineState(vcGtFiltered, TruthState.GT_FILTERED, vcGtFiltered, CallState.GT_FILTERED, 0, 0); }
@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"); }