/** * Adaptor interface from the pLog10Error system. * * Will be retired when * * @param pLog10Error * @return */ @Deprecated public GenotypeBuilder log10PError(final double pLog10Error) { if ( pLog10Error == CommonInfo.NO_LOG10_PERROR ) return GQ(-1); else return GQ((int)Math.round(pLog10Error * -10)); }
/** Set the GQ with a log10PError value * * @param pLog10Error * @return */ public GenotypeBuilder log10PError(final double pLog10Error) { if ( pLog10Error == CommonInfo.NO_LOG10_PERROR ) return noGQ(); else return GQ((int)Math.round(pLog10Error * -10)); }
@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 ) { // the -1 is for missing gb.GQ(decoder.decodeInt(typeDescriptor, -1)); } } }
/** Set the GQ with a log10PError value * * @param pLog10Error * @return */ public GenotypeBuilder log10PError(final double pLog10Error) { if ( pLog10Error == CommonInfo.NO_LOG10_PERROR ) return noGQ(); else return GQ((int)Math.round(pLog10Error * -10)); }
@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 ) { // the -1 is for missing gb.GQ(decoder.decodeInt(typeDescriptor, -1)); } } }
@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 ) { // the -1 is for missing gb.GQ(decoder.decodeInt(typeDescriptor, -1)); } } }
@DataProvider public Iterator<Object[]> genotypeProvider() { final VariantContextBuilder vc_builder = new VariantContextBuilder("testCode", "chr1", 1, 1, Arrays.asList(refA, G)); final GenotypeBuilder gt_builder = new GenotypeBuilder("test").alleles(Arrays.asList(refA, G)); final List<Object[]> variants = new ArrayList<Object[]>(10); //without gq variants.add(new Object[]{vc_builder.genotypes(gt_builder.make()).make(), null, false}); variants.add(new Object[]{vc_builder.genotypes(gt_builder.make()).make(), "test", false}); //without sample variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ( 1).make()).make(), null, false}); variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ(10).make()).make(), null, true}); variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ(20).make()).make(), null, true}); //with sample variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ( 1).make()).make(), "test", false}); variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ(10).make()).make(), "test", true}); variants.add(new Object[]{vc_builder.genotypes(gt_builder.GQ(20).make()).make(), "test", true}); return variants.iterator(); }
private VariantContext createVCGeneral(final VCFHeader header, final String chrom, final int position) { final List<Allele> alleles = new ArrayList<Allele>(); final Map<String, Object> attributes = new HashMap<String,Object>(); final GenotypesContext genotypes = GenotypesContext.create(header.getGenotypeSamples().size()); alleles.add(Allele.create("A",true)); alleles.add(Allele.create("ACC",false)); attributes.put("DP","50"); for (final String name : header.getGenotypeSamples()) { final Genotype gt = new GenotypeBuilder(name,alleles.subList(1,2)).GQ(0).attribute("BB", "1").phased(true).make(); genotypes.add(gt); } return new VariantContextBuilder("RANDOM", chrom, position, position, alleles) .genotypes(genotypes).attributes(attributes).make(); }
private VariantContext makeHomRefAlt(final String contig, final int start, final int GQ) { final VariantContextBuilder vcb = new VariantContextBuilder("test", contig, start, start, Arrays.asList(REF, ALT)); final GenotypeBuilder gb = new GenotypeBuilder(SAMPLE_NAME, Arrays.asList(REF, REF)); gb.GQ(GQ); gb.DP(10); gb.AD(new int[]{1, 2}); gb.PL(new int[]{0, 10, 100}); return vcb.genotypes(gb.make()).make(); }
private VariantContext makeNonRef(final String contig, final int start, final int GQ) { final VariantContextBuilder vcb = new VariantContextBuilder("test", contig, start, start, Arrays.asList(REF, ALT)); final GenotypeBuilder gb = new GenotypeBuilder(SAMPLE_NAME, Arrays.asList(REF, ALT)); gb.GQ(GQ); gb.DP(10); gb.AD(new int[]{1, 2}); gb.PL(new int[]{0, 10, 100}); return vcb.genotypes(gb.make()).make(); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testBadAdd() { final HomRefBlock band = new HomRefBlock(vc, 10, 20, HomoSapiensConstants.DEFAULT_PLOIDY); final GenotypeBuilder gb = new GenotypeBuilder("NA12878"); band.add(vc.getStart() + 10, gb.DP(10).GQ(11).PL(new int[]{0,10,100}).make()); }
/** * create a fake VCF record * @param header the VCF header * @return a VCFRecord */ private VariantContext createVC(final VCFHeader header) { final List<Allele> alleles = new ArrayList<Allele>(); final Map<String, Object> attributes = new HashMap<String,Object>(); final GenotypesContext genotypes = GenotypesContext.create(header.getGenotypeSamples().size()); alleles.add(Allele.create("A",true)); alleles.add(Allele.create("ACC",false)); attributes.put("DP","50"); for (final String name : header.getGenotypeSamples()) { final Genotype gt = new GenotypeBuilder(name,alleles.subList(1,2)).GQ(0).attribute("BB", "1").phased(true).make(); genotypes.add(gt); } return new VariantContextBuilder("RANDOM", "1", 1, 1, alleles) .genotypes(genotypes).attributes(attributes).make(); } }
private VariantContext makeDeletion(final String contig, final int start, final int size) { final String del = Utils.dupString("A", size); final String alt = del.substring(0, 1); final VariantContext vc = GATKVariantContextUtils.makeFromAlleles("test", contig, start, Arrays.asList(del, alt)); final VariantContextBuilder vcb = new VariantContextBuilder(vc); final GenotypeBuilder gb = new GenotypeBuilder(SAMPLE_NAME, Arrays.asList(vc.getReference(), vc.getAlternateAllele(0))); gb.GQ(50); gb.DP(10); gb.AD(new int[]{1, 2}); gb.PL(new int[]{0, 10, 100}); return vcb.genotypes(gb.make()).make(); }
private VariantContext makeHomRef(final String contig, final int start, final int GQ) { final VariantContextBuilder vcb = new VariantContextBuilder("test", contig, start, start, ALLELES); final GenotypeBuilder gb = new GenotypeBuilder(SAMPLE_NAME, Arrays.asList(REF, REF)); gb.GQ(GQ); gb.DP(10); gb.AD(new int[]{1, 2}); gb.PL(new int[]{0, 10, 100}); return vcb.genotypes(gb.make()).make(); }
@Test public void testBigGQIsCapped() { final HomRefBlock band = new HomRefBlock(vc, 10, 20, HomoSapiensConstants.DEFAULT_PLOIDY); final GenotypeBuilder gb = new GenotypeBuilder("NA12878"); gb.alleles(vc.getAlleles()); band.add(vc.getStart(), gb.DP(1000).GQ(1000).PL(new int[]{0,10,100}).make()); assertValues(band, 1000, 1000, 99, 99); }
@Test public void testGenotypeConcordanceDetermineStateGq() throws Exception { final List<Allele> allelesNormal = makeUniqueListOfAlleles(Aref, C); final Genotype gtNormal = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)); final VariantContext vcNormal = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesNormal).genotypes(gtNormal).make(); final List<Allele> allelesLowGq = makeUniqueListOfAlleles(Aref, C); final Genotype gtLowGq = new GenotypeBuilder(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)).GQ(4).make(); final VariantContext vcLowGq = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesLowGq).genotypes(gtLowGq).make(); testGenotypeConcordanceDetermineState(vcLowGq, TruthState.LOW_GQ, vcNormal, CallState.HET_REF_VAR1, 20, 0); testGenotypeConcordanceDetermineState(vcLowGq, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0); testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowGq, CallState.LOW_GQ, 20, 0); testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0); testGenotypeConcordanceDetermineState(vcLowGq, TruthState.LOW_GQ, vcLowGq, CallState.LOW_GQ, 20, 0); testGenotypeConcordanceDetermineState(vcLowGq, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0); }
/** * 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; }
@DataProvider(name="swapAlleleData") Iterator<Object[]> swapAlleleData(){ List<Object[]> tests = new ArrayList<>(); final VariantContext vcBase = new VariantContextBuilder("test", "20", 10, 10, AC).make(); final Genotype base = new GenotypeBuilder("NA12878").DP(10).GQ(100).make(); tests.add(new Object[]{vcBase, C, G, new VariantContextBuilder(vcBase).alleles(AG).make(), true}); tests.add(new Object[]{new VariantContextBuilder(vcBase).genotypes(new GenotypeBuilder(base).alleles(AC).make()).make(), C, G, new VariantContextBuilder(vcBase).alleles(AG).genotypes(new GenotypeBuilder(base).alleles(AG).make()).make(), true}); tests.add(new Object[]{new VariantContextBuilder(vcBase).genotypes(new GenotypeBuilder(base).alleles(AA).make()).make(), C, G, new VariantContextBuilder(vcBase).alleles(AG).genotypes(new GenotypeBuilder(base).alleles(AA).make()).make(), true}); tests.add(new Object[]{new VariantContextBuilder(vcBase).genotypes(new GenotypeBuilder(base).alleles(CC).make()).make(), C, G, new VariantContextBuilder(vcBase).alleles(AG).genotypes(new GenotypeBuilder(base).alleles(GG).make()).make(), true}); tests.add(new Object[]{vcBase, AlleleSubsettingUtils.NON_REF_ALLELE, G, null, false}); return tests.iterator(); }