JAL-1793 simple tests of reading raw and indexed VCF files with htsjdk
[jalview.git] / test / jalview / ext / htsjdk / TabixFeatureReaderTest.java
1 package jalview.ext.htsjdk;
2
3 import htsjdk.tribble.CloseableTribbleIterator;
4 import htsjdk.tribble.TabixFeatureReader;
5 import htsjdk.variant.variantcontext.VariantContext;
6 import htsjdk.variant.vcf.VCFCodec;
7
8 import java.io.IOException;
9
10 import org.testng.annotations.Test;
11
12 public class TabixFeatureReaderTest
13 {
14   // gnomAD exome variant dataset
15   private static final String VCF_PATH = "/Volumes/gjb/smacgowan/NOBACK/resources/gnomad/gnomad.exomes.r2.0.1.sites.vcf.gz";
16
17   // "https://storage.cloud.google.com/gnomad-public/release/2.0.1/vcf/exomes/gnomad.exomes.r2.0.1.sites.vcf.gz";
18
19   /**
20    * A 'test' that demonstrates querying an indexed VCF file for features in a
21    * specified interval
22    * 
23    * @throws IOException
24    */
25   @Test
26   public void testQuery() throws IOException
27   {
28     /*
29      * if not specified, assumes index file is filename.tbi
30      */
31     TabixFeatureReader<VariantContext, VCFCodec> reader = new TabixFeatureReader<>(
32             VCF_PATH, VCF_PATH, new VCFCodec());
33
34     /*
35      * gene NMT1 (human) is on chromosome 17
36      * GCHR38 (Ensembl): 45051610-45109016
37      * GCHR37 (gnoMAD): 43128978-43186384
38      * CDS begins at offset 9720, first CDS variant at offset 9724
39      */
40     CloseableTribbleIterator<VariantContext> features = reader.query("17",
41             43128978 + 9724, 43128978 + 9734); // first 11 CDS positions
42     while (features.hasNext())
43     {
44       System.out.println(features.next().toString());
45     }
46
47     features.close();
48     reader.close();
49   }
50
51 }