#gtf #nom #parser #bioinformatics #ensembl

已删除 nom-gtf

使用nom编写的裸骨GTF读取器

0.1.3 2022年9月23日
0.1.2 2022年9月23日
0.1.1 2022年9月23日

#14 in #gtf

MIT 许可证

13KB
308 代码行

nom-gtf

使用nom构建的gtf解析器。

这实现了接近 wc -l 的吞吐量。

用法

这意味着它应该用作迭代器,并接收任何实现 BufRead 的项目。

从文件中读取

use std::{fs::File, io::BufReader};
use nom_gtf::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 nom_gtf::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.5MB
~26K SLoC