Primer3: Frequently Asked Questions

November, 2006

General Questions

Who is responsible for Primer3?
Steve Rozen and Helen Skaletsky are the main authors of the current version.

We are in the process of moving the development of primer3, its web interface, and it documentation to SourceForge Logo. If you are interested in helping out at any level (for example, C code, perl code, web design, release engineering, enhancements, user documentations), please post e-mail to primer3-mail (at) or send e-mail to steverozen (at), and thank you!

Department of Bioinformatics at Institute of Molecular and Cell Biology University of Tartu provides a Web-based primer picking interface at, which is provided as a service to the research community, and it is not supported by dedicated funds.

Other organizations with which we have no connection also offer the Web interface.

All code and the Department of Bioinformatics at Institute of Molecular and Cell Biology University of Tartu Web service are offered on an "as-is", use-at-your-own-risk basis.

What kind of support is available for Primer3?
Primer3 is offered on an "as-is", use-at-your-own-risk basis. We do not have resources to individually answer most questions, though they might make their way into this FAQ.
How can I cite Primer3?
Rozen S, Skaletsky H (2000) Primer3 on the WWW for general users and for biologist programmers. In: Krawetz S, Misener S (eds) Bioinformatics Methods and Protocols: Methods in Molecular Biology. Humana Press, Totowa, NJ, pp 365-386
Can Primer3 check existing primers?
Can Primer3 design hybridization probes?

Questions about using the Web interface

Can I use the Primer3 Web interface to design primers in "batch" mode?
No, our server would not be able to support the amount of computation necessary. The Primer3 command line version is specifically tailored to design primers in batch mode. It can be compiled on Unix or Linux based systems.
In the Primer3 Web interface, is there some way to save my usual parameters?
Unfortunately, no, nor are there any concrete plans to add this functionality. It is of course easy to do this for the command line version of Primer3.

Questions about installing Primer3 locally, command-line or Web interface

How do I compile primer3_core for Max OS X?
You need to edit the Makefile to remove the -static flag. It seems that gcc on Max OS X decides to link in a library specified by -lcrt0, and the static version of this library is not normally shipped with Max OS X. If you leave in the -static flag and run make you will get a link-time error similar to the following:
ld: can't locate file for -lcrt0.o
Why do the Web version and the command line version pick different primers? Which ones are better / right?
The default parameters for the Web service are different from the default parameters for the command line version. We have kept the default parameters for the command line version unchanged over many releases for backward compatibility, while the default parameters for the Web version represent our best guess as to useful parameters for a casual user.

If you check the "Show Debugging Info" box in the Web input form, then the results will include the exact input given to primer3_core.

Questions about modifying Primer3 or integrating it into other systems

I want to design 40-mer oligos using primer3, but the default compilation of primer3 has MAX_PRIMER_LENGTH = 36 (in the Makefile). Can I change this to 40 (or 200)? How would this change the functioning of the program?
The short answer is "yes", you can increase the value of MAX_PRIMER_LENGTH in the Makefile, and primer3 will still do something approximately reasonable. There are two cautions, though.
  1. The nearest-neighbor model of oligo melting temperatures is a good fit for short oligos, but presumably breaks down for longer oligos. Therefore, there is a more obscure parameter, in primer3_main.c, called MAX_TM_NN_LENGTH, which indicates the maximum length for which to use the nearest neighbor model when calculating oligo Tmís. In primer3_main.c as provided, this is set to 36 (the default value of MAX_PRIMIER_LENGTH). For oligos over MAX_TM_NN_LENGTH, the program uses a GC% formula. See oligotm.h, long_seq_tm() for the formula. We do not know the maximum reasonable value for MAX_TM_NN_LENGTH. Also, if you design oligos of various lengths, you will get a discontinuity in oligo Tmís between MAX_TM_NN_LENGTH and MAX_TM_NN_LENGTH+1. If you are thinking about hybridization to oligos attached to a surface, as far as we know, the modeling of this has lagged, so the GC% formula might be just fine.

  2. There has been much interest in recent years in designing oligos for hybridization, for example, for spotted arrays for mRNA expression profiling. There may be off-the-shelf software that is better fitted to your needs. In particular, there are two packages that offer documented models of secondary structure that are more detailed than those in primer3, which may be important for longer oligos:

    1. OligoArray 2.1
    2. Oligo Design Platform and

    If you are designing oligos for expression profiling, you may want to check them for cross hybridization to other transcripts (anything in the rest of the transcriptome). OligoArray 2.1 does this. We are not sure about Oligo Design Platform.

    Disclaimer: we have no first-hand experience with these packages.

How do I get permission to use Primer3 for our system?
No specific permission is needed. Please read the copyright notice for the very liberal conditions.

Steve Rozen