#bioinformatics #sequencing #nanopore #file-parsing

podders

Write uncompressed Pod5 files in native rust. No FFI! PODDDDERS

2 releases

0.1.3 Jan 10, 2024
0.1.2 Dec 20, 2023
0.1.1 Dec 20, 2023
0.1.0 Dec 20, 2023

#111 in Biology

Apache-2.0

215KB
1.5K SLoC

Podders

podchamp

[!NOTE] The pod champ commeth Pronounced pɒdəɹz

Very simple native rust lib for writing POD5 files. No FFI Woooooooo LET'S GOOOOO

Limitations

Many!

  • ** Uncompressed signal** - I blasted this out in 7 days, so currently we are limited to uncompressed Signal.
  • Writing only - Again does what I need it to do. I would like to add more features at some point, but for now we are stuck with this.

Example usage


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(())
}

Changelog

V0.1.1

  • Made struct fields on RunInfoData and ReadInfo public - whoops!

Dependencies

~12–21MB
~256K SLoC