diff --git a/java/src/org/broadinstitute/sting/utils/genotype/GenotypeMetaData.java b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeMetaData.java new file mode 100755 index 000000000..e90926ae0 --- /dev/null +++ b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeMetaData.java @@ -0,0 +1,47 @@ +package org.broadinstitute.sting.utils.genotype; + + +/** + * @author ebanks + *

+ * Class GenotypeMetaData + *

+ * represents the meta data for a genotype object. + */ +public class GenotypeMetaData { + + // the strand score lod + private double mSLOD; + + // the allele frequency + private double mAlleleFrequency; + + /** + * create a basic genotype meta data pbject, given the following fields + * + * @param strandLOD the strand score lod + * @param alleleFrequency the allele frequency + */ + public GenotypeMetaData(double strandLOD, double alleleFrequency) { + mSLOD = strandLOD; + mAlleleFrequency = alleleFrequency; + } + + /** + * get the strand lod + * + * @return the strand lod + */ + public double getSLOD() { + return mSLOD; + } + + /** + * get the allele frequency + * + * @return the allele frequency + */ + public double getAlleleFrequency() { + return mAlleleFrequency; + } +} \ No newline at end of file diff --git a/java/src/org/broadinstitute/sting/utils/genotype/GenotypeWriter.java b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeWriter.java index 8ae61f08a..d78d84f81 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/GenotypeWriter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/GenotypeWriter.java @@ -56,7 +56,7 @@ public interface GenotypeWriter { * add a multi-sample call if we support it * @param genotypes the list of genotypes, that are backed by sample information */ - public void addMultiSampleCall(List genotypes); + public void addMultiSampleCall(List genotypes, GenotypeMetaData metadata); /** * @return true if we support multisample, false otherwise diff --git a/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliAdapter.java b/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliAdapter.java index c3fc7c1a3..881e7aaa2 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliAdapter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliAdapter.java @@ -161,7 +161,7 @@ public class GeliAdapter implements GenotypeWriter { * @param genotypes the list of genotypes, that are backed by sample information */ @Override - public void addMultiSampleCall( List genotypes) { + public void addMultiSampleCall( List genotypes, GenotypeMetaData metadata) { throw new UnsupportedOperationException("Geli binary doesn't support multisample calls"); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliTextWriter.java b/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliTextWriter.java index 912d60a1d..0823ff32a 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliTextWriter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/geli/GeliTextWriter.java @@ -124,7 +124,7 @@ public class GeliTextWriter implements GenotypeWriter { * @param genotypes the list of genotypes, that are backed by sample information */ @Override - public void addMultiSampleCall(List genotypes) { + public void addMultiSampleCall(List genotypes, GenotypeMetaData metadata) { throw new UnsupportedOperationException("Geli text doesn't support multisample calls"); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/glf/GLFWriter.java b/java/src/org/broadinstitute/sting/utils/genotype/glf/GLFWriter.java index ae2c05717..7f2e7df06 100755 --- a/java/src/org/broadinstitute/sting/utils/genotype/glf/GLFWriter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/glf/GLFWriter.java @@ -299,7 +299,7 @@ public class GLFWriter implements GenotypeWriter { * @param genotypes the list of genotypes, that are backed by sample information */ @Override - public void addMultiSampleCall(List genotypes) { + public void addMultiSampleCall(List genotypes, GenotypeMetaData metadata) { throw new UnsupportedOperationException("GLF writer doesn't support multisample calls"); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/tabular/TabularLFWriter.java b/java/src/org/broadinstitute/sting/utils/genotype/tabular/TabularLFWriter.java index ccf94193a..8930a1c08 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/tabular/TabularLFWriter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/tabular/TabularLFWriter.java @@ -104,7 +104,7 @@ public class TabularLFWriter implements GenotypeWriter { * @param genotypes the list of genotypes, that are backed by sample information */ @Override - public void addMultiSampleCall(List genotypes) { + public void addMultiSampleCall(List genotypes, GenotypeMetaData metadata) { throw new UnsupportedOperationException("Tabular LF doesn't support multisample calls"); } diff --git a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java index 3bea47ec2..2e22acb00 100644 --- a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java +++ b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFGenotypeWriterAdapter.java @@ -2,10 +2,7 @@ package org.broadinstitute.sting.utils.genotype.vcf; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.Utils; -import org.broadinstitute.sting.utils.genotype.Genotype; -import org.broadinstitute.sting.utils.genotype.GenotypeWriter; -import org.broadinstitute.sting.utils.genotype.ReadBacked; -import org.broadinstitute.sting.utils.genotype.SampleBacked; +import org.broadinstitute.sting.utils.genotype.*; import java.io.File; import java.io.OutputStream; @@ -91,7 +88,7 @@ public class VCFGenotypeWriterAdapter implements GenotypeWriter { */ @Override public void addGenotypeCall(Genotype call) { - addMultiSampleCall(Arrays.asList(call)); + addMultiSampleCall(Arrays.asList(call), null); } /** @@ -117,7 +114,7 @@ public class VCFGenotypeWriterAdapter implements GenotypeWriter { * @param genotypes the list of genotypes, that are backed by sample information */ @Override - public void addMultiSampleCall(List genotypes) { + public void addMultiSampleCall(List genotypes, GenotypeMetaData metadata) { if (!mInitialized) lazyInitialize(genotypes, mFile, mStream); @@ -150,6 +147,8 @@ public class VCFGenotypeWriterAdapter implements GenotypeWriter { params.addAlternateBase(allele); } + // TODO -- use the GenotypeMetaData object if it's not null + VCFGenotypeRecord record = new VCFGenotypeRecord(((SampleBacked) gtype).getSampleName(), alleles, VCFGenotypeRecord.PHASE.UNPHASED,