From 420d8feff6dfc9b9af8cd5ea629b7a9cfd67cd3e Mon Sep 17 00:00:00 2001 From: ebanks Date: Fri, 3 Jun 2011 02:17:37 +0000 Subject: [PATCH] No one should be calling the createHeader method(s) directly, but instead should be going through the full readHeader method (because it first sets the version); therefore I made them package protected and merged them. Updated the various unit tests that were using createHeader and were dangerously assuming that the header version was defaulting to 4.0 (which it no longer does). git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5934 348d0f76-0448-11de-a6fe-93d51630548a --- .../variantutils/CombineVariantsUnitTest.java | 88 +++++++++--------- .../utils/genotype/vcf/VCFHeaderUnitTest.java | 89 ++++++++++--------- 2 files changed, 89 insertions(+), 88 deletions(-) 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 750041bdb..2eef77400 100644 --- a/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java +++ b/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/CombineVariantsUnitTest.java @@ -1,5 +1,6 @@ package org.broadinstitute.sting.gatk.walkers.variantutils; +import org.broad.tribble.readers.AsciiLineReader; import org.broad.tribble.vcf.VCFCodec; import org.broad.tribble.vcf.VCFHeader; import org.broad.tribble.vcf.VCFHeaderLine; @@ -9,6 +10,7 @@ import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.testng.annotations.Test; +import java.io.StringBufferInputStream; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -19,54 +21,50 @@ import java.util.Set; public class CombineVariantsUnitTest { // this header is a small subset of the header in VCFHeaderUnitTest: VCF4headerStrings - public static String[] VCF4headerStringsSmallSubset = { - "##fileformat=VCFv4.0", - "##filedate=2010-06-21", - "##reference=NCBI36", - "##INFO=", - "##INFO=", - "##INFO=", - "##FILTER=", - "##FORMAT=", - "##FORMAT=", - "##FORMAT=", - }; + public static String VCF4headerStringsSmallSubset = + "##fileformat=VCFv4.0\n" + + "##filedate=2010-06-21\n"+ + "##reference=NCBI36\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##FILTER=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"; // altered info field - public static String[] VCF4headerStringsBrokenInfo = { - "##fileformat=VCFv4.0", - "##filedate=2010-06-21", - "##reference=NCBI36", - "##INFO=", - "##INFO=", - "##INFO=", // string to integer - "##FILTER=", - "##FORMAT=", - "##FORMAT=", - "##FORMAT=", - }; + public static String VCF4headerStringsBrokenInfo = + "##fileformat=VCFv4.0\n"+ + "##filedate=2010-06-21\n"+ + "##reference=NCBI36\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ // string to integer + "##FILTER=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"; // altered format field - public static String[] VCF4headerStringsBrokenFormat = { - "##fileformat=VCFv4.0", - "##filedate=2010-06-21", - "##reference=NCBI36", - "##INFO=", - "##INFO=", - "##INFO=", - "##FILTER=", - "##FORMAT=", // changed 1 to 6 here - "##FORMAT=", - "##FORMAT=", - }; + public static String VCF4headerStringsBrokenFormat = + "##fileformat=VCFv4.0\n"+ + "##filedate=2010-06-21\n"+ + "##reference=NCBI36\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##FILTER=\n"+ + "##FORMAT=\n"+ // changed 1 to 6 here + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"; - private VCFHeader createHeader(String[] headerStr) { + private VCFHeader createHeader(String headerStr) { VCFCodec codec = new VCFCodec(); - List headerFields = new ArrayList(); - for (String str : headerStr) - headerFields.add(str); - VCFHeader head = (VCFHeader)codec.createHeader(headerFields,"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO"); - Assert.assertEquals(head.getMetaData().size(), headerStr.length /* for the # line */); + VCFHeader head = (VCFHeader)codec.readHeader(new AsciiLineReader(new StringBufferInputStream(headerStr))); return head; } @@ -78,7 +76,7 @@ public class CombineVariantsUnitTest { headers.add(one); headers.add(two); Set lines = VCFUtils.smartMergeHeaders(headers, null); - Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStrings.length); + Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStringCount); } @Test(expectedExceptions=IllegalStateException.class) @@ -89,7 +87,7 @@ public class CombineVariantsUnitTest { headers.add(one); headers.add(two); Set lines = VCFUtils.smartMergeHeaders(headers, null); - Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStrings.length); + Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStringCount); } @Test @@ -100,6 +98,6 @@ public class CombineVariantsUnitTest { headers.add(one); headers.add(two); Set lines = VCFUtils.smartMergeHeaders(headers, null); - Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStrings.length); + Assert.assertEquals(lines.size(), VCFHeaderUnitTest.VCF4headerStringCount); } } diff --git a/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFHeaderUnitTest.java b/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFHeaderUnitTest.java index 561ced1cb..88c1b8294 100644 --- a/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFHeaderUnitTest.java +++ b/java/test/org/broadinstitute/sting/utils/genotype/vcf/VCFHeaderUnitTest.java @@ -1,5 +1,6 @@ package org.broadinstitute.sting.utils.genotype.vcf; +import org.broad.tribble.readers.AsciiLineReader; import org.broad.tribble.vcf.*; import org.testng.Assert; import org.broadinstitute.sting.BaseTest; @@ -9,6 +10,7 @@ import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.io.PrintWriter; +import java.io.StringBufferInputStream; import java.util.ArrayList; import java.util.List; @@ -21,13 +23,10 @@ import java.util.List; */ public class VCFHeaderUnitTest extends BaseTest { - private VCFHeader createHeader(String[] headerStr) { + private VCFHeader createHeader(String headerStr) { VCFCodec codec = new VCFCodec(); - List headerFields = new ArrayList(); - for (String str : headerStr) - headerFields.add(str); - VCFHeader header = (VCFHeader)codec.createHeader(headerFields,"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO"); - Assert.assertEquals(header.getMetaData().size(), headerStr.length /* for the # line */); + VCFHeader header = (VCFHeader)codec.readHeader(new AsciiLineReader(new StringBufferInputStream(headerStr))); + Assert.assertEquals(header.getMetaData().size(), VCF4headerStringCount); return header; } @@ -39,7 +38,7 @@ public class VCFHeaderUnitTest extends BaseTest { @Test public void testVCF4ToVCF4_alternate() { - VCFHeader header = createHeader(VCF4headerStrings_with_negitiveOne); + VCFHeader header = createHeader(VCF4headerStrings_with_negativeOne); checkMD5ofHeaderFile(header, "ad8c4cf85e868b0261ab49ee2c613088"); } @@ -59,41 +58,45 @@ public class VCFHeaderUnitTest extends BaseTest { Assert.assertTrue(md5sum.equals(md5SumFile(myTempFile))); } - public static String[] VCF4headerStrings = { - "##fileformat=VCFv4.0", - "##filedate=2010-06-21", - "##reference=NCBI36", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##FILTER=", - "##FORMAT=", - "##FORMAT=", - "##FORMAT=", - }; + public static int VCF4headerStringCount = 16; + + public static String VCF4headerStrings = + "##fileformat=VCFv4.0\n"+ + "##filedate=2010-06-21\n"+ + "##reference=NCBI36\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##FILTER=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"; + + + public static String VCF4headerStrings_with_negativeOne = + "##fileformat=VCFv4.0\n"+ + "##filedate=2010-06-21\n"+ + "##reference=NCBI36\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##INFO=\n"+ + "##FILTER=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "##FORMAT=\n"+ + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n"; - public static String[] VCF4headerStrings_with_negitiveOne = { - "##fileformat=VCFv4.0", - "##filedate=2010-06-21", - "##reference=NCBI36", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##INFO=", - "##FILTER=", - "##FORMAT=", - "##FORMAT=", - "##FORMAT=", - }; }