1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! 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
// VCF writer (planned)
// Variant statistics
// Filtering utilities
// Validation utilities
// Annotated VCF records
// Expression compilation for VCF
// Pushdown optimization support - Needs added
// pub mod pushdown;
// Re-export primary types for convenience
pub use AnnotatedVcfRecord;
pub use ;
pub use ;