pub struct GffReader { /* private fields */ }Expand description
GFF/GTF file reader (streaming, memory-efficient)
The only way to create a GffReader is GffReader::from_path().
This follows the same design as VcfReader - one obvious way to read a file.
Implementations§
Source§impl GffReader
impl GffReader
Sourcepub fn from_path<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn from_path<P: AsRef<Path>>(path: P) -> Result<Self>
Open a GFF/GTF file - handles .gff, .gtf, .gff.gz, .gtf.gz automatically
§Memory Behavior
- Opens file handle (~8KB buffer)
- Parses header (~1-10KB typically)
- Does NOT load annotations into memory
- Records are parsed on-demand as you iterate
§Example
use genomicframe_core::formats::gff::GffReader;
use genomicframe_core::core::GenomicRecordIterator;
// Works with multi-GB files using only ~10KB RAM
let mut reader = GffReader::from_path("gencode.v45.gff3.gz")?;
while let Some(record) = reader.next_record()? {
if record.feature_type == "exon" {
println!("{:?}", record);
}
}Trait Implementations§
Source§impl GenomicReader for GffReader
impl GenomicReader for GffReader
Auto Trait Implementations§
impl Freeze for GffReader
impl !RefUnwindSafe for GffReader
impl !Send for GffReader
impl !Sync for GffReader
impl Unpin for GffReader
impl UnsafeUnpin for GffReader
impl !UnwindSafe for GffReader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filter<F>(self, filter: F) -> FilteredReader<Self::Record, Self, F>where
F: RecordFilter<Self::Record>,
fn filter<F>(self, filter: F) -> FilteredReader<Self::Record, Self, F>where
F: RecordFilter<Self::Record>,
Apply a filter to this reader Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more