I would like to design a number of arbitrary degenerate primers (primers with variable bases, e.g. NGATWGCTSATNGC) for a TAIL-PCR.

I would like to be able to specify the following parameters for the design function:

  • Annealing temperature (ideally 44°C)
  • Degeneracy (how many variations of the AD primer there are (ideally 128 or 256)
  • Binding frequency on (mouse) genome (ideally 1/3000) - though this may be contingent on the degeneracy, and vice-versa.
  • Non-binding area (of course I would not like any variation of the primer to bind to the known-sequence area in between my specific primers and the unknown area which I want to sequence)

Any ideas of any tools that can help me with the above steps? For Primer design I have used eprimer3 thus far (with invariably satisfactory results) - but it seems to not support the concept of arbitrary degenerate primers.

Ideally, if I had a function which could sort out the first of the above criteria, I could use Biopython and BLAST to script the rest myself. Though the binding frequency would take hours if not a day or two, for BLAST to determine it. It would greatly help if anybody already wrote something more elaborate for this.

  • $\begingroup$ Do you know the sequence that you want? I mean, the degenerate places marked as N but the rest present. I don't know of a program that does it. But I can suggest you a workflow that would use simple scripts and existing bioinformatics tools. $\endgroup$
    Commented Jul 1, 2015 at 14:07
  • $\begingroup$ go, ahead, suggest! As for the question, no, the sequence itself is completely irrelevant to me. what I care about are the criteria mentioned above. Any sequence that fulfills them would suit my purposes. $\endgroup$
    – TheChymera
    Commented Jul 1, 2015 at 14:11
  • $\begingroup$ Regarding the 4th point: I am assuming that the exact primer is of same length as the degenerate ones. Do you want primers with variable lengths? That will be more complicated. $\endgroup$
    Commented Jul 1, 2015 at 14:15
  • $\begingroup$ By the "exact" primer you mean the specific primer(s) for the TAILPCR? if so, no, they are ~20bp, the AD primers should be around ~14bp (though I guess that can be varied a bit to account for binding frequency and annealing temperature). $\endgroup$
    – TheChymera
    Commented Jul 1, 2015 at 14:52

1 Answer 1


If you already know the basic sequence i.e. the fixed regions in the primer; for e.g. the known nucleotides in the sequence - NGATWGCTSATNGC, then you can implement your algorithm like this:

  • Fix the max length of the primers. Lets say 20nt.
  • Generate all combinations of primers (20nt): that is pretty straightforward. You will have
    4N × 2(R+Y+S+W+K+M) × 3(B+D+V+H) number of combinations, where each alphabet denotes number of such instances. Chek this site for the nucleotide codes.
  • Calculate the Tm of the primer-template pairs. UNAfold has a nucleotide hybridization Tm calculator. You can specify parameters like salt concentration etc. There are other such tools too. These can be run on the commandline.
  • Discard all primers have Tm below the acceptable limit.
  • For those that exceed the acceptable Tm, keep dropping a base from the 3' until the Tm reaches within the range.
  • If primer length goes below 14nt then discard the primer.
  • Now with all these selected primers check for parameters like self hybridization, GC clamp etc (OPTIONAL). You can use primer3 for these purposes by running it on the primer_check mode.
  • Download the nr/nt BLAST database.
  • Adjust BLAST parameters for short nucleotide search: Decrease the word length, increase e-value cutoff etc (See this biostar post and BLAST help).
  • BLAST your primers against the database in plus-minus mode.
  • Worry only about cases where there is significant alignment at the 3' of the primer as only these can cause extension.

These instructions can be automated using any language or shell script.

Questions on script writing would be off-topic in this site. You can ask specific doubts about coding in stackoverflow.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .