// import Popper // ../../../node_modules/popper.js/dist/umd/popper.js // import required js-files Bootstrap 5 // ../../../node_modules/bootstrap/js/dist/alert.js // ../../../node_modules/bootstrap/js/dist/button.js // ../../../node_modules/bootstrap/js/dist/carousel.js // ../../../node_modules/bootstrap/js/dist/collapse.js // ../../../node_modules/bootstrap/js/dist/dropdown.js // ../../../node_modules/bootstrap/js/dist/modal.js // ../../../node_modules/bootstrap/js/dist/popover.js // ../../../node_modules/bootstrap/js/dist/scrollspy.js // ../../../node_modules/bootstrap/js/dist/tab.js // ../../../node_modules/bootstrap/js/dist/toast.js // ../../../node_modules/bootstrap/js/dist/tooltip.js function bruh_moment(){ alert('this is a bruh moment') } const downloadToFile = (content, filename, contentType) => { const a = document.createElement('a'); const file = new Blob([content], {type: contentType}); a.href= URL.createObjectURL(file); a.download = filename; a.click(); URL.revokeObjectURL(a.href); }; function get_smiles_from_element_text(el_id){ var inputVal = document.getElementById(el_id).value; let url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`; console.log(url) fetch(url) .then(res => res.json()) .then((out) => { console.log('Aye, got that dub from PubChem'); //console.log(out["PropertyTable"]["Properties"][0]["CanonicalSMILES"]) document.getElementById("inputSMILES").value = out["PropertyTable"]["Properties"][0]["CanonicalSMILES"] }) .catch(err => { bruh_moment() throw err }); } function draw_me_like_one_of_your_french_girls(mol){ mol.condense_abbreviations(); //var canvas = document.getElementById("draw-canvas-2"); //mol.draw_to_canvas(canvas, -1, -1); var dest = document.getElementById("draw-output"); var svg = mol.get_svg(); dest.outerHTML = "
" + svg + "
"; document.getElementById('drawing-1').children[0].setAttribute("height", "100%"); document.getElementById('drawing-1').children[0].setAttribute("width", "100%"); } function calculate_and_disperse(mol){ const shy_values_do_not_show = ["NumUnspecifiedAtomStereoCenters","NumAliphaticHeterocycles", "NumSaturatedHeterocycles","NumAromaticHeterocycles","NumAmideBonds","NumAromaticRings","NumAliphaticRings" ,"NumSaturatedRings","NumSpiroAtoms","NumBridgeheadAtoms","NumAtomStereoCenters"] try { var descrs = JSON.parse(mol.get_descriptors()); } catch(err) { alert("oo wee, failed to calculate descriptors senpai") } //document.getElementById('exactmw').textContent = descrs["exactmw"]; //document.getElementById('CrippenMR').textContent = descrs["CrippenMR"]; //document.getElementById('CrippenClogP').textContent = descrs["CrippenClogP"]; let tableRef = document.getElementById("analyse_table"); const keys = Object.keys(descrs); for (let i = 0; i < keys.length; i++) { const key = keys[i]; if(shy_values_do_not_show.indexOf(key) !== -1){ //console.log("skipping") } else{ //console.log(key, descrs[key]); var newRow = tableRef.insertRow(-1); var newCell_label = newRow.insertCell(0); var newCell_value = newRow.insertCell(-1); var newText_label = document.createTextNode(key); var newText_value = document.createTextNode(descrs[key]); newCell_label.appendChild(newText_label); newCell_value.appendChild(newText_value); } } } function convert_me_senpai(smiles) { var OpenBabel = OpenBabelModule(); OpenBabel.onRuntimeInitialized = function() { var conv = new OpenBabel.ObConversionWrapper(); try { var inData = smiles; conv.setInFormat('', 'smiles'); var mol = new OpenBabel.OBMol(); conv.readString(mol, inData); conv.setOutFormat('', 'pdbqt'); var outData = conv.writeString(mol, false); //console.log(outData); document.getElementById('download-pdbqt').disabled=false; return outData; } finally { conv.delete(); // free ObConversionWrapper instance } } } function analyse_me_senpai(smile_pwiz) { var smiles = document.getElementById(smile_pwiz).value; var mol = Module.get_mol(smiles); draw_me_like_one_of_your_french_girls(mol); calculate_and_disperse(mol); smiles_text = convert_me_senpai(smiles); } function download_pdbqt(){ if (document.getElementById("inputName").value === ""){ var fname = "compound.pdbqt" } else { var fname = `${document.getElementById("inputName").value}.pdbqt` } try { //var smiles_text = convert_me_senpai(document.getElementById("inputSMILES").value) downloadToFile(smiles_text,fname,"chemical/x-pdbqt") } catch(err) { console.error(err) bruh_moment() } }