public interface SamReader extends java.lang.Iterable<SAMRecord>, java.io.Closeable
SAMRecord
s and associated information.
Currently, only deprecated readers implement this directly; actual readers implement this
via SamReader.ReaderImplementation
and SamReader.PrimitiveSamReader
, which SamReaderFactory
converts into full readers by using SamReader.PrimitiveSamReaderToSamReaderAdapter
.Modifier and Type | Interface and Description |
---|---|
static class |
SamReader.AssertingIterator |
static interface |
SamReader.Indexing
Facet for index-related operations.
|
static interface |
SamReader.PrimitiveSamReader
The minimal subset of functionality needed for a
SAMRecord data source. |
static class |
SamReader.PrimitiveSamReaderToSamReaderAdapter
Decorator for a
SamReader.PrimitiveSamReader that expands its functionality into a SamReader ,
given the backing SamInputResource . |
static class |
SamReader.ReaderImplementation
Internal interface for SAM/BAM/CRAM file reader implementations,
as distinct from non-file-based readers.
|
static class |
SamReader.Type
Describes a type of SAM file.
|
Modifier and Type | Method and Description |
---|---|
SAMFileHeader |
getFileHeader() |
java.lang.String |
getResourceDescription() |
boolean |
hasIndex() |
SamReader.Indexing |
indexing()
Exposes the
SamReader.Indexing facet of this SamReader . |
SAMRecordIterator |
iterator()
Iterate through file in order.
|
SAMRecordIterator |
query(QueryInterval[] intervals,
boolean contained)
Iterate over records that match one of the given intervals.
|
SAMRecordIterator |
query(java.lang.String sequence,
int start,
int end,
boolean contained)
Iterate over records that match the given interval.
|
SAMRecordIterator |
queryAlignmentStart(java.lang.String sequence,
int start)
Iterate over records that map to the given sequence and start at the given position.
|
SAMRecordIterator |
queryContained(QueryInterval[] intervals)
Iterate over records that are contained in the given interval.
|
SAMRecordIterator |
queryContained(java.lang.String sequence,
int start,
int end)
Iterate over records that are contained in the given interval.
|
SAMRecord |
queryMate(SAMRecord rec)
Fetch the mate for the given read.
|
SAMRecordIterator |
queryOverlapping(QueryInterval[] intervals)
Iterate over records that overlap any of the given intervals.
|
SAMRecordIterator |
queryOverlapping(java.lang.String sequence,
int start,
int end)
Iterate over records that overlap the given interval.
|
SAMRecordIterator |
queryUnmapped() |
SamReader.Type |
type() |
SAMFileHeader getFileHeader()
SamReader.Type type()
SamReader.Type
of this SamReader
java.lang.String getResourceDescription()
boolean hasIndex()
SamReader.Indexing indexing()
SamReader.Indexing
facet of this SamReader
.java.lang.UnsupportedOperationException
- If hasIndex()
returns false.SAMRecordIterator iterator()
iterator
in interface java.lang.Iterable<SAMRecord>
SAMRecordIterator query(java.lang.String sequence, int start, int end, boolean contained)
sequence
- Reference sequence of interest.start
- 1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.end
- 1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.contained
- If true, each SAMRecord returned will have its alignment completely contained in the
interval of interest. If false, the alignment of the returned SAMRecords need only overlap the interval of interest.SAMRecordIterator queryOverlapping(java.lang.String sequence, int start, int end)
sequence
- Reference sequence of interest.start
- 1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.end
- 1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.SAMRecordIterator queryContained(java.lang.String sequence, int start, int end)
sequence
- Reference sequence of interest.start
- 1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.end
- 1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.SAMRecordIterator query(QueryInterval[] intervals, boolean contained)
intervals
- Intervals to be queried. The intervals must be optimized, i.e. in order, with overlapping
and abutting intervals merged. This can be done with QueryInterval.optimizeIntervals(htsjdk.samtools.QueryInterval[])
contained
- If true, each SAMRecord returned is will have its alignment completely contained in one of the
intervals of interest. If false, the alignment of the returned SAMRecords need only overlap one of
the intervals of interest.SAMRecordIterator queryOverlapping(QueryInterval[] intervals)
intervals
- Intervals to be queried. The intervals must be optimized, i.e. in order, with overlapping
and abutting intervals merged. This can be done with QueryInterval.optimizeIntervals(htsjdk.samtools.QueryInterval[])
SAMRecordIterator queryContained(QueryInterval[] intervals)
intervals
- Intervals to be queried. The intervals must be optimized, i.e. in order, with overlapping
and abutting intervals merged. This can be done with QueryInterval.optimizeIntervals(htsjdk.samtools.QueryInterval[])
SAMRecordIterator queryUnmapped()
SAMRecordIterator queryAlignmentStart(java.lang.String sequence, int start)
sequence
- Reference sequence of interest.start
- Alignment start of interest.SAMRecord queryMate(SAMRecord rec)
rec
- Record for which mate is sought. Must be a paired read.