Team:Harvard/ZF Binding Site Finder
From 2011.igem.org
(49 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | + | {{:Team:Harvard/Template:CSS}} | |
+ | {{:Team:Harvard/Template:TechBar}} | ||
+ | {{:Team:Harvard/Template:TechGrayBar}} | ||
+ | |||
<html xmlns="http://www.w3.org/1999/xhtml"> | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
- | <head> | + | <head style="text-align:center"> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
- | <title> | + | <title>Zinc Finger Binding Site Finder</title> |
Line 11: | Line 14: | ||
{ | { | ||
color:#999999; | color:#999999; | ||
+ | font-family:'Trebuchet MS', Arial, Helvetica, sans-serif; | ||
} | } | ||
Line 16: | Line 20: | ||
{ | { | ||
color:#000000; | color:#000000; | ||
+ | font-family:'Trebuchet MS', Arial, Helvetica, sans-serif; | ||
+ | } | ||
+ | |||
+ | .firstHeading | ||
+ | { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | #sequence | ||
+ | { | ||
+ | font-family:'Courier New', Courier, monospace; | ||
+ | } | ||
+ | |||
+ | #result | ||
+ | { | ||
+ | display: block; | ||
+ | margin-left: auto; | ||
+ | margin-right: auto; | ||
+ | } | ||
+ | |||
+ | #helpfile | ||
+ | { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | .bluetext | ||
+ | { | ||
+ | color: blue; | ||
+ | } | ||
+ | |||
+ | .zfndiagram | ||
+ | { | ||
+ | display: block; | ||
+ | margin-left: auto; | ||
+ | margin-right: auto; | ||
+ | } | ||
+ | |||
+ | span#showhelp | ||
+ | { | ||
+ | border-bottom: 1px dotted; | ||
+ | } | ||
+ | |||
+ | span#showhelp:hover | ||
+ | { | ||
+ | border-bottom: 1px solid; | ||
+ | } | ||
+ | |||
+ | #filldna | ||
+ | { | ||
+ | color: blue; | ||
} | } | ||
Line 32: | Line 86: | ||
border-style: solid; | border-style: solid; | ||
margin: 0; | margin: 0; | ||
- | padding: | + | padding: 8px; |
border-width: 1px 1px 0 0; | border-width: 1px 1px 0 0; | ||
background-color: #FFFFFF; | background-color: #FFFFFF; | ||
text-align: left; | text-align: left; | ||
+ | vertical-align: top; | ||
} | } | ||
Line 103: | Line 158: | ||
} | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
// findCustom function | // findCustom function | ||
Line 126: | Line 171: | ||
var ntpCheck = /[GCTAN]{9}/; | var ntpCheck = /[GCTAN]{9}/; | ||
- | + | if (!(bottomzf.match(ntpCheck))|| | |
- | + | !(topzf.match(ntpCheck))|| | |
- | if (!(bottomzf.match(ntpCheck) | + | !(bottomzf.length=="9")|| |
- | topzf.match(ntpCheck) | + | !(topzf.length=="9")){ |
- | (bottomzf.length=="9") | + | alert("You must enter a valid sequence of nine nucleotides containing G,T,C,A, or N for both zinc finger array binding sites (ex. GTAGGCANN)."); |
- | (topzf.length=="9" | + | |
- | alert("You must enter a valid sequence of nine nucleotides containing G,T,C,A, or N."); | + | |
return; | return; | ||
} | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
//transform bottom zf to reverse complement | //transform bottom zf to reverse complement | ||
bottomzf = reverseComplement(bottomzf); | bottomzf = reverseComplement(bottomzf); | ||
- | |||
- | |||
- | |||
- | |||
- | |||
//start building regular expression from ZF fingers | //start building regular expression from ZF fingers | ||
var siteExp = "(" + bottomzf.replace(/n/gi,"\\w"); | var siteExp = "(" + bottomzf.replace(/n/gi,"\\w"); | ||
//add in x NTPs between first and second finger | //add in x NTPs between first and second finger | ||
- | var nucgap = | + | var nucgap = $("#gap").val(); |
for(i=0;i<nucgap;i++){ | for(i=0;i<nucgap;i++){ | ||
siteExp = siteExp + "\\w"; | siteExp = siteExp + "\\w"; | ||
Line 168: | Line 201: | ||
if(testseq.search(array1) == -1) | if(testseq.search(array1) == -1) | ||
{ | { | ||
- | + | $("#result").html("No binding sites found."); | |
//if results are found, build table to display results | //if results are found, build table to display results | ||
} else { | } else { | ||
Line 193: | Line 226: | ||
table = table + "</table><br /><br />" | table = table + "</table><br /><br />" | ||
- | + | $("#result").html(table); | |
} | } | ||
- | + | ||
+ | $("#helpfile").hide("slow"); | ||
+ | |||
}); | }); | ||
+ | |||
+ | // findAllSites function | ||
+ | $("#findallsites").click(function () { | ||
+ | |||
+ | //initialize check variable, if check != 0 then results were found, else no results found | ||
+ | var check = 0; | ||
+ | |||
+ | //get test sequence | ||
+ | var testseq = $("#sequence").val().toUpperCase(); | ||
+ | |||
+ | //build array of nucleotides | ||
+ | var nucleotides = new Array("G", "C", "T", "A"); | ||
+ | |||
+ | //initialize table string to hold code for table | ||
+ | var table = ""; | ||
+ | |||
+ | //loop multidimensional array to iterate all possible zinc fingers, each array has 4 elements for 4 nucleotides | ||
+ | var nest = new Array(4); | ||
+ | for(var a=0; a<4; a++) | ||
+ | { | ||
+ | nest[a] = new Array(4); | ||
+ | for(var b=0; b<4; b++) | ||
+ | { | ||
+ | nest[a][b] = new Array(4); | ||
+ | for(var c=0; c<4; c++) | ||
+ | { | ||
+ | nest[a][b][c] = new Array(4); | ||
+ | for(var d=0; d<4; d++) | ||
+ | { | ||
+ | nest[a][b][c][d] = new Array(4); | ||
+ | for(var e=0; e<4; e++) | ||
+ | { | ||
+ | nest[a][b][c][d][e] = new Array(4); | ||
+ | for(var f=0; f<4; f++) | ||
+ | { | ||
+ | //build regular expression for each nucleotide combination | ||
+ | nest[a][b][c][d][e][f] = "\\w\\w" + reverseComplement(nucleotides[c]) + "\\w\\w" + reverseComplement(nucleotides[b]) + "\\w\\w" + reverseComplement(nucleotides[a]); | ||
+ | |||
+ | //add in x NTPs between first and second finger | ||
+ | var nucgap = $("#gap").val(); | ||
+ | |||
+ | for(i=0;i<nucgap;i++){ | ||
+ | nest[a][b][c][d][e][f] = nest[a][b][c][d][e][f] + "\\w"; | ||
+ | } | ||
+ | |||
+ | //finish constructing dynamic regular expression | ||
+ | nest[a][b][c][d][e][f] = nest[a][b][c][d][e][f] + nucleotides[d] + "\\w\\w" + nucleotides[e] + "\\w\\w" + nucleotides[f] + "\\w\\w"; | ||
+ | |||
+ | //find all instances of current nucleotide combination | ||
+ | var array1 = new RegExp(nest[a][b][c][d][e][f], "gi"); | ||
+ | var array2 = testseq.match(array1); | ||
+ | |||
+ | //do nothing if no result found | ||
+ | if(testseq.search(array1) == -1) | ||
+ | { | ||
+ | } else { | ||
+ | //add table heading for each combo | ||
+ | table = table + "<tr><td colspan='4'><b>" + "Bottom finger: " + nucleotides[a] + nucleotides[b] + nucleotides[c] + " Top finger: " + nucleotides[d] + nucleotides[e] + nucleotides[f] + "</b></td></tr>"; | ||
+ | |||
+ | var revComp = ""; | ||
+ | var seqtwo = ""; | ||
+ | var index = 0; | ||
+ | |||
+ | for(i=0;i<array2.length;i++) | ||
+ | { | ||
+ | array1.test(testseq); | ||
+ | |||
+ | table = table + "<tr>"; | ||
+ | //subtract 18 nucleotides, nucgap inter-ZF nucleotides, +1 for index correction for location of binding site | ||
+ | table = table + "<td>" + (array1.lastIndex - 18 - nucgap) + "</td>"; | ||
+ | seqbottom = reverseComplement(array2[i].substring(0,9)); | ||
+ | table = table + "<td>" + seqbottom + "</td>"; | ||
+ | table = table + "<td>" + array2[i].substring(array2[i].length - 9,array2[i].length) + "</td>"; | ||
+ | table = table + "<td>" + array2[i] + "</td>"; | ||
+ | table = table + "</tr>"; | ||
+ | } | ||
+ | |||
+ | check++; | ||
+ | |||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //only build table if check is nonzero | ||
+ | if(check == 0) | ||
+ | { | ||
+ | $("#result").html("No binding sites found, unfortunately :("); | ||
+ | } else { | ||
+ | //add table preamble | ||
+ | var table = "<table><tr><td colspan='4'><b>Zinc Finger Binding Site Candidates</b></td></tr><td><b>Location</b></td><td><b>Bottom Sequence</b></td><td><b>Top Sequence</b></td><td><b>Entire Sequence (top strand perspective)</b></td>" + table; | ||
+ | |||
+ | //add table tail | ||
+ | table = table + "</table><br /><br />" | ||
+ | |||
+ | //write table to page | ||
+ | $("#result").html(table); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | // toggle help display | ||
+ | $("#showhelp").click(function(){ | ||
+ | $("#helpfile").toggle("slow"); | ||
+ | }); | ||
+ | |||
+ | // fill dna test function | ||
+ | $("#filldna").click(function(){ | ||
+ | $(".graytext").removeClass("graytext").addClass("onfocus"); | ||
+ | $("#sequence").val("TTTGGTAGAGATGGGGTGTCACTATGTTACCCAGGCTGGTCTCCAATACCTGGGCTCAATCGATTCTCCCACTTTAGCCTCCCAAAGTGCTGGGATTACAGTCGTGAGCCATTGGGCCCAGTCACAAATTCCTTATTTTCTTTGTCCTACGATATGAACAACCCAGTTGGAACATAATACGACGTGAGAAGAGAAGCCTGCCATGGGGAGGGGAGCACAGACCCAGCAGGCAGGCTCTCAATGGGAGGTTCAAGGCGAGTCCCCCTCCCACCCACCTGCTCCCAGCTGAGAGTCCATCTGGGCCTCCGGTGGGCAACGACAAAAAATTCCATTAGGTTGAGAAGACGTGACTGGCACTGGCTCAAAGCCAAACAAATACTTGGTGGGCCTGCTTGGAGTTTAGCTCACACTTTTTGATTTTCTATTCACTGAATTTCACTGCTGTAGGAACCTCATATAAATGGAATCAGATAGTTATTTTTTTTTATGACAGGCTTTGGGGGATATATCTTTTTGAAGGCTCTTTATAACTAAACAGTAAATAGTTTAATTACAGTGGAAATTCTCTGGACTAGATTGTAAAGGTGGATCAGATTTGGAAATAAGACTTTTTTCAAGTCAAAGAAGAAAAACCAATTTAAAAATACAAGGCAATGGCCGGGTGCGGTGGCTCACGCCTGTAATCCCAGCACCTTGGGAGGCCAAGGCAGGTGGATCAGCTGAGGTCAGGAATTCGAGACCAGCCTAGCCATCATGGTGAAACCCTGTCTCTACTAAAAATACAAAGAAAAAATTAGCCGGGCATGGTGGTGCATGCCTGTAGTCCCAGCTACTCAGGACACTGAGGCTGAGGAGAATTGCTTGAACCCGGGAGGCAGAGGTTGTAGTGAGCAAAGATCGCGCCACTGCACTCCAGCCTGGGCAACAGAGTGAGACTCCACGTCAAAAAAAAAAAAAAAAAAGACATGTCAGAAACAAAGAAAGAAAGACATGACAGGCTCAGAATCAATGTCAACCTGGGCAAAGGTCAGAAACGGAACAGGGACCCTTTCTTTGTGGGCAGGTTTGACATGAAAGGTTCAGCGACTTCAACTCTTCTGATTCTTTCTTCTTGAGCCCATTTTGGTAAGTTGTGTTTTCCTAAAAGTTTGTCCATTCCATCCAAATGTTCACATTAGTCAGGATCTGTGAAGGATGTCAATGGCTGTGAGGCGAGGGCCCCTTGCCAGTCCCCATGTTCGTTATTTATGGATGCCTGATGCCCACAACCTCGACTTCTCAGCTGAGGGCAACTCCTCCTGTCCTCTCGCTGCTTCCACCTAAGCCACCAGGAAATCCTGTTGACTCCACTTACAAAAGCTCTCCAGAGTCTGCTACCTCTTACCACCCTACTGTCGCCTCCCAGACCTGGTCTCCCCGCTTCTGCCCTGGCCCCTACAGCTCGCAGACAGCTGCCAGAGGAGTCCATCCGAATCAACTTCAGATTGCGTCACTTTTTCTTTCAAAATCCGACAAAGCTCCTCATTCCATTCAGAGTGAGAAGGGCCCCGCCATGCAGCCTTTCCTCCTCCTATTCACCAACCCCACTCTCGCTCCAGCCATCTTGATATCCTTGCTGGTCCTGGAGCAGGCCAGCCACGCTCTTGCCCCAGGGCCTTTGCACTTGCTGCCCCTCTCCTGTGATGCCCTCCTGGATCTCTGCATGGCTCCCTCCTGCCCTCCCTCCCTCGAGTCTTTGCTCACATGTCCCCTTCTCAGAGGGGCTCACCCTGGTGCCCTTCGAAAGTGGGCATCCACTCCCTTCCCACCCTGGCACCCGCACCCTCCTGTCTTCCTTTTTCTGTTCTCCATCCTACTCATCTCCCCCAACTAGAAAGGCAGCTGCAGCTGCGGAGCACGGGATCTCCATCTGCAGCTGCATCCCGGGACCTAGAACAGGTACAAAAGTACCTAATAAGTACCCACTGAATGAATAATTGGCTGAGTTTTCTGTACCAAAGACTGAGCTAAGACTCTTTAAAAGGATGATCTTATTTAAGCCTTACAGCAAGTAAATGTTATCCCCATCTTCCTGATGAGGACACAGTGACCACCACGCTCAAGGACACAGAGGGTGGACGTGCCACATTCACACTCTGTGACTTAGAGCGGCTGGACGGGCAGGGACTTAGGAGGCCTACAGCAGCCAGGGTGAGATTATGAGGCTGAGCTGAGAATATCAAGACTGTACCGAGTAGGGGGCCTTGGCAAGTGTGGAGAGCCCGGCAGCTGGGGCAGAGGGCGGAGTACGGTGTGCGTTTACGGACCTCTTCAAACGAGGTAGGAAGGTCAGAAGTCAAAAAGGGAACAAATGATGTTTAACCACACAAAAATGAAAATCCAATGGTTGGATATCCATTCCAAATACACAAAGGCAACGGATAAGTGATCCGGGCCAGGCACAGAAGGCCATGCACCCGTAGGATTGCACTCAGAGCTCCCAAATGCATAGGAATAGAAGGGTGGGTGCAGGAGGCTGAGGGGTGGGGAAAGGGCATGGGTGTTTCATGAGGACAGAGCTTCCGTTTCATGCAATGAAAAGAGTTTGGAGACGGATGGTGGTGACTGGACTATACACTTACACACGGTAGCGATGGTACACTTTGTATTATGTATATTTTACCACGATCTTTTTAAAGTGTCAAAGGCAAATGGCCAAATGGTTCCTTGTCCTATAGCTGTAGCAGCCATCGGCTGTTAGTGACAAAGCCCCTGAGTCAAGATGACAGCAGCCCCCATAACTCCTAATCGGCTCTCCCGCGTGGAGTCATTTAGGAGTAGTCGCATTAGAGACAAGTCCAACATCTAATCTTCCACCCTGGCCAGGGCCCCAGCTGGCAGCGAGGGTGGGAGACTCCGGGCAGAGCAGAGGGCGCTGACATTGGGGCCCGGCCTGGCTTGGGTCCCTCTGGCCTTTCCCCAGGGGCCCTCTTTCCTTGGGGCTTTCTTGGGCCGCCACTGCTCCCGCTCCTCTCCCCCCATCCCACCCCCTCACCCCCTCGTTCTTCATATCCTTCTCTAGTGCTCCCTCCACTTTCATCCACCCTTCTGCAAGAGTGTGGGACCACAAATGAGTTTTCACCTGGCCTGGGGACACACGTGCCCCCACAGGTGCTGAGTGACTTTCTAGGACAGTAATCTGCTTTAGGCTAAAATGGGACTTGATCTTCTGTTAGCCCTAATCATCAATTAGCAGAGCCGGTGAAGGTGCAGAACCTACCGCCTTTCCAGGCCTCCTCCCACCTCTGCCACCTCCACTCTCCTTCCTGGGATGTGGGGGCTGGCACACGTGTGGCCCAGGGCATTGGTGGGATTGCACTGAGCTGGGTCATTAGCGTAATCCTGGACAAGGGCAGACAGGGCGAGCGGAGGGCCAGCTCCGGGGCTCAGGCAAGGCTGGGGGCTTCCCCCAGACACCCCACTCCTCCTCTGCTGGACCCCCACTTCATAGGGCACTTCGTGTTCTCAAAGGGCTTCCAAATAGCATGGTGGCCTTGGATGCCCAGGGAAGCCTCAGAGTTGCTTATCTCCCTCTAGACAGAAGGGGAATCTCGGTCAAGAGGGAGAGGTCGCCCTGTTCAAGGCCACCCAGCCAGCTCATGGCGGTAATGGGACAAGGCTGGCCAGCCATCCCACCCTCAGAAGGGACCCGGTGGGGCAGGTGATCTCAGAGGAGGCTCACTTCTGGGTCTCACATTCTTGGATCCTCGGATCCTCTGACTCTGGTGGGGACAGGCAGACCAAGCTCTCTTGGACCCGGGAAGAGGGACCCTTGGAAGTCACTTGGGATTGAGTTCTAGAGTCTTGACACTGTTTCAGCAGATCTATACTTTGAACCCACCTCAGGCATCTCATCCACAGAACAGGGACAGTGACCATTCCATCTTGCCAAGGAGTGCGGGGCACACACCATGCTGCTGGCAGCCAGGGTGGAAAGTCAAGGGGTCCCAGCTGAAGCACT"); | ||
+ | $("#bottominput").val("GNNGNNTNN"); | ||
+ | $("#topinput").val("GNNGNNANN"); | ||
+ | $("#helpfile").toggle("slow"); | ||
+ | }); | ||
+ | |||
+ | // clear results table | ||
+ | $("#clearresults").click(function(){ | ||
+ | $("#result").html(""); | ||
+ | $("#helpfile").hide("slow"); | ||
+ | }); | ||
+ | |||
// end jQuery | // end jQuery | ||
Line 205: | Line 363: | ||
<body> | <body> | ||
- | < | + | <div class="whitebox"> |
- | + | <h1>Zinc Finger Binding Site Finder</h1> | |
- | < | + | <h4>by Justin Chew</h4> |
<form> | <form> | ||
<table id="ui"> | <table id="ui"> | ||
<tr><td colspan="3"> | <tr><td colspan="3"> | ||
- | <textarea id="sequence" rows="8" cols=" | + | <textarea id="sequence" rows="8" cols="60" class="graytext">Insert target DNA sequence here</textarea> |
</td></tr> | </td></tr> | ||
<tr> | <tr> | ||
<td width="40%"> | <td width="40%"> | ||
Bottom Zinc Finger Array:<br /> | Bottom Zinc Finger Array:<br /> | ||
- | + | 5'-<input type="text" id="bottominput" value="Input 9-bp site here" class="graytext" />-3' | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <input type="text" id="bottominput" value="Input | + | |
</td> | </td> | ||
<td width="40%"> | <td width="40%"> | ||
Top Zinc Finger Array:<br /> | Top Zinc Finger Array:<br /> | ||
- | + | 5'-<input type="text" id="topinput" value="Input 9-bp site here" class="graytext" />-3' | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <input type="text" id="topinput" value="Input | + | |
</td> | </td> | ||
<td width="20%"> | <td width="20%"> | ||
Line 270: | Line 386: | ||
<option value="6">6</option> | <option value="6">6</option> | ||
<option value="7">7</option> | <option value="7">7</option> | ||
- | </select> | + | </select> |
</td> | </td> | ||
</tr> | </tr> | ||
<tr><td colspan="3"> | <tr><td colspan="3"> | ||
- | + | <input type="button" id="findcustom" value="Find binding sites" /> | |
- | <input type="button" id="findcustom" value=" | + | <input type="button" id="clearresults" value="Clear results" /> |
- | <input type="button" | + | |
</td></tr> | </td></tr> | ||
</table> | </table> | ||
</form> | </form> | ||
+ | <h5><span id="showhelp">How do I use this tool? (Click to toggle help)</span></h5> | ||
+ | <div id="helpfile"> | ||
+ | <h2>Background</h2> | ||
+ | <p>This tool is designed specifically to find binding sites for zinc finger nucleases (ZFNs) in order to create double stranded breaks in DNA. Ultimately, through these double stranded breaks, ZFNs allow genome editing with the insertion or deletion of genes at very specific target DNA sites. Each ZFN recognizes and binds to a specific 9-bp DNA sequence that is unique to each ZFN, and the binding sites are arranged such that two ZFNs flank the cut site on opposite strands of DNA, as pictured below:</p> | ||
<br /> | <br /> | ||
- | <div id=" | + | <p><img class="zfndiagram" src="https://static.igem.org/mediawiki/2011/7/7f/ZFN_diagram.jpeg" width="50%" height="40%"></p> |
+ | <br /> | ||
+ | <p>Given two 9-bp DNA sequences, this program will search a string of DNA to find a configuration such that these two 9-bp sequences are located on opposite strands with a short gap in between them (5-7 bp long), where the double stranded break will occur. This is useful due to the fact that we currently do not have a library of ZFNs that spans the space of all 9-bp recognition sites. Therefore, if the 9-bp binding sites for two zinc fingers are known and well-characterized, this program will search for a site in which these two known zinc fingers can be used to make a cut for gene insertion or deletion.</p> | ||
+ | |||
+ | <h2>Tool Usage</h2> | ||
+ | <p>The "bottom" ZFN binds to the bottom strand of DNA, while the "top" ZFN binds to the top strand. To use the tool, input a 9-bp DNA sequence into the text boxes for both bottom and top ZFNs, and then click "Find binding sites". Input must be a 9-bp DNA sequence (you may use "N" for an unspecified nucleotide). The results will be listed in a table which shows: | ||
+ | <ol> | ||
+ | <li>The relative position of the binding site within the input DNA string</li> | ||
+ | <li>The binding sequence for the bottom ZFN, 5' to 3'</li> | ||
+ | <li>The binding sequence for the top ZFN, 5' to 3'</li> | ||
+ | <li>The entire binding sequence, including the 5-7 bp nucleotide gap, from 5' to 3' on the top strand</li> | ||
+ | </ol> | ||
+ | </p> | ||
+ | |||
+ | <h2>Tool Demo</h2> | ||
+ | <p>If you would like to try out an example, you can test the tool out with a DNA sequence that we used to search for a suitable target site for our colorblindness target, in which we tried to search for a site upstream of the red opsin gene to insert a copy of the green opsin gene. This DNA sequence is a stretch of the human X chromosome just upstream of red opsin, and the two zinc fingers we would like to search for have the form of GNNGNNTNN for the bottom finger and GNNGNNANN for the top finger.</p> | ||
+ | |||
+ | <p>Click <span id="filldna">here</span> to test the tool using these sequences (this is actually how we located our colorblindness targets on the genome).</p> | ||
+ | </div><br /> | ||
+ | <div id="result"></div> | ||
+ | </div> | ||
</body> | </body> | ||
</html> | </html> |
Latest revision as of 03:42, 29 September 2011
Zinc Finger Binding Site Finder
by Justin Chew
How do I use this tool? (Click to toggle help)
Background
This tool is designed specifically to find binding sites for zinc finger nucleases (ZFNs) in order to create double stranded breaks in DNA. Ultimately, through these double stranded breaks, ZFNs allow genome editing with the insertion or deletion of genes at very specific target DNA sites. Each ZFN recognizes and binds to a specific 9-bp DNA sequence that is unique to each ZFN, and the binding sites are arranged such that two ZFNs flank the cut site on opposite strands of DNA, as pictured below:
Given two 9-bp DNA sequences, this program will search a string of DNA to find a configuration such that these two 9-bp sequences are located on opposite strands with a short gap in between them (5-7 bp long), where the double stranded break will occur. This is useful due to the fact that we currently do not have a library of ZFNs that spans the space of all 9-bp recognition sites. Therefore, if the 9-bp binding sites for two zinc fingers are known and well-characterized, this program will search for a site in which these two known zinc fingers can be used to make a cut for gene insertion or deletion.
Tool Usage
The "bottom" ZFN binds to the bottom strand of DNA, while the "top" ZFN binds to the top strand. To use the tool, input a 9-bp DNA sequence into the text boxes for both bottom and top ZFNs, and then click "Find binding sites". Input must be a 9-bp DNA sequence (you may use "N" for an unspecified nucleotide). The results will be listed in a table which shows:
- The relative position of the binding site within the input DNA string
- The binding sequence for the bottom ZFN, 5' to 3'
- The binding sequence for the top ZFN, 5' to 3'
- The entire binding sequence, including the 5-7 bp nucleotide gap, from 5' to 3' on the top strand
Tool Demo
If you would like to try out an example, you can test the tool out with a DNA sequence that we used to search for a suitable target site for our colorblindness target, in which we tried to search for a site upstream of the red opsin gene to insert a copy of the green opsin gene. This DNA sequence is a stretch of the human X chromosome just upstream of red opsin, and the two zinc fingers we would like to search for have the form of GNNGNNTNN for the bottom finger and GNNGNNANN for the top finger.
Click here to test the tool using these sequences (this is actually how we located our colorblindness targets on the genome).