Ejemplo n.º 1
0
 @Test
 public void testSamReaderFromURL() throws IOException {
   final String samFilePath = new File(TEST_DATA_DIR, "unsorted.sam").getAbsolutePath();
   final URL samURL = new URL("file://" + samFilePath);
   final SamReaderFactory factory =
       SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT);
   final SamReader reader = factory.open(SamInputResource.of(samURL));
   Assert.assertEquals(countRecords(reader), 10);
 }
Ejemplo n.º 2
0
 @Test
 public void testSamReaderFromSeekableStream() throws IOException {
   // even though a SAM isn't indexable, make sure we can open one
   // using a seekable stream
   final File samFile = new File(TEST_DATA_DIR, "unsorted.sam");
   final SamReaderFactory factory =
       SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT);
   final SamReader reader = factory.open(SamInputResource.of(new SeekableFileStream(samFile)));
   Assert.assertEquals(countRecords(reader), 10);
 }
Ejemplo n.º 3
0
 @Test(expectedExceptions = SAMFormatException.class)
 public void testSamReaderFromMalformedSeekableStream() throws IOException {
   // use a bogus (.bai file) to force SamReaderFactory to fall through to the
   // fallback code that assumes a SAM File when it can't determine the
   // format of the input, to ensure that it results in a SAMFormatException
   final File samFile = new File(TEST_DATA_DIR, "cram_with_bai_index.cram.bai");
   final SamReaderFactory factory =
       SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT);
   final SamReader reader = factory.open(SamInputResource.of(new SeekableFileStream(samFile)));
   countRecords(reader);
 }
Ejemplo n.º 4
0
  public SamReader getSamReader(ResourceLocator locator, boolean requireIndex) throws IOException {

    if (requireIndex) {
      final SamReaderFactory factory =
          SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT);

      SeekableStream indexStream = getIndexStream(locator.getBamIndexPath());
      this.indexed = true;

      SeekableStream ss =
          new IGVSeekableBufferedStream(
              IGVSeekableStreamFactory.getInstance().getStreamFor(url), 128000);
      SamInputResource resource = SamInputResource.of(ss).index(indexStream);
      return factory.open(resource);
    } else {
      InputStream is = HttpUtils.getInstance().openConnectionStream(url);
      return new SAMFileReader(new BufferedInputStream(is));
    }
  }
Ejemplo n.º 5
0
  @Test(dataProvider = "variousFormatReaderTestCases")
  public void samRecordFactoryTest(final String inputFile) throws IOException {
    final File input = new File(TEST_DATA_DIR, inputFile);

    final SAMRecordFactoryTester recordFactory = new SAMRecordFactoryTester();
    final SamReaderFactory readerFactory =
        SamReaderFactory.makeDefault().samRecordFactory(recordFactory);
    final SamReader reader = readerFactory.open(input);

    int i = 0;
    for (final SAMRecord ignored : reader) {
      ++i;
    }
    reader.close();

    Assert.assertTrue(i > 0);
    if (inputFile.endsWith(".sam") || inputFile.endsWith(".sam.gz"))
      Assert.assertEquals(recordFactory.samRecordsCreated, i);
    else if (inputFile.endsWith(".bam")) Assert.assertEquals(recordFactory.bamRecordsCreated, i);
  }
Ejemplo n.º 6
0
  private void getCRAMReaderFromInputResource(
      final BiFunction<URL, URL, SamInputResource> getInputResource,
      final boolean hasIndex,
      final int expectedCount)
      throws IOException {
    final String cramFilePath =
        new File(TEST_DATA_DIR, "cram_with_bai_index.cram").getAbsolutePath();
    final String cramIndexPath =
        new File(TEST_DATA_DIR, "cram_with_bai_index.cram.bai").getAbsolutePath();
    final URL cramURL = new URL("file://" + cramFilePath);
    final URL indexURL = new URL("file://" + cramIndexPath);

    final SamReaderFactory factory =
        SamReaderFactory.makeDefault()
            .referenceSource(new ReferenceSource(new File(TEST_DATA_DIR, "hg19mini.fasta")))
            .validationStringency(ValidationStringency.SILENT);
    final SamReader reader = factory.open(getInputResource.apply(cramURL, indexURL));

    int count =
        hasIndex
            ? countRecordsInQueryInterval(reader, new QueryInterval(1, 10, 1000))
            : countRecords(reader);
    Assert.assertEquals(count, expectedCount);
  }