#生物信息学 #测序 #纳米孔 #文件解析

podders

使用原生 Rust 编写未压缩的 Pod5 文件。无 FFI!PODDDDERS

3 个版本

0.1.4 2024 年 7 月 10 日
0.1.3 2024 年 1 月 10 日
0.1.2 2023 年 12 月 20 日
0.1.1 2023 年 12 月 20 日
0.1.0 2023 年 12 月 20 日

#122生物学

Apache-2.0

215KB
1.5K SLoC

Podders

podchamp

[!NOTE] Pod 大王即将到来 Pronounced pɒdəɹz

一个非常简单的原生 Rust 库,用于编写 POD5 文件。无 FFI Woooooooo 让我们出发吧

限制

很多!

  • ** 未压缩信号** - 我在 7 天内把它冲了出来,所以目前我们仅限于未压缩信号。
  • 仅写入 - 再次做到了我需要做的事情。我希望能在某一天添加更多功能,但现在我们只能这样。

示例用法


fn test() -> arrow::error::Result<()> {
    let mut pod5 = Pod5File::new("test_builder.pod5").unwrap();

    pod5.push_run_info(dummy_run_info());
    pod5.write_run_info_to_ipc();
    println!("{:#?}", pod5.run_table.length);

    let read = dummy_read_row(None).unwrap();
    let read_2 = dummy_read_row(Some("9e81bb6a-8610-4907-b4dd-4ed834fc414d")).unwrap();

    pod5.push_read(read);

    pod5.push_read(read_2);
    pod5.write_reads_to_ipc();
    // println!("{:#?}", pod5._signal);
    pod5.write_signal_to_ipc();
    pod5.write_footer();

    Ok(())
}

变更日志

V0.1.1

  • 将 RunInfoData 和 ReadInfo 结构体的字段设置为公共的 - 哎呀!

依赖项

~12–19MB
~260K SLoC