|
|
(14 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&ctype=text/javascript"></script> | | <script type="text/javascript" src="/Team:EPF-Lausanne/PrimerDesignHelper.js?action=raw&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> |
- | <b>Primer 1 (<span id="primer1Temp">NaN</span> °C, <span id="primer1bp">NaN</span>bp):</b> 5' - <span id="primer1">No data</span> → 3'<br />
| + | <h2>Comments</h2> |
- | <b>Primer 2 (<span id="primer2Temp">NaN</span> °C, <span id="primer2bp">NaN</span>bp):</b> 5' - <span id="primer2">No data</span> → 3'<br />
| + | <p> |
- | <b>Annealing temp:</b> <span id="annealingTemp">NaN</span> °C
| + | 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 |
- | <hr />
| + | 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>) |
- | <input type="checkbox" id="toggleLines" onchange="window.calc()" onclick="window.calc()" checked />
| + | 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). |
- | <label for="toggleLines">Line numbers</label>
| + | The tail is ignored in the Tm calculation. |
- | <pre id="finalResult"> | + | Also take a look at <a href="http://partsregistry.org/Help:Primers/Design">iGEM's primer design page</a>. |
- |
| + | </p> |
- | </pre> | + | <p> |
- | </p>
| + | Known limitations are: only A, C, G and T are accepted as input, the concentration of salts(50mM of Na+), |
- | <script type="text/javascript">
| + | and the primer concentration (500nM) can't be set. |
- | window.calc();
| + | </p> |
- | </script>
| + | |
| </html> | | </html> |
| | | |
| {{:Team:EPF-Lausanne/Template/Footer}} | | {{:Team:EPF-Lausanne/Template/Footer}} |