added option to download pdbqt

This commit is contained in:
Navan Chauhan 2021-03-14 16:11:49 +05:30
parent e0637cf72e
commit 1c5d59d20a
5 changed files with 99820 additions and 41 deletions

View File

@ -1,23 +1,35 @@
// import Popper // import Popper
//= ../../../node_modules/popper.js/dist/umd/popper.js // ../../../node_modules/popper.js/dist/umd/popper.js
// import required js-files Bootstrap 5 // import required js-files Bootstrap 5
//= ../../../node_modules/bootstrap/js/dist/alert.js // ../../../node_modules/bootstrap/js/dist/alert.js
//= ../../../node_modules/bootstrap/js/dist/button.js // ../../../node_modules/bootstrap/js/dist/button.js
//= ../../../node_modules/bootstrap/js/dist/carousel.js // ../../../node_modules/bootstrap/js/dist/carousel.js
//= ../../../node_modules/bootstrap/js/dist/collapse.js // ../../../node_modules/bootstrap/js/dist/collapse.js
//= ../../../node_modules/bootstrap/js/dist/dropdown.js // ../../../node_modules/bootstrap/js/dist/dropdown.js
//= ../../../node_modules/bootstrap/js/dist/modal.js // ../../../node_modules/bootstrap/js/dist/modal.js
//= ../../../node_modules/bootstrap/js/dist/popover.js // ../../../node_modules/bootstrap/js/dist/popover.js
//= ../../../node_modules/bootstrap/js/dist/scrollspy.js // ../../../node_modules/bootstrap/js/dist/scrollspy.js
//= ../../../node_modules/bootstrap/js/dist/tab.js // ../../../node_modules/bootstrap/js/dist/tab.js
//= ../../../node_modules/bootstrap/js/dist/toast.js // ../../../node_modules/bootstrap/js/dist/toast.js
//= ../../../node_modules/bootstrap/js/dist/tooltip.js // ../../../node_modules/bootstrap/js/dist/tooltip.js
function bruh_moment(){ function bruh_moment(){
alert('this is a 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){ function get_smiles_from_element_text(el_id){
var inputVal = document.getElementById(el_id).value; var inputVal = document.getElementById(el_id).value;
let url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`; let url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`;
@ -35,6 +47,7 @@ function get_smiles_from_element_text(el_id){
} }
function draw_me_like_one_of_your_french_girls(mol){ function draw_me_like_one_of_your_french_girls(mol){
mol.condense_abbreviations(); mol.condense_abbreviations();
@ -65,9 +78,9 @@ function calculate_and_disperse(mol){
for (let i = 0; i < keys.length; i++) { for (let i = 0; i < keys.length; i++) {
const key = keys[i]; const key = keys[i];
if(shy_values_do_not_show.indexOf(key) !== -1){ if(shy_values_do_not_show.indexOf(key) !== -1){
console.log("skipping") //console.log("skipping")
} else{ } else{
console.log(key, descrs[key]); //console.log(key, descrs[key]);
var newRow = tableRef.insertRow(-1); var newRow = tableRef.insertRow(-1);
var newCell_label = newRow.insertCell(0); var newCell_label = newRow.insertCell(0);
var newCell_value = newRow.insertCell(-1); var newCell_value = newRow.insertCell(-1);
@ -78,8 +91,26 @@ function calculate_and_disperse(mol){
} }
} }
}
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) { function analyse_me_senpai(smile_pwiz) {
@ -87,5 +118,21 @@ function analyse_me_senpai(smile_pwiz) {
var mol = Module.get_mol(smiles); var mol = Module.get_mol(smiles);
draw_me_like_one_of_your_french_girls(mol); draw_me_like_one_of_your_french_girls(mol);
calculate_and_disperse(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()
}
} }

99721
assets/src/js/openbabel.data Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,9 @@
<section style="padding:60px;"> <section style="padding:60px;">
<div class='container'> <div class='container'>
<div class="grid"> <div class="grid">
<div class='row'><h2 class="display-3">Workbench</h2></div> <div class='row'>
<h2 class="display-3">Workbench</h2>
</div>
<div class='row'> <div class='row'>
<div class='col-md-6'> <div class='col-md-6'>
<!--<canvas id="draw-canvas-2" class="w-100"></canvas>--> <!--<canvas id="draw-canvas-2" class="w-100"></canvas>-->
@ -22,5 +24,10 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div></div> </div>
</div></section> <div class="row">
<button class="btn btn-primary" type="button" onclick="download_pdbqt()" id="download-pdbqt" disabled>Download PDBQT</button>
</div>
</div>
</div>
</section>

View File

@ -1,2 +1,6 @@
<script src="./js/RDKit_minimal.js"></script> <script>
var smiles_text = 'bruh'
</script>
<script src="./js/RDKit_minimal.min.js"></script>
<script src="./js/openbabel.min.js"></script>
<script src="./js/main.min.js"></script> <script src="./js/main.min.js"></script>

View File

@ -5,7 +5,7 @@ var path = {
build: { build: {
html: 'assets/build/', html: 'assets/build/',
js: 'assets/build/js/', js: 'assets/build/js/',
wasm: 'assets/build/js', wasm: 'assets/build/js/',
css: 'assets/build/css/', css: 'assets/build/css/',
img: 'assets/build/img/', img: 'assets/build/img/',
fonts: 'assets/build/fonts/' fonts: 'assets/build/fonts/'
@ -16,7 +16,7 @@ var path = {
style: 'assets/src/style/main.scss', style: 'assets/src/style/main.scss',
img: 'assets/src/img/**/*.*', img: 'assets/src/img/**/*.*',
fonts: 'assets/src/fonts/**/*.*', fonts: 'assets/src/fonts/**/*.*',
wasm: 'assets/src/js/*.wasm' wasm: 'assets/src/js/*.*'
}, },
watch: { watch: {
html: 'assets/src/**/*.html', html: 'assets/src/**/*.html',