Primer3 Input -version 0.4.0- -
SEQUENCE=AGCTAGCTACGATCGATTCGATCGATCGATCGATCG Specify where primers can bind. Coordinates are 1-based.
For advanced use cases, pair Primer3 v0.4.0 with scripts (Perl, Python, or R) to parse output and iterate over multiple sequences. The input format described here remains compatible with later versions (v2.x, v3.x), making it a timeless skill for bioinformaticians.
Designing reliable PCR primers is a cornerstone of molecular biology. While Primer3 has been the industry standard for decades, its command-line interface—specifically the input formatting—can be daunting. This article focuses on Primer3 version 0.4.0 , explaining how to structure your input file to leverage the full power of this release. The Core Syntax: Key-Value Pairs Primer3 v0.4.0 uses a simple, line-oriented, key-value pair format. Every input file must end with a blank line followed by a line containing only = .
PRIMER_OPT_SIZE=20 PRIMER_MIN_SIZE=18 PRIMER_MAX_SIZE=27 PRIMER_OPT_TM=60.0 PRIMER_MIN_TM=57.0 PRIMER_MAX_TM=63.0 PRIMER_MAX_DIFF_TM=3.0 Avoid 3' instability and low-complexity regions. primer3 input -version 0.4.0-
PRIMER_SEQUENCE_ID=my_amplicon SEQUENCE=ATCGGCTAGCTAGCTCGATCGATCGATCGATGCGCTAGC PRIMER_TASK=pick_detection_primers = While many parameters are inherited from earlier versions, version 0.4.0 introduced refined control over mispriming libraries and output formatting. 1. Defining Your Sequence You must provide the target sequence. Use SEQUENCE for the template. For internal oligos (e.g., hybridization probes), use SEQUENCE_INTERNAL .
PRIMER_PICK_LEFT_INPUT=1 # Start of left primer search region PRIMER_PICK_RIGHT_INPUT=500 # End of right primer search region To force primers to flank a specific SNP or target:
PRIMER_MAX_MISPRIMING=12.0 PRIMER_MAX_END_MISPRIMING=6.0 PRIMER_NUM_RETURN=5 Running Primer3 v0.4.0 Save your input as input.txt . Then run: The input format described here remains compatible with
PRIMER_MIN_GC=20.0 PRIMER_MAX_GC=80.0 PRIMER_GC_CLAMP=1 # At least 1 G or C in the last 5 bases PRIMER_MAX_POLY_X=4 # Max run of single base (e.g., AAAA) A major improvement in the v0.4.x lineage is the enhanced mispriming library handling.
The basic structure looks like this:
primer3_core < input.txt > output.txt For debugging, use the --strict_tags flag to catch misspelled parameter names: This article focuses on Primer3 version 0
PRIMER_INTERNAL_OPT_SIZE=20 PRIMER_INTERNAL_MIN_SIZE=18 PRIMER_INTERNAL_MAX_SIZE=30 PRIMER_INTERNAL_OPT_TM=65.0 # Probe Tm should be 5-8°C higher than primers PRIMER_INTERNAL_MIN_TM=63.0 PRIMER_INTERNAL_MAX_TM=68.0 Here is a real-world input for amplifying a 200 bp region from a bacterial 16S rRNA gene:
PRIMER_MISPRIMING_LIBRARY=/path/to/human_repeat_masked.lib PRIMER_MAX_MISPRIMING=12.00 # Maximum allowed mispriming score PRIMER_MAX_END_MISPRIMING=6.00 # Max mispriming score in last 5 bases : The mispriming scoring is more stringent. For highly repetitive targets, increase PRIMER_MAX_MISPRIMING to 15.0 . 6. Product Size Control PRIMER_PRODUCT_SIZE_RANGE=100-300 PRIMER_PRODUCT_OPT_SIZE=200 7. Internal Oligo (Probe) Parameters If PRIMER_TASK=pick_detection_primers , you can specify probe constraints.
PRIMER_PICK_LEFT_INPUT=200 PRIMER_PICK_RIGHT_INPUT=400 PRIMER_PRODUCT_SIZE_RANGE=150-250 Version 0.4.0 respects standard thermodynamic calculations (nearest-neighbor).