From 419a36f74cb26f358a6db3e011bc7b24c80b6b58 Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 10 Aug 2010 02:16:05 +0000 Subject: [PATCH] Starting the clean up of the sting.utils.genotype code which is all either moving to Tribble, moving to sting.utils.vcf, or being removed. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3994 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/VariantsToVCF.java | 1 + .../walkers/annotator/VariantAnnotator.java | 2 +- .../filters/VariantFiltrationWalker.java | 2 +- .../walkers/genotyper/BatchedCallsMerger.java | 31 +--- .../walkers/genotyper/UnifiedGenotyper.java | 1 + .../ApplyVariantCuts.java | 2 +- .../VariantRecalibrator.java | 2 +- .../walkers/variantutils/CombineVariants.java | 1 + .../variantutils/FilterLiftedVariants.java | 2 +- .../variantutils/LiftoverVariants.java | 2 +- .../walkers/variantutils/SelectVariants.java | 2 +- .../walkers/IndelAnnotator.java | 1 + .../walkers/IndelDBRateWalker.java | 2 +- .../walkers/MendelianViolationClassifier.java | 2 +- .../walkers/VCF4WriterTestWalker.java | 2 +- .../gatk/walkers/BeagleOutputToVCFWalker.java | 2 +- .../gatk/walkers/ReadBackedPhasingWalker.java | 2 +- .../walkers/annotator/GenomicAnnotator.java | 2 +- .../gatk/walkers/vcftools/VariantSelect.java | 1 + .../sting/utils/SampleUtils.java | 2 +- .../sting/utils/genotype/vcf/VCFReader.java | 137 ------------------ .../utils/{genotype => }/vcf/VCFUtils.java | 8 +- .../variantutils/CombineVariantsUnitTest.java | 2 +- 23 files changed, 29 insertions(+), 182 deletions(-) delete mode 100644 java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFReader.java rename java/src/org/broadinstitute/sting/utils/{genotype => }/vcf/VCFUtils.java (96%) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/VariantsToVCF.java b/java/src/org/broadinstitute/sting/gatk/walkers/VariantsToVCF.java index 17fc96cd9..61f413802 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/VariantsToVCF.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/VariantsToVCF.java @@ -36,6 +36,7 @@ import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContextUtils import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.gatk.refdata.utils.helpers.DbSNPHelper; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.*; import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.SampleUtils; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java index f53e5ee80..9824aba1d 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/annotator/VariantAnnotator.java @@ -44,7 +44,7 @@ import org.broadinstitute.sting.utils.classloader.PackageUtils; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.commandline.CommandLineUtils; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.util.*; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java index ecd229bdd..c23adeb83 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java @@ -38,7 +38,7 @@ import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.commandline.CommandLineUtils; -import org.broadinstitute.sting.utils.genotype.vcf.*; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.util.*; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/BatchedCallsMerger.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/BatchedCallsMerger.java index 245418c71..c498d9d55 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/BatchedCallsMerger.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/BatchedCallsMerger.java @@ -26,19 +26,18 @@ package org.broadinstitute.sting.gatk.walkers.genotyper; import org.broad.tribble.util.variantcontext.VariantContext; import org.broadinstitute.sting.gatk.GenomeAnalysisEngine; -import org.broadinstitute.sting.gatk.datasources.simpleDataSources.ReferenceOrderedDataSource; import org.broadinstitute.sting.gatk.contexts.*; import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContextUtils; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData; -import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.commandline.*; import org.broadinstitute.sting.utils.genotype.*; -import org.broadinstitute.sting.utils.genotype.vcf.*; import org.broadinstitute.sting.utils.pileup.PileupElement; import org.broadinstitute.sting.utils.pileup.ReadBackedPileup; import org.broadinstitute.sting.utils.pileup.ReadBackedPileupImpl; +import org.broadinstitute.sting.utils.SampleUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broad.tribble.vcf.VCFHeaderLine; import org.broad.tribble.vcf.VCFHeader; @@ -67,9 +66,6 @@ public class BatchedCallsMerger extends LocusWalker imp // the calculation arguments private UnifiedGenotyperEngine UG_engine = null; - // all samples to be used - private Set samples = new HashSet(); - // mapping from rod name to set of samples coming from it private Map> rodsToSamples = new HashMap>(); @@ -85,24 +81,11 @@ public class BatchedCallsMerger extends LocusWalker imp Set headerLines = new HashSet(); - // iterate to get all of the sample names - List dataSources = getToolkit().getRodDataSources(); - for ( ReferenceOrderedDataSource source : dataSources ) { - RMDTrack rod = source.getReferenceOrderedData(); - // if it's one of our target rods - if ( targetRods.contains(rod.getName()) ) { - // read the samples and store them - VCFReader reader = new VCFReader(rod.getFile()); - HashSet mySamples = new HashSet(reader.getHeader().getGenotypeSamples()); - rodsToSamples.put(rod.getName(), mySamples); - samples.addAll(mySamples); - - // while we're here, pull out the header lines - headerLines.addAll(reader.getHeader().getMetaData()); - - reader.close(); - } - } + // get all of the sample names and meta data + Map headers = VCFUtils.getVCFHeadersFromRods(getToolkit(), targetRods); + Set samples = SampleUtils.getSampleList(headers); + for ( VCFHeader header : headers.values() ) + headerLines.addAll(header.getMetaData()); // update the engine UG_engine = new UnifiedGenotyperEngine(getToolkit(), UAC, logger, writer, null, null); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java index 09951cff2..c14ce44ce 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/UnifiedGenotyper.java @@ -34,6 +34,7 @@ import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.commandline.*; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.*; import org.broadinstitute.sting.utils.genotype.vcf.*; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyVariantCuts.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyVariantCuts.java index f8aab3842..6fdeed0b4 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyVariantCuts.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/ApplyVariantCuts.java @@ -35,7 +35,7 @@ import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.collections.ExpandingArrayList; import org.broadinstitute.sting.commandline.Argument; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import org.broadinstitute.sting.utils.text.XReadLines; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java index 7410a8299..430123c65 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrator.java @@ -39,7 +39,7 @@ import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.collections.ExpandingArrayList; import org.broadinstitute.sting.commandline.Argument; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.io.File; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java index 406c49918..f70cd96b5 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariants.java @@ -39,6 +39,7 @@ import org.broadinstitute.sting.gatk.walkers.annotator.VariantAnnotatorEngine; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.commandline.Argument; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.*; import java.util.*; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java index 989f59752..0e7035838 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/FilterLiftedVariants.java @@ -26,7 +26,7 @@ package org.broadinstitute.sting.gatk.walkers.variantutils; import org.broad.tribble.util.variantcontext.VariantContext; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java index 26b20f856..f63ef005c 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java @@ -26,7 +26,7 @@ package org.broadinstitute.sting.gatk.walkers.variantutils; import org.broad.tribble.util.variantcontext.VariantContext; import org.broadinstitute.sting.commandline.Argument; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.SampleUtils; diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java index 264ab7a08..5a904d66f 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java @@ -41,7 +41,7 @@ import org.broadinstitute.sting.gatk.walkers.RMD; import org.broadinstitute.sting.gatk.walkers.Requires; import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.SampleUtils; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.util.*; diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelAnnotator.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelAnnotator.java index 80d69fc9d..ae2308898 100644 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelAnnotator.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelAnnotator.java @@ -16,6 +16,7 @@ import org.broadinstitute.sting.gatk.refdata.utils.RODRecordList; import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.StingException; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.*; import java.io.File; diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelDBRateWalker.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelDBRateWalker.java index a9c803b4d..2a4a839d4 100644 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelDBRateWalker.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/IndelDBRateWalker.java @@ -15,7 +15,7 @@ import org.broadinstitute.sting.gatk.walkers.Window; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.collections.ExpandingArrayList; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.io.PrintStream; diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/MendelianViolationClassifier.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/MendelianViolationClassifier.java index b13d48783..3c3b23c16 100644 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/MendelianViolationClassifier.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/MendelianViolationClassifier.java @@ -21,7 +21,7 @@ import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.collections.Pair; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import org.broadinstitute.sting.utils.pileup.PileupElement; diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/VCF4WriterTestWalker.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/VCF4WriterTestWalker.java index 0a7642654..14c04e1f7 100755 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/VCF4WriterTestWalker.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/VCF4WriterTestWalker.java @@ -12,7 +12,7 @@ import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack; import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.StingException; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import java.io.File; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BeagleOutputToVCFWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BeagleOutputToVCFWalker.java index 394446305..7d5dd34e3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/BeagleOutputToVCFWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/BeagleOutputToVCFWalker.java @@ -42,7 +42,7 @@ import org.broadinstitute.sting.gatk.walkers.RMD; import org.broadinstitute.sting.gatk.walkers.Requires; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.SampleUtils; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import org.broad.tribble.vcf.*; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadBackedPhasingWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadBackedPhasingWalker.java index e5dd974c4..d9ff8a3c8 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadBackedPhasingWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/ReadBackedPhasingWalker.java @@ -39,7 +39,7 @@ import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.collections.Pair; -import org.broadinstitute.sting.utils.genotype.vcf.*; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.pileup.PileupElement; diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/annotator/GenomicAnnotator.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/annotator/GenomicAnnotator.java index b0bd64e5b..c92edbd9a 100644 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/annotator/GenomicAnnotator.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/annotator/GenomicAnnotator.java @@ -61,7 +61,7 @@ import org.broadinstitute.sting.utils.BaseUtils; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.collections.Pair; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; /** diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/vcftools/VariantSelect.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/vcftools/VariantSelect.java index de9d81345..b663e1398 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/vcftools/VariantSelect.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/vcftools/VariantSelect.java @@ -40,6 +40,7 @@ import org.broadinstitute.sting.gatk.walkers.RodWalker; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.commandline.Argument; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.genotype.vcf.*; import org.broad.tribble.vcf.VCFHeaderLine; import org.broad.tribble.vcf.VCFFilterHeaderLine; diff --git a/java/src/org/broadinstitute/sting/utils/SampleUtils.java b/java/src/org/broadinstitute/sting/utils/SampleUtils.java index b8a8af9e6..74e453d95 100755 --- a/java/src/org/broadinstitute/sting/utils/SampleUtils.java +++ b/java/src/org/broadinstitute/sting/utils/SampleUtils.java @@ -31,7 +31,7 @@ import org.broad.tribble.vcf.VCFHeader; import org.broadinstitute.sting.gatk.GenomeAnalysisEngine; import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContextUtils; import org.broadinstitute.sting.utils.collections.Pair; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import java.util.*; diff --git a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFReader.java b/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFReader.java deleted file mode 100644 index 2873e795a..000000000 --- a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFReader.java +++ /dev/null @@ -1,137 +0,0 @@ -package org.broadinstitute.sting.utils.genotype.vcf; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Iterator; - -import org.broad.tribble.FeatureSource; -import org.broad.tribble.index.Index; -import org.broad.tribble.source.BasicFeatureSource; -import org.broad.tribble.util.variantcontext.VariantContext; -import org.broad.tribble.vcf.*; -import org.broadinstitute.sting.gatk.refdata.tracks.builders.TribbleRMDTrackBuilder; -import org.broadinstitute.sting.utils.StingException; - -/** The VCFReader class, which given a valid vcf file, parses out the header and VariantContexts */ -public class VCFReader implements Iterator, Iterable { - - // our VCF header - private VCFHeader mHeader; - - // our iterator - private Iterator iterator; - - private FeatureSource vcfReader = null; - - /** - * Create a VCF reader, given a VCF file - * - * @param vcfFile the vcf file to write - */ - public VCFReader(File vcfFile) { - initialize(vcfFile, null, true); - } - - /** - * Create a VCF reader, given a VCF file - * - * @param vcfFile the vcf file to write - * @param createIndexOnDisk do we need to create an index on disk? - */ - public VCFReader(File vcfFile, boolean createIndexOnDisk) { - initialize(vcfFile, null, createIndexOnDisk); - } - - /** - * Create a VCF reader, given a VCF file - * - * @param vcfFile the vcf file to write - * @param transform the line transformer to use, if any - */ - public VCFReader(File vcfFile, VCFCodec.LineTransform transform) { - initialize(vcfFile, transform, true); - } - - /** - * initialize the VCF reader - * @param vcfFile the VCF file to open - * @param transform the line transformer to use, if any - * @param createIndexOnDisk do we need to create an index on disk? - */ - private void initialize(File vcfFile, VCFCodec.LineTransform transform, boolean createIndexOnDisk) { - VCFCodec codec = new VCFCodec(); - Index index = createIndex(vcfFile, createIndexOnDisk); - if (transform != null) codec.setTransformer(transform); - try { - vcfReader = new BasicFeatureSource(vcfFile.getAbsolutePath(),index,codec); - iterator= vcfReader.iterator(); - } catch (FileNotFoundException e) { - throw new StingException("Unable to read VCF File from " + vcfFile, e); - } catch (IOException e) { - throw new StingException("Unable to read VCF File from " + vcfFile, e); - } - mHeader = (VCFHeader)vcfReader.getHeader(); - } - - /** - * create an index given: - * @param vcfFile the vcf file - * @param createIndexOnDisk do we create the index on disk (or only in memory?) - * @return an instance of an index - */ - private Index createIndex(File vcfFile, boolean createIndexOnDisk) { - Index index; - try { - index = TribbleRMDTrackBuilder.loadIndex(vcfFile, new VCFCodec(), createIndexOnDisk); - } catch (IOException e) { - throw new StingException("Unable to make required index for file " + vcfFile + " do you have write permissions to the directory?"); - } - - return index; - } - - - /** @return true if we have another VCF record to return */ - public boolean hasNext() { - return (iterator.hasNext()); - } - - /** - * return the next available VariantContext. Make sure to check availability with a call to hasNext! - * - * @return a VariantContext, representing the next record in the file - */ - public VariantContext next() { - return iterator.next(); - } - - /** Remove is not supported */ - public void remove() { - throw new UnsupportedOperationException("Unsupported operation"); - } - - - - /** @return get the header associated with this reader */ - public VCFHeader getHeader() { - return this.mHeader; - } - - public Iterator iterator() { - return this; - } - - /** - * close the files - */ - public void close() { - if (vcfReader != null) try { - vcfReader.close(); - } catch (IOException e) { - throw new StingException("Unable to close vcfReader",e); - } - iterator = null; - } - -} diff --git a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFUtils.java b/java/src/org/broadinstitute/sting/utils/vcf/VCFUtils.java similarity index 96% rename from java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFUtils.java rename to java/src/org/broadinstitute/sting/utils/vcf/VCFUtils.java index 7ab7503df..2d27a9b1b 100755 --- a/java/src/org/broadinstitute/sting/utils/genotype/vcf/VCFUtils.java +++ b/java/src/org/broadinstitute/sting/utils/vcf/VCFUtils.java @@ -23,16 +23,13 @@ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package org.broadinstitute.sting.utils.genotype.vcf; +package org.broadinstitute.sting.utils.vcf; import org.broad.tribble.util.variantcontext.VariantContext; import org.broad.tribble.vcf.*; import org.broadinstitute.sting.gatk.GenomeAnalysisEngine; import org.broadinstitute.sting.gatk.datasources.simpleDataSources.ReferenceOrderedDataSource; import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack; -import org.broadinstitute.sting.utils.GenomeLocParser; -import org.broadinstitute.sting.utils.collections.Pair; -import org.broadinstitute.sting.utils.Utils; import org.apache.log4j.Logger; import java.util.*; @@ -108,7 +105,6 @@ public class VCFUtils { public static Set smartMergeHeaders(Collection headers, Logger logger) throws IllegalStateException { HashMap map = new HashMap(); // from KEY.NAME -> line - HashSet lines = new HashSet(); // todo -- needs to remove all version headers from sources and add its own VCF version line for ( VCFHeader source : headers ) { @@ -117,7 +113,7 @@ public class VCFUtils { String key = line.getKey(); if ( line instanceof VCFNamedHeaderLine) - key = key + "." + ((VCFNamedHeaderLine) line).getName(); + key = key + "" + ((VCFNamedHeaderLine) line).getName(); if ( map.containsKey(key) ) { VCFHeaderLine other = map.get(key); diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java index 332f531f5..62835532f 100644 --- a/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java @@ -4,7 +4,7 @@ import org.broad.tribble.vcf.VCFCodec; import org.broad.tribble.vcf.VCFHeader; import org.broad.tribble.vcf.VCFHeaderLine; import org.broadinstitute.sting.utils.genotype.vcf.VCFHeaderUnitTest; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; +import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.junit.Assert; import org.junit.Test;