From b42005e7d76cb209d5157e494439543f62b287fb Mon Sep 17 00:00:00 2001 From: kiran Date: Fri, 4 Mar 2011 16:51:12 +0000 Subject: [PATCH] Fixed issue where comp tracks with genotypes that didn't exactly overlap the eval track were getting dropped. Fixed issue where the 'row' column wasn't being output for things implementing TableType. This is an urgent patch for Mark - it'll break tests until I go back and update the md5s. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5374 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/varianteval/VariantEvalWalker.java | 4 ++++ .../varianteval/evaluators/GenotypeConcordance.java | 12 ++++++------ .../walkers/varianteval/util/VariantEvalUtils.java | 9 +++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java index fdfe56528..b00e03af2 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/VariantEvalWalker.java @@ -285,6 +285,8 @@ public class VariantEvalWalker extends RodWalker implements Tr table.addColumn(columnName, "unknown"); } + table.addColumn("row", "unknown"); + for ( Object o : t.getColumnKeys() ) { String c; @@ -319,6 +321,8 @@ public class VariantEvalWalker extends RodWalker implements Tr String newStateKey = stateKey.toString() + r; table.set(newStateKey, c, t.getCell(row, col)); + + table.set(newStateKey, "row", r); } } } else { diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java index 66204e24b..2d3103e3b 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/evaluators/GenotypeConcordance.java @@ -85,7 +85,7 @@ public class GenotypeConcordance extends VariantEvaluator { public Object[] getRowKeys() { String rows[] = new String[foundMissedByAC.size()]; int index = 0; - for (int i : foundMissedByAC.keySet()) rows[index++] = "Allele Count " + i; + for (int i : foundMissedByAC.keySet()) rows[index++] = "AlleleCount_" + i; return rows; } @@ -471,11 +471,11 @@ class SampleStats implements TableType { // "n_het/ref","n_het/het","n_het/hom", // "total_true_hom","%_hom/hom","n_hom/no-call", // "n_hom/ref","n_hom/het","n_hom/hom"}; - return new String[]{"total_true_ref","pct_ref_vs_ref","n_ref_vs_no-call", + return new String[]{"total_true_ref","pct_ref_vs_ref","n_ref_vs_no_call", "n_ref_vs_ref","n_ref_vs_het","n_ref_vs_hom", - "total_true_het","pct_het_vs_het","n_het_vs_no-call", + "total_true_het","pct_het_vs_het","n_het_vs_no_call", "n_het_vs_ref","n_het_vs_het","n_het_vs_hom", - "total_true_hom","pct_hom_vs_hom","n_hom_vs_no-call", + "total_true_hom","pct_hom_vs_hom","n_hom_vs_no_call", "n_hom_vs_ref","n_hom_vs_het","n_hom_vs_hom"}; } @@ -560,9 +560,9 @@ class SampleSummaryStats implements TableType { "percent_comp_het_called_var", "percent_comp_hom_called_hom", "percent_comp_hom_called_var", - "percent_non-reference_sensitivity", + "percent_non_reference_sensitivity", "percent_overall_genotype_concordance", - "percent_non-reference_discrepancy_rate"}; + "percent_non_reference_discrepancy_rate"}; // sample to concordance stats object protected final HashMap concordanceSummary = new HashMap(); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java index adb1b56b1..9bbd69432 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/varianteval/util/VariantEvalUtils.java @@ -342,12 +342,13 @@ public class VariantEvalUtils { * @param allowableTypes a set of allowable variation types * @param byFilter if false, only accept PASSing VariantContexts. Otherwise, accept both PASSing and filtered * sites + * @param subsetBySample if false, do not separate the track into per-sample VCs * @param trackPerSample if false, don't stratify per sample (and don't cut up the VariantContext like we would need * to do this) * @param allowNoCalls if false, don't accept no-call loci from a variant track * @return a mapping of track names to a list of VariantContext objects */ - public HashMap> bindVariantContexts(RefMetaDataTracker tracker, ReferenceContext ref, Set trackNames, EnumSet allowableTypes, boolean byFilter, boolean trackPerSample, boolean allowNoCalls) { + public HashMap> bindVariantContexts(RefMetaDataTracker tracker, ReferenceContext ref, Set trackNames, EnumSet allowableTypes, boolean byFilter, boolean subsetBySample, boolean trackPerSample, boolean allowNoCalls) { HashMap> bindings = new HashMap>(); for (String trackName : trackNames) { @@ -360,7 +361,7 @@ public class VariantEvalUtils { if (vc != null) { VariantContext vcsub = vc; - if (vc.hasGenotypes() && vc.hasGenotypes(variantEvalWalker.getSampleNamesForEvaluation())) { + if (subsetBySample && vc.hasGenotypes() && vc.hasGenotypes(variantEvalWalker.getSampleNamesForEvaluation())) { vcsub = getSubsetOfVariantContext(vc, variantEvalWalker.getSampleNamesForEvaluation()); } @@ -411,8 +412,8 @@ public class VariantEvalUtils { } } - HashMap> evalBindings = bindVariantContexts(tracker, ref, evalNames, allowableTypes, byFilter, perSampleIsEnabled, true); - HashMap> compBindings = bindVariantContexts(tracker, ref, compNames, allowableTypes, byFilter, false, false); + HashMap> evalBindings = bindVariantContexts(tracker, ref, evalNames, allowableTypes, byFilter, true, perSampleIsEnabled, true); + HashMap> compBindings = bindVariantContexts(tracker, ref, compNames, allowableTypes, byFilter, false, false, false); vcs.putAll(compBindings); vcs.putAll(evalBindings);