9 releases
0.3.1 | Feb 14, 2023 |
---|---|
0.3.0 | Feb 12, 2023 |
0.2.2 | Dec 30, 2022 |
0.2.1 | Jun 20, 2021 |
0.0.3 | Sep 2, 2018 |
#162 in Compression
2,926 downloads per month
Used in 7 crates
(6 directly)
98KB
2K
SLoC
bgzip-rs
Rust implementation of BGZF
Feature flags
rayon
: Enable rayon based multi-threaded reader/writer. This is default feature.log
: Enable log crate to log warnings. This is default feature.rust_backend
: use miniz_oxide crate for flate2 backend. This is default feature.zlib
: usezlib
for flate2 backend. Please read flate2 description for the detail.zlib-ng
: usezlib-ng
for flate2 backend. Please read flate2 description for the detail.zlib-ng-compat
: Please read flate2 description for the detail.cloudflare_zlib
: Please read flate2 description for the detail.libdeflater
: use libdeflater instead of flate2 crate.
Write Examples
use bgzip::{BGZFWriter, BGZFError, Compression};
use std::io::{self, Write};
fn main() -> Result<(), BGZFError> {
let mut write_buffer = Vec::new();
let mut writer = BGZFWriter::new(&mut write_buffer, Compression::default());
writer.write_all(b"##fileformat=VCFv4.2\n")?;
writer.write_all(b"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n")?;
writer.close()?;
Ok(())
}
Read Examples
use bgzip::{BGZFReader, BGZFError};
use std::io::{self, BufRead};
use std::fs;
fn main() -> Result<(), BGZFError> {
let mut reader =
BGZFReader::new(fs::File::open("testfiles/common_all_20180418_half.vcf.gz")?)?;
let mut line = String::new();
reader.read_line(&mut line)?;
assert_eq!("##fileformat=VCFv4.0\n", line);
reader.bgzf_seek(4210818610)?;
line.clear();
reader.read_line(&mut line)?;
assert_eq!("1\t72700625\trs12116859\tT\tA,C\t.\t.\tRS=12116859;RSPOS=72700625;dbSNPBuildID=120;SSR=0;SAO=0;VP=0x05010008000517053e000100;GENEINFO=LOC105378798:105378798;WGT=1;VC=SNV;SLO;INT;ASP;VLD;G5A;G5;HD;GNO;KGPhase1;KGPhase3;CAF=0.508,.,0.492;COMMON=1;TOPMED=0.37743692660550458,0.00608435270132517,0.61647872069317023\n", line);
Ok(())
}
Author
Yasunobu OKAMURA
License
MIT
Dependencies
~1.5–2.5MB
~52K SLoC