From 7ffc1d97ef175b198bfa89c232f1d9d520ceed36 Mon Sep 17 00:00:00 2001 From: aaron Date: Fri, 25 Sep 2009 04:35:52 +0000 Subject: [PATCH] Cut DeNovoSNPWalker over to the new Variation system, some renaming of methods on the Variation interface, and some corrections on the interface. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1724 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/refdata/PooledEMSNPROD.java | 4 +- .../sting/gatk/refdata/RodGLF.java | 18 ++++---- .../sting/gatk/refdata/RodGeliText.java | 6 +-- .../gatk/refdata/RodGenotypeChipAsGFF.java | 6 +-- .../sting/gatk/refdata/RodVCF.java | 8 ++-- .../sting/gatk/refdata/SimpleIndelROD.java | 6 +-- .../sting/gatk/refdata/rodDbSNP.java | 12 ++--- .../walkers/filters/VECIndelArtifact.java | 7 ++- .../gatk/walkers/indels/SNPClusterWalker.java | 9 ++-- .../gatk/walkers/DeNovoSNPWalker.java | 44 ++++++++++--------- .../varianteval/GenotypeConcordance.java | 8 ++-- .../varianteval/IndelMetricsAnalysis.java | 8 ++-- .../PooledGenotypeConcordance.java | 14 +++--- .../varianteval/VariantDBCoverage.java | 4 +- .../sting/utils/genotype/BasicVariation.java | 18 ++++---- .../sting/utils/genotype/Variation.java | 38 +++++++++------- 16 files changed, 112 insertions(+), 98 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/PooledEMSNPROD.java b/java/src/org/broadinstitute/sting/gatk/refdata/PooledEMSNPROD.java index 77baf3fef..2e4c5023b 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/PooledEMSNPROD.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/PooledEMSNPROD.java @@ -28,7 +28,7 @@ public class PooledEMSNPROD extends TabularROD implements SNPCallFromGenotypes, * @return */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return getAltBasesFWD(); } @@ -38,7 +38,7 @@ public class PooledEMSNPROD extends TabularROD implements SNPCallFromGenotypes, * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List str = new ArrayList(); str.add(this.getAltBasesFWD()); return str; diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java index d203c948a..86264d792 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java @@ -161,9 +161,9 @@ public class RodGLF implements VariationRod, Iterator { @Override public char getAlternativeBaseForSNP() { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); - if (getAlternateBase().charAt(0) == this.getReference().charAt(0)) - return getAlternateBase().charAt(1); - return getAlternateBase().charAt(0); + if (getAlternateBases().charAt(0) == this.getReference().charAt(0)) + return getAlternateBases().charAt(1); + return getAlternateBases().charAt(0); } @@ -175,9 +175,9 @@ public class RodGLF implements VariationRod, Iterator { @Override public char getReferenceForSNP() { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); - if (getAlternateBase().charAt(0) == this.getReference().charAt(0)) - return getAlternateBase().charAt(0); - return getAlternateBase().charAt(1); + if (getAlternateBases().charAt(0) == this.getReference().charAt(0)) + return getAlternateBases().charAt(0); + return getAlternateBases().charAt(1); } @@ -259,7 +259,7 @@ public class RodGLF implements VariationRod, Iterator { * @return a string, of ploidy */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return this.getBestGenotype(0).toString(); } @@ -269,9 +269,9 @@ public class RodGLF implements VariationRod, Iterator { * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List list = new ArrayList(); - list.add(this.getAlternateBase()); + list.add(this.getAlternateBases()); return list; } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java index cc8d6c603..85a95fd4f 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java @@ -193,7 +193,7 @@ public class RodGeliText extends BasicReferenceOrderedDatum implements Variation * @return a string, of ploidy */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return this.bestGenotype; } @@ -203,9 +203,9 @@ public class RodGeliText extends BasicReferenceOrderedDatum implements Variation * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List list = new ArrayList(); - list.add(this.getAlternateBase()); + list.add(this.getAlternateBases()); return list; } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java index dd67cde3e..aff35efd5 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java @@ -187,7 +187,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * @return */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return this.feature; } @@ -197,9 +197,9 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List list = new ArrayList(); - list.add(this.getAlternateBase()); + list.add(this.getAlternateBases()); return list; } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java index 64052d097..85f778399 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java @@ -171,7 +171,7 @@ public class RodVCF extends BasicReferenceOrderedDatum implements VariationRod, /** are we bi-allelic? */ @Override public boolean isBiallelic() { - return (this.getAlternateBases().size() == 1); + return (this.getAlternateBaseList().size() == 1); } /** @@ -201,8 +201,8 @@ public class RodVCF extends BasicReferenceOrderedDatum implements VariationRod, * @return */ @Override - public String getAlternateBase() { - if (!this.isBiallelic()) throw new UnsupportedOperationException("We're not biallelic, so please call getAlternateBases instead"); + public String getAlternateBases() { + if (!this.isBiallelic()) throw new UnsupportedOperationException("We're not biallelic, so please call getAlternateBaseList instead"); return this.mCurrentRecord.getAlternateAlleles().get(0); } @@ -212,7 +212,7 @@ public class RodVCF extends BasicReferenceOrderedDatum implements VariationRod, * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { return this.mCurrentRecord.getAlternateAlleles(); } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java b/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java index a21493719..02f3cb4e4 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java @@ -73,7 +73,7 @@ public class SimpleIndelROD extends TabularROD implements Genotype, AllelicVaria * @return */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return ""; } @@ -83,7 +83,7 @@ public class SimpleIndelROD extends TabularROD implements Genotype, AllelicVaria * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { return Arrays.asList(new String[]{""}); } @@ -171,4 +171,4 @@ public class SimpleIndelROD extends TabularROD implements Genotype, AllelicVaria } return KGENOMES_FORMAT; } - } \ No newline at end of file +} \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java b/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java index f10504dc5..aecd7f258 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java @@ -174,7 +174,7 @@ public class rodDbSNP extends BasicReferenceOrderedDatum implements VariationRod * @return a string, of ploidy */ @Override - public String getAlternateBase() { + public String getAlternateBases() { return getAllelesFWDString(); } @@ -184,9 +184,9 @@ public class rodDbSNP extends BasicReferenceOrderedDatum implements VariationRod * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List list = new ArrayList(); - list.add(this.getAlternateBase()); + list.add(this.getAlternateBases()); return list; } @@ -204,9 +204,9 @@ public class rodDbSNP extends BasicReferenceOrderedDatum implements VariationRod public char getAlternativeBaseForSNP() { return getAltSnpFWD(); /* if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); - if (getAlternateBase().charAt(0) == this.getReference()) - return getAlternateBase().charAt(1); - return getAlternateBase().charAt(0); */ + if (getAlternateBases().charAt(0) == this.getReference()) + return getAlternateBases().charAt(1); + return getAlternateBases().charAt(0); */ } /** diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/filters/VECIndelArtifact.java b/java/src/org/broadinstitute/sting/gatk/walkers/filters/VECIndelArtifact.java index 81cc4b434..427e633e0 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/filters/VECIndelArtifact.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/filters/VECIndelArtifact.java @@ -1,7 +1,10 @@ package org.broadinstitute.sting.gatk.walkers.filters; import org.broadinstitute.sting.gatk.contexts.VariantContext; -import org.broadinstitute.sting.gatk.refdata.*; +import org.broadinstitute.sting.gatk.refdata.CleanedOutSNPROD; +import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; +import org.broadinstitute.sting.gatk.refdata.rodDbSNP; +import org.broadinstitute.sting.utils.genotype.Variation; import java.util.HashMap; @@ -23,7 +26,7 @@ public class VECIndelArtifact implements VariantExclusionCriterion { return; } - AllelicVariant indelCall = (AllelicVariant)tracker.lookup("indels", null); + Variation indelCall = (Variation)tracker.lookup("indels", null); if ( indelCall != null ) { exclude = true; source = "IndelCall"; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java index cf535c7d3..6a249c72c 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/SNPClusterWalker.java @@ -1,11 +1,14 @@ package org.broadinstitute.sting.gatk.walkers.indels; -import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.*; +import org.broadinstitute.sting.gatk.refdata.AllelicVariant; +import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.walkers.*; +import org.broadinstitute.sting.utils.GenomeLoc; +import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.cmdLine.Argument; +import org.broadinstitute.sting.utils.genotype.Variation; @WalkerName("SNPClusters") @Requires(value={DataSource.REFERENCE},referenceMetaData={@RMD(name="snps",type=AllelicVariant.class)}) @@ -19,7 +22,7 @@ public class SNPClusterWalker extends RefWalker { } public GenomeLoc map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { - AllelicVariant snp = (AllelicVariant)tracker.lookup("snps", null); + Variation snp = (Variation)tracker.lookup("snps", null); return (snp != null && snp.isSNP()) ? context.getLocation() : null; } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/DeNovoSNPWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/DeNovoSNPWalker.java index 690610f59..e8e4a0a79 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/DeNovoSNPWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/DeNovoSNPWalker.java @@ -1,13 +1,13 @@ package org.broadinstitute.sting.playground.gatk.walkers; -import org.broadinstitute.sting.gatk.walkers.*; -import org.broadinstitute.sting.gatk.refdata.*; -import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; -import org.broadinstitute.sting.utils.GenotypeUtils; - -import java.util.List; -import java.util.Collection; +import org.broadinstitute.sting.gatk.contexts.ReferenceContext; +import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; +import org.broadinstitute.sting.gatk.refdata.VariationRod; +import org.broadinstitute.sting.gatk.walkers.*; +import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.utils.genotype.VariantBackedByGenotype; +import org.broadinstitute.sting.utils.genotype.Variation; /** * Created by IntelliJ IDEA. @@ -17,38 +17,42 @@ import java.util.Collection; * To change this template use File | Settings | File Templates. */ @By(DataSource.REFERENCE) -@Requires(value={DataSource.REFERENCE},referenceMetaData={@RMD(name="child",type= AllelicVariant.class), @RMD(name="parent1",type= AllelicVariant.class), @RMD(name="parent2",type= AllelicVariant.class)}) +@Requires(value={DataSource.REFERENCE},referenceMetaData={@RMD(name="child",type= VariationRod.class), @RMD(name="parent1",type= VariationRod.class), @RMD(name="parent2",type= VariationRod.class)}) //@Allows(value={DataSource.REFERENCE},referenceMetaData = {@RMD(name="eval",type=AllelicVariant.class), @RMD(name="dbsnp",type=AllelicVariant.class),@RMD(name="hapmap-chip",type=AllelicVariant.class), @RMD(name="interval",type=IntervalRod.class)}) //@Allows(value={DataSource.REFERENCE},referenceMetaData = {@RMD(name="dbsnp",type=AllelicVariant.class)}) public class DeNovoSNPWalker extends RefWalker{ public String map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { - AllelicVariant child = (AllelicVariant)tracker.lookup("child", null); - AllelicVariant parent1 = (AllelicVariant)tracker.lookup("parent1", null); - AllelicVariant parent2 = (AllelicVariant)tracker.lookup("parent2", null); - AllelicVariant dbsnp = (AllelicVariant)tracker.lookup("dbSNP", null); + Variation child = (Variation)tracker.lookup("child", null); + Variation parent1 = (Variation)tracker.lookup("parent1", null); + Variation parent2 = (Variation)tracker.lookup("parent2", null); + Variation dbsnp = (Variation)tracker.lookup("dbSNP", null); if (child != null && parent1 != null && parent2 != null) { + if (!(parent1 instanceof VariantBackedByGenotype) || !(parent2 instanceof VariantBackedByGenotype)) + throw new StingException("Both parents ROD tracks must be backed by genotype data. Ensure that your parent rod(s) contain genotyping information"); if (child.isSNP() && - child.getVariationConfidence() > 5 && // BTR > 5 + child.getNegLog10PError() > 5 && // BTR > 5 parent1.isReference() && - parent1.getConsensusConfidence() > 5 && + ((VariantBackedByGenotype)parent1).getCalledGenotype().getNegLog10PError() > 5 && parent2.isReference() && - parent2.getConsensusConfidence() > 5 + ((VariantBackedByGenotype)parent2).getCalledGenotype().getNegLog10PError() > 5 ) { - double sumConfidences = 0.5 * (0.5 * child.getVariationConfidence() + Math.min(parent1.getConsensusConfidence(), parent2.getConsensusConfidence())); + double sumConfidences = 0.5 * (0.5 * child.getNegLog10PError() + + Math.min(((VariantBackedByGenotype)parent1).getCalledGenotype().getNegLog10PError(), + ((VariantBackedByGenotype)parent2).getCalledGenotype().getNegLog10PError())); out.format("%s\t", child.getLocation().getContig()); out.format("%s\t", child.getLocation().getStart()); out.format("%.4f\t", sumConfidences); - out.format("%.4f\t", child.getVariationConfidence()); - out.format("%.4f\t", parent1.getConsensusConfidence()); - out.format("%.4f\t", parent2.getConsensusConfidence()); + out.format("%.4f\t", child.getNegLog10PError()); + out.format("%.4f\t", ((VariantBackedByGenotype)parent1).getCalledGenotype().getNegLog10PError()); + out.format("%.4f\t", ((VariantBackedByGenotype)parent2).getCalledGenotype().getNegLog10PError()); out.format("%s\t", dbsnp != null); out.format ("%s\t", child.toString()); out.format ("%s\t", parent1.toString()); - out.format ("%s", parent2.toSimpleString()); + out.format ("%s", parent2.toString()); if (dbsnp != null) out.format ("\tDBSNP\t:%s", dbsnp.toString()); out.println(); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java index 6bfed0d05..f104a8985 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/GenotypeConcordance.java @@ -58,18 +58,18 @@ public class GenotypeConcordance extends BasicVariantAnalysis implements Genotyp int truthIndex, callIndex; if (chip == null) truthIndex = UNKNOWN; - else if (chip.getAlternateBase().equals(g.toString())) + else if (chip.getAlternateBases().equals(g.toString())) truthIndex = REF; - else if (chip.getAlternateBase().charAt(0) != chip.getAlternateBase().charAt(1)) + else if (chip.getAlternateBases().charAt(0) != chip.getAlternateBases().charAt(1)) truthIndex = VAR_HET; else truthIndex = VAR_HOM; if (eval == null) callIndex = NO_CALL; - else if (eval.getAlternateBase().equals(g.toString())) + else if (eval.getAlternateBases().equals(g.toString())) callIndex = REF; - else if (eval.getAlternateBase().charAt(0) != eval.getAlternateBase().charAt(1)) + else if (eval.getAlternateBases().charAt(0) != eval.getAlternateBases().charAt(1)) callIndex = VAR_HET; else callIndex = VAR_HOM; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java index d8eb506da..6878d91fa 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/IndelMetricsAnalysis.java @@ -38,10 +38,10 @@ public class IndelMetricsAnalysis extends BasicVariantAnalysis implements Genoty else throw new RuntimeException("Variation is indel, but isn't insertion or deletion!"); - if ( eval.getAlternateBase().length() < 100 ) { - sizes[eval.isDeletion() ? 0 : 1][eval.getAlternateBase().length()]++; - if ( eval.getAlternateBase().length() > maxSize ) - maxSize = eval.getAlternateBase().length(); + if ( eval.getAlternateBases().length() < 100 ) { + sizes[eval.isDeletion() ? 0 : 1][eval.getAlternateBases().length()]++; + if ( eval.getAlternateBases().length() > maxSize ) + maxSize = eval.getAlternateBases().length(); } } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PooledGenotypeConcordance.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PooledGenotypeConcordance.java index e5def9348..c101fd9a9 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PooledGenotypeConcordance.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/PooledGenotypeConcordance.java @@ -183,7 +183,7 @@ class PooledConcordanceTable { public boolean pooledCallIsRef(Variation eval, char ref) { // code broken out for easy alteration when we start using pool-specific variations - return eval.getAlternateBase().equalsIgnoreCase((Utils.dupString(ref,2))); + return eval.getAlternateBases().equalsIgnoreCase((Utils.dupString(ref,2))); } public int calculateNumFrequencyIndeces(int poolSize) { @@ -207,7 +207,7 @@ class PooledConcordanceTable { for ( Variation eval : evals ) { if ( mismatchingCalls(firstEval, eval, ref) ) { // todo -- make this not a StingException but go to the log - throw new StingException("Tri-Allelic Position "+eval.getAlternateBase()+"/"+firstEval.getAlternateBase() + " Ref: "+ ref + " not supported"); + throw new StingException("Tri-Allelic Position "+eval.getAlternateBases()+"/"+firstEval.getAlternateBases() + " Ref: "+ ref + " not supported"); } else { alternateFrequency += calledVariantFrequency(eval,ref); } @@ -231,10 +231,10 @@ class PooledConcordanceTable { public boolean mismatchingCalls(Variation eval, Variation chip, char ref) { // eval and chip guaranteed to be non-null - char chipF = chip.getAlternateBase().charAt(0); - char chipS = chip.getAlternateBase().charAt(1); - char evalF = chip.getAlternateBase().charAt(0); - char evalS = chip.getAlternateBase().charAt(1); + char chipF = chip.getAlternateBases().charAt(0); + char chipS = chip.getAlternateBases().charAt(1); + char evalF = chip.getAlternateBases().charAt(0); + char evalS = chip.getAlternateBases().charAt(1); boolean mismatch; if (chipF == ref) { if ( chipS == ref ) { @@ -259,7 +259,7 @@ class PooledConcordanceTable { public double calledVariantFrequency( Variation var, char ref ) { // code broken out for easy alteration when we start using pool-specific variations - String varStr = var.getAlternateBase(); + String varStr = var.getAlternateBases(); double freq; if ( varStr.charAt(0) != ref && varStr.charAt(1) != ref ) { freq = (double) 2; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java index 6646a9788..bc5058e07 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantDBCoverage.java @@ -92,7 +92,7 @@ public class VariantDBCoverage extends BasicVariantAnalysis implements GenotypeA if (eval != null) { char alt = (eval.isSNP()) ? eval.getAlternativeBaseForSNP() : eval.getReference().charAt(0); if (dbSNP != null && dbSNP.isSNP()) - return !dbSNP.getAlternateBase().contains(String.valueOf(alt)); + return !dbSNP.getAlternateBases().contains(String.valueOf(alt)); } return false; } @@ -125,7 +125,7 @@ public class VariantDBCoverage extends BasicVariantAnalysis implements GenotypeA if (dbsnp.isSNP() && eval.isSNP() && discordantP(dbsnp, eval)) { return String.format("Discordant [DBSNP %s] [EVAL %s]", dbsnp, eval); } else if (dbsnp.isIndel() && eval.isSNP()) { - return String.format("SNP-at-indel DBSNP=%s %s", dbsnp.getAlternateBase(), eval); + return String.format("SNP-at-indel DBSNP=%s %s", dbsnp.getAlternateBases(), eval); } else { return null; } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java b/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java index c0e60c187..361c617fc 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java @@ -83,7 +83,7 @@ public class BasicVariation implements Variation { } @Override - public String getAlternateBase() { + public String getAlternateBases() { return mBases; } @@ -93,9 +93,9 @@ public class BasicVariation implements Variation { * @return */ @Override - public List getAlternateBases() { + public List getAlternateBaseList() { List list = new ArrayList(); - list.add(this.getAlternateBase()); + list.add(this.getAlternateBases()); return list; } @@ -151,9 +151,9 @@ public class BasicVariation implements Variation { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); // we know that if we're a snp, the reference is a single base, so charAt(0) is safe - if (getAlternateBase().charAt(0) == this.getReference().charAt(0)) - return getAlternateBase().charAt(1); - return getAlternateBase().charAt(0); + if (getAlternateBases().charAt(0) == this.getReference().charAt(0)) + return getAlternateBases().charAt(1); + return getAlternateBases().charAt(0); } /** @@ -166,9 +166,9 @@ public class BasicVariation implements Variation { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); // we know that if we're a snp, the reference is a single base, so charAt(0) is safe - if (getAlternateBase().charAt(0) == this.getReference().charAt(0)) - return getAlternateBase().charAt(0); - return getAlternateBase().charAt(1); + if (getAlternateBases().charAt(0) == this.getReference().charAt(0)) + return getAlternateBases().charAt(0); + return getAlternateBases().charAt(1); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/Variation.java b/java/src/org/broadinstitute/sting/utils/genotype/Variation.java index 16dcde906..bce1b1c72 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/Variation.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/Variation.java @@ -18,17 +18,21 @@ public interface Variation { } /** - * get the frequency of this variant + * get the frequency of this variant, if we're a variant. If we're reference this method + * should return 0. * - * @return VariantFrequency with the stored frequency + * @return double with the stored frequency */ public double getNonRefAlleleFrequency(); - /** @return the VARIANT_TYPE of the current variant */ + /** + * A convenience method, for switching over the variation type + * @return the VARIANT_TYPE of the current variant + **/ public VARIANT_TYPE getType(); /** - * are we a SNP? If not we're a Indel/deletion + * are we a SNP? If not we're a Indel/deletion or the reference * * @return true if we're a SNP */ @@ -42,12 +46,19 @@ public interface Variation { public boolean isInsertion(); /** - * are we an insertion? + * are we an deletion? * * @return true if we are, false otherwise */ public boolean isDeletion(); + /** + * are we a variant that represents the reference allele? + * + * @return false if we're a variant(indel, delete, SNP, etc), true if we're hom ref + */ + public boolean isReference(); + /** * get the location that this Variant represents * @@ -68,33 +79,26 @@ public interface Variation { /** * get the -1 * (log 10 of the error value) * - * @return the log based error estimate + * @return the postive number space log based error estimate */ public double getNegLog10PError(); - /** - * are we truely a variant, given a reference - * - * @return false if we're a variant(indel, delete, SNP, etc), true if we're not - */ - public boolean isReference(); - /** * gets the alternate base. Use this method if we're biallelic * * @return */ - public String getAlternateBase(); + public String getAlternateBases(); /** - * gets the alternate bases. Use this method if teh allele count is greater then 2 + * gets the alternate bases. Use this method if the allele count is greater then 2 (not biallelic) * * @return */ - public List getAlternateBases(); + public List getAlternateBaseList(); /** - * are we an insertion or a deletion? yes, then return true. No? Well, false then. + * are we an insertion or a deletion? yes, then return true. No? false. * * @return true if we're an insertion or deletion */