Generate randomized 96‑well microplate layouts for biological assays. Suitable for ELISA, cell‑based assays, and any plate‑based experiment that requires random placement of samples, standards, controls, and blanks.
- Randomized layout with a reproducible random seed (
--seed) - Supports samples with user‑specified replicates
- Supports standards (calibrators) at multiple concentrations with separate replicate counts
- Additional controls and blanks can be added
- Exports layout as CSV or ASCII table
- Full 96‑well capacity check – error if the requested wells exceed the plate
- GMP‑ready: deterministic output for the same seed, clear error messages, and easy integration into documentation
Requires Python 3.7+ (no external dependencies). Clone the repository and run the script directly:
git clone https://github.com/youruser/microplate-layout-generator.git
cd microplate-layout-generatorRun main.py with command‑line arguments. The tool prints the layout to stdout or writes to a file if --output is specified.
python main.py \
--samples 10 \
--sample-replicates 2 \
--standards "0,0.1,1,10,100" \
--standard-replicates 2 \
--blanks 2 \
--seed 42 \
--format ascii| Flag | Description | Default |
|---|---|---|
--samples |
Number of unique samples | (required) |
--sample-replicates |
Replicates per sample | 1 |
--standards |
Comma‑separated list of standard concentrations | None |
--standard-replicates |
Replicates for each standard | 1 |
--controls |
Number of extra control wells (e.g., positive control) | 0 |
--blanks |
Number of blank wells | 0 |
--seed |
Integer seed for reproducible randomization | (system‑random) |
--format |
Output format: csv or ascii |
csv |
--output |
File to write (default: stdout) | None |
Well,Content,Value
A1,Empty,
A2,Sample,3
A3,Sample,1
A4,Standard,0.1
A5,Blank,
... 1 2 3 4 5 6 7 8 9 10 11 12
+---+---+---+---+---+---+---+---+---+---+---+---+
A | S1|ST2|BLK|BLK| S3| ...
B |ST0| S5|ST1| ...
...
The tool returns a deterministic layout when a seed is provided, making it traceable and GMP compliant.