Quickstart Guide
Note
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:2.0.0
Run the NIM container with the following command.
export LOCAL_NIM_CACHE=~/.cache/nim
export NGC_API_KEY=<Your NGC CLI 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.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