#bed #binary #dealing #genomic #format #data #stop

bin+lib bigbed

处理 BigBed 文件的 crate

5 个版本

0.2.0 2019 年 12 月 2 日
0.1.3 2019 年 12 月 2 日
0.1.2 2019 年 12 月 1 日
0.1.1 2019 年 12 月 1 日
0.1.0 2019 年 11 月 26 日

解析器实现 中排名第 2051

GPL-3.0 许可证

1MB
4K SLoC

Bitbake 3K SLoC // 0.0% comments Rust 1K SLoC // 0.1% comments

bigbed - Rust 的 BigBed crate

背景

BigBed 文件格式是流行的 BED 文件格式的二进制、随机访问版本。类似于 BED 的文件是以制表符分隔的文件,以以下方式存储基因组数据

chrom   start   stop
chr1    100     1000
chr1    3000    3200
chr2    200     230

有关这些文件格式的更多信息,请参阅 UCSC 基因组浏览器的相关页面

有关 BigBed 格式的更多信息,请参阅 Kent 等人于 2010 年发表的论文,BigWig 和 BigBed:实现大型分布式数据集的浏览(doi:10.1093/bioinformatics/btq351)。

此存储库包含用于处理 BigBed 文件的 Rust crate 的代码以及 Kent 等人提供的工具 bigBedToBed 的跨平台版本,该工具将 BigBed 文件转换为 BED 文件。

要求

此项目依赖于 Rust std crate 的 1.32 或更高版本中的函数。(您可以使用 cargo --version 检查 rustc / cargo 的版本。)如果您尚未升级到至少 1.32 版本,请运行 rustup,如下所示

rustup update

如果您没有通过 rustup 安装 Rust(即您通过软件包管理器安装了 Rust),我建议您删除当前的安装并使用 rustup 进行安装。如果您没有 rustup,您可以查阅 Rust 网站

Windows 用户注意事项

Windows 用户可能会遇到如下错误

错误:找不到链接器 link.exe

如果是这种情况,请确保您已安装所有正确的构建工具。(有关更多说明,请参阅此问题:https://github.com/rust-lang/rust/issues/43039。)

入门

此 crate 有两个主要组件

  • 用于操作 BigBed 文件的库
  • 一个示例二进制文件(rbb),它复制了 UCSC 的 bigBedToBed 的功能

构建库

要使用完整优化构建 bigbed 库,请运行以下命令

cargo build --release

所有库文件都将位于 target/release

构建示例二进制文件

要构建示例二进制文件(带完整优化),请运行以下命令

cargo build --features binary --release --bin rbb

rbb 二进制文件将在 target/release/rbb 下可用。(注意:Windows 用户可能只会发现名为 rbb.exe 的可执行文件,而不是仅仅是 rbb。)

测试

使用内置测试用例进行测试

该软件包包含内置测试用例以确保所有函数正常运行。要运行这些测试用例,请执行以下命令

cargo test

使用提供的测试文件进行测试

此存储库包括几个相应的 BED 和 bigbed 文件。例如,文件 test/beds/long.bedtest/bigbeds/long.bb 包含相同的数据,但分别以 BED 和 BigBed 格式。

要手动运行测试,请执行以下命令

# build the binary and run on long.bed
cargo run --features=binary test/bigbeds/long.bb test-long.bed

# compare test output to expected output
# this should produce no output if the program works
diff -q test-long.bed test/beds/long.bed

您可以使用 test/ 中提供的其他文件或您自己的文件重复此过程。

许可证

此软件包根据 GPL-3.0 许可。请参阅 LICENSE 获取详细信息。

依赖项