From 21a9a717e402dc6db1ff98dc45933684f9f8e8ea Mon Sep 17 00:00:00 2001 From: chartl Date: Tue, 1 Dec 2009 15:15:54 +0000 Subject: [PATCH] Some minor changes and test: - DepthOfCoverage is now by reference (so locus-by-locus output correctly reports zero-coverage bases) - VariantsToVCF now lets you bind variants with any string except intervals and dbsnp (not just NA######) - A PileupWalker integration test on a particularly nasty FHS site - Two second-base annotation related integration tests on that same site + outputs were all hand-validated in matlab; within a certain tolerance for the annotations git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2197 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/DepthOfCoverageWalker.java | 6 +++-- .../walkers/variantstovcf/VariantsToVCF.java | 6 +++-- .../walkers/PileupWalkerIntegrationTest.java | 26 +++++++++++++++++++ .../SecondBaseSkewIntegrationTest.java | 22 ++++++++++++++++ 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 java/test/org/broadinstitute/sting/gatk/walkers/PileupWalkerIntegrationTest.java diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java index ec1824793..ed94ff41b 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/DepthOfCoverageWalker.java @@ -23,7 +23,8 @@ */ package org.broadinstitute.sting.gatk.walkers; - +import org.broadinstitute.sting.gatk.walkers.DataSource; +import org.broadinstitute.sting.gatk.walkers.By; import org.broadinstitute.sting.gatk.contexts.AlignmentContext; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -39,6 +40,7 @@ import java.util.ArrayList; /** * Display the depth of coverage at a given locus. */ +@By(DataSource.REFERENCE) public class DepthOfCoverageWalker extends LocusWalker> { enum printType { NONE, @@ -131,4 +133,4 @@ public class DepthOfCoverageWalker extends LocusWalker out.printf("Average depth of coverage is: %.2f in %d total coverage over %d sites\n", ((double)result.getFirst() / (double)result.getSecond()), result.getFirst(), result.getSecond()); } -} \ No newline at end of file +} diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantstovcf/VariantsToVCF.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantstovcf/VariantsToVCF.java index d471017ab..1719cdeb3 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantstovcf/VariantsToVCF.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/variantstovcf/VariantsToVCF.java @@ -39,8 +39,10 @@ public class VariantsToVCF extends RefWalker { String[] rodPieces = rodName.split(","); String sampleName = rodPieces[0]; - if (sampleName.startsWith("NA")) - sampleNames.put(sampleName.toUpperCase(), sampleName.toUpperCase()); + if (! ( sampleName.equals("dbSNP") || sampleName.equals("interval") ) ) { + sampleNames.put(sampleName, sampleName); + } + } vcfheader = getHeader(args, sampleNames.keySet()); diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/PileupWalkerIntegrationTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/PileupWalkerIntegrationTest.java new file mode 100644 index 000000000..b03a9b5a0 --- /dev/null +++ b/java/test/org/broadinstitute/sting/gatk/walkers/PileupWalkerIntegrationTest.java @@ -0,0 +1,26 @@ +package org.broadinstitute.sting.gatk.walkers; + +import org.broadinstitute.sting.WalkerTest; +import org.junit.Test; + +import java.util.Arrays; + +/** + * Created by IntelliJ IDEA. + * User: chartl + * Date: Dec 1, 2009 + * Time: 9:03:34 AM + * To change this template use File | Settings | File Templates. + */ +public class PileupWalkerIntegrationTest extends WalkerTest { + + @Test + public void testGnarleyFHSPileup() { + String gatk_args = "-T Pileup -I /humgen/gsa-scr1/GATK_Data/Validation_Data/FHS_Pileup_Test.bam " + + "-R /seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta" + + " -L chr15:46,347,148 -o %s"; + String expected_md5 = "98040c47b623bb133cd296ce12768d49"; + WalkerTestSpec spec = new WalkerTestSpec(gatk_args, 1, Arrays.asList(expected_md5)); + executeTest("Testing the standard (no-indel) pileup on three merged FHS pools with 27 deletions in 969 bases", spec); + } +} diff --git a/java/test/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkewIntegrationTest.java b/java/test/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkewIntegrationTest.java index 770e6cb01..684990176 100755 --- a/java/test/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkewIntegrationTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/annotator/SecondBaseSkewIntegrationTest.java @@ -55,4 +55,26 @@ public class SecondBaseSkewIntegrationTest extends WalkerTest { executeTest("Testing on bam file without 2bb annotations ",spec); } + @Test + public void testOnIndels() { + String test_args = "-T VariantAnnotator -I /humgen/gsa-scr1/GATK_Data/Validation_Data/FHS_Pileup_Test.bam" + + " -R /seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta -A SecondBaseSkew" + + " -sample variant -B variant,VCF,/humgen/gsa-scr1/GATK_Data/Validation_Data/FHS_pileup_test_chr15.vcf" + + " -vcf %s -L chr15:46347148"; + String expected_md5 = "fe7f6d2b48ecf2c1340b5de98a9d5614"; + WalkerTestSpec spec = new WalkerTestSpec(test_args,1,Arrays.asList(expected_md5)); + executeTest("Testing on locus with many indels", spec); + } + + @Test + public void testPrimaryBaseSecondaryBaseOnIndels() { + String test_args = "-T VariantAnnotator -I /humgen/gsa-scr1/GATK_Data/Validation_Data/FHS_Pileup_Test.bam" + + " -R /seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta -A PrimaryBaseSecondaryBaseSymmetry" + + " -sample variant -B variant,VCF,/humgen/gsa-scr1/GATK_Data/Validation_Data/FHS_pileup_test_chr15.vcf" + + " -vcf %s -L chr15:46347148"; + String expected_md5 = "9b587be7a270c6df7e0affcfc61a861a"; + WalkerTestSpec spec = new WalkerTestSpec(test_args,1,Arrays.asList(expected_md5)); + executeTest("Testing PrimaryBaseSecondaryBaseSymmetry on locus with many indels", spec); + } + }