6个版本
| 0.1.9 | 2023年7月19日 |
|---|---|
| 0.1.8 | 2023年7月19日 |
| 0.1.5 | 2022年11月17日 |
| 0.1.4 | 2022年9月27日 |
#292 in 生物学
在 3 crate中使用
27KB
627 行
gtftools
一个用于解析和查询Ensembl-GTF格式文件的crate。
解析器达到接近 wc -l 的吞吐量。
使用方法
此功能作为迭代器使用,并接收任何实现 BufRead 的项目。
从文件
use std::{fs::File, io::BufReader};
use gtftools::GtfReader;
let handle = File::open("data/example.gtf")
.map(BufReader::new)
.unwrap();
let num_records = GtfReader::from_bufread(handle)
.filter_map(|x| x.ok())
.count();
assert_eq!(num_records, 10);
从Gzip文件
use std::{fs::File, io::BufReader};
use flate2::read::MultiGzDecoder;
use gtftools::GtfReader;
let handle = File::open("data/example.gtf.gz")
.map(MultiGzDecoder::new)
.map(BufReader::new)
.unwrap();
let num_records = GtfReader::from_bufread(handle)
.filter_map(|x| x.ok())
.count();
assert_eq!(num_records, 10);
依赖项
~1.9–2.9MB
~57K SLoC