Crates.io | crussmap |
lib.rs | crussmap |
version | 1.0.1 |
source | src |
created_at | 2023-04-12 08:24:19.411793 |
updated_at | 2023-04-14 12:33:38.384962 |
description | crussmap is a faster tool to convert genome coordinates between difference reference assemblies. Support file formats: [BED,...]. This project reconstructs the [CrossMap](https://github.com/liguowang/CrossMap) code by rust to effectively improve speed and performance |
homepage | https://wjwei.blog |
repository | https://github.com/wjwei-handsome/crussmap |
max_upload_size | |
id | 836670 |
size | 58,885 |
install cargo and rust here: https://www.rust-lang.org/tools/install
$ cargo install crussmap
View chain files in tsv/csv format of block pair representation:
## 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
Convert BED file from one assembly to another:
## 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
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:)
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 -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
Use nom to parse chain file, which is a fast and easy-to-use parser combinator library for Rust.
Utilize csv and serde to deserialize bed file.
A fast interval tree library: rust-lapper was used to build interval tree and query.
Licensed under the MIT license.