193 lines
4.7 KiB
Markdown
193 lines
4.7 KiB
Markdown
# Curie-Web
|
|
|
|
![Database and Backend](https://github.com/navanchauhan/Curie-Web/workflows/Test%20Database%20and%20Backend/badge.svg)
|
|
|
|
![Curie-Web Cover](./misc/Title.png)
|
|
|
|
Tested on:
|
|
* macOS 10.15 (Catalina)
|
|
* Ubuntu 20.04 - Raspberry Pi 4
|
|
|
|
# Quick Start (Docker-Compose)
|
|
|
|
You can quickly get started and test Curie-Web without needing to manage dependencies by using the `docker-compose` image. This has all features except AR/3D Model support. Otherwise, it is production ready.
|
|
|
|
|
|
```
|
|
git clone https://github.com/navanchauhan/Curie-Web
|
|
cd Curie-Web
|
|
docker-compose up
|
|
```
|
|
|
|
Do not forget to edit `config.ini` for the email section. Do not change the database settings for running it via docker.
|
|
|
|
## Caveat(s):
|
|
|
|
* This does not support generating a 3D Model and thus, AR viewer will not work on the Job Status page.
|
|
|
|
# Installation
|
|
|
|
## 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`
|
|
|
|
### 1.5 Tensorflow (Optional)
|
|
|
|
Please ensure you install Tensorflow 2.x.
|
|
|
|
If tensorflow is not properly installed, it will automatically disable the LSTM Module.
|
|
|
|
## 2. Changing the Configuration
|
|
|
|
Replace the values in `config.ini`
|
|
|
|
Default Values:
|
|
```ini
|
|
[DATABASE]
|
|
HOST = navanspi.duckdns.org
|
|
PORT = 3306
|
|
USER = curieweb
|
|
PASSWORD = curie-web-russian-54
|
|
NAME = curie
|
|
|
|
[SMTP]
|
|
SERVER = smtp.gmail.com
|
|
PORT = 587
|
|
EMAIL = navanchauhan@gmail.com
|
|
PASSWORD = okrs shoc ahtk idui
|
|
|
|
[LOGS]
|
|
LOG = True
|
|
SAVE_LOGS = False
|
|
|
|
[FILES]
|
|
UPLOAD_FOLDER = ./app/static/uploads
|
|
LOG_FOLDER = ./app/logs/
|
|
|
|
[EXECUTION]
|
|
INSTANT = True
|
|
|
|
[FEATURES]
|
|
LSTM = False
|
|
```
|
|
|
|
### **Database**
|
|
| Name | Description |
|
|
|----------|---------------------|
|
|
| HOST | MySQL Database Host |
|
|
| PORT | MySQL Database Port |
|
|
| USER | Username |
|
|
| PASSWORD | Password |
|
|
| NAME | MySQL Database Name |
|
|
|
|
### **SMTP**
|
|
| Name | Description |
|
|
|----------|-------------|
|
|
| SERVER | SMTP Server |
|
|
| PORT | SMTP Port |
|
|
| EMAIL | Email |
|
|
| PASSWORD | Password |
|
|
|
|
### **LOGS**
|
|
| Name | Description |
|
|
|-----------|-------------|
|
|
| LOG | Log |
|
|
| SAVE_LOGS | SAVE LOGS |
|
|
|
|
### **FILES**
|
|
| Name | Description |
|
|
|---------------|-----------------------|
|
|
| UPLOAD_FOLDER | Folder to store files |
|
|
| LOG_FOLDER | Folder to store logs |
|
|
|
|
### **EXECUTION**
|
|
| Name | Description |
|
|
|---------------|-----------------------|
|
|
| INSTANT | Whether to run the docking jobs instantly (True or False) |
|
|
|
|
### **FEATURES**
|
|
| Name | Description |
|
|
|---------------|-----------------------|
|
|
| LSTM | Enable LSTM Generator (True or False) |
|
|
|
|
|
|
## 3. 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, copy the file:
|
|
|
|
```
|
|
cp COLLADA2GLTF-bin /usr/local/bin/collada2gltf
|
|
```
|
|
|
|
## 4. Setting up the Database
|
|
|
|
You will first need to create a database and grant all priviliges to a user. Make sure you have correctly configured the `config.ini` file.
|
|
|
|
After tha simply run the following commands. This will create the table(s) and check if the backend is working or not.
|
|
|
|
```
|
|
cd tests
|
|
python3 dbTestFiller.py
|
|
python3 backendTest.py
|
|
python3 removeSample.py
|
|
```
|
|
|
|
## 5. 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"`
|
|
|
|
### systemd
|
|
|
|
**There is a sample systemd file in the misc folder**
|
|
|
|
* Configure the file and then copy it to `/etc/systemd/system`
|
|
|
|
* You can start the server by running `sudo systemctl start curie`
|
|
|
|
* To enable the server to start on boot run `sudo systemctl enable curie`
|
|
|
|
|
|
## Misc.
|
|
|
|
### Fine-Tuning the LSTM Module
|
|
|
|
Currently the base model has been trained on 1.5 million compounds and took ~4 hours to train on Google Colab's GPU runtime.
|
|
|
|
*Information to be added soon*
|