crussmap: CrossMap in Rust
crussmap is a faster tool to convert genome coordinates between difference reference assemblies.
Support file formats: [BED,...].
This project reconstructs the CrossMap code by rust to effectively improve speed and performance
INSTALL
install cargo and rust here: https://www.rust-lang.org/tools/install
USAGE
View
View chain files in tsv/csv format of block pair representation:
## view chain file in tsv format
> crussmap
## view chain file in csv format
> crussmap
BED
Convert BED file from one assembly to another:
## convert with stdout
> crussmap
## convert with file out
> crussmap
TODO
Some popular bio-formats should be supported, but I don't have enough time to do it. If you are interested in this project, just contribute to it:)
benchmark
environment
: 1.4 GHz 4-core Intel Core i5;16 GB 2133 MHz DDR3;macOS 13.2 (22D49)
## resonable file size of .bed and .chain
> wc
> wc
> time
CORE IMPROVEMENT
chain file parser
Use nom to parse chain file, which is a fast and easy-to-use parser combinator library for Rust.
bed file serializer
Utilize csv and serde to deserialize bed file.
interval tree
A fast interval tree library: rust-lapper was used to build interval tree and query.
ROADMAP
- support gz file input
- convert maf/paf/sam/delta to chian and crussmap
LICENSE
Licensed under the MIT license.