Skip to content
NaPLeS - Natural Product Likeness Scorer Web Application
JavaScript Java CSS Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

NP-likeness scorer - Web application

Author: Maria Sorokina,

Last modified: 26.03.2019

This README describes the steps on how to setup and run a local instance of the NP-likeness scorer web application.

Project tree

├── archive
├── docker-compose.yml
├── Dockerfile
├── molimg
├── mvnw
├── mvnw.cmd
├── mysql
├── NPlsWeb.iml
├── pom.xml
├── src
├── target
├── upload-dir
└── volume

Prior of running

  • verify that the file NPlikenessDB.sql is in the "mysql" folder
  • verify that there are ".ser" files in the "archive" folder
  • in the docker-compose.yml remplace "VIRTUAL_HOST:" by "VIRTUAL_HOST:" or remove this part to run the web application locally (don't forget to cite us!)
  • in the docker-compose.yml remove "LETSENCRYPT_HOST" and "LETSENCRYPT_EMAIL" unless you want to have your NPLSweb instance to be certified by Let's Encrypt.
  • in the docker-compose.yml remplace the MYSQL_ROOT_PASSWORD if necessary


The project is build to run with nginx as server and reverse-proxy on a Docker "nginx-network". For more details see for example here:

Project execution`

sudo docker-compose build
sudo docker-compose up -d
sudo docker exec -it mysql_npls bash
mysql -uroot -proot1234 NPLikenessDB < /mysqldata/NPLikenessDB.sql

After this, the web application will run either on the URL you specified in the docker-compose.yml either on localhost:8090

Source code

The unarchived source code for this project is available at and can be recompiled as a maven project. Here can be

  • modified the MySQL instance the web application connects on (in the file)
  • modified the maximum number of molecules per submitted file via the web interface (currently max 200 molecules - to modify in the SDF and SMILES readers)
  • if the plots need to be recomputed (due to changes in the database): in the change private boolean newPlot = false to true (when the plots recomputed, don't forgive to change the newPlot back to false!).
You can’t perform that action at this time.