JaMBW Chapter 5.2
What is this applet for
This applet is designed to make simple the work of selecting primer pairs for the exploitment of Polymerase Chain Reaction.
The terminology "forward" and "reverse" primers is as described by Lincoln et al. (1991) in Primer 0.5 documentation:
Given a DNA sequence, PRIMER adopts the following naming conventions:
Plus Strand ||||
|||| Target ||||
|||| Minus Strand
How to use this applet
It is extremely easy: just paste in the sequence window your sequence (also in GCG format, just be sure of pasting everything
after the "double dot" that is in the header of the GCG file), then fill in the parameters and then push the compute button.
Please fill in ALL the parameters, do not leave blank ones ! Also, just type in NUMBERS where required, and
not in fractional notation (e.g. 13.4) or exponential (e.g. 1.0E+1) but just as integers ( e.g. 123).
The area for the input sequence can be filled with both upper or lower or mixed case, it will only accept ATCGNX, where
for N or X is meaning "anything".
How to interprete its behaviour
While the program will be doing the job you will notice:
As soon as the search of primers is completed, the "status bar" will disappear and be replaced by a gridded field
with dots of various color, ranging from red to green. That will be the indication of the completion of the search.
- one or more "status" indicators will be showing how much percentage of the job had been done. This is done
both graphically (using red and green combination, changing from left to right by approaching completion) and with digits.
will be started a new page will open up and will contain the detailed list of all the primers tested, after optimization of their
length for meeting the Tm requirements that you have set.
- while the program will be running and until the list of all the primers used is not complete, the status
indicator of the loading on the bottom part of the browser will be showing a striped set. This will automatically
change to a filled bar as soon as the list is complete.
How to interprete the results
in the Browser that you use, tested with Netscape Navigator 3.0.1 running on Macintosh OS):
- looking at the dots
The horizontal grid represents location of the first 5' base of a forward primer in the Plus Strand, with the 5' end on the left
side and the 3' end on the right side.
The vertical grid represent location of the first 5' base of a reverse primer in the Minus Strand, with the 5' end on the bottom
side and the 3' end on the top side
Thus each dot in the grid represents a combination of forward and reverse primers.
Therefore, the more distant are the dots from the upper left corner of the graph, the larger is their PCR product.
Moreover, each dot is colored according to a coloring mechanism based on the difference in optimal melting temperature
between the selected primers. Practically:
This color-coding strategy is designed in order of making easier of immediately realize which primer pairs should produce
the easiest hybridization conditions, and their location along the grid already gives an impression of the size of the
- the primer pair (one reverse and one forward) with the most similar melting
temperature (and thus more ideal condition for its hybridization) gets a green color,
- while the one with largest difference gets a red color
- Any primer pair with intermediate values gets a intermediate colour
- clicking at the dots
The dots are there to be clicked. Upon clicking on a dot the detailed information on the selected primer pair is
given, with the optimal melting temperature, product size, obviously the sequence of the primers, where they start
from and so on. One can start clicking on the dots still before the table with all the primer is finished (writing takes
longer than drawing :->). Although the information content of this cliccable graph is rather high, there is a rather
limited application in storing it as picture, and thus since this operation would increase further the complexity of the
program, it is not currently implemented (e.g. not possible to save/print this grid, if you think is useful, let the
Author know and he will try to make this option in the next release :-> and keep you informed).
Clicking on a non-dot
Any point in the grid coincide to a pair of primers, but only the primer pairs that passed all the restriction that
the user requested are shown as colored dots (and contain additional information). Therefore, if one clicks on a "non dot"
in the "status window" just beneath the graph will appear details of why that pair "did not make it".
- looking at the full list (for LiveScript enabled browsers only)
The full list of analyzed primers (forward and reverse) contains the following information for each primer analyzed:
Primers that are labeled as "REJECTED" in a specific phase of the analysis are not analyzed further. The reason for
their rejection is reported and is one of the following, in the order which is used during the analysis:
- Start base
- Tm (Melting Temperature)
- GC % (Percentage of G or C)
- Hairping propensity (maximum number of adjacent bases which self-pair)
- Self pairing (maximum number of adjacent bases which pair to another primer of the same sequence)
- Label (containing or omissing the word "REJECTED").
The reasons should be self-explanatory...
- Tm outside range
- GC or N outside range
- missing required GC clamp
- exceeding cross-complementarity
- exceeding self-complementarity
The list can be saved (with the Save command of the WWW browser that is used) or printed (with the Print command
of the WWW browser that is used).
Concordance of the results obtained with the Java version of Primer0.5
The results obtained with this Applet coincide exactely with the ones obtained using same parameters
and the original C code of primer0.5. No differences were observed in the results when running the
Applet using Netscape Navigator 3.0.1, AppletViewer JDK1.02, or Metrowerks 9.0 Java
The PPC version of Primer0.5 as available at the www.genome.wi.edu site was crashing on a PowerPC
7200/75 since probably had been compiled on a non PCI-bus architecture. Benchmarking had therefore
been accomplished on a binary obtained by rebuilding the Mac version from the original C code. The
binary so obtained (using Metrowerks 9.0 ) had been made with maximum optimization speed flags.
Since Primer0.5 does not have any graphical user interface, a plain comparison of the running time
between the two implementations would not be completely fair to estimate the gain/loss in speed
of the Java version versus the C one. Such evaluation, had been however performed and showed a
3-6 fold increase in running time for the Java versus the C version. Large differences, however,
and even larger differences had been observed when using instead the AppletViewer from the JDK1.02. It is surprising to notice that the native AppletViewer of Metrowkers performs worse as the Sun implementation.
It will be interesting to repeat this benchmark when more versions of Java VM will be available for the Macintosh. Unfortunatley, currently both Microsoft Internet Explorer and the Hotjava browser are infact not yet available for the Macintosh platform.
The comparison is therefore being performed using all the public available Applet Viewers for Macintosh OS as well as the one available commercially by Metrowerk.
Results are shown in Table 1:
Table 1 Comparison of Java versus C running time on different Applet Viewers
Advantages of the Graphical User Interface, on the Primer Design problem
- The GUI presents the user with all the parameters that can be chosen, at the same time.
This aspect allow the user to have a more comprehensive overview of the available options
even before running the program and not while running it.
- For the same reason it allows the user to choose when fill in which values, following his own logic and previous experience.
- The copy/paste input sequence area allows the user of directly import any sequence
regardless the way it was obtained.
- Feedback is returned to the user in graphical mode in order to follow the proceeding of the analysis. This give the user some level of satisfaction in order to see its analysis being riching completion. The bar and textual information satisfy both a detailed and "flash eye" requests.
- The text feedback that is returned while the operations are performed gives the user a detailed view of each of the primers analyzed, with the reasons for their selection / rejection. In this way the user can quantitatively follow and "read something" while the
program is running. Frustration for the waiting is therefore minimized.
- Text output is produced in such a way that can be immediately printed / stored. It is achieved using the LiveScript capabilities of the Netscape Navigator 3.0 browser. Since those capabilities had been now disclosed and are no longer proprietary, it is to be expected will be
used by also other Browser developers. No need of using a separate software to look at the
text results ( as compared with Primer 0.5)
- Graphical cliccable map. This is considered as major improvement versus the original
primer0.5 software, since it provide the User with a detailed rich view of the results
of the Primer pairs analyzed.
- Using color-coding for emphatizing pairs which have minimal or larger differences in their melting Temperatures, makes it intuitive to choose the primers
which have the best conditions for pairing.
- Moreover, the two-dimensional distribution
along rectangular grid (optimized in scale in order to guarantee the maximum resolution
obtainable) allows as-well the intuitive correlation of the size and location of the amplified
segment lying between the primer pairs.
- The screening of the detailed results to be shown for a specific pair, performed by
the user clicking on a specific location, guarantees that only the information that the user request is shown and in this way improve the efficiency of his/her work by not having to
spend long time in order to fish out from the long result lists only the results that are of
his /her interest.
- The absence of a single answer to the user (as given by Primer0.5) is seen as a warranty
that the automatic analysis of priming condition is not used as a blind automatic method of
primer selection, and instead is used as tool in the hand of the Scientist. Infact, a single solution produced by the software could lead the Scientist in not looking at the complete
pattern of results and in this way running in the risk of not performing the most appropriate
Hidden improvements versus Primer 0.5
- GCG input format, stripped off the heading down to the ".." separator.
This applet can be called automatically, using the following parameters:
The application of this "automatic calling feature" can be in seen in conjunction with other automated
analysis tools that make use of the WWW as presentation of results and as computing power.
- raw: the raw sequence (ATCGN)
- dnaconc: the dna concentration (nM)
- salt: the salt concentration (mM)
- curroligolen: Primer optimal length(bp)
- PrLenMin: Primer minimal length (bp)
- PrLenMax: Primer maximal length (bp)
- PrMeltMin:Primer minimal melting temperature (C)
- PrMeltMax:Primer maximal melting temperature (C)
- PrMeltOpt:Primer optimal melting temperature (C)
- PrGCMin: Primer minimal GC content (%)
- PrGCMax: Primer maximal GC content (%)
- PrNsMax: Primer maximal number of uNknown bases
- PrSelfMax: maximum number of bases allowed to self complement in the primer (b)
- ThreePrimeGCClamp: number of bases that should be GC clamped in the primer
- AmplifyFrom: start of region to be amplified
- AplifyTo: end of region to be amplified
Future Improvements / missing features
- Exclude from the primer selection regions which are enriched in repetitive elements and where the primer could bind.
- Allow input of specific primer pairs and their evaluation
- Produce a detailed table for each primer pair of all the "pair-specific" output features
- Specify "the next base" out of the primer (for use by OligoSynthesis Services)
- Save the primer pair in GCG or other format as file (only possible if Java gets out of the "security exception"), in order
to avoid the user the "difficult operation" of copy/paste.
- Submit the given primer pair to Oligosynthesis Services by querying the Service (EMBL Specific, possible only if Java
gets out of the "security exception")
- Show a Tm graph along the whole sequence (implemented in several Oligo/Primer software ... it should help the user
in selecting the region of Tm more appropriate ...)
- Select graphically each parameter (without having to type and instead just scroll a scrolling bar)
- Open file button, to select the file containing the sequence to be "primed" (only possible if Java gets out of the
"security exception"), in order of not having the user to do the "difficult operation" of copy/paste
Author: Luca I.G. TOLDO
Date: 5 October 1996
This is a Java version of the algorithms used in
PCR primer design as implemented by the software Primer 0.5.
Primer 0.5 had been originally developed by the MIT Center
for Genome Research, www.genome.wi.edu.
This Java version had been completely implemented by Luca I.G. TOLDO.
Developed using JDK1.02 and tested with Netscape 3.0.1 and JDK1.02
AppletViewer, running on a Macintosh PowerPC, System 7.5.3.