Expand description
biometal: ARM-native bioinformatics library with streaming architecture
§Overview
biometal enables analysis of terabyte-scale genomics datasets on consumer hardware through streaming architecture, ARM NEON optimization, and network streaming.
§Key Features
- Streaming: Constant ~5 MB memory regardless of dataset size
- ARM-Native: 16-25× speedup using NEON SIMD
- Network Streaming: Analyze without downloading (HTTP/SRA)
- Intelligent I/O: 16.3× speedup (parallel bgzip + mmap)
- Evidence-Based: Every optimization validated experimentally
§Quick Start
use biometal::FastqStream;
// Stream FASTQ from file (constant memory)
let stream = FastqStream::from_path("large.fq.gz")?;
for record in stream {
let record = record?;
// Process one record at a time
}§Evidence Base
biometal’s design is grounded in 1,357 experiments (40,710 measurements, N=30):
- Full methodology: https://github.com/shandley/apple-silicon-bio-bench
- Optimization rules: See
OPTIMIZATION_RULES.md
§Module Organization
alignment: Sequence alignment algorithms (Smith-Waterman with CPU/NEON/GPU)formats: Bioinformatics file format parsers (BED, GFA, VCF, GFF)io: Streaming parsers (FASTQ, FASTA, compression, network)operations: ARM NEON-optimized operationsoptimization: Auto-detection and platform tuning
Re-exports§
pub use alignment::smith_waterman;pub use alignment::smith_waterman;pub use alignment::Alignment;pub use alignment::CigarOp;pub use alignment::ScoringMatrix;pub use error::BiometalError;pub use error::Result;pub use io::FastaStream;pub use io::FastqStream;pub use io::FastqWriter;pub use io::PairedFastqStream;pub use types::FastaRecord;pub use types::FastqRecord;
Modules§
- alignment
- Sequence alignment algorithms
- error
- Error types for biometal
- formats
- Bioinformatics file format parsers.
- io
- I/O module: Streaming parsers and compression
- operations
- ARM NEON-optimized operations and sequence manipulation primitives
- optimization
- Platform detection and auto-optimization
- types
- Common types used throughout biometal
Constants§
- VERSION
- Library version