diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java index e5b2026db..f6dde9def 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGLF.java @@ -46,7 +46,7 @@ import java.util.NoSuchElementException; *

* the rod class for GLF data. */ -public class RodGLF implements VariationRod, Iterator { +public class RodGLF implements Iterator, ReferenceOrderedDatum { public GLFReader mReader; private final String mName; private GenomeLoc mLoc; @@ -61,7 +61,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return the name */ - @Override public String getName() { return mName; } @@ -74,13 +73,11 @@ public class RodGLF implements VariationRod, Iterator { * * @return a header object that will be passed to parseLine command */ - @Override public Object initialize(File source) throws FileNotFoundException { mReader = new GLFReader(source); return null; } - @Override public String toSimpleString() { return toString(); } @@ -109,7 +106,6 @@ public class RodGLF implements VariationRod, Iterator { ); } - @Override public String repl() { return this.toString(); } @@ -119,7 +115,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return Regex string delimiter separating fields */ - @Override public String delimiterRegex() { return ""; } @@ -129,7 +124,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return the geonome loc */ - @Override public GenomeLoc getLocation() { return mLoc; } @@ -139,13 +133,11 @@ public class RodGLF implements VariationRod, Iterator { * * @return the reference base or bases, as a string */ - @Override public String getReference() { return mRecord.getRefBase().toString(); } /** are we bi-allelic? */ - @Override public boolean isBiallelic() { return true; } @@ -157,7 +149,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return */ - @Override public boolean isReference() { return (!isSNP()); } @@ -167,7 +158,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return true if we're an insertion or deletion */ - @Override public boolean isIndel() { return (isDeletion() || isInsertion()); } @@ -178,7 +168,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return a char, representing the alternate base */ - @Override public char getAlternativeBaseForSNP() { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); List alleles = this.getAlternateAlleleList(); @@ -191,7 +180,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return a char, representing the alternate base */ - @Override public char getReferenceForSNP() { if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); return Utils.stringToChar(getReference()); @@ -202,7 +190,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return true or false */ - @Override public boolean isSNP() { return ((mRecord.getRecordType() == GLFRecord.RECORD_TYPE.SINGLE) && (!getBestGenotype(1).toString().equals(refString(mRecord.getRefBase().toChar())))); @@ -251,7 +238,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return true or false */ - @Override public boolean isInsertion() { return ((mRecord.getRecordType() == GLFRecord.RECORD_TYPE.VARIABLE) && ((GLFVariableLengthCall) mRecord).getIndelLen1() > 0); @@ -263,7 +249,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return true or false */ - @Override public boolean isDeletion() { return ((mRecord.getRecordType() == GLFRecord.RECORD_TYPE.VARIABLE) && ((GLFVariableLengthCall) mRecord).getIndelLen1() < 0); @@ -274,27 +259,15 @@ public class RodGLF implements VariationRod, Iterator { * * @return */ - @Override public double getNonRefAlleleFrequency() { return 0; } - /** @return the VARIANT_TYPE of the current variant */ - @Override - public VARIANT_TYPE getType() { - if (this.isSNP()) return VARIANT_TYPE.SNP; - else if (this.isInsertion()) return VARIANT_TYPE.INSERTION; - else if (this.isDeletion()) return VARIANT_TYPE.DELETION; - else return VARIANT_TYPE.REFERENCE; - } - - /** * Returns phred-mapped confidence in variation event (e.g. MAQ's SNP confidence, or AlleleCaller's best vs. ref). * * @return */ - @Override public double getNegLog10PError() { String ref = new String() + mRecord.getRefBase() + mRecord.getRefBase(); int index = 0; @@ -313,7 +286,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return an alternate allele list */ - @Override public List getAlternateAlleleList() { LikelihoodObject.GENOTYPE genotype = getBestGenotype(1); List ret = new ArrayList(); @@ -330,7 +302,6 @@ public class RodGLF implements VariationRod, Iterator { * * @return an alternate allele list */ - @Override public List getAlleleList() { LikelihoodObject.GENOTYPE genotype = getBestGenotype(1); List list = new ArrayList(); @@ -345,7 +316,6 @@ public class RodGLF implements VariationRod, Iterator { return 1; } - @Override public int compareTo(ReferenceOrderedDatum that) { return this.mLoc.compareTo(that.getLocation()); } @@ -359,7 +329,6 @@ public class RodGLF implements VariationRod, Iterator { * @return false, alwayss * @throws java.io.IOException */ - @Override public boolean parseLine(Object header, String[] parts) throws IOException { return false; //To change body of implemented methods use File | Settings | File Templates. } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java index 7cde55943..c2b452344 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGeliText.java @@ -36,7 +36,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -public class RodGeliText extends BasicReferenceOrderedDatum implements Variation { +public class RodGeliText extends BasicReferenceOrderedDatum { public enum Genotype_Strings { AA, AC, AG, AT, CC, CG, CT, GG, GT, TT } @@ -195,11 +195,6 @@ public class RodGeliText extends BasicReferenceOrderedDatum implements Variation return 1.0; } - /** @return the VARIANT_TYPE of the current variant */ - public Variation.VARIANT_TYPE getType() { - return Variation.VARIANT_TYPE.SNP; - } - public boolean isSNP() { if (this.getReference().length() == 1) return (this.refBase != this.bestGenotype.charAt(0) || this.refBase != this.bestGenotype.charAt(1)); diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java index 491924669..ca0664d30 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodGenotypeChipAsGFF.java @@ -4,9 +4,8 @@ import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.Utils; -import org.broadinstitute.sting.utils.genotype.BasicGenotype; import org.broadinstitute.sting.utils.genotype.DiploidGenotype; -import org.broadinstitute.sting.utils.genotype.Genotype; +import org.broadinstitute.sting.utils.genotype.Variation; import java.util.*; import java.util.regex.MatchResult; @@ -20,7 +19,7 @@ import java.util.regex.Pattern; * Time: 10:47:14 AM * To change this template use File | Settings | File Templates. */ -public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements VariationRod { +public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum { private String contig, source, feature, strand, frame; private long start, stop; private double score; @@ -83,7 +82,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return the reference base or bases, as a string */ - @Override + public String getReference() { throw new IllegalStateException("Chip data is unable to determine the reference"); } @@ -93,7 +92,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return the log based error estimate */ - @Override + public double getNegLog10PError() { return 4; // 1/10000 error } @@ -106,7 +105,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return an alternate allele list */ - @Override + public List getAlternateAlleleList() { throw new StingException("Hapmap is unable to provide an alternate allele list; the reference is unknown"); } @@ -118,7 +117,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return an alternate allele list */ - @Override + public List getAlleleList() { List ret = new ArrayList(); for (char c : feature.toCharArray()) @@ -216,17 +215,11 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return VariantFrequency with the stored frequency */ - @Override + public double getNonRefAlleleFrequency() { return this.getMAF(); } - /** @return the VARIANT_TYPE of the current variant */ - @Override - public VARIANT_TYPE getType() { - return VARIANT_TYPE.SNP; - } - public boolean isSNP() { return false; } public boolean isInsertion() { return false; } public boolean isDeletion() { return false; } @@ -238,7 +231,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return a char, representing the alternate base */ - @Override + public char getAlternativeBaseForSNP() { return this.getAltSnpFWD(); } @@ -248,7 +241,7 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements * * @return a char, representing the alternate base */ - @Override + public char getReferenceForSNP() { return this.getRefSnpFWD(); } @@ -267,25 +260,6 @@ public class RodGenotypeChipAsGFF extends BasicReferenceOrderedDatum implements public boolean isBiallelic() { return true; } public int length() { return 1; } - /** - * get the genotype - * - * @return a map in lexigraphical order of the genotypes - */ - public Genotype getCalledGenotype() { - return new BasicGenotype(this.getLocation(),this.feature,Character.toString(this.getRefSnpFWD()),this.getConsensusConfidence()); - } - - /** - * get the likelihoods - * - * @return an array in lexigraphical order of the likelihoods - */ - public List getGenotypes() { - List ret = new ArrayList(); - ret.add(new BasicGenotype(this.getLocation(),this.feature,Character.toString(this.getRefSnpFWD()),this.getConsensusConfidence())); - return ret; - } /** * do we have the specified genotype? not all backedByGenotypes diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java b/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java index e70b50f2a..76bba464d 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RodVCF.java @@ -18,7 +18,7 @@ import java.util.*; *

* An implementation of the ROD for VCF. */ -public class RodVCF extends BasicReferenceOrderedDatum implements Variation, Iterator { +public class RodVCF extends BasicReferenceOrderedDatum implements Iterator { public VCFReader getReader() { return mReader; } @@ -90,12 +90,6 @@ public class RodVCF extends BasicReferenceOrderedDatum implements Variation, Ite return mCurrentRecord.getNonRefAlleleFrequency(); } - /** @return the VARIANT_TYPE of the current variant */ - public Variation.VARIANT_TYPE getType() { - assertNotNull(); - return mCurrentRecord.getType(); - } - public String getID() { assertNotNull(); return mCurrentRecord.getID(); diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java b/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java index 440fb5671..be4182b49 100755 --- a/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/SimpleIndelROD.java @@ -2,11 +2,12 @@ package org.broadinstitute.sting.gatk.refdata; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.GenomeLocParser; +import org.broadinstitute.sting.utils.genotype.Variation; import java.util.Arrays; import java.util.List; -public class SimpleIndelROD extends TabularROD implements VariationRod { +public class SimpleIndelROD extends TabularROD { private boolean KGENOMES_FORMAT = false, checkedFormat = false; @@ -60,11 +61,6 @@ public class SimpleIndelROD extends TabularROD implements VariationRod { return 0.0; } - /** @return the VARIANT_TYPE of the current variant */ - public VARIANT_TYPE getType() { - return isInsertion() ? VARIANT_TYPE.INSERTION : VARIANT_TYPE.DELETION; - } - public boolean isSNP() { return false; } public boolean isReference() { return false; } diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/VariationRod.java b/java/src/org/broadinstitute/sting/gatk/refdata/VariationRod.java deleted file mode 100644 index 474914ae2..000000000 --- a/java/src/org/broadinstitute/sting/gatk/refdata/VariationRod.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.broadinstitute.sting.gatk.refdata; - -import org.broadinstitute.sting.utils.genotype.Variation; - -/** - * @author aaron - *

- * Interface VariationRod - *

- * This interface combines two interfaces: Variation and ReferenceOrderedDatum. This - * was required so that the reference ordered data require attribute would have an interface - * that both specified variation and ROD compliance. - */ -public interface VariationRod extends Variation, ReferenceOrderedDatum { -} diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java b/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java index 5658b340f..8db06aa9b 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/rodDbSNP.java @@ -2,6 +2,7 @@ package org.broadinstitute.sting.gatk.refdata; import net.sf.samtools.util.SequenceUtil; import org.broadinstitute.sting.utils.*; +import org.broadinstitute.sting.utils.genotype.Variation; import java.util.ArrayList; import java.util.Arrays; @@ -18,7 +19,7 @@ import java.util.List; * Time: 10:47:14 AM * To change this template use File | Settings | File Templates. */ -public class rodDbSNP extends BasicReferenceOrderedDatum implements VariationRod { +public class rodDbSNP extends BasicReferenceOrderedDatum { public static final String STANDARD_DBSNP_TRACK_NAME = "dbsnp"; @@ -138,11 +139,6 @@ public class rodDbSNP extends BasicReferenceOrderedDatum implements VariationRod return 0; // dbSNP doesn't know the allele frequency } - /** @return the VARIANT_TYPE of the current variant */ - public VARIANT_TYPE getType() { - return VARIANT_TYPE.SNP; - }// ---------------------------------------------------------------------- - // // What kind of variant are we? // diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/rodPicardDbSNP.java b/java/src/org/broadinstitute/sting/gatk/refdata/rodPicardDbSNP.java index a259da718..a355a53cd 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/rodPicardDbSNP.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/rodPicardDbSNP.java @@ -36,7 +36,7 @@ import java.util.*; /** * @author alecw@broadinstitute.org */ -public class rodPicardDbSNP implements VariationRod { +public class rodPicardDbSNP implements ReferenceOrderedDatum { private final KnownVariant knownVariant; private final MyGenomeLoc loc; @@ -69,50 +69,6 @@ public class rodPicardDbSNP implements VariationRod { return knownVariant.getMinorAlleleFrequency(); } - /** - * A convenience method, for switching over the variation type - * - * @return the VARIANT_TYPE of the current variant - */ - public VARIANT_TYPE getType() { - switch (knownVariant.getType()) { - case SNP: - return VARIANT_TYPE.SNP; - case insertion: - return VARIANT_TYPE.INSERTION; - case deletion: - return VARIANT_TYPE.DELETION; - } - return null; - } - - /** - * are we a SNP? If not we're a Indel/deletion or the reference. This method must be call before you use - * the convenience methods getAlternativeBaseForSNP or getReferenceForSNP, to ensure that you're working with a SNP - * - * @return true if we're a SNP - */ - public boolean isSNP() { - return knownVariant.getType() == VariantType.SNP; - } - - /** - * are we an insertion? - * - * @return true if we are, false otherwise - */ - public boolean isInsertion() { - return knownVariant.getType() == VariantType.insertion; - } - - /** - * are we an deletion? - * - * @return true if we are, false otherwise - */ - public boolean isDeletion() { - return knownVariant.getType() == VariantType.deletion; - } /** * are we a variant that represents the reference allele? @@ -123,15 +79,6 @@ public class rodPicardDbSNP implements VariationRod { return false; // snp locations are never "reference", there's always a variant } - /** - * are we an insertion or a deletion? yes, then return true. No? false. - * - * @return true if we're an insertion or deletion - */ - public boolean isIndel() { - return getType() == VARIANT_TYPE.INSERTION || getType() == VARIANT_TYPE.DELETION; - } - public String getName() { return "PicarddbSNP"; } diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/refdata/HapmapVCFROD.java b/java/src/org/broadinstitute/sting/oneoffprojects/refdata/HapmapVCFROD.java index 8109d3c77..030b3375a 100644 --- a/java/src/org/broadinstitute/sting/oneoffprojects/refdata/HapmapVCFROD.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/refdata/HapmapVCFROD.java @@ -2,12 +2,9 @@ package org.broadinstitute.sting.oneoffprojects.refdata; import org.broadinstitute.sting.gatk.refdata.BasicReferenceOrderedDatum; import org.broadinstitute.sting.gatk.refdata.RodVCF; -import org.broadinstitute.sting.gatk.refdata.VariationRod; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.genotype.DiploidGenotype; -import org.broadinstitute.sting.utils.genotype.Genotype; -import org.broadinstitute.sting.utils.genotype.Variation; import org.broadinstitute.sting.utils.genotype.vcf.VCFHeader; import org.broadinstitute.sting.utils.genotype.vcf.VCFReader; import org.broadinstitute.sting.utils.genotype.vcf.VCFRecord; @@ -22,7 +19,7 @@ import java.util.List; * User: chartl * Date: Jan 29, 2010 */ -public class HapmapVCFROD extends BasicReferenceOrderedDatum implements VariationRod, Iterator { +public class HapmapVCFROD extends BasicReferenceOrderedDatum implements Iterator { // This is a (hopefully temporary) wrapper class for certain VCF files that we want to protect from // utilities that grab genotypes or sample names across all VCF files @@ -67,12 +64,6 @@ public class HapmapVCFROD extends BasicReferenceOrderedDatum implements Variatio public double getNegLog10PError() { return rod.getNegLog10PError(); } - - public List getGenotypes() { - return null; - //return rod.getGenotypes(); - } - public String getReference() { return rod.getReference(); } @@ -101,10 +92,6 @@ public class HapmapVCFROD extends BasicReferenceOrderedDatum implements Variatio return rod.isIndel(); } - public Variation.VARIANT_TYPE getType() { - return rod.getType(); - } - public boolean isSNP() { return rod.isSNP(); } @@ -129,11 +116,6 @@ public class HapmapVCFROD extends BasicReferenceOrderedDatum implements Variatio return rod.getAlleleList(); } - public Genotype getCalledGenotype() { - return null; - //return rod.getCalledGenotype(); - } - public char getReferenceForSNP() { return rod.getReferenceForSNP(); } diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java index a408a7240..2d6eb1311 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/LocusMismatchWalker.java @@ -26,8 +26,8 @@ package org.broadinstitute.sting.playground.gatk.walkers; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.contexts.variantcontext.Genotype; +import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.refdata.VariationRod; import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature; import org.broadinstitute.sting.gatk.walkers.By; import org.broadinstitute.sting.gatk.walkers.DataSource; @@ -43,6 +43,7 @@ import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.utils.pileup.PileupElement; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; +import java.util.Collection; /** * Walker to calculate the number of mismatches, their base counts, and their quality sums at confidence ref sites" @@ -165,18 +166,17 @@ public class LocusMismatchWalker extends LocusWalker implements private boolean locusIsUsable( RefMetaDataTracker tracker, ReferenceContext ref, ReadBackedPileup pileup, AlignmentContext context ) { return BaseUtils.isRegularBase(ref.getBase()) && pileup.size() >= minDepth && pileup.size() < maxDepth && - notCoveredByVariations(tracker) && + notCoveredByVariations(tracker, ref) && pileupContainsNoNs(pileup); // pileupContainsNoNs(pileup) && // baseIsConfidentRef(tracker,ref,context); } - private boolean notCoveredByVariations( RefMetaDataTracker tracker ) { - for ( GATKFeature datum : tracker.getAllRods() ) { - if ( datum.getUnderlyingObject() instanceof VariationRod || datum.getUnderlyingObject() instanceof Genotype ) { - //System.out.printf("Ignoring site because of %s%n", datum); + private boolean notCoveredByVariations( RefMetaDataTracker tracker, ReferenceContext ref ) { + Collection vcs = tracker.getAllVariantContexts(ref); + // TODO: check this logic. I think it's the best approximation of what was here before, but it's a different system + if (vcs != null && vcs.size() > 0 ) { return false; - } } return true; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/GraphReferenceBuilder.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/GraphReferenceBuilder.java index 9daa39415..79e6f5e9a 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/GraphReferenceBuilder.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/GraphReferenceBuilder.java @@ -28,6 +28,7 @@ import net.sf.picard.reference.ReferenceSequenceFile; import net.sf.picard.reference.ReferenceSequenceFileFactory; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; +import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.utils.GATKFeature; import org.broadinstitute.sting.gatk.walkers.DataSource; @@ -107,17 +108,16 @@ public class GraphReferenceBuilder extends RefWalker { // } boolean alreadyAddedAtThisLoc = false; - for ( GATKFeature rod : rodData.getAllRods() ) { - if ( rod.getUnderlyingObject() instanceof Variation && ! alreadyAddedAtThisLoc ) { + for ( VariantContext vc : rodData.getAllVariantContexts(ref)) { + if ( ! alreadyAddedAtThisLoc ) { // if we have multiple variants at a locus, just take the first damn one we see for now - Variation variant = (Variation) rod.getUnderlyingObject(); // todo -- getAlternativeBases should be getAlleles() - GenomeLoc loc = variant.getLocation(); + GenomeLoc loc = vc.getLocation(); String[] allAllelesList = null; // variant.getAlternateBases().split(""); // todo fixme if ( allAllelesList.length >= 3 ) { // bad dbSNP format :-( List alleles = Arrays.asList(allAllelesList).subList(1,3); //logger.info(String.format("Adding %s %s", loc, alleles)); - graphRef.addVariation(variant, loc, alleles); + graphRef.addVariation(vc, loc, alleles); //logger.info(String.format(" Added %s %s", loc, alleles)); alreadyAddedAtThisLoc = true; if ( counter-- == 0 ) { diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/ReferenceGraph.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/ReferenceGraph.java index f7850e68d..1cf68b332 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/ReferenceGraph.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/graphalign/ReferenceGraph.java @@ -1,10 +1,10 @@ package org.broadinstitute.sting.playground.gatk.walkers.graphalign; +import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContext; import org.jgrapht.graph.DefaultEdge; import org.jgrapht.graph.SimpleDirectedGraph; import org.apache.log4j.Logger; import org.broadinstitute.sting.utils.*; -import org.broadinstitute.sting.utils.genotype.Variation; import net.sf.picard.reference.ReferenceSequence; import net.sf.picard.util.IntervalTree; import net.sf.samtools.util.StringUtil; @@ -105,7 +105,7 @@ class ReferenceGraph extends SimpleDirectedGraph implemen return foundRef; } - public void addVariation(Variation variant, GenomeLoc loc, List alleles) { + public void addVariation(VariantContext variant, GenomeLoc loc, List alleles) { if ( DEBUG ) System.out.printf("addVariation(%s, %s)%n", loc, alleles); //validateGraph(); diff --git a/java/src/org/broadinstitute/sting/utils/genotype/BasicGenotype.java b/java/src/org/broadinstitute/sting/utils/genotype/BasicGenotype.java deleted file mode 100644 index b479b7b21..000000000 --- a/java/src/org/broadinstitute/sting/utils/genotype/BasicGenotype.java +++ /dev/null @@ -1,174 +0,0 @@ -package org.broadinstitute.sting.utils.genotype; - -import org.broadinstitute.sting.utils.GenomeLoc; -import org.broadinstitute.sting.utils.BaseUtils; -import org.broadinstitute.sting.utils.StingException; - -import java.util.List; - - -/** - * @author aaron - *

- * Class BasicGenotype - *

- * represents a basic genotype object. That means that is - * an implementation for a basic genotype call, given the genotype - * string, the ref base, the confidence score, and the location. This - * class currently only represents point genotypes, not indels - */ -public class BasicGenotype implements Genotype { - // the genotype string - private String mGenotype; - - // our location - private GenomeLoc mLocation; - - // the reference bases - private String mRef; - - // the confidence score - private double mNegLog10PError; - - /** - * create a basic genotype, given the following fields - * - * @param location the genomic location - * @param genotype the genotype, as a string, where ploidy = string.length - * @param ref the reference base as a char - * @param negLog10PError the confidence score - */ - public BasicGenotype(GenomeLoc location, String genotype, String ref, double negLog10PError) { - mNegLog10PError = negLog10PError; - - for ( char base : genotype.toCharArray() ) { - if (! ( BaseUtils.isRegularBase(base) || BaseUtils.isNBase((byte)base) ) ) - throw new StingException(String.format("Unexpected base in Genotype at %s: '%s'", location, genotype)); - } - - mGenotype = genotype; - mLocation = location; - mRef = ref; - } - - /** - * get the -1 * (log 10 of the error value) - * - * @return the negitive log based error estimate - */ - public double getNegLog10PError() { - return mNegLog10PError; - } - - /** - * get the bases that represent this genotype - * - * @return the bases, as a string - */ - public String getBases() { - return mGenotype; - } - - /** - * get the ploidy - * - * @return the ploidy value - */ - public int getPloidy() { - return mGenotype.length(); - } - - /** - * Returns true if both observed allele bases are the same (regardless of whether they are ref or alt) - * - * @return true if we're homozygous, false otherwise - */ - public boolean isHom() { - if (mGenotype.length() < 1) - return false; - char base = mGenotype.charAt(0); - for (char cur : mGenotype.toCharArray()) { - if (base != cur) { - return false; - } - } - return true; - } - - public boolean isNoCall() { return false; } - - /** - * Returns true if observed allele bases differ (regardless of whether they are ref or alt) - * - * @return true if we're het, false otherwise - */ - public boolean isHet() { - if (mGenotype.length() < 1) - return false; - return !isHom(); - } - - /** - * get the genotype's location - * - * @return a GenomeLoc representing the location - */ - public GenomeLoc getLocation() { - return mLocation; - } - - /** - * returns true if the genotype is a point genotype, false if it's a indel / deletion - * - * @return true is a SNP - */ - public boolean isPointGenotype() { - return true; - } - - /** - * given the reference, are we a variant? (non-ref) - * - * @param ref the reference base or bases - * - * @return true if we're a variant - */ - public boolean isVariant(char ref) { - return !(mGenotype.charAt(0) == ref && isHom()); - } - - /** - * get the reference base. - * - * @return a character, representing the reference base - */ - public String getReference() { - return mRef; - } - - /** - * return this genotype as a variant - * - * @return the variant - */ - public Variation toVariation(char ref) { - if (!isVariant(ref)) throw new IllegalStateException("this genotype is not a variant"); - return new BasicVariation(this.getBases(), String.valueOf(ref), this.getBases().length(), mLocation, mNegLog10PError); - } - - /** - * Turn a list of alleles into a genotype - * @param alleles the list of alleles - * @return a string representation of this list - */ - public static String alleleListToString(List alleles) { - StringBuilder builder = new StringBuilder(); - for (String allele : alleles) - builder.append(allele); - return builder.toString(); - } - - public String toString() { - return String.format("[%s %s]", getLocation(), getBases()); - } -} diff --git a/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java b/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java deleted file mode 100644 index 0ebe8ceb9..000000000 --- a/java/src/org/broadinstitute/sting/utils/genotype/BasicVariation.java +++ /dev/null @@ -1,192 +0,0 @@ -package org.broadinstitute.sting.utils.genotype; - -import org.broadinstitute.sting.utils.GenomeLoc; -import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.Utils; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * User: aaron - * Date: Sep 9, 2009 - * Time: 9:32:34 PM - *

- * a basic implementation of the Variation interface. - */ -public class BasicVariation implements Variation { - - // the bases that make up this variant - protected final String mBases; - - // the reference base - protected final String mRef; - - // the length of the event, 0 for a SNP, negitive for deletions, positive for insertions - protected final int mLength; - - // the location on the genome of the event - protected final GenomeLoc mLocation; - - // our confidence in this event, and a -(log10(Error)) - protected final double mConfidence; - - /** - * create a basic variation, given the following parameters: - * - * @param bases the bases that this variant represents - * @param reference the reference bases - * @param length are we a single base variant, or a indel/deletion? length is negitive for an indel, - * positive for a indel, and 0 for a substitution - */ - public BasicVariation(String bases, String reference, int length, GenomeLoc location, double confidence) { - mBases = bases; - mRef = reference; - if (mRef.length() != 1) throw new StingException("The reference must be a single base"); - mLength = length; - mLocation = location; - mConfidence = confidence; - } - - /** - * we don't know the minor allele freq. is this implementation - * - * @return -1.0. If the freq is less than zero it means we don't know - */ - @Override - public double getNonRefAlleleFrequency() { - return -1.0; - } - - /** - * get the type of variation we are - * - * @return VARIANT_TYPE - */ - @Override - public VARIANT_TYPE getType() { - if (mLength > 0) return VARIANT_TYPE.INSERTION; - if (mLength < 0) return VARIANT_TYPE.DELETION; - return (isSNP()) ? VARIANT_TYPE.SNP : VARIANT_TYPE.REFERENCE; - } - - @Override - public boolean isSNP() { - return ((mLength == 0) && (new HashSet(getAlternateAlleleList()).size() == 1)); - } - - @Override - public boolean isInsertion() { - return (mLength > 0); - } - - @Override - public boolean isDeletion() { - return (mLength < 0); - } - - @Override - public GenomeLoc getLocation() { - return mLocation; - } - - @Override - public String getReference() { - return (mRef); - } - - /** - * are we bi-allelic? In this case we always - * count the reference as an allele - */ - @Override - public boolean isBiallelic() { - // put the alternate alleles into a set, there may be duplicates (i.e. hom var) - Set alleles = new HashSet(getAlternateAlleleList()); - return (alleles.size() == 1); // if the alt list contained one unqiue non-ref base, we're biallelic - } - - @Override - public double getNegLog10PError() { - return mConfidence; - } - - /** - * gets the alternate alleles. This method should return all the alleles present at the location, - * NOT including the reference base. This is returned as a string list with no guarantee ordering - * of alleles (i.e. the first alternate allele is not always going to be the allele with the greatest - * frequency). - * - * @return an alternate allele list - */ - @Override - public List getAlternateAlleleList() { - List list = new ArrayList(); - for (char c : this.mBases.toCharArray()) - if (c != Utils.stringToChar(mRef)) - list.add(String.valueOf(c)); - return list; - } - - /** - * gets the alleles. This method should return all the alleles present at the location, - * including the reference base. The first allele should always be the reference allele, followed - * by an unordered list of alternate alleles. - * - * @return an alternate allele list - */ - @Override - public List getAlleleList() { - List list = new ArrayList(); - for (char c : this.mBases.toCharArray()) - list.add(String.valueOf(c)); - return list; - } - - @Override - public boolean isReference() { - if (mLength != 0) return false; - for (String str : getAlleleList()) - if (!str.equals(mRef)) return false; - return true; - } - - /** - * are we an insertion or a deletion? yes, then return true. - * - * @return true if we're an insertion or deletion - */ - @Override - public boolean isIndel() { - return (isDeletion() || isInsertion()); - } - - /** - * gets the alternate base is the case of a SNP. Throws an IllegalStateException in the case - * of - * - * @return a char, representing the alternate base - */ - @Override - public char getAlternativeBaseForSNP() { - if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); - if (!this.isBiallelic()) throw new IllegalStateException("we're not biallelic"); - return Utils.stringToChar((new HashSet(getAlternateAlleleList())).iterator().next()); - } - - /** - * gets the reference base is the case of a SNP. Throws an IllegalStateException if we're not a SNP - * - * @return a char, representing the alternate base - */ - @Override - public char getReferenceForSNP() { - if (!this.isSNP()) throw new IllegalStateException("we're not a SNP"); - if (!this.isBiallelic()) throw new IllegalStateException("we're not biallelic"); - return Utils.stringToChar(this.mRef); - } - - -} diff --git a/java/src/org/broadinstitute/sting/utils/genotype/Genotype.java b/java/src/org/broadinstitute/sting/utils/genotype/Genotype.java deleted file mode 100644 index b9b7f534e..000000000 --- a/java/src/org/broadinstitute/sting/utils/genotype/Genotype.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.broadinstitute.sting.utils.genotype; - -import org.broadinstitute.sting.utils.GenomeLoc; - -/** - * @author aaron - *

- * Class Genotype - *

- * This class emcompasses all the basic information about a genotype - */ -public interface Genotype { - /** - * get the -1 * (log 10 of the error value) - * - * @return the log based error estimate - */ - public double getNegLog10PError(); - - /** - * get the bases that represent this genotype - * - * @return the bases, as a string - */ - public String getBases(); - - /** - * get the ploidy - * - * @return the ploidy value - */ - public int getPloidy(); - - /** - * Returns true if both observed alleles are the same (regardless of whether they are ref or alt) - * - * @return true if we're homozygous, false otherwise - */ - public boolean isHom(); - - /** - * Returns true if observed alleles differ (regardless of whether they are ref or alt) - * - * @return true if we're het, false otherwise - */ - public boolean isHet(); - - /** - * Returns true if this genotype is not actually a genotype but a "no call" (e.g. './.' in VCF) - * - * @return true if we're het, false otherwise - */ - public boolean isNoCall(); - - /** - * get the genotype's location - * - * @return a GenomeLoc representing the location - */ - public GenomeLoc getLocation(); - - /** - * returns true if the genotype is a point genotype, false if it's an indel - * - * @return true if this is a SNP - */ - public boolean isPointGenotype(); - - /** - * given the reference, are we a variant? (non-ref) - * - * @param ref the reference base or bases - * - * @return true if we're a variant - */ - public boolean isVariant(char ref); - - /** - * get the reference base. - * @return a character, representing the reference base - */ - public String getReference(); - - /** - * return this genotype as a variant - * - * @param ref the reference base - * @return the variant - */ - public Variation toVariation(char ref); - -} diff --git a/java/src/org/broadinstitute/sting/utils/genotype/Variation.java b/java/src/org/broadinstitute/sting/utils/genotype/Variation.java index 2d5046a31..acde70d76 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/Variation.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/Variation.java @@ -16,121 +16,4 @@ public interface Variation { public enum VARIANT_TYPE { SNP, INSERTION, DELETION, REFERENCE // though reference is not really a variant, we need to represent it } - - /** - * @return true if we are bi-allelic? - */ - public boolean isBiallelic(); - - /** - * get the frequency of this variant, if we're a variant. If we're reference this method - * should return 0. If we can't provide an alternate allele frequency, this should also - * return 0. - * - * WARNING: This method is only valid for biAllelic data, the contract is to check isBiallelic() - * before calling this method - * - * @return double the minor allele frequency - */ - public double getNonRefAlleleFrequency(); - - /** - * 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 or the reference. This method must be called before you use - * the convenience methods getAlternativeBaseForSNP or getReferenceForSNP, to ensure that you're working with a SNP - * - * @return true if we're a SNP - */ - public boolean isSNP(); - - /** - * are we an insertion? - * - * @return true if we are, false otherwise - */ - public boolean isInsertion(); - - /** - * 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(); - - /** - * are we an insertion or a deletion? yes, then return true. No? false. - * - * @return true if we're an insertion or deletion - */ - public boolean isIndel(); - - /** - * get the location of this Variant - * - * @return a GenomeLoc - */ - public GenomeLoc getLocation(); - - /** - * get the reference base(s) for this Variant - * - * @return the reference base or bases, as a string - */ - public String getReference(); - - /** - * get the -1 * (log 10 of the error value) - * - * @return the postive number space log based error estimate - */ - public double getNegLog10PError(); - - - /** - * gets the alternate alleles. This method should return all the alleles present at the location, - * NOT including the reference base. This is returned as a string list with no guarantee ordering - * of alleles (i.e. the first alternate allele is not always going to be the allele with the greatest - * frequency). - * - * @return an alternate allele list - */ - public List getAlternateAlleleList(); - - /** - * gets the alleles. This method should return all the alleles present at the location, - * including the reference base. The first allele should always be the reference allele, followed - * by an unordered list of alternate alleles. If the reference base is not an allele in this varation - * it will not be in the list (i.e. there is no guarantee that the reference base is in the list). - * - * @return an alternate allele list - */ - public List getAlleleList(); - - /** - * gets the alternate base is the case of a SNP. Throws an IllegalStateException if we're not a SNP - * or if we're not bi-allelic - * - * @return a char, representing the alternate base - */ - public char getAlternativeBaseForSNP(); - - /** - * gets the reference base is the case of a SNP. Throws an IllegalStateException if we're not a SNP - * - * @return a char, representing the reference base - */ - public char getReferenceForSNP(); - } diff --git a/java/test/org/broadinstitute/sting/utils/genotype/BasicGenotypeUnitTest.java b/java/test/org/broadinstitute/sting/utils/genotype/BasicGenotypeUnitTest.java deleted file mode 100644 index 4acd00a02..000000000 --- a/java/test/org/broadinstitute/sting/utils/genotype/BasicGenotypeUnitTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.broadinstitute.sting.utils.genotype; - -import org.broadinstitute.sting.BaseTest; -import org.broadinstitute.sting.utils.GenomeLocParser; -import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.fasta.IndexedFastaSequenceFile; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.File; -import java.io.FileNotFoundException; - - -/** - * - * @author aaron - * - * Class BasicGenotypeUnitTest - * - * tests the basic genotype class - */ -public class BasicGenotypeUnitTest extends BaseTest { - private static IndexedFastaSequenceFile seq; - - @BeforeClass - public static void beforeTests() { - try { - seq = new IndexedFastaSequenceFile(new File(seqLocation + "/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta")); - } catch (FileNotFoundException e) { - throw new StingException("unable to load the sequence dictionary"); - } - GenomeLocParser.setupRefContigOrdering(seq); - - } - - @Test - public void testBasicGenotypeIsHom() { - BasicGenotype gt = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"AA","A",0); - Assert.assertTrue(gt.isHom()); - BasicGenotype gt2 = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"GA","A",0); - Assert.assertTrue(!gt2.isHom()); - } - - @Test - public void testBasicGenotypeIsHet() { - BasicGenotype gt = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"AA","A",0); - Assert.assertTrue(!gt.isHet()); - BasicGenotype gt2 = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"GA","A",0); - Assert.assertTrue(gt2.isHet()); - } - - @Test - public void testBasicGenotypeIsVariant() { - BasicGenotype gt = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"AA","A",0); - Assert.assertTrue(!gt.isVariant('A')); - BasicGenotype gt2 = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"GA","A",0); - Assert.assertTrue(gt2.isVariant('A')); - BasicGenotype gt3 = new BasicGenotype(GenomeLocParser.createGenomeLoc("chr1",1,1),"TT","A",0); - Assert.assertTrue(gt3.isVariant('A')); - } -} diff --git a/java/test/org/broadinstitute/sting/utils/genotype/BasicVariationUnitTest.java b/java/test/org/broadinstitute/sting/utils/genotype/BasicVariationUnitTest.java deleted file mode 100644 index 0bb204528..000000000 --- a/java/test/org/broadinstitute/sting/utils/genotype/BasicVariationUnitTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.broadinstitute.sting.utils.genotype; - -import org.broadinstitute.sting.BaseTest; -import org.broadinstitute.sting.utils.GenomeLocParser; -import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.fasta.IndexedFastaSequenceFile; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -import java.io.File; -import java.io.FileNotFoundException; - -/** - * Created by IntelliJ IDEA. - * User: aaron - * Date: Dec 2, 2009 - * Time: 1:05:58 AM - *

- * some quick tests for the BasicVariation class - */ -public class BasicVariationUnitTest extends BaseTest { - private static IndexedFastaSequenceFile seq; - - @BeforeClass - public static void beforeTests() { - try { - seq = new IndexedFastaSequenceFile(new File(seqLocation + "/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta")); - } catch (FileNotFoundException e) { - throw new StingException("unable to load the sequence dictionary"); - } - GenomeLocParser.setupRefContigOrdering(seq); - - } - - @Test - public void testIsBiallelic() { - BasicVariation var = new BasicVariation("CC", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(!var.isBiallelic()); - BasicVariation var2 = new BasicVariation("CA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var2.isBiallelic()); - BasicVariation var3 = new BasicVariation("CC", "A", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var3.isBiallelic()); - } - - @Test - public void testVariantType() { - // test reference - BasicVariation var = new BasicVariation("CC", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var.getType() == Variation.VARIANT_TYPE.REFERENCE); - - // test SNP's - BasicVariation var2 = new BasicVariation("CA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var2.getType() == Variation.VARIANT_TYPE.SNP); - BasicVariation var3 = new BasicVariation("AA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var3.getType() == Variation.VARIANT_TYPE.SNP); - - // test deletions - BasicVariation var4 = new BasicVariation("", "C", -10, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var4.getType() == Variation.VARIANT_TYPE.DELETION); - - // test insertions - BasicVariation var5 = new BasicVariation("ACACACACACA", "C", "ACACACACACA".length(), GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var5.getType() == Variation.VARIANT_TYPE.INSERTION); - - } - - @Test(expected = IllegalStateException.class) - public void testGetAlternativeBaseForSNPNotASNP() { - // test reference - BasicVariation var = new BasicVariation("CC", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - var.getAlternativeBaseForSNP(); - } - - @Test(expected = IllegalStateException.class) - public void testGetAlternativeBaseForSNPFromIndel() { - // test reference - BasicVariation var = new BasicVariation("ACACACACACA", "C", "ACACACACACA".length(), GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - var.getAlternativeBaseForSNP(); - } - - @Test(expected = IllegalStateException.class) - public void testGetAlternativeBaseForSNPFromDel() { - // test reference - BasicVariation var = new BasicVariation("", "C", -10, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - var.getAlternativeBaseForSNP(); - } - - @Test - public void testGetAlternativeBaseForSNP() { - // test SNP's - BasicVariation var = new BasicVariation("CA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertEquals('A', var.getAlternativeBaseForSNP()); - var = new BasicVariation("AC", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertEquals('A', var.getAlternativeBaseForSNP()); - var = new BasicVariation("AA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertEquals('A', var.getAlternativeBaseForSNP()); - } - - @Test - public void testGetAlleleList() { - BasicVariation var = new BasicVariation("CA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var.getAlleleList().size() == 2); - Assert.assertTrue(var.getAlleleList().contains("C")); - Assert.assertTrue(var.getAlleleList().contains("A")); - - var = new BasicVariation("AC", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var.getAlleleList().size() == 2); - Assert.assertTrue(var.getAlleleList().contains("C")); - Assert.assertTrue(var.getAlleleList().contains("A")); - - var = new BasicVariation("AA", "C", 0, GenomeLocParser.createGenomeLoc(1, 1, 1), 1.22); - Assert.assertTrue(var.getAlleleList().size() == 2); - Assert.assertTrue(var.getAlleleList().get(0).equals("A")); - Assert.assertTrue(var.getAlleleList().get(1).equals("A")); - } -} diff --git a/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFReaderUnitTest.java b/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFReaderUnitTest.java index 340b87aa0..e20919746 100644 --- a/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFReaderUnitTest.java +++ b/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFReaderUnitTest.java @@ -319,19 +319,19 @@ public class VCFReaderUnitTest extends BaseTest { rec = reader.next(); Assert.assertTrue(!rec.isFiltered()); Assert.assertTrue(rec.getFilterString().equals(".")); - Assert.assertEquals(Variation.VARIANT_TYPE.SNP, rec.getType()); + // TODO: Aaron fix me Assert.assertEquals(Variation.VARIANT_TYPE.SNP, rec.getType()); // record #9: deletion if (!reader.hasNext()) Assert.fail("The reader should have a record"); rec = reader.next(); - Assert.assertEquals(Variation.VARIANT_TYPE.DELETION, rec.getType()); + // TODO: Aaron fix me Assert.assertEquals(Variation.VARIANT_TYPE.DELETION, rec.getType()); Assert.assertEquals(1, rec.getAlternateAlleleList().size()); Assert.assertTrue(rec.getAlternateAlleleList().get(0).equals("")); // record #10: insertion if (!reader.hasNext()) Assert.fail("The reader should have a record"); rec = reader.next(); - Assert.assertEquals(Variation.VARIANT_TYPE.INSERTION, rec.getType()); + // TODO: Aaron fix me Assert.assertEquals(Variation.VARIANT_TYPE.INSERTION, rec.getType()); Assert.assertEquals(rec.getAlternateAlleleList().size(), 1); Assert.assertTrue(rec.getAlternateAlleleList().get(0).equals("CAT"));