X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fext%2Fhtsjdk%2FVCFReaderTest.java;h=bf617aec97ba4293decec6a3bab85cd05d2b3d99;hb=3c649fa5f3632a9e7a47a533ce0c11cc67622788;hp=42c655d296de47e85270d5fc0722ecec3828d417;hpb=f943e5b7a7a5ce2b819495f83dbad28028a9a956;p=jalview.git diff --git a/test/jalview/ext/htsjdk/VCFReaderTest.java b/test/jalview/ext/htsjdk/VCFReaderTest.java index 42c655d..bf617ae 100644 --- a/test/jalview/ext/htsjdk/VCFReaderTest.java +++ b/test/jalview/ext/htsjdk/VCFReaderTest.java @@ -26,8 +26,11 @@ public class VCFReaderTest // gnomAD exome variant dataset private static final String VCF_PATH = "/Volumes/gjb/smacgowan/NOBACK/resources/gnomad/gnomad.exomes.r2.0.1.sites.vcf.gz"; + // "https://storage.cloud.google.com/gnomad-public/release/2.0.1/vcf/exomes/gnomad.exomes.r2.0.1.sites.vcf.gz"; + /** - * A test to exercise some basic functionality of the htsjdk VCF reader + * A test to exercise some basic functionality of the htsjdk VCF reader, + * reading from a non-index VCF file * * @throws IOException */ @@ -105,8 +108,6 @@ public class VCFReaderTest pw.close(); return f; } - - // "https://storage.cloud.google.com/gnomad-public/release/2.0.1/vcf/exomes/gnomad.exomes.r2.0.1.sites.vcf.gz"; /** * A 'test' that demonstrates querying an indexed VCF file for features in a @@ -131,15 +132,69 @@ public class VCFReaderTest CloseableIterator features = reader.query("17", 43128978 + 9724, 43128978 + 9734); // first 11 CDS positions - assertEquals(features.next().getStart(), 43138702); - assertEquals(features.next().getStart(), 43138704); - assertEquals(features.next().getStart(), 43138707); - assertEquals(features.next().getStart(), 43138708); - assertEquals(features.next().getStart(), 43138710); - assertEquals(features.next().getStart(), 43138711); + assertEquals(printNext(features), 43138702); + assertEquals(printNext(features), 43138704); + assertEquals(printNext(features), 43138707); + assertEquals(printNext(features), 43138708); + assertEquals(printNext(features), 43138710); + assertEquals(printNext(features), 43138711); assertFalse(features.hasNext()); features.close(); reader.close(); } + + /** + * Prints the toString value of the next variant, and returns its start + * location + * + * @param features + * @return + */ + protected int printNext(CloseableIterator features) + { + VariantContext next = features.next(); + System.out.println(next.toString()); + return next.getStart(); + } + + // "https://storage.cloud.google.com/gnomad-public/release/2.0.1/vcf/exomes/gnomad.exomes.r2.0.1.sites.vcf.gz"; + + /** + * Test the query method that wraps a non-indexed VCF file + * + * @throws IOException + */ + @Test(groups = "Functional") + public void testQuery_plain() throws IOException + { + File f = writeVcfFile(); + VCFReader reader = new VCFReader(f.getAbsolutePath()); + + /* + * query for overlap of 5-8 - should find variant at 7 + */ + CloseableIterator variants = reader.query("20", 5, 8); + + /* + * INDEL G/GA variant + */ + VariantContext vc = variants.next(); + assertTrue(vc.isIndel()); + assertEquals(vc.getStart(), 7); + assertEquals(vc.getEnd(), 7); + Allele ref = vc.getReference(); + assertEquals(ref.getBaseString(), "G"); + List alleles = vc.getAlleles(); + assertEquals(alleles.size(), 2); + assertTrue(alleles.get(0).isReference()); + assertEquals(alleles.get(0).getBaseString(), "G"); + assertFalse(alleles.get(1).isReference()); + assertEquals(alleles.get(1).getBaseString(), "GA"); + + assertFalse(variants.hasNext()); + + variants.close(); + reader.close(); + } }