protein-score-server

Protein Structure Score Server

1. Introduction

This server is a protein structure prediction tool that processes prediction requests from users and capable of returning various scores for protein sequences.

2. Installation

To install the environment, follow these steps:

git clone https://github.com/Oaklight/protein-score-server.git
cd protein-score-server
conda env create -f environment.yaml
conda activate esm
pip install -r requirements.txt

3. Server Configuration

Configuration File:

cp server.yaml.sample server.yaml

The server uses the server.yaml file for configuration. Currently configurable items include:

For example, see server.yaml

After the config are set, run these commands inside the project folder:

conda activate esm
uvicorn main:app --host 0.0.0.0 --port 8000

4. Usage

4.1. Request Prediction

Users can send POST requests to http://your-host:8000/predict/ to get predictions. The request body comprises of these fields: seq , name , type , seq2 .

  1. pLDDT
{
    "seq": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST",
    "type": "plddt"
}
  1. TMscore
{
    "seq": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST",
    "name": "1a0a.A", # must provide for tasks that require a reference structure
    "type": "tmscore"
}
  1. sc-TMscore
{
    "seq": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST",
    "seq2": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST", # choose to provide either seq2 or name
    "type": "sc-tmscore"
}

or

{
    "seq": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST",
    "name": "1a0a.A", # choose to provide either seq2 or name
    "type": "sc-tmscore"
}
  1. pdb
{
    "seq": "MKRESHKHAEQARRNRLAVALHELASLIPAEWKQQNVSAAPSKATTVEAACRYIRHLQQNGST",
    "type": "pdb"
}

The server will return a JSON response containing two fields: job_id and prediction .

{
    "job_id": "0a98a981748c4b7eacfd5e0957905ced", # this is a uuid4 hex string
    "prediction": ... # not very useful at this moment
}

4.2. Result Retrieval

Users can send GET requests to http://your-host:8000/result/{job_id} to get prediction results. The header of the request should contain Content-Type: application/json .

The server will return a JSON response containing two fields: job_id and prediction .

{
    "job_id": "0a98a981748c4b7eacfd5e0957905ced", # this is a uuid4 hex string
    "prediction": 0.983124
}

4.3. Error Handling

When querying for results, use the following guidelines based on the status code:

4.4. Retry Strategy

5. Server Shutdown

To stop the server, use Ctrl+C in the terminal where the server is running.

6. License

This server is licensed under the Apache License 2.0.