From c7b23d6ca5e23875b5a6c46d60e0072f00ab2a47 Mon Sep 17 00:00:00 2001 From: ebanks Date: Mon, 14 Dec 2009 04:27:16 +0000 Subject: [PATCH] Now that VCFGenotypeRecords implement SampleBacked (as they should), a quick fix was needed to get the GenotypeConcordance working when no direct samples were provided in a samples file. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2348 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/varianteval/ChipConcordance.java | 7 ++----- .../walkers/varianteval/GenotypeConcordance.java | 8 +++++++- .../walkers/varianteval/VariantEvalWalker.java | 14 +++++++------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ChipConcordance.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ChipConcordance.java index 45b12666b..b4181d8b9 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ChipConcordance.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/ChipConcordance.java @@ -88,11 +88,8 @@ public abstract class ChipConcordance extends BasicVariantAnalysis { } } - // don't procede if we have no truth data and no call - if ( eval != null || chips.size() > 0 ) - return inc(chips, eval, ref); - else - return null; + // evaluate only if we have truth data or a call + return ( eval != null || chips.size() > 0 ) ? inc(chips, eval, ref) : null; } public String inc(Map chips, Variation eval, char ref) { 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 7a760e392..a4e1ecd01 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 @@ -16,8 +16,12 @@ import java.util.*; */ public class GenotypeConcordance extends ChipConcordance implements GenotypeAnalysis { + private String providedChipName = null; + public GenotypeConcordance(final String chipName, boolean chipNameIsFile) { super("genotype_concordance", chipName, chipNameIsFile); + if ( !chipNameIsFile ) + providedChipName = chipName; } protected void assertVariationIsValid(Variation eval) { @@ -44,7 +48,9 @@ public class GenotypeConcordance extends ChipConcordance implements GenotypeAnal // associate each Genotype with the appropriate sample for ( Genotype eval : evals ) { - if ( eval instanceof SampleBacked ) + if ( providedChipName != null ) + hash.put(providedChipName, eval); + else if ( eval instanceof SampleBacked ) hash.put(((SampleBacked)eval).getSampleName(), eval); else if ( rodNames.size() == 1 ) hash.put(rodNames.get(0), eval); diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java index 05dde87dc..460048636 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/varianteval/VariantEvalWalker.java @@ -51,7 +51,7 @@ public class VariantEvalWalker extends RefWalker { @Argument(fullName = "numPeopleInPool", shortName="PS", doc="If using a variant file from a pooled caller, this field provides the number of individuals in each pool", required=false) public int numPeopleInPool = -1; - @Argument(fullName = "samplesFile", shortName="samples", doc="When running an analysis on a number of individuals with truth data, this field provides a filepath to the listing of which samples are used (and are used to name corresponding rods with -B)", required=false) + @Argument(fullName = "samplesFile", shortName="samples", doc="When running an analysis on one or more individuals with truth data, this field provides a filepath to the listing of which samples are used (and are used to name corresponding rods with -B)", required=false) public String samplesFile = null; String analysisFilenameBase = null; @@ -130,13 +130,13 @@ public class VariantEvalWalker extends RefWalker { analyses.add(new VariantCounter()); analyses.add(new VariantDBCoverage(knownSNPDBName)); - //analyses.add(new PooledFrequencyAnalysis(numPeopleInPool,knownSNPDBName)); - if ( samplesFile == null ) + if ( samplesFile != null ) { + if ( numPeopleInPool < 1 ) + analyses.add(new GenotypeConcordance(samplesFile, true)); + else + analyses.add(new PooledConcordance(samplesFile, true)); + } else { analyses.add(new GenotypeConcordance(genotypeChipName, false)); - else if ( numPeopleInPool < 1) - analyses.add(new GenotypeConcordance(samplesFile, true)); - else { - analyses.add(new PooledConcordance(samplesFile,true)); } analyses.add(new TransitionTranversionAnalysis()); analyses.add(new NeighborDistanceAnalysis());