added instructions in README and deleted misc file
This commit is contained in:
parent
9e749e326b
commit
f6196ac068
77
README.md
77
README.md
|
@ -4,15 +4,80 @@
|
||||||
![Database Tests](https://github.com/navanchauhan/Curie-Web/workflows/Test%20Database/badge.svg)
|
![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)
|
[![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!**
|
**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
|
cp COLLADA2GLTF-bin /usr/local/bin/collada2gltf
|
||||||
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
|
## Running
|
||||||
chmod +x /home/pi/Desktop/Curie-Web/app/src/scripts/*.py
|
|
||||||
```
|
### 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"`
|
|
@ -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()
|
|
|
@ -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()
|
|
|
@ -222,7 +222,8 @@ def dock_upload():
|
||||||
mycon.commit()
|
mycon.commit()
|
||||||
|
|
||||||
print("Description",description)
|
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)
|
return render_template('display_result.html', filename="OwO", description=description,job=jobID)
|
||||||
|
|
||||||
flash_errors(form)
|
flash_errors(form)
|
||||||
|
|
Loading…
Reference in New Issue