ProteinMPNN is a deep learning model for predicting amino acid sequences for protein backbones.
By running the below commands, you accept the NVIDIA AI Enterprise Terms of Use and the NVIDIA Community Models License.
Pull and run ipd/proteinmpnn
using Docker (this will download the full model and run it in your local environment)
$ docker login nvcr.io Username: $oauthtoken Password: <PASTE_API_KEY_HERE>
NGC_CLI_API_KEY
variable.export NGC_CLI_API_KEY=<your personal NGC key>
export LOCAL_NIM_CACHE=~/.cache/nim mkdir -p "$LOCAL_NIM_CACHE" sudo chmod 0777 -R "$LOCAL_NIM_CACHE"
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.
{"status":"ready"}
before proceeding. This may take a couple of minutes. You can use the following command to query the health check.curl http://localhost:8000/v1/health/ready
nim_client.py
.#!/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"])
chmod +x nim_client.py ./nim_client.py
output.fa
file in Multi-FASTA format. You can quickly view the file using the following command.cat output.fa
nim_client.sh
.#!/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"
chmod +x nim_client.sh ./nim_client.sh
For more details on getting started with this NIM, visit the NVIDIA NIM Docs.