1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
// 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')
}
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 = "<div id='drawing-1'>" + svg + "</div>";
console.log(svg)
}
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 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);
}
|