Quickstart Guide
This page assumes you have installed and set up Prerequisite Software (Docker, NGC CLI, NGC registry access).
Pull the NIM container with the following command.
docker pull nvcr.io/nim/deepmind/alphafold2:1.0.0
Run the NIM container with the following command.
export LOCAL_NIM_CACHE=~/.cache/nim
export NGC_CLI_API_KEY=<Your NGC CLI API Key>
docker run --rm --name alphafold2 --runtime=nvidia \
-e NGC_CLI_API_KEY \
-v $LOCAL_NIM_CACHE:/opt/nim/.cache \
-p 8000:8000 \
nvcr.io/nim/deepmind/alphafold2:1.0.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).
Open a new terminal, leaving the current terminal open with the 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.
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)
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)
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 '{"sequences": "MNVIDIAIAMAI"}' | jq