Rust implementation of BGZF
rust
use bgzip::{BGZFWriter, BGZFError};
use std::io::{self, Write};
fn main() -> Result<(), BGZFError> {
let mut write_buffer = Vec::new();
let mut writer = BGZFWriter::new(&mut write_buffer, flate2::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(())
}
```rust 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/commonall20180418half.vcf.gz")?); let mut line = String::new(); reader.readline(&mut line)?; asserteq!("##fileformat=VCFv4.0\n", line); reader.bgzfseek(4210818610)?; line.clear(); reader.readline(&mut line)?; asserteq!("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