#文件格式 #基因组 #bed #转换文件 #坐标 #参考 #生物信息学

bin+lib crussmap

crussmap 是一个将基因组坐标在不同参考组装之间转换的更快工具。支持的文件格式:[BED,…]。本项目通过 Rust 重构了 CrossMap 代码,有效地提高了速度和性能

2 个稳定版本

1.0.1 2023年4月14日
1.0.0 2023年4月12日

#1343 in 解析实现

MIT 许可证

30KB
693

Crates.io Crates.io (latest) GitHub Workflow Status Crates.io GitHub repo size

crussmap: CrossMap 在 Rust 中

crussmap 是一个将基因组坐标在不同参考组装之间转换的更快工具。

支持的文件格式:[BED,...]。

本项目通过 Rust 重构了 CrossMap 代码,有效地提高了速度和性能

安装

在此处安装 cargo 和 rust:https://www.rust-lang.net.cn/tools/install

$ cargo install crussmap

用法

查看

查看块对表示的 tsv/csv 格式的链文件

## view chain file in tsv format
> crussmap view --input data/test.chain --output out_file

## view chain file in csv format
> crussmap view --input data/test.chain --output out_file --csv

BED

将一个组装的 BED 文件转换为另一个组装

## convert with stdout
> crussmap bed --bed data/test.bed --input data/test.chain

## convert with file out
> crussmap bed --bed data/test.bed --input data/test.chain --output output_bed --unmap unmap_bed

待办事项

应该支持一些流行的生物格式,但我没有足够的时间去做。如果你对这个项目感兴趣,只需为其贡献力量:)

基准测试

环境: 1.4 GHz 4 核 Intel Core i5;16 GB 2133 MHz DDR3;macOS 13.2 (22D49)

## resonable file size of .bed and .chain
> wc -l long.bed
10013 long.bed
> wc -l v2v3.chain
253064 v2v3.chain
> time release/crussmap bed -b long.bed -i v2v3.chain -o test.out -u test.unmap

________________________________________________________
Executed in  253.78 millis    fish           external
   usr time  197.93 millis    0.16 millis  197.77 millis
   sys time   51.45 millis    1.02 millis   50.43 millis

核心改进

链文件解析器

使用 nom 解析链文件,这是一个快速且易于使用的 Rust 解析器组合库。

bed 文件序列化器

利用 csvserde 反序列化 bed 文件。

区间树

一个快速区间树库:使用 rust-lapper 来构建区间树和查询。

路线图

  • 支持 gz 文件输入
  • 将 maf/paf/sam/delta 转换为链和 crussmap

许可证

MIT 许可证 下许可。

依赖关系

~5MB
~83K SLoC