UNPKG

jsme

Version:

JSME is a free molecule editor written in JavaScript. JSME is a direct successor of the JME Molecule Editor applet. JSME supports drawing and editing of molecules and reactions on desktop computer, as well as on handheld devices including iPhone, iPad and

97 lines (71 loc) 9.07 kB
<!DOCTYPE html> <html> <head> <TITLE>SMILES performance test</TITLE> <script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script> <style> table, td { border: 1px solid black; } </style> </head> <body> <H1> JSME in depict mode initialized with a SMILES- Performance test using 100 PubChem smiles. </H1> <p>Click the button to create a TABLE with 100 SMILEs depictions.</p> <button onclick="myFunction()">Try it</button> <span id="time_id"> </span> <script> var smiles_array = ['3045381', 'CN(CCCN1CCC2=CC(=C(C=C2CC1=O)OC)OC)C[C@H]3CC4=CC(=C(C=C34)OC)OC.Cl', '132999', 'CN(CCCN1CCC2=CC(=C(C=C2CC1=O)OC)OC)C[C@H]3CC4=CC(=C(C=C34)OC)OC', '21625941', 'CN(CCCN1CCC2=CC(=C(C=C2CC1=O)OC)OC)C[C@@H]3CC4=CC(=C(C=C34)OC)OC', '21460314', 'C1CN(CCN1CCCCNC(=O)C2=CC3=C(C=C2)C4=CC=CC=C43)C5=C(C(=CC=C5)Cl)Cl', '182595', 'C1CN(CCN1CCC2CC3=CC=CC=C23)C4=C5C(=CC=C4)OCCO5', '5326018', 'COC(=O)/C/1=C/C2=C(NC3=CC=CC=C23)/C(=C\\C4=C1NC5=CC=CC=C45)/C(=O)OC', '46850183', 'CC(=O)N[C@H]1CC(=O)OC[C@@H](C2=C(C3=C(C=C2)[C@H]([C@@]4(C3=CC=C4)O[C@H]5[C@@H]([C@@H]([C@@H](C(O5)(C)C)N(C)C)O)O)OC6=C(C=C1C=C6Cl)O)Cl)O', '44598334', 'C1=C(NC(=C1Br)Br)C(=O)NC[C@@H]2[C@H](C3=C2C4=C(C5=C3N=C(N5)N)NC(=N4)N)CNC(=O)C6=CC(=C(N6)Br)Br', '46850345', 'CC1([C@H]([C@H]([C@H]([C@@H](O1)O[C@]23C=CC=C2C4=C5[C@H]3OC6=C(C=C(C=C6Cl)[C@H](CC(=O)OC[C@@H](C(=C4Cl)C=C5)O)N)O)O)O)N(C)C)C', '77987', 'C1=CC=C2C=CC2=C1', '146399', 'C1CN=C(N1)C2CC3=CC=CC=C23', '10389261', 'COC1=C(C=C2CC(=O)N(CCC2=C1)CCCNC[C@H]3CC4=CC(=C(C=C34)OC)OC)OC', '11768558', 'CC/1C/C=C\\C=C/C=C1', '81533', 'C1=C2C(=CC(=C1Cl)Cl)C3=CC(=C(C=C23)Cl)Cl', '130428', 'C1C(C2=C1C3=C(C=C2)C=C(C=C3)O)C(=O)O', '11676066', 'C[C@@H]1[C@](C(=O)[C@H]([C@@H](O1)O[C@]23[C@H](C=CC2=CC4=C(C=C(C=C34)CC#N)Cl)O)O)(C)O', '11704413', 'C[C@@H]1[C@](C(=O)[C@H]([C@@H](O1)O[C@]23[C@H](C=CC2=CC4=C3C(=C(C=C4)CC#N)Cl)O)O)(C)O', '57469246', 'C1=CC=C2C(=C1)C3=CC(=C(C=C23)Cl)Cl', '101219349', 'CO/C/1=C/C(=C/2\\C=C(/CC1)\\C(C3=C(C=C(C(=C3)CCC(C4=C(C=C(C(=C4)CCC2C5=CC=C(C=C5)O)OC)O)C6=CC=C(C=C6)O)OC)O)C7=CC=C(C=C7)O)/O', '101863378', 'COC1=C(C(=C2C[C@@]3(C2=C1)COC4=CC(=CC(=C4C3=O)O)O)O)OC', '102144623', 'C/C=C(/C)\\C(=O)OC1=C2C(=CC(=C1OC)OC)C[C@H](/C(=C\\C3=CC(=C(C(=C32)OC)OC)OC)/C)C', '16046239', 'COC1=CC(=C(C2=C1C(C2)CN)OC)Br', '16086382', 'COC1=CC(=C(C2=C1[C@@H](C2)CN)OC)Br', '58380284', 'CC1(CCC=C1C2=C(C=CC(=C2)COC3=CC4=C(C[C@]45C[C@H]5C(=O)O)C=C3)C6=C(C=CC(=C6)OC)F)C', '231714', 'CC(=O)OC1=CC=C(C=C1)C23C4=C(C2(C5=CC=CC=C35)OC(=O)C)C=C(C=C4)OC(=O)C', '611407', 'C1CCN(CC1)C23CCCCC2C4=CC=CC=C34', '6326374', 'CC(C)(C)OC(=O)N[C@@H](CC1=CC=CC=C1)[C@H](C[C@@H](CC2=CC=CC=C2)C(=O)NC3CC4=CC=CC=C34)O', '9976035', 'C1COC2=CC=CC(=C2OC1)N3CCN(CC3)CCC4CC5=CC=CC=C45', '9996017', 'C1CN(CCN1CC2CC3=CC=CC=C23)C4=CC=CC5=C4OC=C5', '9997154', 'C1CN(CCN1CC2CC3=CC=CC=C23)C4=C5C(=CC=C4)OCCO5', '10022680', 'COC1=CC2=C(CC2CCN3CCN(CC3)C4=C5C(=CC=C4)OCCO5)C=C1', '10045226', 'C1CN(CCN1CCCCC2CC3=CC=CC=C23)C4=C5C(=CC=C4)OCCO5', '10066717', 'C1CN(CCN1CC2CC3=C2C=CC=C3F)C4=C5C(=CC=C4)OCCO5', '10091074', 'C1COC2=CC=CC(=C2OC1)N3CCN(CC3)CCCC4CC5=CC=CC=C45', '10091445', 'C1CN(CCN1CCC2CC3=C2C=CC=C3Cl)C4=C5C(=CC=C4)OCCO5', '10107550', 'C1CC2(C(C3=CC=CC=C32)C4=C1NC5=C4C=C(C=C5)O)O', '10248619', 'C1CN(CCN1CC2CC3=C2C=CC=C3Cl)C4=C5C(=CC=C4)OCCO5', '10338821', 'C1CN(CCN1CCCC2CC3=CC=CC=C23)C4=C5C(=CC=C4)OCCO5', '10341516', 'COC1=C(C=C2C(CC2=C1)CCN3CCN(CC3)C4=C5C(=CC=C4)OCCO5)OC', '10784421', 'C1C[C@H](N(C1)C(=O)C2CC3=CC=CC=C23)C(=O)NCC4CCC(CC4)N', '13538542', 'C1C(C2=C1C(=C(C=C2)O)O)CN', '13538544', 'C1C(C2=CC(=C(C=C21)O)O)CN', '13596018', 'C1CN=C(N1)C2CC3=C2C=CC(=C3O)O.Br', '16086373', 'COC1=CC(=C(C2=C1[C@H](C2)CN)OC)Br', '19092208', 'CC(=O)NCC1CC2=C1C=C(C=C2)OC', '44279505', 'CN(C)CC1CC2=C1C=CC(=C2O)O', '44292981', 'CNC(=O)[C@H](CC1=CC=C(C=C1)OC)NC(=O)C2(CC3=CC=CC=C32)CC(=O)NO', '44340855', 'CCCC(=O)NCC1CC2=C1C=C(C=C2)OC', '44340856', 'CCC(=O)NCC1CC2=C1C=C(C=C2)OC', '44378903', 'CC(C)(C)NCC(COC1=CC2=C(C=C1)[C@@H]3[C@H]2CCCC3)O', '44378926', 'COC1=C(C=C(C=C1)CCNCC(COC2=CC=CC3=C2[C@H]4[C@@]3(CCCCC4)O)O)OC', '44378946', 'CC(C)(C)NCC(COC1=CC=CC2=C1[C@]3([C@@H]2CCCC3)O)O', '44378947', 'CCCC(=O)NC1=C2[C@H]3CCCCC[C@H]3C2=C(C=C1)OCC(CNC(C)C)O', '44378948', 'CC(C)NCC(COC1=CC2=C(C=C1)[C@@H]3[C@H]2CCCCC3)O', '44378964', 'CC(C)NCC(COC1=CC2=C(C=C1)[C@@H]3[C@H]2CCCC3)O', '44379038', 'CC(C)(C)NCC(COC1=CC=CC2=C1[C@H]3[C@@H]2CCCCC3)O', '44379039', 'CC(C)NCC(COC1=CC=CC2=C1[C@H]3[C@@H]2CCCC3)O', '44379207', 'CC(C)NCC(COC1=CC=CC2=C1[C@H]3[C@@H]2CCCCC3)O', '44379251', 'CC(C)(C)NCC(COC1=CC=CC2=C1[C@H]3[C@@]2(CCCCC3)O)O', '44379252', 'CC(C)NCC(COC1=CC=CC2=C1[C@H]3[C@@]2(CCCCC3)O)O', '44379253', 'CC(C)(C)NCC(COC1=CC=CC2=C1[C@]3([C@@H]2CCCCC3)O)O', '44379254', 'CC(C)NCC(COC1=CC=CC2=C1[C@]3([C@@H]2CCCCC3)O)O', '44425322', 'C[C@H]1CN(CC[C@]12C=CC3=CC=CC=C23)CCC(C4=CSC(=N4)NC(=O)C5CC6=CC=CC=C56)C(=O)NCC7=CC(=CC(=C7)C(F)(F)F)C(F)(F)F', '54581746', 'CN([C@@H]1CCC2=C(C3=CC=CC=C3N2C1)CC(=O)O)C(=O)C4CC5=CC=CC=C45', '57325674', 'CC1=C(C(=CC=C1)C)C2=CC(=CC=C2)COC3=CC4=C(C=C3)C(C4)CC(=O)O', '57412664', 'C1C(C2=CC=CC=C21)C(=O)NNC3=C(C=NC=C3Cl)Cl', '9214', 'C1=CC=C2C(=C1)C3=CC=CC=C23', '137953', 'C1C2=CC=CC=C2C1=O', '287162', 'C1CC2CC1C3C2C4=CC=CC=C34', '290544', 'COC1=C(C=C2C(CC2=C1)C#N)OC', '290545', 'COC1=C(C=C2C(CC2=C1)CNC(=O)C=CC3=CC=CC=C3)OC', '302324', 'C1C(C2=CC=CC=C21)C(=O)O', '302327', 'CC1=CC(=C2C(=C1)CC2=O)C', '320412', 'COC1=CC(=CC(=C1OC)OC)C=CC(=O)NCC2CC3=CC(=C(C=C23)OC)OC', '375516', 'CC(C)NC1CCCCC2[C@@]1(C3=C2C=C(C=C3)F)O.Cl', '375518', 'C1CCC2(C3(C4=CC=CC=C4C3(C1)N5CCOCC5)O)OCCCO2', '375535', 'CC1(OCCO1)C2=CC=CC3=C2C4(C3CCC5(C=C4)OCCO5)O', '375539', 'CC(=O)OC1=CC=CC2=C1C3(C2CCCCC3(OC)OC)OC(=O)C', '390052', 'C1C(C2=CC3=C(C=C21)OCO3)C#N', '404858', 'COC1=C(C=C2C(=C1)CC23COC4=CC(=C(C(=C4C3=O)O)O)O)OC', '5467079', 'C1/C(=C\\C2=CC=CC=C2C3=CC=CC=C3C1=O)/Br', '5469850', 'COC1=C(C=C2/C=C\\C3=CC(=C(C=C3C(CC2=C1)N=[N+]=[N-])OC)OC)OC', '9571640', 'COC1=C(C=C2/C=C\\C3=CC(=C(C=C3/C(=N/O)/CC2=C1)OC)OC)OC', '9882859', 'CCN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OC', '10088157', 'C1CN(CCN1CCC2CC3=CC=CC=C23)C4=CC=CC5=C4OC=C5', '10247055', 'C1CN(CCN1CCCC2CC3=CC=CC=C23)C4=CC=CC5=C4OC=C5', '10250307', 'C1CN(CCN1CCCC2CC3=C2C=CC=C3Cl)C4=C5C(=CC=C4)OCCO5', '10357856', 'COC1=CC2=C(C=C1)NC3=C2C4C5=C(C4(CC3)O)C(=CC=C5)O', '12370458', 'C1C(C2=CC=CC=C21)CN=C(N)N.[N+](=O)(O)[O-]', '15406408', 'COC1=CC2=C(C=C1)NC3=C2C4C5=CC=CC=C5C4(CC3)O', '15908946', 'CN1C2=C(C3C4=CC=CC(=C4C3(CC2)O)C=O)C5=C1C=CC(=C5)OC', '25095726', 'C1C(C2=CC=CC=C21)C3=C(C(=C4C=CC=C(C4=N3)C(F)(F)F)C(=O)O)O', '44210088', 'CCCOC(=O)N(C)C1CCN(CC1)CC2CC3=CC=CC=C23', '44210089', 'CCN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)C', '44210090', 'CCCC(=O)N(C)C1CCN(CC1)CC2CC3=CC=CC=C23', '44210091', 'CN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OC', '44210092', 'CCN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OCC', '44210093', 'CN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OC4=CC=CC=C4', '44210094', 'CN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OCC4=CC=CC=C4', '44210095', 'CN(C1CCN(CC1)CC2CC3=CC=CC=C23)C(=O)OC=C']; function myFunction() { // remove the previous table if thereis one (useful for the econd click on the button var tables= document.getElementsByTagName('table'); while (tables.length>0) tables[0].parentNode.removeChild(tables[0]); var table = document.createElement("TABLE"); table.setAttribute("id", "smiles_table"); document.body.appendChild(table); for(var i= 0; i < smiles_array.length; i+=2) { var tr = document.createElement("TR"); var cpd_id = smiles_array[i]; var smiles = smiles_array[i+1]; //tr.setAttribute("id", "myTr"); //document.getElementById("myTable").appendChild(tr); var cell = document.createElement("TD"); var text = document.createTextNode(i/2 +1); cell.appendChild(text); tr.appendChild(cell); cell = document.createElement("TD"); var text = document.createTextNode(cpd_id); cell.appendChild(text); tr.appendChild(cell); cell = document.createElement("TD"); var d = document.createElement("DIV"); cell.appendChild(d); d.setAttribute("id", cpd_id) tr.appendChild(cell); //document.getElementById("myTr").appendChild(z); table.appendChild(tr); } document.getElementById("time_id").innerHTML = "Table creation completed"; function insertSmiles() { for(var i= 0; i < smiles_array.length; i+=2) { var cpd_id = smiles_array[i]; var smiles = smiles_array[i+1]; new JSApplet.JSME(cpd_id, "320px", "180px", {"smiles": smiles, "options": "depict"}); } } var performance = window.performance; var t0 = performance.now(); insertSmiles(); var t1 = performance.now(); var elapsedTime = "Call to insertSmiles took "+ (t1 - t0) + " milliseconds."; console.log(elapsedTime) document.getElementById("time_id").innerHTML = elapsedTime; //JSApplet.Utils.runAfterBrowserEventLoopReturns(function() } </script> </body> </html>