Skip to content

DE-STRESS is a model evaluation pipeline that aims to make protein design more reliable and accessible.

Notifications You must be signed in to change notification settings

wells-wood-research/de-stress

Repository files navigation

de-stress

DEsigned STRucture Evaluation ServiceS

Front End Tests Big Structure Tests

DE-STRESS is a web application that provides a suite of tools for evaluating protein designs. Our aim is to help make protein design more reliable, by providing tools to help you select the most promising designs to take into the lab.

The application is available for non-commercial use through the following URL:

https://pragmaticproteindesign.bio.ed.ac.uk/de-stress/

Citing DE-STRESS

If you use DE-STRESS, please cite the following article:

Stam MJ and Wood CW (2021) DE-STRESS: A user-friendly web application for the evaluation of protein designs, Protein Engineering, Design and Selection, 34, gzab029.

Contacting Us

If you find a bug or would like to request a feature, we'd really appreciate it if you report it as an issue. If you're stuck and need help or have any general feedback, please create a post on the discussion page.

For more information about our research group, check out our group website.

Local Deployment

DE-STRESS can be installed locally as a web server (https://pragmaticproteindesign.bio.ed.ac.uk/de-stress/) or as a command line tool (headless DE-STRESS).

The DE-STRESS webserver has a few limitations which are there to ensure the stability of the webserver. These limitations are listed below.

  • Only proteins with 500 residues or less can be uploaded.
  • Only 30 files can be uploaded at a time.
  • There is a max run time of 20 seconds for all the DE-STRESS metrics.

The headless version of DE-STRESS can be ran using the command line interface and the user can change the settings to run DE-STRESS on a larger set of PDB files. The code has been written to allow multiprocessing so that large amounts of files can be ran in a reasonable amount of time. The .env-headless file can be used to update the MAX_RUN_TIME, HEADLESS_DESTRESS_BATCH_SIZE and HEADLESS_DESTRESS_WORKERS variables to change the amount of seconds the DE-STRESS metrics are allowed to run, how many PDB files are in a batch, and how many CPUs should be used respectively.

Before installing either of these versions of DE-STRESS, make sure you have all the relevant licenses for the dependencies in de-stress/dependencies_for_de-stress/. The current dependencies used by DE-STRESS are shown below.

  • Aggrescan3D
  • DFIRE 2 pair
  • DSSP
  • EvoEF2 (source)
  • Rosetta (source)

Rosetta requires a commercial licence to install. In the future, we will offer a version of DE-STRESS without Rosetta but that is not available yet.

Also, make sure you have the most up to date version of docker and docker-compose.

Local install of headless DE-STRESS

First create a virtual environment for running headless destress.

python -m venv headless_destress && source headless_destress/bin/activate && pip install -r requirements.txt

After this copy .env-headless-testing file to .env-headless and then you can customise the settings for running headless DE-STRESS.

cp .env-headless-testing .env-headless

Next, run the setup.sh bash script to install a local version of headless DE-STRESS. To begin with, this script will ask you which version of DE-STRESS you want and after selecting headless DE-STRESS it will begin the installation process. After this, it will ask you if you want to install Rosetta and whether you have a licence for this software. If yes is selected, then it will begin an automatic install of Rosetta from the git repo https://github.com/RosettaCommons/rosetta. Once this has been installed, some of the dependencies (EvoEF2 and Rosetta) will be compiled from source code. Rosetta can take a long time to compile and this script will ask you how many CPUs to use for the compilation (if using 2 CPUs the compilation of Rosetta can take around 3 hours).

./setup.sh

Once this script has finished running, the installation of headless DE-STRESS will be complete and you can run DE-STRESS on a set of PDB files using the below python command. Change the path to the input path containing the set of PDB files.

python3 run_destress_headless.py --i /absolute/path/to/input/pdbs/

You can change the settings in the .env-headless file to change the max run time, number of CPUs used and the batch size for the runs. Once this docker command has finished running, a CSV file called design_data.csv will be saved in the input path which contains all of the DE-STRESS metrics for the set of PDB files. In addition to this, a logging.txt file is saved in the same folder.

Local install of the DE-STRESS web server

Firstly, download big_structure.dump and place it in de-stress/database. This is a .dump file of a PostgreSQL database that contains the pre-calculated DE-STRESS metrics for a set of structures from the Protein Data Bank (PDB). This database is used for the reference set functionality in DE-STRESS, which allows users to compare their designed proteins against a set of known proteins.

Next, copy the .env-testing file to .env and then you can customise the settings for running the webserver version of DE-STRESS.

cp .env-testing .env

After this, run the setup.sh bash script to install a local version of the DE-STRESS webserver and follow the same steps as described above. This script will ask if you want to install the webserver in a development or production environment as well. Also, the settings for the DE-STRESS webserver can be changed in the .env file as well.

./setup.sh

Next, navigate to /de-stress/front-end and run the below command to launch the user interface for the web server. Note npm needs to be installed locally to be able to do this.

npm start

Finally, after this command has finished running, there will be a URL link that can be clicked to view the user interface for the DE-STRESS web server.