slow5-rs

A library for interacting with SLOW5 files in rust.
Note: Library design is in flux and care should be taken in upgrading this crate.
Usage
Add the following to your Cargo.toml
:
toml
[dependencies]
slow5 = "0.3.0"
Note: version does not directly translate to version of slow5lib.
Example
Getting record by id
rust
fn get_by_read_id() {
let file_path = "examples/example.slow5";
let mut slow5_file = slow5::Builder::default().open(file_path).unwrap();
let record = slow5_file.get_read(b"r3").unwrap();
assert_eq!(b"r3", record.read_id());
}
Iterating over records sequentially
```rust
use std::error::Error;
fn iteratingexample() -> Result<(), Box> {
let filepath = "examples/example.slow5";
let mut slow5file = slow5::Builder::default()
.picoamps(true)
.open(filepath)?;
let mut reciter = slow5file.seqreads();
while let Some(Ok(slow5rec)) = reciter.next() {
// Iterate over every read
for signal in slow5rec.signal_iter() {
// Iterate over signal measurements in pA
}
}
Ok(())
}
```
TODO
- [x] Read slow5 file
- [ ] Write slow5 file
- [x] Iterating over records
- [x] Iterating over raw or picoamp measurements
- [ ] Parity with pyslow5
- [ ] Read blow5 file (haven't tested)
- [ ] Reading headers
- [ ] Reading aux info