This program is designed to make simple the work of selecting primer pairs for the exploitment of Polymerase Chain Reaction®.
Mode of operation
This program uses a window for allow the input of the sequence containing the insert to
be primed, and then several fields to allow the setting of all the parameters needed
to identify suitable candidates. The output is graphical and textual, and
provides the user with complete view on all the priming pairs which are
available at the chosen conditions. In order to use this program, the following
steps must be performed:
Sequence
Symbols used
Either paste or type the sequence of interest.
removal of header information
Only the sequence must be placed in the top window:
heading comments must be removed
long sequences and small window
In order to allow users with small screens to use this
program, the size of each window had been made rather small. Therefore,
use the scroll-bars in order to move around in the input and output windows.
The suggested strategy is to double click in the specified area and then
do copy/paste from/to the text-editor of choice or across different
applications.
Parameters setting
Start and end of the region to prime (in bases)[MANDATORY, NO DEFAULTS PROVIDED]
Primer length (min/max/optimal)
Primer melting temperature (min/max/optimal)
Primer content in GC (%, min/max)
DNA concentration (mM)
Salt concentration (mM)
Number of 3' GC clamps
Maximum number of uNknown bases in the input sequence over which
build a primer.
Compute
Once the parameters have been chosen, by pressing the "COMPUTE" button,
then the primers are designed and the combinations found are displayed on a
clickable chart.
How to understand its output
In the following section, the terminology "forward" and "reverse"
primers will be used as described by Lincoln et al. (1991) in Primer 0.5 documentation:
Given a DNA sequence, PRIMER adopts the following naming conventions:
Reverse Primer
3'<-------GGAA---- 5'
Plus Strand ||||
5'-----ATCG--------=========------------CCTT---- 3'
|||| Target ||||
3'-----TAGC--------=========------------GGAA---- 5'
|||| Minus Strand
5'--ATCG----> 3'
Forward Primer
While the program will be searching for appropriate primers, three subsequent "status" indicators will be showing how much percentage of the search has been done.
This is reported both graphically (using red and green combination, changing from left to right by approaching completion) and with digits.
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.
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 the 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:
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
This color-coding strategy is designed in order to simplify the identification of which primer pairs should produce
the easiest hybridization conditions, and their location along the grid already gives an impression of the size of the
product
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. Unfortunately it is not possible with the standard JDK1.02 to print the content of
an applet, therefore the above chart cannot be stored on paper.
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:
Start base
Sequence
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").
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:
Tm outside range
GC or N outside range
missing required GC clamp
exceeding cross-complementarity
exceeding self-complementarity
The reasons should be self-explanatory...
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).
Benchmarking
The results obtained with this Applet coincided exactely with those
obtained using the 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 benchmark used the sample files distributed
with Primer0.5.
The PPC version of Primer0.5 as available at the www.mit.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.
The comparison is 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 run time of Primer0.5, Java versus C implementations running on different JVMs
versions
Original C code
Metrowerks 9.0 Applet Viewer
Applet Viewer JDK1.02
Netscape Navigator 3.0.1, JavaScript disabled
Netscape Navigator 3.0.1, JavaScript enabled
MacOS Runtime for Java 1.0b1
Microsoft Internet Explorer 3.0b1
time (sec)
22
121
65
120
132
72
72
The run time differed radically between the C and the Java implementations.
The difference, however, is dramatically dependent upon the kind of Java Virtual Machine
that is used to interprete the Java bytecodes. It is interesting to note
how the fastest JVM be the one originating from Sun JDK1.02, followed closely
by the MacOS Runtime 1.0b1, and used by the MIE 3.0b1. Netscape and Metrowerks JVM seems
to be the less performant, with a non-negligible detrimental effect of the JavaScript option.
In conclusion, the Java implementation of the algorithm described in Primer0.5
is between 3 and 6 times slower then the native C version, with differences
largely given by the Java Virtual Machine that interprete the bytecodes.
Advantages of the Graphical User Interface, on the Primer Design problem
Input
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, and with none or minimal editing.
Running
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.
Output
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 clickable 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. The Author is not aware of any Primer design software that
implements a user-friendly interface to the complete analysis of primer design.
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
experimental conditions.
This applet can be called automatically, using the following parameters:
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
This is a Java version of the algorithms used in
PCR primer designed as implemented by the software primer 0.5.
Primer 0.5 had been originally developed by Lincoln,S.E., Daly,M.J. and Lander,S.E. at
the MIT Center for Genome Research, Whitehead Institute for Biomedical Research,
www.genome.wi.mit.edu.