Team:EPF-Lausanne/PrimerDesignHelper

From 2012.igem.org

(Difference between revisions)
 
(12 intermediate revisions not shown)
Line 1: Line 1:
-
{{:Team:EPF-Lausanne/Template/Header}}
+
{{:Team:EPF-Lausanne/Template/Header|human}}
 +
 
 +
{{:Team:EPF-Lausanne/Template/SetTitle|Primer Design Helper}}
 +
 
 +
Tired of designing primers manually? Fiddling with primer lengths to get the Tm just right? So were we! Use our (revolutionary, and wheel-reinventing) tool to design the primers for you. Simply put your sequence in the "DNA" field and select which kind of primers you want. Scroll down to see the results! The Tm is specially tailored for use with the NEBPhusion polymerase (which is, totally coincidentally, the one we use), but should be comparable to most others.
 +
 
 +
The code is open-source, by the way.
<html>
<html>
Line 5: Line 11:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="/Team:EPF-Lausanne/PrimerDesignHelper.js?action=raw&amp;ctype=text/javascript"></script>
<script type="text/javascript" src="/Team:EPF-Lausanne/PrimerDesignHelper.js?action=raw&amp;ctype=text/javascript"></script>
-
<h1>Primer design helper</h1>
+
-
<p>
+
<div id="formAttach"> <!-- style="width: 400px; float: left; padding-right: 15px; border-right: 1px solid #DDD"> -->
-
Warning: This is a very basic tool and should not be seen as a replacement for your brain. This is in no way a complete
+
</div>
-
tool for primer design and shouldn't be trusted! Always check the results yourself. The Tm calculation is based on
+
<div> <!-- style="width: 450px; float: right"> -->
-
Belsauer et al. 1986 (with some small modifications, inspired by <a href="http://www.basic.northwestern.edu/biotools/oligocalc.html">http://www.basic.northwestern.edu/biotools/oligocalc.html</a>)
+
<fieldset>
-
and has as a goal to stay close (this means within 3-6 °C) to the results found by the <a href="http://www.neb.com/nebecomm/tech_reference/TmCalc/Default.asp">NEB Phusion HF-PCR reference</a>.
+
<legend>Results</legend>
-
The tail is ignored in the Tm calculation.
+
<div id="outputAttach"> </div>
-
Also take a look at <a href="http://partsregistry.org/Help:Primers/Design">iGEM's primer design page</a>.
+
</fieldset>
-
</p>
+
-
<p>
+
-
Known limitations are: only A, C, G and T are accepted as input, the concentration of salts(30mM of Na+),
+
-
and the primer concentration (500nM) can't be set.
+
-
</p>
+
-
<p>
+
-
Paste the sequence you want to PCR out in the following textarea:<br/>
+
-
<textarea id="data" cols="50" rows="10" onkeyup="window.calc()" onchange="window.calc()"></textarea>
+
-
</p>
+
-
<p>
+
-
Give some more info about what you want to do:<br/>
+
-
<table>
+
-
<tr>
+
-
<td>Primer type</td>
+
-
<td>
+
-
<input type="radio" name="primerType" value="normal" id="primerTypeNormal" onchange="window.updateRadioElements();window.calc();" />
+
-
<label for="primerTypeNormal">Standard PCR primer (extract the whole sequence)</label>
+
-
<br />
+
-
<input type="radio" name="primerType" value="restrictionSites" id="primerTypeRestrictionSites" onchange="window.updateRadioElements();window.calc();" />
+
-
<label for="primerTypeRestrictionSites">Add restriction sites on both ends</label>
+
-
<br />
+
-
<input type="radio" name="primerType" value="knownTail" id="primerTypeKnownTail" onchange="window.updateRadioElements();window.calc();" />
+
-
<label for="primerTypeKnownTail">Add "known" tails on both ends</label>
+
-
<br />
+
-
<input type="radio" name="primerType" value="restrictionSites" id="primerTypeCustom" onchange="window.updateRadioElements();window.calc();" />
+
-
<label for="primerTypeRestrictionCustom">Add custom tails on both ends</label>
+
-
</td>
+
-
</tr>
+
-
<tr style="display: none" id="restrictionSiteRow">
+
-
<td>Restriction sites</td>
+
-
<td>
+
-
<!-- Random bases: <input type="input" id="primerRandBases" value="4" onkeyup="window.calc()" onchange="window.calc()" /><br />-->
+
-
Primer 1 RS: 5' <input type="text" id="primer1RS" onkeyup="window.calc()" onchange="window.calc()" /> 3' <span id="primer1RSMatch"> </span><br />
+
-
Primer 2 RS: 5' <input type="text" id="primer2RS" onkeyup="window.calc()" onchange="window.calc()" /> 3' <span id="primer2RSMatch"> </span>
+
-
</td>
+
-
</tr>
+
-
<tr style="display: none" id="customRow">
+
-
<td>Tails</td>
+
-
<td>
+
-
<!-- Random bases: <input type="input" id="primerRandBases" value="4" onkeyup="window.calc()" onchange="window.calc()" /><br />-->
+
-
Primer 1 tail: 5' <input type="text" id="primer1Tail" onkeyup="window.calc()" onchange="window.calc()" /> 3'<br />
+
-
Primer 2 tail: 5' <input type="text" id="primer2Tail" onkeyup="window.calc()" onchange="window.calc()" /> 3'
+
-
</td>
+
-
</tr>
+
-
<tr style="display: none" id="knownTailRow">
+
-
<td>Tail</td>
+
-
<td>
+
-
<select id="knownTailSelect" onkeyup="window.calc()" onchange="window.calc()">
+
-
</select>
+
-
<script type="text/javascript">
+
-
for(var i = 0; i < window.tails.length; i++){
+
-
$("#knownTailSelect").append(
+
-
$("<option>")
+
-
.val(window.tails[i].value)
+
-
.text(window.tails[i].name)
+
-
);
+
-
}
+
-
</script>
+
-
</td>
+
-
</tr>
+
-
<tr>
+
-
<td>Goal Tm</td>
+
-
<td>
+
-
<input type="text" id="goalTm" onkeyup="window.calc()" onchange="window.calc()" value="55" /> °C
+
-
</td>
+
-
</tr>
+
-
<tr>
+
-
<td> </td>
+
-
<td>
+
-
<input type="button" onclick="Primer.reset(); window.calc()" value="Calculate" />
+
-
</td>
+
-
</tr>
+
-
</table>
+
-
<script type="text/javascript">window.onload = function(){ window.updateRadioElements(); }</script>
+
-
</p>
+
-
<p>
+
-
<h2>Result:</h2>
+
-
<div id="messages">
+
-
+
</div>
</div>
-
<br />
+
<div style="clear: both"> </div>
-
Note: the annealing temperatures are indicative and should always be checked (and corrected).
+
<h2>Comments</h2>
-
<br />
+
<p>
-
<b>Primer 1 (<span id="primer1Temp">NaN</span> °C, <span id="primer1bp">NaN</span>bp):</b> 5' - <span id="primer1">No data</span> &rarr; 3'<br />
+
Warning: This is a very basic tool and should not be seen as a replacement for your brain. This is in no way a complete
-
<b>Primer 2 (<span id="primer2Temp">NaN</span> °C, <span id="primer2bp">NaN</span>bp):</b> 5' - <span id="primer2">No data</span> &rarr; 3'<br />
+
tool for primer design and shouldn't be trusted! Always check the results yourself. The Tm calculation is based on
-
<b>Annealing temp:</b> <span id="annealingTemp">NaN</span> °C
+
Belsauer et al. 1986 (with some small modifications, inspired by <a href="http://www.basic.northwestern.edu/biotools/oligocalc.html">http://www.basic.northwestern.edu/biotools/oligocalc.html</a>)
-
+
and has as a goal to stay close (in principle it should be the same) to the results found by the <a href="http://www.neb.com/nebecomm/tech_reference/TmCalc/Default.asp">NEB Phusion HF-PCR reference</a> (the kit we're using).
-
<hr />
+
The tail is ignored in the Tm calculation.
-
<input type="checkbox" id="toggleLines" onchange="window.calc()" onclick="window.calc()" checked />
+
Also take a look at <a href="http://partsregistry.org/Help:Primers/Design">iGEM's primer design page</a>.
-
<label for="toggleLines">Line numbers</label>
+
</p>
-
<pre id="finalResult">
+
<p>
-
+
Known limitations are: only A, C, G and T are accepted as input, the concentration of salts(50mM of Na+),
-
</pre>
+
and the primer concentration (500nM) can't be set.
-
</p>
+
</p>
-
<script type="text/javascript">
+
-
window.calc();
+
-
</script>
+
</html>
</html>
{{:Team:EPF-Lausanne/Template/Footer}}
{{:Team:EPF-Lausanne/Template/Footer}}

Latest revision as of 03:12, 27 September 2012

Tired of designing primers manually? Fiddling with primer lengths to get the Tm just right? So were we! Use our (revolutionary, and wheel-reinventing) tool to design the primers for you. Simply put your sequence in the "DNA" field and select which kind of primers you want. Scroll down to see the results! The Tm is specially tailored for use with the NEBPhusion polymerase (which is, totally coincidentally, the one we use), but should be comparable to most others.

The code is open-source, by the way.

Results

Comments

Warning: This is a very basic tool and should not be seen as a replacement for your brain. This is in no way a complete tool for primer design and shouldn't be trusted! Always check the results yourself. The Tm calculation is based on Belsauer et al. 1986 (with some small modifications, inspired by http://www.basic.northwestern.edu/biotools/oligocalc.html) and has as a goal to stay close (in principle it should be the same) to the results found by the NEB Phusion HF-PCR reference (the kit we're using). The tail is ignored in the Tm calculation. Also take a look at iGEM's primer design page.

Known limitations are: only A, C, G and T are accepted as input, the concentration of salts(50mM of Na+), and the primer concentration (500nM) can't be set.