ProteinMPNN (Latest)
ProteinMPNN (Latest)

Quickstart Guide

Note

This page assumes you have installed and set up Prerequisite Software (Docker, NGC CLI, NGC registry access).

  1. Export NGC_CLI_API_KEY variable.

Copy
Copied!
            

export NGC_CLI_API_KEY=<your personal NGC key>

  1. NIM container automatically downloads models. To save time and bandwidth it is recommended to provide local cache directory. This way NIM will be able to reuse already downloaded models. Execute following command to setup cache directory.

Copy
Copied!
            

export LOCAL_NIM_CACHE=~/.cache/nim mkdir -p "$LOCAL_NIM_CACHE" sudo chmod 0777 -R "$LOCAL_NIM_CACHE"

  1. Run the NIM container with the following commands.

Copy
Copied!
            

docker run -it \ --runtime=nvidia \ --gpus='"device=0"' \ -p 8000:8000 \ -e NGC_CLI_API_KEY \ -v "$LOCAL_NIM_CACHE":/home/nvs/.cache/nim \ nvcr.io/nim/ipd/proteinmpnn:1.0.0

This command will start the NIM container and expose port 8000 for the user to interact with the NIM.

  1. Open a new terminal, leaving the terminal open with the just launched service. In the new terminal, wait until the health check end point returns {"status":"ready"} before proceeding. This may take a couple of minutes. You can use the following command to query the health check.

Copy
Copied!
            

curl http://localhost:8000/v1/health/ready

  1. Save following Python example to a file named nim_client.py.

Copy
Copied!
            

#!/usr/bin/env python3 import requests import os import json from pathlib import Path def get_reduced_pdb(): pdb = Path("1R42.pdb") if not pdb.exists(): pdb.write_text(requests.get(f"https://files.rcsb.org/download/{pdb}").text) lines = filter(lambda line: line.startswith("ATOM"), pdb.read_text().split("\n")) return "\n".join(list(lines)[:200]) r = requests.post( url="http://localhost:8000/biology/ipd/proteinmpnn/predict", json={ "input_pdb": get_reduced_pdb(), "ca_only": False, "use_soluble_model": False, "sampling_temp": [0.1], }, ) print(r, "Saving to output.fa:\n", r.text[:200], "...") Path("output.fa").write_text(json.loads(r.text)["mfasta"])

  1. Execute the example.

Copy
Copied!
            

chmod +x nim_client.py ./nim_client.py

  1. The NIM saves results to the output.fa file in Multi-FASTA format. You can quickly view the file using the following command.

Copy
Copied!
            

cat output.fa

  1. Save the following Shell example to a file named nim_client.sh.

Copy
Copied!
            

#!/usr/bin/env bash set -e URL=http://localhost:8000/biology/ipd/proteinmpnn/predict if [ ! -e 1R42.pdb ]; then curl -O https://files.rcsb.org/download/1R42.pdb; fi pdb=$(cat 1R42.pdb | grep ^ATOM | head -n 200 | awk '{printf "%s\\n", $0}') request='{ "input_pdb": "'"$pdb"'", "ca_only": false, "use_soluble_model": false, "sampling_temp": [0.1] }' curl -H 'Content-Type: application/json' \ -d "$request" "$URL"

  1. Execute the example.

Copy
Copied!
            

chmod +x nim_client.sh ./nim_client.sh

  1. The NIM displays the results to the terminal in JSON format. You can configure the NIM to display the results, scores, and probabilities in the Multi-FASTA output format.

Previous Prerequisites
Next ProteinMPNN NIM endpoints
© Copyright © 2024, NVIDIA Corporation. Last updated on Aug 26, 2024.