package htsjdk.tribble.dbsnp; import htsjdk.tribble.AbstractFeatureReader; import htsjdk.tribble.FeatureReader; import htsjdk.tribble.TestUtils; import htsjdk.tribble.annotation.Strand; import htsjdk.tribble.index.Index; import htsjdk.tribble.index.IndexFactory; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.util.Iterator; /** * @author aaron * <p/> * Class OldDbSNPCodecTest * <p/> * tests out the basics of a dbsnp feature */ public class OldDbSNPCodecTest { public static final File testFile = new File(TestUtils.DATA_DIR + "basicDbSNP.dbsnp"); public static Index index; private FeatureReader<OldDbSNPFeature> reader; // setup a new source before each class @BeforeTest public void beforeTest() { index = IndexFactory.createLinearIndex(testFile, new OldDbSNPCodec()); reader = AbstractFeatureReader.getFeatureReader(testFile.getAbsolutePath(), new OldDbSNPCodec(), index); } @Test public void testReadAllLines() { // Query try { Iterator<OldDbSNPFeature> iter = reader.query("1", 0, 35000000); int count = 0; while (iter.hasNext()) { OldDbSNPFeature feat = iter.next(); count++; } Assert.assertEquals(count, 42); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } @Test public void testReadAllLinesAlternateQueryString1() { // Query try { Iterator<OldDbSNPFeature> iter = reader.query("1", 433, 1937); int count = 0; while (iter.hasNext()) { OldDbSNPFeature feat = iter.next(); count++; } Assert.assertEquals(count, 41); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } @Test public void testReadAllLinesAlternateQueryString2() { // Query try { Iterator<OldDbSNPFeature> iter = reader.query("1", 1936, 1937); int count = 0; while (iter.hasNext()) { OldDbSNPFeature feat = iter.next(); count++; } Assert.assertEquals(count, 1); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } @Test public void testReturnedDBSNPEntry() { // Query try { Iterator<OldDbSNPFeature> iter = reader.query("1", 492, 492); if (!iter.hasNext()) Assert.fail("expected at least one entry"); // check all the fields from the file OldDbSNPFeature feat = iter.next(); Assert.assertTrue(feat.getChr().equals("1")); Assert.assertEquals(feat.getStart(), 492); Assert.assertEquals(feat.getEnd(), 492); Assert.assertTrue(feat.getRsID().equals("rs55998931")); Assert.assertEquals(feat.getScore(), 0); Assert.assertEquals(feat.getStrand(), Strand.POSITIVE); Assert.assertEquals(feat.getNCBIRefBase(), "C"); Assert.assertEquals(feat.getUCSCRefBase(), "C"); Assert.assertEquals(2, feat.getObserved().length); Assert.assertTrue("C".equals(feat.getObserved()[0])); Assert.assertTrue("T".equals(feat.getObserved()[1])); Assert.assertTrue("genomic".equals(feat.getMolType())); Assert.assertTrue("single".equals(feat.getVariantType())); Assert.assertTrue("unknown".equals(feat.getValidationStatus())); Assert.assertEquals(feat.getAvHet(), 0.0, 0.0001); Assert.assertEquals(feat.getAvHetSE(), 0.0, 0.0001); Assert.assertTrue("unknown".equals(feat.getFunction())); Assert.assertTrue("exact".equals(feat.getLocationType())); Assert.assertEquals(feat.getWeight(), 1); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } }