pub struct Reader { /* private fields */ }
Expand description
A BAM reader.
Implementations§
Source§impl Reader
impl Reader
Sourcepub fn from_stdin() -> Result<Self>
pub fn from_stdin() -> Result<Self>
Create a new Reader from STDIN.
Sourcepub fn iter_chunk(
&mut self,
start: Option<i64>,
end: Option<i64>,
) -> ChunkIterator<'_, Self> ⓘ
pub fn iter_chunk( &mut self, start: Option<i64>, end: Option<i64>, ) -> ChunkIterator<'_, Self> ⓘ
Iterator over the records between the (optional) virtual offsets start
and end
§Arguments
-
start
- Optional starting virtual offset to seek to. Throws an error if it is not a valid virtual offset. -
end
- Read until the virtual offset is less thanend
Trait Implementations§
Source§impl Read for Reader
impl Read for Reader
Source§fn read(&mut self, record: &mut Record) -> Option<Result<()>>
fn read(&mut self, record: &mut Record) -> Option<Result<()>>
Read the next BAM record into the given Record
.
Returns None
if there are no more records.
This method is useful if you want to read records as fast as possible as the
Record
can be reused. A more ergonomic approach is to use the records
iterator.
§Errors
If there are any issues with reading the next record an error will be returned.
§Examples
use rust_htslib::errors::Error;
use rust_htslib::bam::{Read, Reader, Record};
let mut bam = Reader::from_path(&"test/test.bam")?;
let mut record = Record::new();
// Print the TID of each record
while let Some(r) = bam.read(&mut record) {
r.expect("Failed to parse record");
println!("TID: {}", record.tid())
}
Source§fn records(&mut self) -> Records<'_, Self> ⓘ
fn records(&mut self) -> Records<'_, Self> ⓘ
Iterator over the records of the fetched region.
Note that, while being convenient, this is less efficient than pre-allocating a
Record
and reading into it with the read
method, since every iteration involves
the allocation of a new Record
.
Source§fn rc_records(&mut self) -> RcRecords<'_, Self> ⓘ
fn rc_records(&mut self) -> RcRecords<'_, Self> ⓘ
Source§fn header(&self) -> &HeaderView
fn header(&self) -> &HeaderView
Source§fn set_thread_pool(&mut self, tpool: &ThreadPool) -> Result<()>
fn set_thread_pool(&mut self, tpool: &ThreadPool) -> Result<()>
crate::tpool::ThreadPool::new(n_threads)
Read more