Installation Option A: Pull a Prebuilt Image (Recommended) - stjude/proteinpaint GitHub Wiki

This may be the easiest option to get started. However, it may require more Docker know-how. for customization.

Installation

Step 1:

Set up the requisite directories. A tp and cache directory are required. Below is example mkdir command for set up.

mkdir -p proteinpaint-docker/{tp,cache}

Step 2:

Make sure, the docker client is running.

TAG=latest # can change to a version number like 2.11.2
IMAGE_NAME=ghcr.io/stjude/ppfull:$TAG # may use ppserver:$TAG for server-only image
docker pull $IMAGE_NAME

# download the run helper scripts
wget https://raw.githubusercontent.com/stjude/proteinpaint/master/container/run.sh
wget https://raw.githubusercontent.com/stjude/proteinpaint/master/container/createPPNetwork.sh
wget https://raw.githubusercontent.com/stjude/proteinpaint/master/container/verify.sh
wget https://raw.githubusercontent.com/stjude/proteinpaint/master/container/validateConfig.js
wget https://raw.githubusercontent.com/stjude/proteinpaint/master/utils/public-support-files-download.sh
chmod a+x *

Step 3:

Download support files (such as appropriate reference genome files) using the download script: You may need to cd /path/to/proteinpaint/utils first.

./public-support-files-download.sh /path/to/tp_dir

This step may take more than an hour to complete.

Step 4:

Modify the json with the appropriate file paths and copy into a new serverconfig.json under the root project directory.

{
    "debugmode": true,
    "defaultgenome": "hg38",
    "genomes": [
       {
          "name": "hg19",
          "species": "human",
          "file": "./genome/hg19.js",
          "datasets": []
       },
       {
          "name": "hg38",
          "species": "human",
          "file": "./genome/hg38.js",
          "datasets": []
       }
    ],
    "tpmasterdir": "/path/to/tp_dir", //proteinpaint-docker/tp in the example above
    "cachedir": "/path/to/cache_dir", //proteinpaint-docker/cache in the example above
    "URL": "http://localhost:3456",
    "gfClient": "/home/root/pp/tools/gfClient",
    "port": 3456,
    "backend_only": false
}

Usage

To test, make sure that your current working directory has

  • a serverconfig.json which has
    • a tpmasterdir entry, for the absolute path to the data directory
    • a "URL": "http://localhost:[PORT]" entry (default PORT=3456, can be set to any valid, non-conflicting numeric port value)
  • an optional dataset folder, containing js files of any serverconfig.genomes.datasets[] entryvthat is not already included in proteinpaint/server/dataset
./run.sh $IMAGE_NAME

# open the browser to your serverconfig.URL entry
# example routes to check, assuming serverconfig.URL=http://localhost:3456
# http://localhost:3456/healthcheck
# http://localhost:3456/genomes
# http://localhost:3456 should open the Proteinpaint landing page

# Hints:
# - inspect logs with 'docker logs pp'
# - ssh into the container with 'docker exec -it pp'
# - stop the container with 'docker stop pp'