a tool for designing primer panels for multiplex PCR.
primalscheme is a tool for designing primer panels for multiplex PCR. It uses a greedy algorithm to find primers for tiling amplicon generation for multiple reference genomes. It works best on viral isolates of known lineages e.g. outbreak strains.
a web interface is available at primalscheme.com, although it does not currently support all available options.
Create & activate a virtual environment (recommended):
python3 -m venv /path/to/primal-venv
source /path/to/primal-venv/bin/activate
or on Windows:
python -m venv c:\path\to\primal-venv
c:\path\to\primal-venv\Scripts\activate.bat
Install primalscheme with pip:
pip install primalscheme
git clone https://github.com/aresti/primalscheme.git primalscheme
cd primalscheme
python3 -m venv venv
source venv/bin/activate
pip install .
Note: if you'd like your installation to be editable, use:
pip install flit
flit install --pth-file
(--pth-file
vs --symlink
: maintains module visibility for IDE debuggers, and works on Windows.)
To design a multiplex scheme run primalscheme multiplex <FASTA>
.
If you're looking for test inputs you can try CHIKV_demo.fa, Ebov-10-Pan.fasta or nCov-2019.fasta
--amplicon-size, -a
: Amplicon size target. Pass twice to set an exact range (e.g, -a 220 -a 250), otherwise expect +/- 5% (default 380, 420).--outpath, -o
: Path to output directory (default: ./output).--name, -n
: Prefix name for your outputs (default: scheme).--target-overlap, -t
: Target insert overlap size (default: 0).--debug, -d
: Set log level DEBUG.--force, -f
: Force output to an existing directory, overwrite files.--pinned, -p
: Only consider primers from the first reference.--high-gc, -g
: Use config suitable for high-GC sequences.--help, -h
: Show help message and exit.Many parameters are not directly exposed in the CLI as we believe they are necessary for successful multiplex PCR. However, most values can be modified in config.py
if you install the package from source in editable mode with flit install --pth-file
(see above).
{output_dir}/{prefix}.reference.fasta
- all input references{output_dir}/{prefix}.primer.bed
- coordinates of primer positions{output_dir}/{prefix}.insert.bed
- coordinates of trimmed amplicons{output_dir}/{prefix}.primer.tsv
- primer sequences and information{output_dir}/{prefix}.plot.pdf
- diagrammatic overview of scheme (PDF){output_dir}/{prefix}.plot.svg
- diagrammatic overview of scheme (SVG){output_dir}/{prefix}.report.json
- run report (reference ids, regions, gaps, coverage){output_dir}/{prefix}.pickle
- pickled Python objects (if --debug){output_dir}/{prefix}.log
- run logs (more detail if --debug)cat "sequence (1).fasta" "sequence (2).fasta" > input.fasta
We strongly recommend using the PCR conditions outlined in the Nature Protocols paper.
If you use primalscheme please cite:
Quick J et al. Multiplex PCR method for MinION and Illumina sequencing of Zika and other virus genomes directly from clinical samples. Nat Protoc. 2017 Jun;12(6):1261-1276.