License: GPL v3 Python 3.12+ Bioinformatics Primer Design PCR Genomics
Uniqprimer designs specific primers for bacterial sequences. It identifies genomic regions unique to a set of "include" genomes compared to a set of "exclude" genomes and designs PCR primers for those regions.
Note: This repository is a modernized port of the original Uniqprimer software (originally written in Python 2) to Python 3.
- 🐍 Python 3 compatible: Modernized for modern Python 3.12+ runtimes.
- 📦 Conda-ready: Easy dependency management with
environment.yml. - 🎯 Improved Primer Design: Direct
primer3_coreintegration for precise thermodynamic & size parameters. - 🧩 Chunking Strategy: Efficiently handles large unique sequences by breaking them into manageable windows.
- 🔍 Cross-Validation: Automated validation of candidate primers against include/exclude genomes with
primersearch.
git clone https://github.com/dgutierrezcastillo/Uniqprimer-Py3.git
cd Uniqprimer-Py3
conda env create -f environment.yml
conda activate uniqprimerEnsure you have the following external dependencies installed and available in your PATH:
- Python >= 3.12
- MUMmer >= 3.23
- Primer3 >= 2.6.1
- EMBOSS (for
primersearch)
Then install the Python package:
pip install .Once installed, execute the uniqprimer CLI:
uniqprimer -i target_genome.fasta -x exclude_genome.fasta -o primers.txt
| Option | Description | Default |
|---|---|---|
-i, --include |
Include FASTA file (can be specified multiple times) | Required |
-x, --exclude |
Exclude FASTA file (can be specified multiple times) | Required |
-o, --output |
Output file for candidate primers | uPrimer.txt |
--chunksize |
Maximum sequence chunk length sent to Primer3 | 10000 |
--productsizerange |
Target PCR amplimer product size range | 200-250 |
--mintm, --maxtm, --opttm
|
Melting temperature ( |
57.0, 63.0, 60.0
|
--mingc, --maxgc
|
GC content constraints (%) |
20.0, 80.0
|
--crossvalidate |
Verify primer specificity against genomes using primersearch
|
False |
uniqprimer -i data/Xoo_KACC_10331.fasta -x data/XCCgenome.fasta --productsizerange 50-1000 --mintm 45 --maxtm 75 -o output.txt
Originally developed at Colorado State University by the Jan Leach Lab.
Maintained, modernized, and ported to Python 3 by Diego Gutiérrez Castillo.
This project is licensed under the GNU General Public License v3.0.