Team:TUDelft/RiboKeyLock Generator

=Ribo Key & Lock Generator=

 <!-- // TUDelft iGEM 2009 // Generate Ribo Keys and Locks for a specific RBS // Version 0.1 // August 4, 2009 // Algorithm by Daniel Solis Escalante // Programmed by Calin Plesa

function replaceOneChar(s,c,n) { var re = new RegExp('^(.{'+ --n +'}).(.*)$',''); return s.replace(re,'$1'+c+'$2'); }

function stringReverse(str) { return str.split("").reverse.join(""); }

function revcomp(inseq) { count = 1; outseq = stringReverse(inseq.toUpperCase); // convert to uppercase and reverse // Reverse complement function for(count=1;count<=outseq.length;count=count+1){ if (outseq.charAt(count-1) == 'A') { outseq = replaceOneChar(outseq,'U',count); } else if (outseq.charAt(count-1) == 'U') { outseq = replaceOneChar(outseq,'A',count); } else if (outseq.charAt(count-1) == 'G') { outseq = replaceOneChar(outseq,'C',count); } else if (outseq.charAt(count-1) == 'C') { outseq = replaceOneChar(outseq,'G',count); }		}	return outseq; }

function dnatorna(inseq) { count = 1; outseq = inseq.toUpperCase; // convert to uppercase // Change T to U	for(count=1;count<=outseq.length;count=count+1){ if (outseq.charAt(count-1) == 'T') { outseq = replaceOneChar(outseq,'U',count); }		}	return outseq; }

function rnatodna(inseq) { count = 1; outseq = inseq.toUpperCase; // convert to uppercase // Change U to T	for(count=1;count<=outseq.length;count=count+1){ if (outseq.charAt(count-1) == 'U') { outseq = replaceOneChar(outseq,'T',count); }		}	return outseq; }

function insertmismatch(inseq,position) { count = 1; outseq = inseq.toUpperCase; // convert to uppercase // Change T to U	if (outseq.charAt(position-1) == 'A') { outseq = replaceOneChar(outseq,'U',position); } else if (outseq.charAt(position-1) == 'U') { outseq = replaceOneChar(outseq,'A',position); } else if (outseq.charAt(position-1) == 'G') { outseq = replaceOneChar(outseq,'C',position); } else if (outseq.charAt(position-1) == 'C') { outseq = replaceOneChar(outseq,'G',position); }	return outseq; }

function calckeylock { //document.getElementById(element).style.backgroundColor = color; //document.RBSinput.RBS.value = "test";

//calculate RNA document.RBSinput.RBS.value = dnatorna(document.RBSinput.RBSdna.value);

RBS = document.RBSinput.RBS.value; Kupsteam = document.RBSinput.KEYupsteam.value; Kdownsteam = document.RBSinput.KEYdownsteam.value; Kfardownsteam = document.RBSinput.KEYfurtherdownsteam.value; KEYposmis1 = document.RBSinput.KEYposmis1.value; KEYposmis2 = document.RBSinput.KEYposmis2.value; KrevcomRBSmis1 = insertmismatch(revcomp(RBS),KEYposmis1); KrevcomRBSmis2 = insertmismatch(KrevcomRBSmis1,KEYposmis2);

Lupstream = document.RBSinput.LOCKupsteam.value; Lscar = document.RBSinput.LOCKscar.value; Lmismatch = document.RBSinput.LOCKmismatch.value; Lscarcomp = document.RBSinput.LOCKscarcomp.value; Lposmis = document.RBSinput.LOCKposmis.value; LrevcomRBSmis = insertmismatch(revcomp(RBS),Lposmis); if (document.RBSinput.RBS.value == "") { document.RBSinput.genkey.value = "Enter a RBS sequence first"; document.RBSinput.genlock.value = "Enter a RBS sequence first"; } else { //RNA document.RBSinput.genkey.value = Kupsteam + RBS + Kdownsteam + KrevcomRBSmis2 + Kfardownsteam; document.RBSinput.genlock.value = Lscarcomp + LrevcomRBSmis + Lmismatch + Lupstream + RBS + Lscar; //DNA document.RBSinput.genkeyDNA.value = rnatodna(document.RBSinput.genkey.value); document.RBSinput.genlockDNA.value = rnatodna(document.RBSinput.genlock.value); //show mismatches document.RBSinput.KEYrevcommisRBS.value = KrevcomRBSmis2; document.RBSinput.LOCKrevcommisRBS.value = LrevcomRBSmis;

}

}

//-->

 Enter RBS DNA sequence:  example: TCACACAGGAAACC or select a BioBrick RBS:

 BBa_B0029 - 1 bp deletion from B0031 BBa_B0030 - RBS.1 (strong) -- modified from R. Weiss BBa_B0031 - RBS.2 (weak) -- derivative of BBa_0030 BBa_B0032 - RBS.3 (medium) -- derivative of BBa_0030 BBa_B0033 - RBS.4 (weaker) -- derivative of BBa_0030 BBa_B0034 - RBS (Elowitz 1999) -- defines RBS efficiency BBa_B0035 - RBS (B0030 derivative) BBa_B0064 - Tuned RBS for Q04401 BBa_B0074 - Orthogonal RBS BBa_J44001 - Reverse RBS (RBSrev) -- corresponds to BBa_B0030 BBa_J61100 - Ribosome Binding Site Family Member BBa_J61101 - Ribosome Binding Site Family Member <option value=AAAGAUCCGAUG>BBa_J61102 - Ribosome Binding Site Family Member <option value=AAAGAUUAGACA>BBa_J61103 - Ribosome Binding Site Family Member <option value=AAAGAAGGGACA>BBa_J61104 - Ribosome Binding Site Family Member <option value=AAAGACAUGACG>BBa_J61105 - Ribosome Binding Site Family Member <option value=AAAGAUAGGAGA>BBa_J61106 - Ribosome Binding Site Family Member <option value=AAAGAAGAGACU>BBa_J61107 - Ribosome Binding Site Family Member <option value=AAAGACGAGAUA>BBa_J61108 - Ribosome Binding Site Family Member <option value=AAAGACUGGAGA>BBa_J61109 - Ribosome Binding Site Family Member <option value=AAAGAGGCGAAU>BBa_J61110 - Ribosome Binding Site Family Member <option value=AAAGAGGCGAUA>BBa_J61111 - Ribosome Binding Site Family Member <option value=AAAGAGGUGACA>BBa_J61112 - Ribosome Binding Site Family Member <option value=AAAGAGUGGAAA>BBa_J61113 - Ribosome Binding Site Family Member <option value=AAAGAUGAGAAG>BBa_J61114 - Ribosome Binding Site Family Member <option value=AAAGAAGGGAUA>BBa_J61115 - Ribosome Binding Site Family Member <option value=AAAGACAUGAGG>BBa_J61116 - Ribosome Binding Site Family Member <option value=AAAGACAUGAGU>BBa_J61117 - Ribosome Binding Site Family Member <option value=AAAGAGACGAAU>BBa_J61118 - Ribosome Binding Site Family Member <option value=AAAGAUUUGAUA>BBa_J61119 - Ribosome Binding Site Family Member <option value=AAAGACGCGAGA>BBa_J61120 - Ribosome Binding Site Family Member <option value=AAAGAGACGAGU>BBa_J61121 - Ribosome Binding Site Family Member <option value=AAAGAGAGGAGC>BBa_J61122 - Ribosome Binding Site Family Member <option value=AAAGAGAUGACU>BBa_J61123 - Ribosome Binding Site Family Member <option value=AAAGAGCCGACA>BBa_J61124 - Ribosome Binding Site Family Member <option value=AAAGAGCCGAGU>BBa_J61125 - Ribosome Binding Site Family Member <option value=AAAGAGGUGACU>BBa_J61126 - Ribosome Binding Site Family Member <option value=AAAGAGUGGAAC>BBa_J61127 - Ribosome Binding Site Family Member <option value=AAAGAUAGGACU>BBa_J61128 - Ribosome Binding Site Family Member <option value=AAAGAUUGGACG>BBa_J61129 - Ribosome Binding Site Family Member <option value=AAAGAAACGACA>BBa_J61130 - Ribosome Binding Site Family Member <option value=AAAGAACCGAAU>BBa_J61131 - Ribosome Binding Site Family Member <option value=AAAGACAGGAUU>BBa_J61132 - Ribosome Binding Site Family Member <option value=AAAGACCCGAGA>BBa_J61133 - Ribosome Binding Site Family Member <option value=AAAGACCGGAAA>BBa_J61134 - Ribosome Binding Site Family Member <option value=AAAGACCGGAGA>BBa_J61135 - Ribosome Binding Site Family Member <option value=AAAGAGCUGAGC>BBa_J61136 - Ribosome Binding Site Family Member <option value=AAAGAGUAGAUC>BBa_J61137 - Ribosome Binding Site Family Member <option value=AAAGAUAUGAAU>BBa_J61138 - Ribosome Binding Site Family Member <option value=AAAGAUUAGAGU>BBa_J61139 - Ribosome Binding Site Family Member <option value=CCCGCCGCCACCAUGGAG>BBa_J63003 - designed yeast Kozak sequence <option value=AUUAAAGAGGAGAAAUA>BBa_K082000 - reconstruct strong RBS <option value=UCACACAGGAAAGUA>BBa_K082001 - RBS medium <option value=AAAGAGGAGAAAUA>BBa_K082002 - RBS defines RBS efficiency <option value=CCCGCCGCCACCAUGGAG>BBa_K165002 - Kozak sequence (yeast RBS)

<a href="#" onclick="calckeylock" title=""><img src="http://2009.igem.org/wiki/images/7/7a/TUD-ribo-keylock-button.png" border="0"></a>

RBS RNA sequence: <input type="text" name="RBS" size=40 value="" readonly="readonly"> example: UCACACAGGAAACC

Key RBS reverse complement RNA sequence with two mismatches: <input type="text" name="KEYrevcommisRBS" size=40 value="" readonly="readonly">

Lock RBS reverse complement RNA sequence with one mismatch: <input type="text" name="LOCKrevcommisRBS" size=40 value="" readonly="readonly">

Key RNA sequence: <textarea rows="5" cols="80" name="genkey" wrap="soft"> Lock RNA sequence: <textarea rows="5" cols="80" name="genlock" wrap="soft"> <a href=http://mfold.bioinfo.rpi.edu/cgi-bin/rna-form1.cgi>Jump to mfold</a> Key DNA sequence: <textarea rows="5" cols="80" name="genkeyDNA" wrap="soft"> Lock DNA sequence: <textarea rows="5" cols="80" name="genlockDNA" wrap="soft">

Key variables: Upstream <input type="text" name="KEYupsteam" value="ACCCAAAGUCC" readonly="readonly" size=40> Downstream <input type="text" name="KEYdownsteam" value="UGGUUAAUGAAAAUUAACUUA" readonly="readonly" size=40> Further Downstream (optional part) <input type="text" name="KEYfurtherdownsteam" value="AAAAAGCCGAGUUAUUAAUCCGGCUU" readonly="readonly" size=40> Position 1 (bp) of mismatch in the reverse complment of RBS <input type="text" name="KEYposmis1" value="8" readonly="readonly" size=40> Position 2 (bp) of mismatch in the reverse complment of RBS <input type="text" name="KEYposmis2" value="9" readonly="readonly" size=40>

Lock variables: Upstream <input type="text" name="LOCKupsteam" value="UUUGGGUAGAUCAC" readonly="readonly" size=40> Scar + Start Codon <input type="text" name="LOCKscar" value="UACUAGAUG" readonly="readonly" size=40> Mismatch sequence <input type="text" name="LOCKmismatch" value="GGAC" readonly="readonly" size=40> Scar complement <input type="text" name="LOCKscarcomp" value="GUA" readonly="readonly" size=40> Position (bp) of mismatch in the reverse complment of RBS <input type="text" name="LOCKposmis" value="3" readonly="readonly" size=40>