Skip to main content

Predicting the effect of mutations on protein folding and protein-protein interaction.

Project description

ELASPIC2

conda docs pipeline status coverage report

Predicting the effect of mutations on protein folding and protein-protein interaction.

Usage

Web server

ELASPIC2 has been integrated into the original ELASPIC web server, available at: http://elaspic.kimlab.org.

Python API

The following notebooks can be used to explore the basic functionality of ELASPIC2.

Notebook name Google Colab Description
10_stability_demo.ipynb Example notebook showing how to use ELASPIC2 to predict the effect of mutations on protein stability.
10_affinity_demo.ipynb Example notebook showing how to use ELASPIC2 to predict the effect of mutations on protein binding affinity.

See other notebooks in the notebooks/ directory for more detailed information about how ELASPIC2 models are trained and validated.

REST API

ELASPIC2 is accessible through a REST API, documented at: https://elaspic2-api.proteinsolver.org/docs.

The following code snippet shows how the REST API can be used from within Python.

import json
import time
import requests

ELASPIC2_JOBS_API = "https://elaspic2-api.proteinsolver.org/jobs/"

mutation_info = {
    "protein_structure_url": "https://files.rcsb.org/download/1MFG.pdb",
    "protein_sequence": (
        "GSMEIRVRVEKDPELGFSISGGVGGRGNPFRPDDDGIFVTRVQPEGPASKLLQPGDKIIQANGYSFINI"
        "EHGQAVSLLKTFQNTVELIIVREVSS"
    ),
    "mutations": "G1A,G1C",
    "ligand_sequence": "EYLGLDVPV",
}

# Submit a job
job_request = requests.post(ELASPIC2_JOBS_API, json=mutation_info).json()
while True:
    # Wait for the job to finish
    time.sleep(10)
    job_status = requests.get(job_request["web_url"]).json()
    if job_status["status"] in ["error", "success"]:
        break
# Collect results
job_result = requests.get(job_status["web_url"]).json()
# Delete job (optional)
requests.delete(job_request["web_url"]).raise_for_status()
# Show results
print(job_result)

Command-line interface (CLI)

Finally, ELASPIC2 can be used through a command-line interface.

python -m elaspic2 \
  --protein-structure tests/structures/1MFG.pdb \
  --protein-sequence GSMEIRVRVEKDPELGFSISGGVGGRGNPFRPDDDGIFVTRVQPEGPASKLLQPGDKIIQANGYSFINIEHGQAVSLLKTFQNTVELIIVREVSS \
  --ligand-sequence EYLGLDVPV \
  --mutations G1A.G1C

Installation

Docker

Docker images that contain ELASPIC2 and all dependencies are available at: https://gitlab.com/elaspic/elaspic2/container_registry.

Conda-pack

Conda-pack tarballs containing ELASPIC2 and all dependencies are available at: http://conda-envs.proteinsolver.org/elaspic2/.

Simply download and extract the tarball into a desired directory and run conda-unpack to unpack.

wget http://conda-envs.proteinsolver.org/elaspic2/elaspic2-latest.tar.gz
mkdir ~/elaspic2
tar -xzf elaspic2-latest.tar.gz -C ~/elaspic2
source ~/elaspic2/bin/activate
conda-unpack

Conda

ELASPIC2 can be installed using conda. However, the torch-geometric dependencies have to be installed separately.

Replace cudatoolkit=10.1 and cu101 with the desired CUDA version.

conda create -n elaspic2 -c pytorch -c ostrokach-forge -c conda-forge -c defaults elaspic2 "cudatoolkit=10.1"
conda activate elaspic2
pip install "torch-scatter==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-sparse==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-cluster==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-spline-conv==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-geometric==1.6.1"

Python package index (PyPI)

ELASPIC2 can be installed using pip. However, the torch and torch-geometric dependencies have to be installed from external channels.

Replace cu101 with the desired CUDA version.

pip install elaspic2
pip install "torch==1.7.0+cu101" -f https://download.pytorch.org/whl/torch_stable.html
pip install "torchvision==0.8.1+cu101" -f https://download.pytorch.org/whl/torch_stable.html
pip install "torch-scatter==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-sparse==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-cluster==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-spline-conv==latest+cu101" -f https://pytorch-geometric.com/whl/torch-1.7.0.html
pip install "torch-geometric==1.6.1"

Data

Data used to train and validate the ELASPIC2 models are available at http://elaspic2.data.proteinsolver.org and http://protein-folding-energy.data.proteinsolver.org.

See the protein-folding-energy repository to see how these data were generated.

Acknowledgements

References

  • Alexey Strokach, Tian Yu Lu, Philip M. Kim. ELASPIC2 (EL2): Combining contextualized language models and graph neural networks to predict effects of mutations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elaspic2-0.1.7.tar.gz (19.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elaspic2-0.1.7-py2.py3-none-any.whl (6.5 MB view details)

Uploaded Python 2Python 3

File details

Details for the file elaspic2-0.1.7.tar.gz.

File metadata

  • Download URL: elaspic2-0.1.7.tar.gz
  • Upload date:
  • Size: 19.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6

File hashes

Hashes for elaspic2-0.1.7.tar.gz
Algorithm Hash digest
SHA256 f061d8f2204c8377214a2fd5790d530c511af3f0622b55206b9424379dc54f25
MD5 9419a60739d3eb4d017ee8dfea4d49a3
BLAKE2b-256 35be58f691e746396070877e0993dd5ed5295c79690a4dd27e96f6c50478885c

See more details on using hashes here.

File details

Details for the file elaspic2-0.1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: elaspic2-0.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.5 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6

File hashes

Hashes for elaspic2-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2e8b375f9f625596d6efb95cacdae216f33c7d6d8a65fb43da85a11e3f576d43
MD5 399795a582803bb60e5730697bfddcc9
BLAKE2b-256 09a71cb0fbecd8cbe6ff54a2a48e8f54004893e5f482b53f12d1072ab529731a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page