Update to VCF code to get it up to spec.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2917 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
ebanks 2010-03-03 06:12:42 +00:00
parent 317fac8dff
commit 0e9a6826b0
12 changed files with 75 additions and 52 deletions

View File

@ -215,7 +215,6 @@ public class UnifiedGenotyper extends LocusWalker<VariantCallContext, UnifiedGen
return sum;
}
// Close any file writers
public void onTraversalDone(UGStatistics sum) {
logger.info(String.format("Visited bases %d", sum.nBasesVisited));
logger.info(String.format("Callable bases %d", sum.nBasesCallable));
@ -223,6 +222,5 @@ public class UnifiedGenotyper extends LocusWalker<VariantCallContext, UnifiedGen
logger.info(String.format("%% callable bases of all loci %3.3f", sum.percentCallableOfAll()));
logger.info(String.format("%% confidently called bases of all loci %3.3f", sum.percentCalledOfAll()));
logger.info(String.format("%% confidently called bases of callable loci %3.3f", sum.percentCalledOfCallable()));
// logger.info("Processed " + sum.nBasesCallable + " loci that are callable for SNPs");
}
}

View File

@ -266,20 +266,41 @@ public class VCFGenotypeRecord implements Genotype, SampleBacked {
StringBuilder builder = new StringBuilder();
builder.append(toGenotypeString(altAlleles));
if ( !isEmptyGenotype() ) {
for ( String field : genotypeFormatStrings ) {
String value = mFields.get(field);
if ( value == null && field.equals(OLD_DEPTH_KEY) )
value = mFields.get(DEPTH_KEY);
if ( value == null )
continue;
for ( String field : genotypeFormatStrings ) {
if ( field.equals(GENOTYPE_KEY) )
continue;
builder.append(VCFRecord.GENOTYPE_FIELD_SEPERATOR);
if (value.equals(""))
builder.append(getMissingFieldValue(field));
else
builder.append(value);
}
String value = mFields.get(field);
if ( value == null && field.equals(OLD_DEPTH_KEY) )
value = mFields.get(DEPTH_KEY);
builder.append(VCFRecord.GENOTYPE_FIELD_SEPERATOR);
if ( value == null || value.equals("") )
builder.append(getMissingFieldValue(field));
else
builder.append(value);
}
return builder.toString();
}
/**
* output a string representation of an empty genotype
*
* @param genotypeFormatStrings genotype format strings
*
* @return a string
*/
public static String stringEncodingForEmptyGenotype(String[] genotypeFormatStrings) {
StringBuilder builder = new StringBuilder();
builder.append(EMPTY_GENOTYPE);
for ( String field : genotypeFormatStrings ) {
if ( field.equals(GENOTYPE_KEY) )
continue;
builder.append(VCFRecord.GENOTYPE_FIELD_SEPERATOR);
builder.append(getMissingFieldValue(field));
}
return builder.toString();
@ -289,7 +310,7 @@ public class VCFGenotypeRecord implements Genotype, SampleBacked {
String result = "";
if ( field.equals(GENOTYPE_QUALITY_KEY) )
result = String.valueOf(MISSING_GENOTYPE_QUALITY);
else if ( field.equals(DEPTH_KEY) )
else if ( field.equals(DEPTH_KEY) || field.equals(OLD_DEPTH_KEY) )
result = String.valueOf(MISSING_DEPTH);
else if ( field.equals(GENOTYPE_FILTER_KEY) )
result = UNFILTERED;
@ -302,7 +323,7 @@ public class VCFGenotypeRecord implements Genotype, SampleBacked {
public static Set<VCFFormatHeaderLine> getSupportedHeaderStrings() {
Set<VCFFormatHeaderLine> result = new HashSet<VCFFormatHeaderLine>();
result.add(new VCFFormatHeaderLine(GENOTYPE_KEY, 1, VCFFormatHeaderLine.INFO_TYPE.String, "Genotype"));
result.add(new VCFFormatHeaderLine(GENOTYPE_QUALITY_KEY, 1, VCFFormatHeaderLine.INFO_TYPE.Integer, "Genotype Quality"));
result.add(new VCFFormatHeaderLine(GENOTYPE_QUALITY_KEY, 1, VCFFormatHeaderLine.INFO_TYPE.Float, "Genotype Quality"));
result.add(new VCFFormatHeaderLine(DEPTH_KEY, 1, VCFFormatHeaderLine.INFO_TYPE.Integer, "Read Depth (only filtered reads used for calling)"));
//result.add(new VCFFormatHeaderLine(HAPLOTYPE_QUALITY_KEY, 1, VCFFormatHeaderLine.INFO_TYPE.Integer, "Haplotype Quality"));
return result;

View File

@ -638,7 +638,7 @@ public class VCFRecord implements Variation, VariantBackedByGenotype {
tempStr.append(rec.toStringEncoding(mAlts, genotypeFormatStrings));
gMap.remove(genotype);
} else {
tempStr.append(VCFGenotypeRecord.EMPTY_GENOTYPE);
tempStr.append(VCFGenotypeRecord.stringEncodingForEmptyGenotype(genotypeFormatStrings));
}
}
if ( gMap.size() != 0 ) {

View File

@ -158,7 +158,10 @@ public class VCFUtils {
record.setField(VCFGenotypeRecord.DEPTH_KEY, String.valueOf(gtype.getReadCount()));
params.addFormatItem(VCFGenotypeRecord.DEPTH_KEY);
double qual = Math.min(10.0 * gtype.getNegLog10PError(), VCFGenotypeRecord.MAX_QUAL_VALUE);
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%.2f", qual));
if ( qual >= 0 )
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%.2f", qual));
else
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%d", VCFGenotypeRecord.MISSING_GENOTYPE_QUALITY));
params.addFormatItem(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY);
record.setVCFRecord(vcfrecord);
@ -186,7 +189,10 @@ public class VCFUtils {
record.setField(VCFGenotypeRecord.DEPTH_KEY, String.valueOf(gtype.getReadCount()));
params.addFormatItem(VCFGenotypeRecord.DEPTH_KEY);
double qual = Math.min(10.0 * gtype.getNegLog10PError(), VCFGenotypeRecord.MAX_QUAL_VALUE);
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%.2f", qual));
if ( qual >= 0 )
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%.2f", qual));
else
record.setField(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY, String.format("%d", VCFGenotypeRecord.MISSING_GENOTYPE_QUALITY));
params.addFormatItem(VCFGenotypeRecord.GENOTYPE_QUALITY_KEY);
return record;

View File

@ -7,8 +7,6 @@ import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.Arrays;
import java.util.List;
import java.io.File;
public class VariantContextIntegrationTest extends WalkerTest {
private static String cmdRoot = "-T TestVariantContext" +
@ -50,7 +48,7 @@ public class VariantContextIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( cmdRoot + " -B vcf,VCF," + validationDataLocation + "/yri.trio.gatk_glftrio.intersection.annotated.filtered.chr1.500.vcf -L 1:1-1000000 -o %s --outputVCF %s",
2, // just one output file
Arrays.asList("e3c35d0c4b5d4935c84a270f9df0951f", "461960b26ee1f8998ccc47da9bd3913c"));
Arrays.asList("e3c35d0c4b5d4935c84a270f9df0951f", "62f06802c2cac1a41068a3d9b6330ad4"));
executeTest("testToVCF", spec);
}

View File

@ -33,7 +33,7 @@ public class SecondBaseSkewIntegrationTest extends WalkerTest {
+"-B variant,Variants," + validationDataLocation + "FHS_pilot_pool3_raw_calls.geli "
+"-vcf %s -sample variant -L " + validationDataLocation + "FHS_test_intervals.interval_list";
String md5_for_this_test = "4bd8a28bcbad107b102fc796918d5932";
String md5_for_this_test = "c1116b3196cc9f553ae2442a4063bc5e";
WalkerTestSpec spec = new WalkerTestSpec(test_args,1, Arrays.asList(md5_for_this_test));
executeTest("Testing on E2 annotated but not Q2 annotated file ",spec);
@ -49,7 +49,7 @@ public class SecondBaseSkewIntegrationTest extends WalkerTest {
+"-B variant,Variants," + validationDataLocation + "FHS_pilot_pool3_raw_calls.geli "
+"-vcf %s -sample variant -L " + validationDataLocation + "FHS_test_intervals.interval_list";
String md5_for_this_test = "3eee411119888fc4633870a91ed2093d";
String md5_for_this_test = "a297259694ac88f769a45bce96a08e51";
WalkerTestSpec spec = new WalkerTestSpec(test_args,1, Arrays.asList(md5_for_this_test));
executeTest("Testing on bam file without 2bb annotations ",spec);
@ -61,7 +61,7 @@ public class SecondBaseSkewIntegrationTest extends WalkerTest {
+ " -R " + seqLocation + "references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta -A SecondBaseSkew"
+ " -sample variant -B variant,VCF," + validationDataLocation + "FHS_pileup_test_chr15.vcf"
+ " -vcf %s -L chr15:46347148";
String expected_md5 = "c70dfb30c3caa9184604f88bc7f62a07";
String expected_md5 = "aac8f669a36092b70d9c083ad652a727";
WalkerTestSpec spec = new WalkerTestSpec(test_args,1,Arrays.asList(expected_md5));
executeTest("Testing on locus with many indels", spec);
}

View File

@ -50,7 +50,7 @@ public class VariantAnnotatorIntegrationTest extends WalkerTest {
public void testHasAnnotsNotAsking1() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -L 1:10,020,000-10,021,000", 1,
Arrays.asList("fecfec68226bbd9b458ede55d48e0762"));
Arrays.asList("bfb2566d062a03658e6d13467127aaca"));
executeTest("test file has annotations, not asking for annotations, #1", spec);
}
@ -66,7 +66,7 @@ public class VariantAnnotatorIntegrationTest extends WalkerTest {
public void testHasAnnotsAsking1() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -standard -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -L 1:10,020,000-10,021,000", 1,
Arrays.asList("36aaac8c38480b7f49766b8b88f9c537"));
Arrays.asList("98bcbd4dd9d0edc5aa1ae97877a7e8f8"));
executeTest("test file has annotations, asking for annotations, #1", spec);
}
@ -82,7 +82,7 @@ public class VariantAnnotatorIntegrationTest extends WalkerTest {
public void testNoAnnotsNotAsking1() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B variant,VCF," + validationDataLocation + "vcfexample2empty.vcf -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -L 1:10,020,000-10,021,000", 1,
Arrays.asList("c70cc6bb6b83748ec8d968dc3bf879c4"));
Arrays.asList("5c4287632573062778fc8a1483575b64"));
executeTest("test file doesn't have annotations, not asking for annotations, #1", spec);
}
@ -98,7 +98,7 @@ public class VariantAnnotatorIntegrationTest extends WalkerTest {
public void testNoAnnotsAsking1() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -standard -B variant,VCF," + validationDataLocation + "vcfexample2empty.vcf -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -L 1:10,020,000-10,021,000", 1,
Arrays.asList("9fc6e8c5ee56a67f158bbf305470643d"));
Arrays.asList("437b45d2ee1a150f15c4479cb2cb5e8f"));
executeTest("test file doesn't have annotations, asking for annotations, #1", spec);
}

View File

@ -14,7 +14,7 @@ public class CallsetConcordanceIntegrationTest extends WalkerTest {
public void testSimpleVenn() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B set1,VCF," + validationDataLocation + "NA12878.example1.vcf -B set2,VCF," + validationDataLocation + "NA12878.example2.vcf -CT SimpleVenn", 1,
Arrays.asList("c0376dcd60f1741eac2917f10b4bb7a4"));
Arrays.asList("cdd027a0d7bbfae2ba75480fcaa14356"));
executeTest("testSimpleVenn", spec);
}
@ -22,7 +22,7 @@ public class CallsetConcordanceIntegrationTest extends WalkerTest {
public void testSNPConcordance() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B set1,VCF," + validationDataLocation + "NA12878.example1.vcf -B set2,VCF," + validationDataLocation + "NA12878.example2.vcf -CT SNPGenotypeConcordance:qscore=5", 1,
Arrays.asList("ffc13b79f6a18158f63cc9a8ee968f32"));
Arrays.asList("310bf0824fc407b2e40cbbaea234471e"));
executeTest("testSNPConcordance", spec);
}
@ -30,7 +30,7 @@ public class CallsetConcordanceIntegrationTest extends WalkerTest {
public void testNWayVenn() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B set1,VCF," + validationDataLocation + "NA12878.example1.vcf -B set2,VCF," + validationDataLocation + "NA12878.example2.vcf -B set3,VCF," + validationDataLocation + "CEU.sample.vcf -CT NWayVenn", 1,
Arrays.asList("39717fb57526e54540e803a1f9c5d31b"));
Arrays.asList("179adafae6efdc879fc22442ab9e599f"));
executeTest("testNWayVenn", spec);
}
@ -38,7 +38,7 @@ public class CallsetConcordanceIntegrationTest extends WalkerTest {
public void testMulti() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B set1,VCF," + validationDataLocation + "NA12878.example1.vcf -B set2,VCF," + validationDataLocation + "NA12878.example2.vcf -CT SimpleVenn -CT NWayVenn -CT SNPGenotypeConcordance:qscore=5", 1,
Arrays.asList("0b5b0c9ce7e21d1d2c38ebaad7765017"));
Arrays.asList("c8fe63633ef6ed2b6068958f06cddfe0"));
executeTest("testMulti", spec);
}

View File

@ -16,7 +16,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testNoAction() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("340e3a09d0571dc969557cc979a132b3"));
Arrays.asList("e8e1898d65eb77ec32b7eca6764864f3"));
executeTest("test no action", spec);
}
@ -24,7 +24,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testClusteredSnps() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -window 10 -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("53e2c4645bab58a4f039ff51d5bffb7e"));
Arrays.asList("25da669bc6411d31f585b01be85e8429"));
executeTest("test clustered SNPs", spec);
}
@ -32,7 +32,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testMask() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -mask foo -B mask,VCF," + validationDataLocation + "vcfexample2.vcf -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("27dacba4bcc6beaac608a7b34b7206f0"));
Arrays.asList("bd08169351c4cc9a2d95f33a2a73c7fa"));
executeTest("test mask", spec);
}
@ -40,7 +40,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testFilter1() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -filter 'DoC < 20 || FisherStrand > 20.0' -filterName foo -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("e1a17255db9aa17016457ce2d81c6fff"));
Arrays.asList("9e7631aeda1c174f5aac6712279ed861"));
executeTest("test filter #1", spec);
}
@ -48,7 +48,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testFilter2() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " -filter 'AlleleBalance < 70.0 && FisherStrand == 1.4' -filterName bar -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("18ef67575a76c2be74af8bd8b9fdf86e"));
Arrays.asList("9009742f5697c5a85f9e41e1d7d6f260"));
executeTest("test filter #2", spec);
}
@ -56,7 +56,7 @@ public class VariantFiltrationIntegrationTest extends WalkerTest {
public void testFilterWithSeparateNames() {
WalkerTestSpec spec = new WalkerTestSpec(
baseTestString() + " --filterName ABF -filter 'AlleleBalance < 70.0' --filterName FSF -filter 'FisherStrand == 1.4' -B variant,VCF," + validationDataLocation + "vcfexample2.vcf -L 1:10,020,000-10,021,000", 1,
Arrays.asList("7de66cac85cfe8a70219e51a5f6c251c"));
Arrays.asList("6b280c5abd6e911df8e4fca58c7b216b"));
executeTest("test filter with separate names #2", spec);
}
}

View File

@ -35,7 +35,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
public void testMultiSamplePilot1Joint() {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
"-T UnifiedGenotyper -R " + oneKGLocation + "reference/human_b36_both.fasta -I " + validationDataLocation + "low_coverage_CEU.chr1.10k-11k.bam -varout %s -L 1:10,022,000-10,025,000 -bm empirical -gm JOINT_ESTIMATE -confidence 30", 1,
Arrays.asList("5e0a92fbddeb9d6e35586d0488a1e5c7"));
Arrays.asList("2f928b1261963044ca1781601cae4bf7"));
executeTest("testMultiSamplePilot1 - Joint Estimate", spec);
}
@ -43,7 +43,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
public void testMultiSamplePilot2Joint() {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
"-T UnifiedGenotyper -R " + oneKGLocation + "reference/human_b36_both.fasta -I " + validationDataLocation + "pilot2_daughters.chr20.10k-11k.bam -varout %s -L 20:10,000,000-10,050,000 -bm empirical -gm JOINT_ESTIMATE -confidence 30", 1,
Arrays.asList("68d00450e3c2129ea38c67171722b385"));
Arrays.asList("10fe265d0140243b52f500c3882230f2"));
executeTest("testMultiSamplePilot2 - Joint Estimate", spec);
}
@ -51,7 +51,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
public void testSingleSamplePilot2Joint() {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
"-T UnifiedGenotyper -R " + oneKGLocation + "reference/human_b36_both.fasta -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -varout %s -L 1:10,000,000-10,100,000 -bm empirical -gm JOINT_ESTIMATE -confidence 30", 1,
Arrays.asList("8971ab1c9d2780e5e12e9bfc0b059cd1"));
Arrays.asList("5c455e1a33e3f82d13898b20ee71ac69"));
executeTest("testSingleSamplePilot2 - Joint Estimate", spec);
}
@ -64,7 +64,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
public void testParallelization() {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
"-T UnifiedGenotyper -R " + oneKGLocation + "reference/human_b36_both.fasta -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -varout %s -L 1:10,000,000-10,400,000 -bm empirical -gm JOINT_ESTIMATE -confidence 30 -nt 4", 1,
Arrays.asList("fb5d09eb8f1494d48032be7272699add"));
Arrays.asList("c827c74e59263b0f6b526089b050c100"));
executeTest("test parallelization", spec);
}
@ -77,11 +77,11 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
@Test
public void testParameter() {
HashMap<String, String> e = new HashMap<String, String>();
e.put( "-genotype", "41af43f6eaab72de553d865a3089bf54" );
e.put( "-all_bases", "7cc1609aef6d6cc3dd7822c52c403750" );
e.put( "--min_base_quality_score 26", "9596e2102369ced181f2a87d686faf2e" );
e.put( "--min_mapping_quality_score 26", "130efb2b8bd7b495bf65c6477bcf83c8" );
e.put( "--max_mismatches_in_40bp_window 5", "18935308954cf390b628c9226eccbe94" );
e.put( "-genotype", "8818584bf7053ecf52844f3b404ab630" );
e.put( "-all_bases", "bf6ea1c04bf52002e3365c1f47103d4a" );
e.put( "--min_base_quality_score 26", "3f192cd301f057698d0bc6c41841ce81" );
e.put( "--min_mapping_quality_score 26", "2631025243ac6b52df852309235ec8d3" );
e.put( "--max_mismatches_in_40bp_window 5", "e540a2057164e3b05a5d635805f1167e" );
for ( Map.Entry<String, String> entry : e.entrySet() ) {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
@ -95,7 +95,7 @@ public class UnifiedGenotyperIntegrationTest extends WalkerTest {
public void testConfidence() {
WalkerTest.WalkerTestSpec spec = new WalkerTest.WalkerTestSpec(
"-T UnifiedGenotyper -R " + oneKGLocation + "reference/human_b36_both.fasta -I " + validationDataLocation + "NA12878.1kg.p2.chr1_10mb_11_mb.SLX.bam -varout %s -L 1:10,000,000-10,010,000 -bm empirical -gm JOINT_ESTIMATE -confidence 10 ", 1,
Arrays.asList("8c0e1fed37a2eac9eaaaa59e31350f43"));
Arrays.asList("bfa93ee89aa0807b9c4e4793363452b4"));
executeTest("testConfidence", spec);
}

View File

@ -12,7 +12,7 @@ public class VCFIntegrationTest extends WalkerTest {
// Read in and then emit each record
WalkerTestSpec spec = new WalkerTestSpec(
"-T PrintRODs -R " + oneKGLocation + "reference/human_b36_both.fasta -L 1:10,000,000-10,050,000 -o %s -B vcf,VCF," + validationDataLocation + "complexExample.vcf", 1,
Arrays.asList("26ad7a663d0f247ac26ce5490edd7ec0"));
Arrays.asList("68b123acca4975553297fcd776c70464"));
executeTest("test vcf", spec);
}
}

View File

@ -309,7 +309,7 @@ public class VCFReaderTest extends BaseTest {
if ( grec.getReadCount() == 4 )
Assert.assertTrue(grec.getFields().get("GQ").equals("-1"));
else
Assert.assertTrue(grec.getFields().get("GQ").equals("5.85") && grec.getReadCount() == -1);
Assert.assertTrue(grec.getFields().get("GQ").equals("5.85") && grec.getReadCount() == -1);
}
}