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); }
@Test public void testCRAMReaderWithCRAIFromNonFilePath() throws IOException { final File cramFile = new File(TEST_DATA_DIR, "cram/cramQueryWithCRAI.cram"); final File cramIndex = new File(TEST_DATA_DIR, "cram/cramQueryWithCRAI.cram.crai"); final File referenceFile = new File(TEST_DATA_DIR, "cram/human_g1k_v37.20.21.10M-10M200k.fasta"); try (final FileSystem jimfs = Jimfs.newFileSystem(Configuration.unix())) { final Path jimfsCRAM = jimfs.getPath("acram.cram"); final Path jimfsCRAI = jimfs.getPath("acram.crai"); Files.copy(cramFile.toPath(), jimfsCRAM); Files.copy(cramIndex.toPath(), jimfsCRAI); final SamReaderFactory factory = SamReaderFactory.makeDefault() .referenceSource(new ReferenceSource(referenceFile)) .validationStringency(ValidationStringency.SILENT); // force SamReaderFactory through the CRAM code path for a CRAM with an index that can't be rendered as a file try (final SamReader cramReader = factory.open(jimfsCRAM)) { final SAMRecordIterator samIt = cramReader.query("20", 1, 1, false); Assert.assertNotNull(samIt); }; } }
private void verifyWriterOutput(File outputFile, ReferenceSource refSource, int nRecs, boolean verifySupplementalFiles) { if (verifySupplementalFiles) { final File indexFile = SamFiles.findIndex(outputFile); indexFile.deleteOnExit(); final File md5File = new File(outputFile.getParent(), outputFile.getName() + ".md5"); md5File.deleteOnExit(); Assert.assertTrue(indexFile.length() > 0); Assert.assertTrue(md5File.length() > 0); } SamReaderFactory factory = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT); if (refSource != null) { factory.referenceSource(refSource); } SamReader reader = factory.open(outputFile); SAMRecordIterator it = reader.iterator(); int count = 0; for (; it.hasNext(); it.next()) { count++; } Assert.assertTrue(count == nRecs); }
private void verifyWriterOutput(Path output, ReferenceSource refSource, int nRecs, boolean verifySupplementalFiles) throws IOException { if (verifySupplementalFiles) { final Path index = SamFiles.findIndex(output); final Path md5File = IOUtil.addExtension(output, ".md5"); Assert.assertTrue(Files.size(index) > 0); Assert.assertTrue(Files.size(md5File) > 0); } SamReaderFactory factory = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT); if (refSource != null) { factory.referenceSource(refSource); } SamReader reader = factory.open(output); SAMRecordIterator it = reader.iterator(); int count = 0; for (; it.hasNext(); it.next()) { count++; } Assert.assertTrue(count == nRecs); }
/** Does not close the stream. */ public static SAMFileHeader readSAMHeaderFromStream( final InputStream in, final Configuration conf) { final ValidationStringency stringency = getValidationStringency(conf); SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } final ReferenceSource refSource = getReferenceSource(conf); if (null != refSource) { readerFactory.referenceSource(refSource); } return readerFactory.open(SamInputResource.of(in)).getFileHeader(); }
/** Does not close the stream. */ public static SAMFileHeader readSAMHeaderFrom( final InputStream in, final Configuration conf) { final ValidationStringency stringency = getValidationStringency(conf); SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } final ReferenceSource refSource = getReferenceSource(conf); if (null != refSource) { readerFactory.referenceSource(refSource); } return readerFactory.open(SamInputResource.of(in)).getFileHeader(); }
/** Does not close the stream. */ public static SAMFileHeader readSAMHeaderFrom( final InputStream in, final Configuration conf) { final ValidationStringency stringency = getValidationStringency(conf); SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } final ReferenceSource refSource = getReferenceSource(conf); if (null != refSource) { readerFactory.referenceSource(refSource); } return readerFactory.open(SamInputResource.of(in)).getFileHeader(); }
factory.referenceSource(rs);
referenceSource(new IGVReferenceSource()). validationStringency(ValidationStringency.SILENT); SamInputResource resource;
w.close(); final SamReader reader = SamReaderFactory.make().validationStringency(validationStringency).referenceSource(new ReferenceSource((File)null)). open(SamInputResource.of(new ByteArrayInputStream(baos.toByteArray()))); final SAMRecordIterator iterator = reader.iterator();