Difference between revisions of "Team:SEU/tool"

Line 40: Line 40:
 
     <title>Tool</title>
 
     <title>Tool</title>
 
     <style type="text/css">
 
     <style type="text/css">
         .talk_show{
+
         .diagram{
 
             width:1080px;
 
             width:1080px;
 
             height:620px;
 
             height:620px;
Line 47: Line 47:
 
             margin:10px auto 0;
 
             margin:10px auto 0;
 
             overflow:auto;
 
             overflow:auto;
 +
            float: left;
 +
           
 +
        }
 +
        .sequence{
 +
            width:540px;
 +
            height:620px;
 +
            border:1px solid #666;
 +
            background:#fff;
 +
            margin:10px auto 0;
 +
            overflow:auto;
 +
            float: left;
 +
           
 
         }
 
         }
 
     </style>
 
     </style>
Line 179: Line 191:
 
   <script>
 
   <script>
 
var DNAspace=6;//| | | |
 
var DNAspace=6;//| | | |
var DNAwid=10;
+
var DNAwid=12;
 
var DNAstep=2;
 
var DNAstep=2;
var arrowLen=9;
+
var arrowLen=4;
 
var arrowHeadLen=8;
 
var arrowHeadLen=8;
 
var arrowAngle=Math.PI/8;
 
var arrowAngle=Math.PI/8;
 
var DNAseperate=44;
 
var DNAseperate=44;
var Font="8px Arial";
+
var Font="0px Arial";
 
var FontDescription="14px Arial";
 
var FontDescription="14px Arial";
 
var fontSpace=2;
 
var fontSpace=2;
 
var Black=[0,0,0];
 
var Black=[0,0,0];
var reacArrowLen=20;
+
var reacArrowLen=40;
 
var reacArrowHeadLen=6;
 
var reacArrowHeadLen=6;
 
var longDNAlen=20;
 
var longDNAlen=20;
Line 201: Line 213:
 
var shortDNAlen=10;
 
var shortDNAlen=10;
 
ctx.lineWidth=1;
 
ctx.lineWidth=1;
//clearCanvas();
+
var seqDict=drawNeuron(ctx,weightedNum,50,50);
drawNeuron(ctx,weightedNum,50,50);
+
showSeq(seqDict,[10,10]);
 
//arrowReac(ctx,200,50,[500,500]);
 
//arrowReac(ctx,200,50,[500,500]);
 +
}
 +
function showSeq(seqDict,[X0,Y0]){
 +
var X=X0,Y=Y0;
 +
    var seqs = document.getElementById("sequence");
 +
    for(var i=0;i<seqDict[0].length;i++){
 +
    seqs.innerHTML=seqs.innerHTML+seqDict[0][i]+":<br>"
 +
for(var j in seqDict[i+1]){
 +
seqs.innerHTML = seqs.innerHTML + change(seqDict[i+1][j]) +"<br>";
 +
}
 +
}     
 
}
 
}
 
function clearCanvas(){
 
function clearCanvas(){
 
var c=document.getElementById('canvas');
 
var c=document.getElementById('canvas');
 
var ctx=c.getContext('2d');
 
var ctx=c.getContext('2d');
 +
ctx.
 +
c=document.getElementById('seqCanvas');
 +
ctx=c.getContext('2d');
 
ctx.clearRect(0,0,c.width,c.height);
 
ctx.clearRect(0,0,c.width,c.height);
 
}
 
}
Line 905: Line 930:
 
Y=Y-longDNAlen;
 
Y=Y-longDNAlen;
 
arrowDashedUpRight45(ctx,dl,shortDNAlen,[X,Y],dColor,arrowHeadLen,arrowAngle,DNAstep);
 
arrowDashedUpRight45(ctx,dl,shortDNAlen,[X,Y],dColor,arrowHeadLen,arrowAngle,DNAstep);
 
+
 
X=X+shortDNAlen+DNAseperate*2;
 
X=X+shortDNAlen+DNAseperate*2;
 
Y=Y0+4*DNAseperate;
 
Y=Y0+4*DNAseperate;
Line 1,417: Line 1,442:
 
var wi0pColor=[],wi0nColor=[];
 
var wi0pColor=[],wi0nColor=[];
 
var wipColor=[],winColor=[];
 
var wipColor=[],winColor=[];
 +
var seqDict=[[]];
 
for(var i=1;i<=weightNum;i=i+1){
 
for(var i=1;i<=weightNum;i=i+1){
 
wi0p.push("w"+i+"0+");
 
wi0p.push("w"+i+"0+");
Line 1,452: Line 1,478:
 
X=X0;
 
X=X0;
 
}
 
}
 
+
for(var i=1;i<=weightNum;i=i+1){
 +
seqDict=multiplicationReLU(seqDict,inputpBkp[i-1],wip[i-1],xp,y);
 +
seqDict=multiplicationReLU(seqDict,inputnBkp[i-1],wip[i-1],xn,yn);
 +
seqDict=multiplicationReLU(seqDict,inputpBkp[i-1],win[i-1],xn,yn);
 +
seqDict=multiplicationReLU(seqDict,inputnBkp[i-1],win[i-1],xp,y);
 +
}
 
//x^+ + x^- -> \phi
 
//x^+ + x^- -> \phi
 
//Y=displayStr(ctx,"x+ + x- -> waste",[X,Y],Black);
 
//Y=displayStr(ctx,"x+ + x- -> waste",[X,Y],Black);
 
X=X0;
 
X=X0;
 
Y=drawSub(ctx,xp,xn,waste,xpColor,xnColor,wasteColor,[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 
Y=drawSub(ctx,xp,xn,waste,xpColor,xnColor,wasteColor,[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 +
seqDict=subtraction(seqDict,xp,xn,waste);
 
X=X0;
 
X=X0;
 
//y + y^- -> \phi
 
//y + y^- -> \phi
Line 1,462: Line 1,494:
 
X=X0;
 
X=X0;
 
Y=drawSub(ctx,y,yn,waste,yColor,ynColor,wasteColor,[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 
Y=drawSub(ctx,y,yn,waste,yColor,ynColor,wasteColor,[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 +
seqDict=subtraction(seqDict,y,yn,waste);
 
X=X0;
 
X=X0;
  
Line 1,470: Line 1,503:
 
Y=drawMul(ctx,xp,inputn[i-1],wi0n[i-1],xpColor,inputnColor[i-1],wi0pColor[i-1],[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 
Y=drawMul(ctx,xp,inputn[i-1],wi0n[i-1],xpColor,inputnColor[i-1],wi0pColor[i-1],[X,Y],longDNAlen,shortDNAlen)+4*DNAseperate;
 
X=X0;
 
X=X0;
 +
}
 +
for(var i=1;i<=weightNum;i=i+1){
 +
seqDict=multiplication(seqDict,xp,inputp[i-1],wi0n[i-1]);
 +
seqDict=multiplication(seqDict,xp,inputn[i-1],wi0n[i-1]);
 
}
 
}
 
 
Line 1,481: Line 1,518:
 
X=X0;
 
X=X0;
 
}
 
}
 +
for(var i=1;i<=weightNum;i=i+1){
 +
seqDict=add(seqDict,wi0p[i-1],wip[i-1],waste);
 +
seqDict=add(seqDict,wi0n[i-1],win[i-1],waste);
 +
seqDict=add(seqDict,wip[i-1],win[i-1],waste);
 +
}
 +
return seqDict;
 +
}
 +
///////////////////////////////sequence design//////////////////////////////////////////////////////
 +
function zeros(num){
 +
var z=[];
 +
for (var i = 0; i < num; i++) {
 +
z.push(0);
 +
}
 +
return z;
 +
}
  
 +
function change(a){
 +
var chain='';
 +
for(var i=0;i<a.length;i++){
 +
if(a[i]==0)
 +
chain+='';
 +
if(a[i]==1)
 +
chain+='A';
 +
if(a[i]==2)
 +
chain+='T';
 +
if(a[i]==3)
 +
chain+='C';
 +
if(a[i]==4)
 +
chain+='G';
 +
}
 +
return chain;
 +
}
  
 +
function check(a,b){
 +
var i;
 +
var Original1=[];
 +
n=a.length;
 +
if(b==1){
 +
for(i=3;i<n-3;i++){
 +
if(a[i]==1&&a[i-1]==1&&a[i-2]==1&&a[i-3]==1)
 +
a[i]=randsrc([2,3],[0.5,0.5]);
 +
if(a[i]==2&&a[i-1]==2&&a[i-2]==2&&a[i-3]==2)
 +
a[i]=randsrc([1,3],[0.5,0.5]);
 +
if(a[i]==3&&a[i-1]==3&&a[i-2]==3)
 +
a[i]=randsrc([1,2],[0.5,0.5]);
 +
}
 +
if(a[n-5]==1&&a[n-4]==1&&a[n-3]==1)
 +
a[n-4]=randsrc([2,3],[0.5,0.5]);
 +
}
 +
if(b==2){
 +
for(i=2;i<n-1;i++){
 +
if(i==2){
 +
if(a[i]==3&&a[i-1]==3&&a[i-2]==3)
 +
a[i]=randsrc([1,2],[0.5,0.5]);
 +
}
 +
if (i>2){
 +
if(a[i]==1&&a[i-1]==1&&a[i-2]==1&&a[i-3]==1)
 +
a[i]=randsrc([2,3],[0.5,0.5]);
 +
if(a[i]==2&&a[i-1]==2&&a[i-2]==2&&a[i-3]==2)
 +
a[i]=randsrc([1,3],[0.5,0.5]);
 +
if(a[i]==3&&a[i-1]==3&&a[i-2]==3)
 +
a[i]=randsrc([1,2],[0.5,0.5]);
 +
}
 +
}
 +
}
 +
for(i=0;i<n;i++)
 +
Original1.push(a[i]);
 +
return Original1;
 
}
 
}
 +
 +
 +
function creatComplementary(Original0){
 +
var Complementary0=[];
 +
for(var i=0;i<Original0.length;i++){
 +
if(Original0[i]==1)
 +
        Complementary0.push(2);
 +
    if(Original0[i]==2)
 +
        Complementary0.push(1);
 +
    if(Original0[i]==3)
 +
        Complementary0.push(4);
 +
}
 +
return Complementary0;
 +
}
 +
 +
 +
function randsrc(entry,prob){
 +
var r=Math.random();
 +
var totalP=prob[0];
 +
var i;
 +
for(i=1;i<entry.length;i++){
 +
if(r<totalP)
 +
return entry[i-1];
 +
totalP+=prob[i];
 +
}
 +
return entry[i];
 +
}
 +
 +
function creatlongchain(a){
 +
var longchain0=[],longchain0_=[];
 +
var i;
 +
for(i=0;i<a;i++)
 +
longchain0.push(randsrc([1,2,3],[0.15,0.15,0.7]));
 +
longchain0[0]=1;
 +
longchain0[1]=3;
 +
longchain0[a-2]=1;
 +
longchain0[a-1]=3;
 +
longchain0=check(longchain0,1);
 +
longchain0_=creatComplementary(longchain0);
 +
return [longchain0,longchain0_];
 +
}
 +
 +
function creatshortchain(){
 +
var core=[],t=randsrc([0,1,2],[1/3,1/3,1/3]),clamp=[1,3];
 +
var shortchain_l=[0,0,0,0,0],shortchain_l_=[0,0,0,0,0],shortchain_r=[0,0,0,0,0],shortchain_r_=[0,0,0,0,0];
 +
var i;
 +
for(i=0;i<3;i++)
 +
core.push(randsrc([1,2],[0.5,0.5]));
 +
core[t]=3;
 +
shortchain_l[0]=clamp[0];
 +
shortchain_l[1]=clamp[1];
 +
shortchain_l[2]=core[0];
 +
shortchain_l[3]=core[1];
 +
shortchain_l[4]=core[2];
 +
 +
shortchain_r[0]=core[0];
 +
shortchain_r[1]=core[1];
 +
shortchain_r[2]=core[2];
 +
shortchain_r[3]=clamp[0];
 +
shortchain_r[4]=clamp[1];
 +
 +
shortchain_l_=creatComplementary(shortchain_l);
 +
shortchain_r_=creatComplementary(shortchain_r);
 +
return [shortchain_l,shortchain_l_,shortchain_r,shortchain_r_];
 +
}
 +
 +
function add(dict,aName,bName,cName){//dict:[[<species name>s],[Da,al,a,ar,Da*,al*,a*,ar*],[...],...]
 +
var Da,Da_,Db,Db_,Dc,Dc_,a,a_,b,b_,c,c_;//long chain
 +
var al,al_,ar,ar_,bl,bl_,br,br_,cl,cl_,cr,cr_;//short chain
 +
[Da,Da_]=creatlongchain(15);
 +
[Db,Db_]=creatlongchain(15);
 +
[Dc,Dc_]=creatlongchain(15);
 +
[a,a_]=creatlongchain(15);
 +
[b,b_]=creatlongchain(15);
 +
[c,c_]=creatlongchain(15);
 +
[al,al_,ar,ar_]=creatshortchain();
 +
[bl,bl_,br,br_]=creatshortchain();
 +
[cl,cl_,cr,cr_]=creatshortchain();
 +
if(!(aName in dict[0])){
 +
dict[0].push(aName);
 +
dict.push([Da,al,a,ar,Da_,al_,a_,ar_]);
 +
}
 +
if(!(bName in dict[0])){
 +
dict[0].push(bName);
 +
dict.push([Db,bl,b,br,Db_,bl_,b_,br_]);
 +
}
 +
if(!(cName in dict[0])){
 +
dict[0].push(cName);
 +
dict.push([Dc,cl,c,cr,Dc_,cl_,c_,cr_]);
 +
}
 +
 +
///////////////////////////////////////////////////////
 +
var ai=[Da,0,al,0,a,0,ar];
 +
var Gi_up=zeros(al.length).concat([0,a,0,ar,0,Db,0,bl,0,Dc,0,cl]);
 +
    var Gi_down=[al_,0,a_,0,ar_,0].concat(zeros(Db.length+bl.length+Dc.length+cl.length),[0,0,0]);
 +
var Oi=[a,0,ar,0,Db,0,bl,0,Dc,0,cl];
 +
var waste1_up=[Da,0,al,0,a,0,ar];
 +
    var waste1_down=zeros(Da.length).concat[0,al_,0,a_,0,ar_];
 +
var waste2_up=[a,0,ar,0,Db,0,bl,0,Dc,0,cl];
 +
    var waste2_down=zeros(a.length).concat[0,al_,0,Db_,0,bl_,0,Dc_,0,cl_];
 +
var bi=[Db,0,bl,0,b,0,br];
 +
var ci=[Dc,0,cl,0,c,0,cr];
 +
var Ti1=[Db,0,bl,0,b,0,br];
 +
var Ti2=[Dc,0,cl,0,c,0,cr];
 +
var Ti3=[al_,0,Db_,0,bl_,0,Dc_,0,cl_];
 +
return dict;
 +
}
 +
 +
function multiplication(dict,aName,bName,cName){
 +
var Da,Da_,Db,Db_,Dc,Dc_,a,a_,b,b_,c,c_;//long chain
 +
var al,al_,ar,ar_,bl,bl_,br,br_,cl,cl_,cr,cr_;//short chain
 +
[Da,Da_]=creatlongchain(15);
 +
[Db,Db_]=creatlongchain(15);
 +
[Dc,Dc_]=creatlongchain(15);
 +
[a,a_]=creatlongchain(15);
 +
[b,b_]=creatlongchain(15);
 +
[c,c_]=creatlongchain(15);
 +
[al,al_,ar,ar_]=creatshortchain();
 +
[bl,bl_,br,br_]=creatshortchain();
 +
[cl,cl_,cr,cr_]=creatshortchain();
 +
if(!(aName in dict[0])){
 +
dict[0].push(aName);
 +
dict.push([Da,al,a,ar,Da_,al_,a_,ar_]);
 +
}
 +
if(!(bName in dict[0])){
 +
dict[0].push(bName);
 +
dict.push([Db,bl,b,br,Db_,bl_,b_,br_]);
 +
}
 +
if(!(cName in dict[0])){
 +
dict[0].push(cName);
 +
dict.push([Dc,cl,c,cr,Dc_,cl_,c_,cr_]);
 +
}
 +
/////////////////////////////////////////////////////////
 +
var ai=[Da,0,al,0,a,0,ar];
 +
var Li_up=zeros(al.length).concat([0,a,0,ar,0,bl,0,b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl]);
 +
    var Li_down=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_].concat(zeros(Da.length+al.length+Db.length+bl.length+Dc.length+cl.length),[0,0,0,0,0,0]);
 +
var Hi_up=[Da,0,al,0,a,0,ar,0].concat([zeros(bl_.length)],[0,b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl]);
 +
var Hi_down=zeros(Da.length).concat([0,al_,0,a_,0,ar_,0,bl_,0,b_,0,br_],zeros(Da.length+al.length+Db.length+bl.length+Dc.length+cl.length),[0,0,0,0,0,0]);
 +
 +
var Bi=[a,0,ar,0,bl];
 +
var bi=[Db,0,bl,0,b,0,br];
 +
var waste11=[Da,0,al,0,a,0,ar];
 +
var waste12=[Db,0,bl,0,b,0,br];
 +
var waste13=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_];
 +
var Oi=[b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl];
 +
var Ti1=[Da,0,al,0,a,0,ar];
 +
var Ti2=[Db,0,bl,0,b,0,br];
 +
var Ti3=[Dc,0,cl,0,b,0,br];
 +
var Ti4=[br_,0,Da_,0,al_,0,Db_,0,bl_,0,Dc_,0,cl_];
 +
var waste2_up=[b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl];
 +
var waste2_down=zeros(b.length).concat([0,br_,0,Da_,0,al_,0,Db_,0,bl_,0,Dc_,0,cl_]);
 +
var ci=[Dc,0,cl,0,c,0,cr];
 +
return dict;
 +
}
 +
 +
function subtraction(dict,aName,bName,cName){
 +
var Da,Da_,Db,Db_,Dc,Dc_,a,a_,b,b_,c,c_;//long chain
 +
var al,al_,ar,ar_,bl,bl_,br,br_,cl,cl_,cr,cr_;//short chain
 +
[Da,Da_]=creatlongchain(15);
 +
[Db,Db_]=creatlongchain(15);
 +
[Dc,Dc_]=creatlongchain(15);
 +
[a,a_]=creatlongchain(15);
 +
[b,b_]=creatlongchain(15);
 +
[c,c_]=creatlongchain(15);
 +
[al,al_,ar,ar_]=creatshortchain();
 +
[bl,bl_,br,br_]=creatshortchain();
 +
[cl,cl_,cr,cr_]=creatshortchain();
 +
if(!(aName in dict[0])){
 +
dict[0].push(aName);
 +
dict.push([Da,al,a,ar,Da_,al_,a_,ar_]);
 +
}
 +
if(!(bName in dict[0])){
 +
dict[0].push(bName);
 +
dict.push([Db,bl,b,br,Db_,bl_,b_,br_]);
 +
}
 +
if(!(cName in dict[0])){
 +
dict[0].push(cName);
 +
dict.push([Dc,cl,c,cr,Dc_,cl_,c_,cr_]);
 +
}
 +
/////////////////////////////////////////////////////////
 +
var ai=[Da,0,al,0,a,0,ar];
 +
var Li_up=zeros(al_.length).concat([0,a,0,ar,0,bl,0,b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl]);
 +
    var Li_down=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_].concat(zeros(Dc.length+cl.length),[0,0]);
 +
var Hi_up=[Da,0,al,0,a,0,ar,0].concat([zeros(bl_.length)],[0,b,0,br,0,Dc,0,cl]);
 +
var Hi_down=zeros(Da.length).concat([0,al_,0,a_,0,ar_,0,bl_,0,b_,0,br_,0],zeros(Dc.length+cl.length),[0]);
 +
var Bi=[a,0,ar,0,bl];
 +
var bi=[Db,0,bl,0,b,0,br];
 +
var waste11=[Da,0,al,0,a,0,ar];
 +
var waste12=[Db,0,bl,0,b,0,br];
 +
var waste13=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_];
 +
var Oi=[b,0,br,0,Dc,0,cl];
 +
var Ti_up=zeros(br_.length).concat([0,Dc,0,cl,0,c,0,cr]);
 +
var Ti_down=[br_,0,Dc_,0,cl_,0].concat(zeros(c.length+cr.length),[0]);
 +
var waste2_up=[b,0,br,0,Dc,0,cl];
 +
var waste2_down=zeros(b.length).concat([0,br_,0,Dc_,0,cl_]);
 +
var ci=[Dc,0,cl,0,c,0,cr];
 +
return dict;
 +
}
 +
 +
function multiplicationReLU(dict,aName,bName,cName,dName){
 +
var Da,Da_,Db,Db_,Dc,Dc_,Dd,Dd_,a,a_,b,b_,c,c_,d,d_;//long chain
 +
var al,al_,ar,ar_,bl,bl_,br,br_,cl,cl_,cr,cr_,dl,dl_,dr,dr_;//short chain
 +
[Da,Da_]=creatlongchain(15);
 +
[Db,Db_]=creatlongchain(15);
 +
[Dc,Dc_]=creatlongchain(15);
 +
[Dd,Dd_]=creatlongchain(15);
 +
[a,a_]=creatlongchain(15);
 +
[b,b_]=creatlongchain(15);
 +
[c,c_]=creatlongchain(15);
 +
[d,d_]=creatlongchain(15);
 +
[al,al_,ar,ar_]=creatshortchain();
 +
[bl,bl_,br,br_]=creatshortchain();
 +
[cl,cl_,cr,cr_]=creatshortchain();
 +
[dl,dl_,dr,dr_]=creatshortchain();
 +
if(!(aName in dict[0])){
 +
dict[0].push(aName);
 +
dict.push([Da,al,a,ar,Da_,al_,a_,ar_]);
 +
}
 +
if(!(bName in dict[0])){
 +
dict[0].push(bName);
 +
dict.push([Db,bl,b,br,Db_,bl_,b_,br_]);
 +
}
 +
if(!(cName in dict[0])){
 +
dict[0].push(cName);
 +
dict.push([Dc,cl,c,cr,Dc_,cl_,c_,cr_]);
 +
}
 +
if(!(dName in dict[0])){
 +
dict[0].push(dName);
 +
dict.push([Dd,dl,d,dr,Dd_,dl_,d_,dr_]);
 +
}
 +
/////////////////////////////////////////////////////////
 +
var ai=[Da,0,al,0,a,0,ar];
 +
var Li_up=zeros(al.length).concat([0,a,0,ar,0,bl,0,b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl,0,Dd,0,dl]);
 +
    var Li_down=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_].concat(zeros(Da.length+al.length+Db.length+bl.length+Dc.length+cl.length+Dd.length+dl.length),[0,0,0,0,0,0,0,0]);
 +
var Hi_up=[Da,0,al,0,a,0,ar,0].concat([zeros(bl_.length)],[0,b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl,0,Dd,0,dl]);
 +
var Hi_down=zeros(Da.length).concat([0,al_,0,a_,0,ar_,0,bl_,0,b_,0,br_],zeros(Da.length+al.length+Da.length+al.length+Dc.length+cl.length+Dd.length+dl.length),[0,0,0,0,0,0,0,0]);
 +
var Bi=[a,0,ar,0,bl];
 +
var bi=[Db,0,bl,0,b,0,br];
 +
var waste11=[Da,0,al,0,a,0,ar];
 +
var waste12=[Db,0,bl,0,b,0,br];
 +
var waste13=[al_,0,a_,0,ar_,0,bl_,0,b_,0,br_];
 +
var Oi=[b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl,0,Dd,0,dl];
 +
var Ti1=[Da,0,al,0,a,0,ar];
 +
var Ti2=[Db,0,bl,0,b,0,br];
 +
var Ti3=[Dc,0,cl,0,c,0,cr];
 +
var Ti4=[Dd,0,dl,0,d,0,dr];
 +
var Ti5=[br_,0,Da_,0,al_,0,Db_,0,bl_,0,Dc_,0,cl_,0,Dd_,0,dl_];
 +
var waste2_up=[b,0,br,0,Da,0,al,0,Db,0,bl,0,Dc,0,cl,0,Dd,0,dl];
 +
var waste2_down=zeros(b.length).concat([0,br_,0,Da_,0,al_,0,Db_,0,bl_,0,Dc_,0,cl_,0,Dd_,0,dl_]);
 +
var ci=[Dc,0,cl,0,c,0,cr];
 +
var di=[Dd,0,dl,0,d,0,dr];
 +
return dict;
 +
}
 +
 
   </script>
 
   </script>
 
  <body>
 
  <body>
         <div class="talk_show" id="words">
+
         <div class="diagram" id="words">
 
             <canvas id="canvas"  width="2000" height="20000"></canvas>
 
             <canvas id="canvas"  width="2000" height="20000"></canvas>
 +
            <!-- <script type="text/javascript">draw();</script> -->
 +
 +
        </div>
 +
        <div class="sequence" id="sequence">
 +
          <!--  <canvas id="seqCanvas"  width="200" height="20000"></canvas> -->
 
             <!-- <script type="text/javascript">draw();</script> -->
 
             <!-- <script type="text/javascript">draw();</script> -->
  

Revision as of 08:02, 10 September 2019

Tool

Number:

Welcome to Wiki of SEU!

Your team has been approved and you are ready to start the iGEM season!

More Details