From 918cc0947776a341377816508930bd3edabb43fb Mon Sep 17 00:00:00 2001 From: ebanks Date: Thu, 3 Feb 2011 04:19:05 +0000 Subject: [PATCH] Allow multiple records at a position git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5178 348d0f76-0448-11de-a6fe-93d51630548a --- .../filters/VariantFiltrationWalker.java | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) 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 869705173..704607d40 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/filters/VariantFiltrationWalker.java @@ -33,11 +33,9 @@ import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContextUtils; import org.broadinstitute.sting.gatk.datasources.simpleDataSources.ReferenceOrderedDataSource; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; -import org.broadinstitute.sting.gatk.refdata.VariantContextAdaptors; import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.commandline.Output; -import org.broadinstitute.sting.utils.GenomeLoc; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.utils.vcf.VCFUtils; @@ -134,7 +132,6 @@ public class VariantFiltrationWalker extends RodWalker { public Integer reduceInit() { return 0; } /** - * For each site of interest, rescore the genotype likelihoods by applying the specified feature set. * * @param tracker the meta-data tracker * @param ref the reference base @@ -145,30 +142,24 @@ public class VariantFiltrationWalker extends RodWalker { if ( tracker == null ) return 0; - List rods = tracker.getReferenceMetaData( INPUT_VARIANT_ROD_BINDING_NAME ); - // ignore places where we don't have a variant - if ( rods.size() == 0 ) + Collection VCs = tracker.getVariantContexts(ref, INPUT_VARIANT_ROD_BINDING_NAME, null, context.getLocation(), true, false); + if ( VCs.size() == 0 ) return 0; - - //VariantContext vc = VariantContextAdaptors.toVariantContext( INPUT_VARIANT_ROD_BINDING_NAME, rods.get(0), ref ); - VariantContext vc = tracker.getVariantContext( ref, INPUT_VARIANT_ROD_BINDING_NAME, null, context.getLocation(), true ); - // protect against case where we have a variant in context but we're not at the beginning of location - if (vc == null) - return 0; + for ( VariantContext vc : VCs ) { + FiltrationContext varContext = new FiltrationContext(tracker, ref, vc); - FiltrationContext varContext = new FiltrationContext(tracker, ref, vc); - - // if we're still initializing the context, do so - if ( windowInitializer != null ) { - windowInitializer.add(varContext); - if ( windowInitializer.size() == windowSize ) { - variantContextWindow = new FiltrationContextWindow(windowInitializer); - windowInitializer = null; + // if we're still initializing the context, do so + if ( windowInitializer != null ) { + windowInitializer.add(varContext); + if ( windowInitializer.size() == windowSize ) { + variantContextWindow = new FiltrationContextWindow(windowInitializer); + windowInitializer = null; + } + } else { + variantContextWindow.moveWindow(varContext); + filter(); } - } else { - variantContextWindow.moveWindow(varContext); - filter(); } return 1;