added instructions in README and deleted misc file

This commit is contained in:
Navan Chauhan 2020-09-02 18:15:21 +05:30
parent 9e749e326b
commit f6196ac068
4 changed files with 73 additions and 171 deletions

View File

@ -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"`

View File

@ -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()

View File

@ -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()

View File

@ -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)