@Override public SAMRecordIterator queryAlignmentStart(final String sequence, final int start) { return new AssertingIterator(this.reader.queryAlignmentStart(sequence, start)); }
private SAMRecord getSingleRecordStartingAt(final SamReader reader, final String sequence, final int alignmentStart) { final CloseableIterator<SAMRecord> it = reader.queryAlignmentStart(sequence, alignmentStart); Assert.assertTrue(it.hasNext()); final SAMRecord rec = it.next(); Assert.assertNotNull(rec); Assert.assertFalse(it.hasNext()); it.close(); return rec; }
@Test public void testQueryAlignmentStart() { final SamReader reader = SamReaderFactory.makeDefault().open(BAM_FILE); CloseableIterator<SAMRecord> it = reader.queryAlignmentStart("chr1", 202160268); Assert.assertEquals(countElements(it), 2); it.close(); it = reader.queryAlignmentStart("chr1", 201595153); Assert.assertEquals(countElements(it), 1); it.close(); // There are records that overlap this position, but none that start here it = reader.queryAlignmentStart("chrM", 10400); Assert.assertEquals(countElements(it), 0); it.close(); // One past the last chr1 record it = reader.queryAlignmentStart("chr1", 246817509); Assert.assertEquals(countElements(it), 0); it.close(); CloserUtil.close(reader); }
@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); }
SAMRecord secondRecord = null; try (final SamReader reader = factory.open(cramFileName)) { final CloseableIterator<SAMRecord> it = reader.queryAlignmentStart("20", 100013); Assert.assertTrue(it.hasNext()); firstRecord = it.next();