public CGIAlignmentReader(String url) throws MalformedURLException { URL u = HttpUtils.createURL(url); int port = u.getPort(); baseURL = u.getProtocol() + "://" + u.getHost(); if (port > 0) baseURL += ":" + port; baseURL += u.getPath(); query = u.getQuery(); factory = SamReaderFactory.makeDefault(). validationStringency(ValidationStringency.SILENT); loadHeader(); }
private void init() throws IOException { FileUtils.checkFile(bamFile); if (this.samReader == null) { SamReaderFactory srf = SamReaderFactory.make(); srf.validationStringency(ValidationStringency.LENIENT); this.samReader = srf.open(SamInputResource.of(bamFile.toFile())); } }
public SAMReader(String samFile, boolean requireIndex) throws IOException { this.samFile = samFile; if (requireIndex) { featureIndex = SamUtils.getIndexFor(samFile); if (featureIndex == null) { throw new IndexNotFoundException(samFile); } } factory = SamReaderFactory.makeDefault(). validationStringency(ValidationStringency.SILENT); loadHeader(); }
public static SAMFileHeader getFileHeader(Path input) throws IOException { FileUtils.checkFile(input); SamReaderFactory srf = SamReaderFactory.make(); srf.validationStringency(ValidationStringency.LENIENT); SamReader reader = srf.open(SamInputResource.of(input.toFile())); SAMFileHeader fileHeader = reader.getFileHeader(); reader.close(); return fileHeader; }
@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); try (final SamReader reader = factory.open(SamInputResource.of(samURL))) { Assert.assertEquals(countRecords(reader), 10); } }
private SamReader createSamReader(InputStream in, ValidationStringency stringency) { SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } return readerFactory.open(SamInputResource.of(in)); }
private List<SAMRecord> getSAMRecordsFromPath(final Path sourcePath, final File referenceFile) throws IOException { List<SAMRecord> recs = new ArrayList<>(); try (SamReader reader = SamReaderFactory.make() .validationStringency(ValidationStringency.SILENT) .referenceSequence(referenceFile).open(sourcePath)) { for (SAMRecord rec : reader) { recs.add(rec); } } return recs; }
private SamReader createSamReader(InputStream in, ValidationStringency stringency) { SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } return readerFactory.open(SamInputResource.of(in)); }
@Test public void testValidSamFile() throws Exception { final SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT).open(new File(TEST_DATA_DIR, "valid.sam")); final Histogram<String> results = executeValidation(samReader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertTrue(results.isEmpty()); }
@Test public void testSamFileVersion1pt5() throws Exception { final SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT).open(new File(TEST_DATA_DIR, "test_samfile_version_1pt5.bam")); final Histogram<String> results = executeValidation(samReader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.getCount(),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); }
@Test public void testSeqQualMismatch() throws Exception { final SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT) .open(new File(TEST_DATA_DIR, "seq_qual_len_mismatch.sam")); final Histogram<String> results = executeValidation(samReader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.get(SAMValidationError.Type.MISMATCH_SEQ_QUAL_LENGTH.getHistogramString()).getValue(), 8.0); }
@Test public void testPlatformMissing() throws Exception { final SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT) .open((new File(TEST_DATA_DIR, "missing_platform_unit.sam"))); final Histogram<String> results = executeValidation(samReader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.get(SAMValidationError.Type.MISSING_PLATFORM_VALUE.getHistogramString()).getValue(), 1.0); }
@Test public void testSortOrder() throws IOException { Histogram<String> results = executeValidation(SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT) .open(new File(TEST_DATA_DIR, "invalid_coord_sort_order.sam")), null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.get(SAMValidationError.Type.RECORD_OUT_OF_ORDER.getHistogramString()).getValue(), 1.0); results = executeValidation(SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT) .open(new File(TEST_DATA_DIR, "invalid_queryname_sort_order.sam")), null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.get(SAMValidationError.Type.RECORD_OUT_OF_ORDER.getHistogramString()).getValue(), 5.0); }
@Test(dataProvider = "testTruncatedScenarios") public void testTruncated(final String scenario, final String inputFile, final SAMValidationError.Type expectedError) throws Exception { final SamReader reader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT).open(new File(TEST_DATA_DIR, inputFile)); final Histogram<String> results = executeValidation(reader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertNotNull(results.get(expectedError.getHistogramString()), scenario); Assert.assertEquals(results.get(expectedError.getHistogramString()).getValue(), 1.0, scenario); }
private SAMFileHeader getFileHeader(final File sourceFile, final File referenceFile) throws IOException { try (final SamReader reader = SamReaderFactory.make() .validationStringency(ValidationStringency.SILENT) .referenceSequence(referenceFile).open(sourceFile)) { return reader.getFileHeader(); } }
private List<SAMRecord> getReads(final File bamFile) throws IOException { try (SamReader samReader = SamReaderFactory.makeDefault() .validationStringency(ValidationStringency.SILENT) .enable(SamReaderFactory.Option.INCLUDE_SOURCE_IN_RECORDS).open(bamFile)) { return Iterables.slurp(samReader); } }
@Test(dataProvider = "testUnmappedCounts") public void testUnmappedCounts(String acc, int expectedNumUnmapped) { SamReader reader = SamReaderFactory.make().validationStringency(ValidationStringency.SILENT).open( SamInputResource.of(new SRAAccession(acc)) ); final SAMRecordIterator samRecordIterator = reader.queryUnmapped(); assertCorrectCountsOfMappedAndUnmappedRecords(samRecordIterator, 0, expectedNumUnmapped); }
@Test(dataProvider = "testReferenceAlignedCounts") public void testReferenceAlignedCounts(String acc, String reference, int referenceStart, int expectedNumMapped) { SamReader reader = SamReaderFactory.make().validationStringency(ValidationStringency.SILENT).open( SamInputResource.of(new SRAAccession(acc)) ); final SAMRecordIterator samRecordIterator = reader.queryAlignmentStart(reference, referenceStart); assertCorrectCountsOfMappedAndUnmappedRecords(samRecordIterator, expectedNumMapped, 0); }
@Test(dataProvider = "testCountsBySpan") public void testCountsBySpan(String acc, List<Chunk> chunks, int expectedNumMapped, int expectedNumUnmapped) { SamReader reader = SamReaderFactory.make().validationStringency(ValidationStringency.SILENT).open( SamInputResource.of(new SRAAccession(acc)) ); final SAMRecordIterator samRecordIterator = ((SamReader.Indexing) reader).iterator(new BAMFileSpan(chunks)); assertCorrectCountsOfMappedAndUnmappedRecords(samRecordIterator, expectedNumMapped, expectedNumUnmapped); }