9个版本
0.3.1 | 2023年2月14日 |
---|---|
0.3.0 | 2023年2月12日 |
0.2.2 | 2022年12月30日 |
0.2.1 | 2021年6月20日 |
0.0.3 | 2018年9月2日 |
#241 in 压缩
2,776 每月下载量
在 7 个 包中使用(6个直接使用)
98KB
2K SLoC
bgzip-rs
BGZF的Rust实现
特性标志
rayon
: 启用基于 rayon 的多线程读写。这是默认特性。log
: 启用 log 包来记录警告。这是默认特性。rust_backend
: 使用 miniz_oxide 包作为 flate2 后端。这是默认特性。zlib
: 使用zlib
作为 flate2 后端。请阅读 flate2 的描述以获取详细信息。zlib-ng
: 使用zlib-ng
作为 flate2 后端。请阅读 flate2 的描述以获取详细信息。zlib-ng-compat
: 请阅读 flate2 的描述以获取详细信息。cloudflare_zlib
: 请阅读 flate2 的描述以获取详细信息。libdeflater
: 使用 libdeflater 代替 flate2 包。
编写示例
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(())
}
读取示例
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(())
}
作者
Yasunobu OKAMURA
许可证
MIT
依赖项
~1.5–2.8MB
~53K SLoC