Class IntervalKeepPairFilter

  • All Implemented Interfaces:
    SamRecordFilter

    public class IntervalKeepPairFilter
    extends Object
    implements SamRecordFilter
    Filter out SAMRecords where neither record of a pair overlaps a given set of intervals. If one record of a pair overlaps the interval list, than both are kept. It is required that the SAMRecords are passed in coordinate order, have non-null SAMFileHeaders, and that Mate Cigar (MC) is present.
    • Constructor Detail

      • IntervalKeepPairFilter

        public IntervalKeepPairFilter​(List<Interval> intervals)
        Prepare to filter out SAMRecords that do not overlap the given list of intervals
        Parameters:
        intervals -
    • Method Detail

      • filterOut

        public boolean filterOut​(SAMRecord record)
        Determines whether a SAMRecord matches this filter. Takes record, finds the location of its mate using the MC tag. Checks if either record overlaps the current interval using overlap detector. If yes, return false -> don't filter it out. If a read is secondary or supplementary, filter read out. Use IntervalFilter if you want to keep these reads, but NOTE: the resulting bam may not be valid.
        Specified by:
        filterOut in interface SamRecordFilter
        Parameters:
        record - the SAMRecord to evaluate
        Returns:
        true if the SAMRecord matches the filter, otherwise false
      • filterOut

        public boolean filterOut​(SAMRecord first,
                                 SAMRecord second)
        Determines whether a pair of SAMRecord matches this filter
        Specified by:
        filterOut in interface SamRecordFilter
        Parameters:
        first - the first SAMRecord to evaluate
        second - the second SAMRecord to evaluate
        Returns:
        true if both SAMRecords do not overlap the interval list