Quickstart Guide#

Note

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

  1. Pull the NIM container with the following command.

docker pull nvcr.io/nim/deepmind/alphafold2:2.1.0
  1. Run the NIM container with the following command.

export LOCAL_NIM_CACHE=~/.cache/nim
export NGC_API_KEY=<Your NGC API Key>

docker run --rm --name alphafold2 --runtime=nvidia \
    -e NGC_API_KEY \
    -v $LOCAL_NIM_CACHE:/opt/nim/.cache \
    -p 8000:8000 \
    nvcr.io/nim/deepmind/alphafold2:2.1.0

This command will start the NIM container and expose port 8000 for the user to interact with the NIM. It will pull the model to the cache at $LOCAL_NIM_CACHE on the local filesystem. Note: this download can take a very long time (4-10 hours on a 100+Mbps internet connection).

  1. Open a new terminal, leaving the current terminal open with the launched service.

  2. 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.

curl -X 'GET' \
    'http://localhost:8000/v1/health/ready' \
    -H 'accept: application/json'

If you would rather check the NIM’s status via python, you can use the requests module (once installed via pip install requests):

import requests

url = "http://localhost:8000/v1/health/ready"  # Replace with the actual URL

headers = {
    "content-type": "application/json"
}
try:
    response = requests.get(url, headers=headers)

    # Check if the request was successful
    if response.ok:
        print("Request succeeded:", response.json())
    else:
        print("Request failed:", response.status_code, response.text)
except Exception as E:
    print("Request failed:", E)
  1. Run inference to get a predicted protein structure for an amino acid sequence using the following command.

curl -X 'POST' \
    'http://localhost:8000/protein-structure/alphafold2/predict-structure-from-sequence' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{"sequence": "MNVIDIAIAMAI"}' > output.json

In python:

import requests
import json

url = "http://localhost:8000/protein-structure/alphafold2/predict-structure-from-sequence"  # Replace with the actual URL
sequence = "MNVIDIAIAMAI"  # Replace with the actual sequence value

headers = {
    "content-type": "application/json"
}

data = {
    "sequence": sequence,
    "databases": ["uniref90", "small_bfd"]
}

response = requests.post(url, headers=headers, data=json.dumps(data))

# Check if the request was successful
if response.ok:
    print("Request succeeded:", response.json())
else:
    print("Request failed:", response.status_code, response.text)

To use the MMSeqs2 GPU-accelerated MSA tool, pass the algorithm=mmseqs2 parameter to the API endpoint:

curl -X 'POST' \
    'http://localhost:8000/protein-structure/alphafold2/predict-structure-from-sequence' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{"sequence": "MNVIDIAIAMAI", "algorithm"="mmseqs2"}' > output.json
  1. View the outputs. You can use the cat tool print the outputs to the command line as with the following command.

cat output.json

However, we recommend installing jq, a command line tool that can format JSON for improved readability. You can use jq to visualize the output from the file (note, you must install jq; on Linux this can be done using apt-get install jq):

jq . output.json

or you can pipe the output directly to jq as in the following command:

curl -X 'POST' \
    'http://localhost:8000/protein-structure/alphafold2/predict-structure-from-sequence' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{"sequence": "MNVIDIAIAMAI"}' | jq