diff --git a/README.md b/README.md index 232e35e..ab6bfda 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,80 @@ ![Database Tests](https://github.com/navanchauhan/Curie-Web/workflows/Test%20Database/badge.svg) [![DeepSource](https://static.deepsource.io/deepsource-badge-dark-mini.svg)](https://deepsource.io/gh/navanchauhan/Curie-Web/?ref=repository-badge) +Tested on: +* macOS 10.15 (Catalina) +* Ubuntu 20.04 - Raspberry Pi 4 **Do Not Forget To Change DB Host configuration!** +## 1. Installing Dependencies + +### 1.1 Docker + +Once you have installed docker, make sure to pull the following images (Otherwise, these will automatically get downloaded when you run the web-server) + +* navanchauhan/curie-cli (amd64/aarch64) +* navanchauhan/usd-from-gltf (aarch64) +* leon/usd-from-gltf (amd64) + +### 1.2 PLIP + +Install from [pharmai/plip](https://github.com/pharmai/plip). + +In case you have problems installing it, install it from the forked repo [navanchauhan/plip](https://github.com/navanchauhan/plip) + +### 1.3 PyMOL with Python Bindings (version >= 2.0) + +* macOS users can use Homebrew to install it via `brew install pymol` + +* Users using apt can install it via `sudo apt install pymol` + +### 1.4 Open-Babel (version >= 3.0) + +macOS users can use Homebrew to install it via `brew install open-babel` + +Users using apt can install it via `sudo apt install openbabel python3-openbabel` + +## 2. Changing the Configuration + +Replace the values in `app/__init__.py`, `app/dock-single.py` and `app/dock-docker.py` + +## 3. Enabling LSTM Generator + +Open `app/views.py` + +Make sure you have installed Tensorflow. Replace the following: + +```python +tfWorking = 0 +``` + +with + +```python +tfWorking = -1 +``` + +## 4. Adding AR Model Support + +Make sure you have PyMOL 2.0 or higher +Either download the precompiled binaries from [COLLADA2GLTF](https://github.com/KhronosGroup/COLLADA2GLTF) or compile it on your own + + +Once you have the `COLLADA2GLTF-bin` file, run the following: + ``` -export PATH=$PATH:/home/pi/Desktop/Curie-Web/app/src/scripts -export PYTHONPATH=$PYTHONPATH:/home/pi/Desktop/Curie-Web/app/src -alias plip="python3 /home/pi/Desktop/Curie-Web/app/src/plip/plipcmd.py" -chmod +x /home/pi/Desktop/Curie-Web/app/src/scripts/*.sh -chmod +x /home/pi/Desktop/Curie-Web/app/src/scripts/*.py -``` +cp COLLADA2GLTF-bin /usr/local/bin/collada2gltf +``` + +## Running + +### Without FastAPI + +`gunicorn api:app -b "0.0.0.0:7589"` + +### With FastAPI + +`gunicorn api:app -k uvicorn.workers.UvicornWorker -b "0.0.0.0:7589"` \ No newline at end of file diff --git a/api.py b/api.py index 9b83c7d..57ac547 100644 --- a/api.py +++ b/api.py @@ -18,7 +18,7 @@ def flask_main(): """ app = FastAPI(title="Curie-API", - description="API for accessing Curie-Web.", + description="API for accessing most of the features.", version="0.1",) diff --git a/app/dock-single.py b/app/dock-single.py index c3f0cb5..a94f3e9 100644 --- a/app/dock-single.py +++ b/app/dock-single.py @@ -244,7 +244,11 @@ with tempfile.TemporaryDirectory() as directory: get3DModel(pdbpath,"%s_out.pdbqt"%(records[4])) os.system("collada2gltf -i model.dae -o model.gltf") copyfile("model.gltf",os.path.join(modelDirectory,(str(jobID)+".gltf"))) - os.system("docker run -it --rm -v $(pwd):/usr/app leon/usd-from-gltf:latest model.gltf model.usdz") + arch = os.popen("uname -m").read() + if "x86" in arch: + os.system("docker run -it --rm -v $(pwd):/usr/app leon/usd-from-gltf:latest model.gltf model.usdz") + elif "aarch64" in arch: + os.system("docker run -it --rm -v $(pwd):/usr/app navanchauhan/usd-from-gltf:latest model.gltf model.usdz") try: copyfile("model.usdz",os.path.join(modelDirectory,(str(jobID)+".usdz"))) except: diff --git a/app/dock_docker.py b/app/dock_docker.py index 1c60a3b..a36648e 100644 --- a/app/dock_docker.py +++ b/app/dock_docker.py @@ -45,6 +45,20 @@ def email(zipArchive): s.sendmail(fromaddr, toaddr, text) s.quit() +def get3DModel(protein,ligand): + try: + import pymol2 + except ImportError: + print("🤭 PyMOL 2 has not been installed correctly") + return None + session = pymol2.PyMOL() + session.start() + cmd = session.cmd + cmd.load(protein,"target") + cmd.load(ligand,"ligand") + cmd.save("model.dae") + session.stop() + receptor_name = "protein.pdbqt" ligand_name = "ligand.pdbqt" description = "Curie Web Task" @@ -68,6 +82,7 @@ import os cd = os.getcwd() f = os.path.join(cd,"static/uploads") reportDirectory = os.path.join(f,"reports") +modelDirectory = os.path.join(f,"3DModels") #t = os.path.join(f,"receptor",target) #r = os.path.join(f,"ligands",ligand) #c = os.path.join(f,"configs",config) @@ -94,6 +109,18 @@ with tempfile.TemporaryDirectory() as directory: make_archive(zi, 'zip', directory) #copy(("Curie_Web_Result_"+str(jobID)),f) copyfile("report.pdf",os.path.join(reportDirectory,(str(jobID)+".pdf"))) + get3DModel(receptor_name,ligand_name.replace(".pdbqt","_out.pdbqt")) + os.system("collada2gltf -i model.dae -o model.gltf") + copyfile("model.gltf",os.path.join(modelDirectory,(str(jobID)+".gltf"))) + arch = os.popen("uname -m").read() + if "x86" in arch: + os.system("docker run -it --rm -v $(pwd):/usr/app leon/usd-from-gltf:latest model.gltf model.usdz") + elif "aarch64" in arch: + os.system("docker run -it --rm -v $(pwd):/usr/app navanchauhan/usd-from-gltf:latest model.gltf model.usdz") + try: + copyfile("model.usdz",os.path.join(modelDirectory,(str(jobID)+".usdz"))) + except: + print("Could not generate USDZ file") email(zi) #print((str(zi) + ".zip")) mycursor.execute('UPDATE curieweb set done=1 where id="%s"' % (jobID)) diff --git a/app/run_docking.py b/app/run_docking.py deleted file mode 100644 index 1b86d92..0000000 --- a/app/run_docking.py +++ /dev/null @@ -1,82 +0,0 @@ -import mysql.connector as con - -mycon = con.connect(host="sql12.freesqldatabase.com",user="sql12352288",password="7X35JENbK3",port=3306,database="sql12352288") -mycursor = mycon.cursor() - -sql_select_Query = "select * from curie where done=0 LIMIT 1" -mycursor.execute(sql_select_Query) - -records = mycursor.fetchall() - -def email(zipArchive): - import smtplib - from email.mime.multipart import MIMEMultipart - from email.mime.text import MIMEText - from email.mime.base import MIMEBase - from email import encoders - - fromaddr = "navanchauhan@gmail.com" - toaddr = toEmail - - msg = MIMEMultipart() - msg['From'] = fromaddr - msg['To'] = toaddr - msg['Subject'] = "Curie Web Results for Job ID " + str(jobID) - body = "Attached Zip contains the docked files, PLIP report and PyMOL Visualisations. If the ZIP file does not contain these files, please report this issue by replying to this email. Job was submitted on {} with the description {}".format(date, description) - - msg.attach(MIMEText(body, 'plain')) - filename = "Curie_Web_Results_Job_ID_" + str(jobID) + ".zip" - p = MIMEBase('application', 'octet-stream') - with open((str(zipArchive) + ".zip"), "rb") as attachment: - p.set_payload((attachment).read()) - encoders.encode_base64(p) - p.add_header('Content-Disposition', "attachment; filename= %s" % filename) - msg.attach(p) - - s = smtplib.SMTP('smtp.gmail.com', 587) - s.starttls() - s.login(fromaddr, 'ircd mday avbc tice') - - text = msg.as_string() - - s.sendmail(fromaddr, toaddr, text) - s.quit() - - -print(records[0]) -r = records[0] -jobID = r[0] -toEmail = r[1] -target = r[2] -ligand = r[3] -config = r[4] -date = r[5] -description = r[6] - -import os -cd = os.getcwd() -f = os.path.join(cd,"static/uploads") -t = os.path.join(f,"receptor",target) -r = os.path.join(f,"ligands",ligand) -c = os.path.join(f,"configs",config) -print(f) -import tempfile -from shutil import copy -from shutil import make_archive - -with tempfile.TemporaryDirectory() as directory: - print('The created temporary directory is %s' % directory) - os.chdir(directory) - copy(t,os.getcwd()) - copy(r,os.getcwd()) - copy(c, os.getcwd()) - os.system("docker run --rm -v ${PWD}:/results -w /results -u $(id -u ${USER}):$(id -g ${USER}) navanchauhan/curie-cli -r %s -l %s -c %s -dpi" % (target,ligand,config)) - #copy("report.pdf",f) - z = "Curie_Web_Result_"+str(jobID) - zi = os.path.join(f,z) - make_archive(zi, 'zip', directory) - #copy(("Curie_Web_Result_"+str(jobID)),f) - email(zi) - #print((str(zi) + ".zip")) - mycursor.execute("UPDATE curie set done=1 where id={}".format(jobID)) - mycon.commit() \ No newline at end of file diff --git a/app/run_local.py b/app/run_local.py deleted file mode 100644 index 4b902d2..0000000 --- a/app/run_local.py +++ /dev/null @@ -1,82 +0,0 @@ -import mysql.connector as con - -mycon = con.connect(host="sql12.freesqldatabase.com",user="sql12352288",password="7X35JENbK3",port=3306,database="sql12352288") -mycursor = mycon.cursor() - -sql_select_Query = "select * from curie where done=0 LIMIT 1" -mycursor.execute(sql_select_Query) - -records = mycursor.fetchall() - -def email(zipArchive): - import smtplib - from email.mime.multipart import MIMEMultipart - from email.mime.text import MIMEText - from email.mime.base import MIMEBase - from email import encoders - - fromaddr = "navanchauhan@gmail.com" - toaddr = toEmail - - msg = MIMEMultipart() - msg['From'] = fromaddr - msg['To'] = toaddr - msg['Subject'] = "Curie Web Results for Job ID " + str(jobID) - body = "Attached Zip contains the docked files, PLIP report and PyMOL Visualisations. If the ZIP file does not contain these files, please report this issue by replying to this email. Job was submitted on {} with the description {}".format(date, description) - - msg.attach(MIMEText(body, 'plain')) - filename = "Curie_Web_Results_Job_ID_" + str(jobID) + ".zip" - p = MIMEBase('application', 'octet-stream') - with open((str(zipArchive) + ".zip"), "rb") as attachment: - p.set_payload((attachment).read()) - encoders.encode_base64(p) - p.add_header('Content-Disposition', "attachment; filename= %s" % filename) - msg.attach(p) - - s = smtplib.SMTP('smtp.gmail.com', 587) - s.starttls() - s.login(fromaddr, 'ircd mday avbc tice') - - text = msg.as_string() - - s.sendmail(fromaddr, toaddr, text) - s.quit() - - -print(records[0]) -r = records[0] -jobID = r[0] -toEmail = r[1] -target = r[2] -ligand = r[3] -config = r[4] -date = r[5] -description = r[6] - -import os -cd = os.getcwd() -f = os.path.join(cd,"static/uploads") -t = os.path.join(f,"receptor",target) -r = os.path.join(f,"ligands",ligand) -c = os.path.join(f,"configs",config) -print(f) -import tempfile -from shutil import copy -from shutil import make_archive - -with tempfile.TemporaryDirectory() as directory: - print('The created temporary directory is %s' % directory) - os.chdir(directory) - copy(t,os.getcwd()) - copy(r,os.getcwd()) - copy(c, os.getcwd()) - os.system("main_local.sh -r %s -l %s -c %s -dpi" % (target,ligand,config)) - #copy("report.pdf",f) - z = "Curie_Web_Result_"+str(jobID) - zi = os.path.join(f,z) - make_archive(zi, 'zip', directory) - #copy(("Curie_Web_Result_"+str(jobID)),f) - email(zi) - #print((str(zi) + ".zip")) - mycursor.execute("UPDATE curie set done=1 where id={}".format(jobID)) - mycon.commit() diff --git a/app/static/assets/workingInALaboratory.svg b/app/static/assets/workingInALaboratory.svg index 18d03d7..57639f9 100644 --- a/app/static/assets/workingInALaboratory.svg +++ b/app/static/assets/workingInALaboratory.svg @@ -1,1809 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/static/ketcher/doc/analyse.png b/app/static/ketcher/doc/analyse.png index caa9c32..d1a1465 100644 Binary files a/app/static/ketcher/doc/analyse.png and b/app/static/ketcher/doc/analyse.png differ diff --git a/app/static/ketcher/doc/atom-dialog.png b/app/static/ketcher/doc/atom-dialog.png index 28b8fa9..f5df720 100644 Binary files a/app/static/ketcher/doc/atom-dialog.png and b/app/static/ketcher/doc/atom-dialog.png differ diff --git a/app/static/ketcher/doc/bond-types.png b/app/static/ketcher/doc/bond-types.png index 1241040..96323f9 100644 Binary files a/app/static/ketcher/doc/bond-types.png and b/app/static/ketcher/doc/bond-types.png differ diff --git a/app/static/ketcher/doc/bonds.png b/app/static/ketcher/doc/bonds.png index b2510bb..c5b79ce 100644 Binary files a/app/static/ketcher/doc/bonds.png and b/app/static/ketcher/doc/bonds.png differ diff --git a/app/static/ketcher/doc/charge.png b/app/static/ketcher/doc/charge.png index e0bf088..c964014 100644 Binary files a/app/static/ketcher/doc/charge.png and b/app/static/ketcher/doc/charge.png differ diff --git a/app/static/ketcher/doc/check.png b/app/static/ketcher/doc/check.png index 948e1f1..4f620c2 100644 Binary files a/app/static/ketcher/doc/check.png and b/app/static/ketcher/doc/check.png differ diff --git a/app/static/ketcher/doc/collapsed.png b/app/static/ketcher/doc/collapsed.png index 4715ad9..6c654f0 100644 Binary files a/app/static/ketcher/doc/collapsed.png and b/app/static/ketcher/doc/collapsed.png differ diff --git a/app/static/ketcher/doc/expanded.png b/app/static/ketcher/doc/expanded.png index 225df45..377bf09 100644 Binary files a/app/static/ketcher/doc/expanded.png and b/app/static/ketcher/doc/expanded.png differ diff --git a/app/static/ketcher/doc/generic-groups.png b/app/static/ketcher/doc/generic-groups.png index be8aa9f..5caa398 100644 Binary files a/app/static/ketcher/doc/generic-groups.png and b/app/static/ketcher/doc/generic-groups.png differ diff --git a/app/static/ketcher/doc/inline-edit.png b/app/static/ketcher/doc/inline-edit.png index 072d4d9..4f80b3e 100644 Binary files a/app/static/ketcher/doc/inline-edit.png and b/app/static/ketcher/doc/inline-edit.png differ diff --git a/app/static/ketcher/doc/main.png b/app/static/ketcher/doc/main.png index 2c579ce..45e8cf1 100644 Binary files a/app/static/ketcher/doc/main.png and b/app/static/ketcher/doc/main.png differ diff --git a/app/static/ketcher/doc/miew-menu.png b/app/static/ketcher/doc/miew-menu.png index e1312f7..4258c46 100644 Binary files a/app/static/ketcher/doc/miew-menu.png and b/app/static/ketcher/doc/miew-menu.png differ diff --git a/app/static/ketcher/doc/miew.png b/app/static/ketcher/doc/miew.png index de9e6bb..a27ce1b 100644 Binary files a/app/static/ketcher/doc/miew.png and b/app/static/ketcher/doc/miew.png differ diff --git a/app/static/ketcher/doc/open.png b/app/static/ketcher/doc/open.png index 38f7e20..98ac24e 100644 Binary files a/app/static/ketcher/doc/open.png and b/app/static/ketcher/doc/open.png differ diff --git a/app/static/ketcher/doc/periodic-dialog-ext.png b/app/static/ketcher/doc/periodic-dialog-ext.png index c674ebc..570d13d 100644 Binary files a/app/static/ketcher/doc/periodic-dialog-ext.png and b/app/static/ketcher/doc/periodic-dialog-ext.png differ diff --git a/app/static/ketcher/doc/periodic-dialog.png b/app/static/ketcher/doc/periodic-dialog.png index bd26862..6057b98 100644 Binary files a/app/static/ketcher/doc/periodic-dialog.png and b/app/static/ketcher/doc/periodic-dialog.png differ diff --git a/app/static/ketcher/doc/periodic-table.png b/app/static/ketcher/doc/periodic-table.png index 1233943..23a6740 100644 Binary files a/app/static/ketcher/doc/periodic-table.png and b/app/static/ketcher/doc/periodic-table.png differ diff --git a/app/static/ketcher/doc/reaction-types.png b/app/static/ketcher/doc/reaction-types.png index ba2b5e6..36e86a8 100644 Binary files a/app/static/ketcher/doc/reaction-types.png and b/app/static/ketcher/doc/reaction-types.png differ diff --git a/app/static/ketcher/doc/reaction.png b/app/static/ketcher/doc/reaction.png index e4dfa04..f6bccc3 100644 Binary files a/app/static/ketcher/doc/reaction.png and b/app/static/ketcher/doc/reaction.png differ diff --git a/app/static/ketcher/doc/rgroup-dialog.png b/app/static/ketcher/doc/rgroup-dialog.png index 6320dc4..132fc0c 100644 Binary files a/app/static/ketcher/doc/rgroup-dialog.png and b/app/static/ketcher/doc/rgroup-dialog.png differ diff --git a/app/static/ketcher/doc/rgroup-example2.png b/app/static/ketcher/doc/rgroup-example2.png index 39a475e..583bdd8 100644 Binary files a/app/static/ketcher/doc/rgroup-example2.png and b/app/static/ketcher/doc/rgroup-example2.png differ diff --git a/app/static/ketcher/doc/rgroup-example3.png b/app/static/ketcher/doc/rgroup-example3.png index 8f91b31..3045c65 100644 Binary files a/app/static/ketcher/doc/rgroup-example3.png and b/app/static/ketcher/doc/rgroup-example3.png differ diff --git a/app/static/ketcher/doc/rgroup-example4.png b/app/static/ketcher/doc/rgroup-example4.png index f974ebc..ddaacc2 100644 Binary files a/app/static/ketcher/doc/rgroup-example4.png and b/app/static/ketcher/doc/rgroup-example4.png differ diff --git a/app/static/ketcher/doc/rgroup-types.png b/app/static/ketcher/doc/rgroup-types.png index 107d52f..0be7bf3 100644 Binary files a/app/static/ketcher/doc/rgroup-types.png and b/app/static/ketcher/doc/rgroup-types.png differ diff --git a/app/static/ketcher/doc/rlogic-dialog.png b/app/static/ketcher/doc/rlogic-dialog.png index f11b0d8..f935286 100644 Binary files a/app/static/ketcher/doc/rlogic-dialog.png and b/app/static/ketcher/doc/rlogic-dialog.png differ diff --git a/app/static/ketcher/doc/rotate.png b/app/static/ketcher/doc/rotate.png index 08ab1f1..e13be54 100644 Binary files a/app/static/ketcher/doc/rotate.png and b/app/static/ketcher/doc/rotate.png differ diff --git a/app/static/ketcher/doc/save.png b/app/static/ketcher/doc/save.png index c98f56e..95d2893 100644 Binary files a/app/static/ketcher/doc/save.png and b/app/static/ketcher/doc/save.png differ diff --git a/app/static/ketcher/doc/sdata.png b/app/static/ketcher/doc/sdata.png index 07f77d7..4d5b1f5 100644 Binary files a/app/static/ketcher/doc/sdata.png and b/app/static/ketcher/doc/sdata.png differ diff --git a/app/static/ketcher/doc/settings.png b/app/static/ketcher/doc/settings.png index 9f847b3..d6eae14 100644 Binary files a/app/static/ketcher/doc/settings.png and b/app/static/ketcher/doc/settings.png differ diff --git a/app/static/ketcher/doc/sgroup-data-dialog.png b/app/static/ketcher/doc/sgroup-data-dialog.png index bd34ec8..4f69cb5 100644 Binary files a/app/static/ketcher/doc/sgroup-data-dialog.png and b/app/static/ketcher/doc/sgroup-data-dialog.png differ diff --git a/app/static/ketcher/doc/sgroup-dialog.png b/app/static/ketcher/doc/sgroup-dialog.png index 4ae3756..39c98bc 100644 Binary files a/app/static/ketcher/doc/sgroup-dialog.png and b/app/static/ketcher/doc/sgroup-dialog.png differ diff --git a/app/static/ketcher/doc/sgroup.png b/app/static/ketcher/doc/sgroup.png index 6b449c0..bbd85c0 100644 Binary files a/app/static/ketcher/doc/sgroup.png and b/app/static/ketcher/doc/sgroup.png differ diff --git a/app/static/ketcher/doc/template-dialog.png b/app/static/ketcher/doc/template-dialog.png index b4e34da..7845612 100644 Binary files a/app/static/ketcher/doc/template-dialog.png and b/app/static/ketcher/doc/template-dialog.png differ diff --git a/app/static/ketcher/doc/template-example1.png b/app/static/ketcher/doc/template-example1.png index f3b3ff4..015c2d5 100644 Binary files a/app/static/ketcher/doc/template-example1.png and b/app/static/ketcher/doc/template-example1.png differ diff --git a/app/static/ketcher/doc/template-example2.png b/app/static/ketcher/doc/template-example2.png index c7ee526..befde7c 100644 Binary files a/app/static/ketcher/doc/template-example2.png and b/app/static/ketcher/doc/template-example2.png differ diff --git a/app/static/ketcher/doc/template-example3.png b/app/static/ketcher/doc/template-example3.png index 2f11d63..fc1c27f 100644 Binary files a/app/static/ketcher/doc/template-example3.png and b/app/static/ketcher/doc/template-example3.png differ diff --git a/app/static/ketcher/doc/template.png b/app/static/ketcher/doc/template.png index feee2c3..ac4e20e 100644 Binary files a/app/static/ketcher/doc/template.png and b/app/static/ketcher/doc/template.png differ diff --git a/app/static/ketcher/doc/toolbar.png b/app/static/ketcher/doc/toolbar.png index 86c6a2d..e04d2ef 100644 Binary files a/app/static/ketcher/doc/toolbar.png and b/app/static/ketcher/doc/toolbar.png differ diff --git a/app/static/ketcher/doc/transform-types.png b/app/static/ketcher/doc/transform-types.png index ca1a974..1a537e2 100644 Binary files a/app/static/ketcher/doc/transform-types.png and b/app/static/ketcher/doc/transform-types.png differ diff --git a/app/static/ketcher/logo/apple-touch-icon.png b/app/static/ketcher/logo/apple-touch-icon.png index b1e8a31..89912f9 100644 Binary files a/app/static/ketcher/logo/apple-touch-icon.png and b/app/static/ketcher/logo/apple-touch-icon.png differ diff --git a/app/static/ketcher/logo/ketcher-logo.svg b/app/static/ketcher/logo/ketcher-logo.svg index 30316de..878f5f6 100644 --- a/app/static/ketcher/logo/ketcher-logo.svg +++ b/app/static/ketcher/logo/ketcher-logo.svg @@ -1 +1 @@ -Ketcher logo +Ketcher logo \ No newline at end of file diff --git a/app/views.py b/app/views.py index 65dd4a9..86a01fd 100644 --- a/app/views.py +++ b/app/views.py @@ -222,7 +222,8 @@ def dock_upload(): mycon.commit() print("Description",description) - + cwd = os.path.join(os.getcwd(),"app") + subprocess.Popen(['python3', 'dock-docker.py'],cwd=cwd) return render_template('display_result.html', filename="OwO", description=description,job=jobID) flash_errors(form) diff --git a/requirements.txt b/requirements.txt index 8fb62fd..8d95f68 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,6 @@ untangle mysql_connector mysql uvicorn -tensorflow-cpu==2.2.0 bunch tqdm prettytable diff --git a/runtime.txt b/runtime.txt index 32a8d83..795ee72 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.7.8 +python-3.7.9