A command-line tool to generate step-by-step serial dilution pipetting schemes for microbiology and GMP laboratories. It calculates transfer and diluent volumes for a series of tubes given a stock concentration, dilution factor, number of tubes, and desired final volume per tube.
- Define stock concentration, dilution factor (e.g., 10 for 1:10), number of tubes, and tube volume.
- Supports custom concentration units (cfu/ml, mg/ml, etc.).
- Choose between mL and µL volume units for display.
- Output in human-readable table format (default) or CSV for data import.
- Verbose mode prints natural-language pipetting instructions.
- Built entirely in Rust with no external dependencies for fast, reliable execution.
- Handles invalid inputs gracefully with descriptive error messages.
- Ensure you have Rust and Cargo installed (https://rustup.rs).
- Clone the repository:
git clone https://github.com/yourusername/serial-dilution-planner.git cd serial-dilution-planner - Build in release mode:
cargo build --release
- The binary will be at
./target/release/serial-dilution-planner.
Serial Dilution Planner
Usage: serial-dilution-planner --stock <conc> --factor <dilution_factor> --tubes <num> --volume <total_vol> [OPTIONS]
Options:
--stock Stock solution concentration (positive number)
--factor Dilution factor per step (>1, e.g. 10 for 1:10)
--tubes Number of dilution tubes (>0)
--volume Total volume per tube (in the unit selected by --vol-unit)
--unit Concentration unit label (default: units/ml)
--vol-unit Volume display unit: 'ml' (default) or 'ul'
--output Output format: 'table' (default) or 'csv'
--verbose Print detailed pipetting instructions
--help Show this help message
-
Basic 1:10 serial dilution with 5 tubes, 1 mL each:
serial-dilution-planner --stock 1e6 --factor 10 --tubes 5 --volume 1.0 --unit cfu/ml
-
Using microliter volumes and CSV output:
serial-dilution-planner --stock 500 --factor 5 --tubes 4 --volume 200 --vol-unit ul --unit mg/ml --output csv
-
Verbose instructions for manual pipetting:
serial-dilution-planner --stock 100 --factor 2 --tubes 3 --volume 0.5 --verbose
This project is licensed under the MIT License - see the LICENSE file for details.