This project is a (currently developed) application dedicated to the interactive analysis and exploration of chemical embeddings and projections. A live demo is available at https://chembvis.pueh.xyz/.
Several submodules make up the application:
- api: Main API exposing projections, MSO, rdkit, ...
- client: Interactive web application
- api_umap: API for pretrained parametric UMAP
- api_tsne: API for pretrained parametric TSNE
- notebook: Jupyter notebook with several experiments
One reason why the API is split into several submodules is because they depend on different tensorflow
versions, as the main API requires tensorflow==1.15.0
, while the others depend on tensorflow>=2.0
.
The easiest way to run the whole application is by using docker[-compose]. To start local development, simply use docker-compose start
. Please note that building the images might take a while, as we are using large dependencies such as RDKit
and Tensorflow
.
When the building is done, the frontend is available at http://localhost:3000 and the backend at http://localhost:5000, with a Swagger API documentation available at http://localhost:5000/api/spec.
Please note that this project is actively developed such that no optimized builds/deployments are available yet.
Due to the size of the parametric models, the contents of the _shared
folder are not provided in this repository. Each package has a _shared
folder which contains such data. For easy setup, please download the entire shared data and extract it into the repository: https://drive.google.com/file/d/1F-QFxKd8A1rnXmyOAsfixF_CCUQYtmwY/view?usp=sharing
Otherwise, take a look at the individual repositories for further details.
By default, the GPU enabled tensorflow-gpu
is installed and docker-compose uses GPU capabilities for some containers (requires docker-compose 1.28+). For WSL2 users, please see https://docs.nvidia.com/cuda/wsl-user-guide/index.html first. For docker and docker-compose related issues, see https://docs.docker.com/config/containers/resource_constraints/#gpu and https://docs.docker.com/compose/gpu-support/#enabling-gpu-access-to-service-containers.
If you want to use pure CPU implementations, please replace all tensorflow-gpu
occurances with tensorflow
in the corresponding environment.yml
files.
Also, you need to remove the deploy
entries in the docker-compose.yml
.