Low-latency adaptive sampling using asynchroneous streams and RPC.
Streamfish started as a side project to re-implement the ReadUntil API and parts of the Minknow API in Rust. I wanted to better understand how the adaptive sampling mechanics work in the background.
While Streamfish approaches the adaptive sampling mechanics from a slightly different angle than Readfish by using asynchroneous streams, it implements many of the principles developed by the LooseLab. You could consider Streamfish a highly experimental relative of Readfish.
It is very much recommended not to use it for real sequencing runs, unless you are swimming in money or something 🐡
- Motivation
- Documentation
- Features
- Warnings
- System requirements
- Installation
- Dependencies
- Schematics
- Simulations
- Benchmarks
A full description of features, configurations and deployment options can be found in the documentation.
- Low-latency asynchroneous streaming implementation of the adaptive sampling client
- RPC servers for adaptive sampling and dynamic real-time assembly with alignment feedback loops
- Slice and dice partitioning of flow cells for high throughput optimization using multiple clients
- Experiment and latency benchmark runners with fully-integrated
Icarustconfigurations - Simulations of signal microbiomes with
SquigulatorandSlow5/Blow5extensions forIcarust
More details on Streamfish features can be found in the documentation (TBD).
This is an experimental adaptive sampling client. It is not user-friendly. Please use Readfish or other suitable implementations for real sequencing experiments.
- Linux system with suitable resources and NVIDIA GPU capable of running Guppy/Dorado
MinKNOW > v.5.3for TLS certificates and playback of live sequence runs
I have mainly tested this system on a gaming computer running Ubuntu 20.04 LTS with 16 cores (AMD), NVIDIA GTX 3060 12GB RAM with drivers supporting CUDA 11.4 or higher and 48 GB RAM. Streamfish client and server run their asynchroneous routines on a single thread. Basecalling and reference mapping require more resources depending on throughput and experiment configuration. Slice and dice configurations may be more exhaustive on CPU depending on how many clients are run simultaneously; slice and dice partitions can be spread across multiple GPUs.
TBD
TBD
TBD
TBD
TBD
