@Test(dataProvider = "testData") public void testIntervalPairFilter(final List<Interval> intervals, final long expectedPassingRecords) { final IntervalKeepPairFilter filter = new IntervalKeepPairFilter(intervals); long actualPassingRecords = builder.getRecords().stream() .filter(rec -> !filter.filterOut(rec)) .count(); Assert.assertEquals(actualPassingRecords, expectedPassingRecords); }
@Test public void testSingleEndedReads() { final List<Interval> intervalList = new ArrayList<>(); final Interval interval1 = new Interval("chr1", 1, 999); intervalList.add(interval1); final IntervalKeepPairFilter filter = new IntervalKeepPairFilter(intervalList); boolean singleEnded = builder.getRecords().stream() .filter(rec -> !filter.filterOut(rec)) .anyMatch(rec -> rec.getReadName().equals("single_ended")); Assert.assertFalse(singleEnded); }
@Test public void testNotPrimaryReads() { final List<Interval> intervalList = new ArrayList<>(); final Interval interval1 = new Interval("chr1", 1, 999); intervalList.add(interval1); final IntervalKeepPairFilter filter = new IntervalKeepPairFilter(intervalList); boolean notPrimary = builder.getRecords().stream() .filter(rec -> !filter.filterOut(rec)) .anyMatch(rec -> rec.isSecondaryAlignment() || rec.getSupplementaryAlignmentFlag()); Assert.assertFalse(notPrimary); }
@Test public void testUnmappedPair() { final List<Interval> intervalList = new ArrayList<>(); final Interval interval1 = new Interval("chr1", 1, 999); final Interval interval2 = new Interval("chr3", 1, 2); final Interval interval3 = new Interval("chr2", 1, 2); final Interval interval4 = new Interval("chr4", 1, 2); intervalList.addAll(CollectionUtil.makeList(interval1, interval2, interval3, interval4)); final IntervalKeepPairFilter filter = new IntervalKeepPairFilter(intervalList); boolean unmappedPassed = builder.getRecords().stream() .filter(rec -> !filter.filterOut(rec)) .anyMatch(rec -> rec.getReadName().equals("both_unmapped")); Assert.assertFalse(unmappedPassed); }
case includePairedIntervals: filteringIterator = new FilteringSamIterator(samReader.iterator(), new IntervalKeepPairFilter(getIntervalList(INTERVAL_LIST))); break; case includeTagValues:
case includePairedIntervals: filteringIterator = new FilteringSamIterator(samReader.iterator(), new IntervalKeepPairFilter(getIntervalList(INTERVAL_LIST))); break; case includeTagValues: