#dna #sequence #compressing #storage #base #bits #decompressing

base_sequence_compression

用于压缩和解压缩DNA序列的库

3个版本

0.1.2 2024年7月31日
0.1.1 2024年6月19日
0.1.0 2024年6月18日

压缩分类中排名第177

Download history 307/week @ 2024-06-14 52/week @ 2024-06-21 1/week @ 2024-06-28 2/week @ 2024-07-05 107/week @ 2024-07-26 24/week @ 2024-08-02 2/week @ 2024-08-09

每月下载量133

MIT许可证

8KB
59

基础序列压缩

Base Sequence Compression是一个Rust库,用于压缩和解压缩DNA序列。此库有效地编码DNA序列,在减少存储空间的同时保留原始数据的完整性。DNA碱基(A、C、T、G)使用每个2位进行编码,从而实现显著的压缩。

特性

  • 压缩和解压缩:将DNA序列压缩成二进制格式,并将其解压缩回原始形式。
  • 错误处理:通过panic处理无效的DNA序列,确保数据完整性。
  • 压缩率计算:计算压缩率以评估压缩效率。

用法

将库添加到您的项目

将以下内容添加到您的Cargo.toml

[dependencies]
base_sequence_compression = "0.1.0"

示例

以下是如何使用此库的示例

use base_sequence_compression::{compress_sequence, decompress_sequence};

fn main() {
    let dna_sequence = "ACGTACGTACGT";
    let compressed = compress_sequence(dna_sequence);
    let decompressed = decompress_sequence(&compressed);

    assert_eq!(dna_sequence, decompressed);
    println!("Compression successful!");
}

API

compress_sequence

将DNA序列压缩成二进制格式。

pub fn compress_sequence(sequence: &str) -> Vec<u8>
  • 输入&str - 要压缩的DNA序列。
  • 输出Vec<u8> - 压缩的二进制数据。

decompress_sequence

将二进制数据解压缩回原始DNA序列。

pub fn decompress_sequence(compressed: &[u8]) -> String
  • 输入&[u8] - 压缩的二进制数据。
  • 输出String - 解压缩的DNA序列。

测试

该库包含了一套完整的测试,以确保压缩和解压缩函数的正确性。要运行测试,请使用以下命令

cargo test

测试用例

  • 压缩和解压缩:测试压缩和解压缩各种序列,包括边缘情况。
  • 无效序列处理:确保通过panic适当处理无效序列。
  • 压缩率:评估压缩算法的效率。

示例测试

以下是一个检查DNA序列压缩和解压缩的示例测试

#[test]
fn test_compress_decompress() {
    let dna_sequence = "ACGTACGTACGT";
    let compressed = compress_sequence(dna_sequence);
    let decompressed = decompress_sequence(&compressed);

    assert_eq!(dna_sequence, decompressed);
}

许可证

本项目受MIT许可证许可。有关详细信息,请参阅LICENSE文件。

贡献

欢迎贡献!如果您有任何改进或错误修复,请打开一个issue或提交一个pull request。

致谢

感谢贡献者和开源社区给予宝贵的反馈和支持。


仓库Base Sequence Compression

如有关于库的任何问题或建议,请随时联系。

无运行时依赖