genomicframe-core 0.2.0

High-performance genomics I/O and interoperability layer
Documentation
//! VCF (Variant Call Format) support
//!
//! This module provides streaming VCF parsing with automatic gzip detection,
//! variant statistics, quality filtering, and validation utilities.
//!
//! # Design Philosophy
//!
//! - **Streaming-first**: Process files larger than RAM with O(1) memory
//! - **Simple API**: One obvious way to do things (`VcfReader::from_path()`)
//! - **Gzip automatic**: `.vcf.gz` and `.vcf.bgz` handled transparently
//! - **Composable**: Readers, filters, and stats work together
//!
//! # Quick Start
//!
//! ```no_run
//! use genomicframe_core::formats::vcf::VcfReader;
//! use genomicframe_core::core::GenomicRecordIterator;
//!
//! // Open VCF file (handles .vcf.gz automatically)
//! let mut reader = VcfReader::from_path("variants.vcf.gz")?;
//!
//! // Stream through variants
//! while let Some(variant) = reader.next_record()? {
//!     if variant.is_pass() {
//!         println!("{:?}", variant);
//!     }
//! }
//! # Ok::<(), genomicframe_core::error::Error>(())
//! ```
//!
//! # Module Organization
//!
//! - [`reader`] - Core VCF reader implementation
//! - [`writer`] - VCF writer (planned)
//! - [`stats`] - Variant statistics (Ts/Tv, allele freq, Hardy-Weinberg)
//! - [`filters`] - Quality filters, region filters, predicate combinators
//! - [`validation`] - Format validation and error checking

// Core reader implementation
pub mod reader;

// VCF writer (planned)
pub mod writer;

// Variant statistics
pub mod stats;

// Filtering utilities
pub mod filters;

// Validation utilities
pub mod validation;

// Annotated VCF records
pub mod annotated;

// Expression compilation for VCF
pub mod expression;

// Pushdown optimization support - Needs added
// pub mod pushdown;

// Re-export primary types for convenience
pub use annotated::AnnotatedVcfRecord;
pub use reader::{VcfHeader, VcfReader, VcfRecord};
pub use stats::{GenotypeStats, TransitionType, VariantType, VcfStats};