Class EdgeReadIterator

All Implemented Interfaces:
CloseableIterator<AbstractLocusInfo<EdgingRecordAndOffset>>, Closeable, AutoCloseable, Iterable<AbstractLocusInfo<EdgingRecordAndOffset>>, Iterator<AbstractLocusInfo<EdgingRecordAndOffset>>

Iterator that traverses a SAM File, accumulating information on a per-locus basis. Optionally takes a target interval list, in which case the loci returned are the ones covered by the interval list. If no target interval list, whatever loci are covered by the input reads are returned. By default duplicate reads and non-primary alignments are filtered out. Filtering may be changed via setSamFilters(). Difference from SamLocusIterator is that this implementation accumulates data only about start and end of alignment blocks from reads, not about each aligned base.
  • Constructor Details

    • EdgeReadIterator

      public EdgeReadIterator(SamReader samReader)
      Prepare to iterate through the given SAM records, skipping non-primary alignments. Do not use BAM index even if available.
      Parameters:
      samReader - must be coordinate sorted
    • EdgeReadIterator

      public EdgeReadIterator(SamReader samReader, IntervalList intervalList)
      Prepare to iterate through the given SAM records, skipping non-primary alignments.
      Parameters:
      samReader - must be coordinate sorted
      intervalList - Either the list of desired intervals, or null. Note that if an intervalList is passed in that is not coordinate sorted, it will be coordinated sorted by this class.
    • EdgeReadIterator

      public EdgeReadIterator(SamReader samReader, IntervalList intervalList, boolean useIndex)
      Prepare to iterate through the given SAM records, skipping non-primary alignments
      Parameters:
      samReader - must be coordinate sorted
      intervalList - Either the list of desired intervals, or null. Note that if an intervalList is passed in that is not coordinate sorted, it will be coordinated sorted here.
      useIndex - If true, do indexed lookup to improve performance. Not relevant if intervalList == null. It is no longer the case the useIndex==true can make performance worse. It should always perform at least as well as useIndex==false, and generally will be much faster.
  • Method Details