Skip to main content
NVIDIA
MIT

diffdock

Downloadable

Predicts the 3D structure of how a molecule interacts with a protein.

API Reference
Deploying your application in production? Get started with a 90-day evaluation of NVIDIA AI Enterprise

Follow the steps below to download and run the NVIDIA NIM inference microservice for this model on your infrastructure of choice.

Get API Key and Install the NIM Operator

Install the NVIDIA GPU Operator

helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \
   && helm repo update

helm install nim-operator nvidia/k8s-nim-operator --create-namespace -n nim-operator

Create a ImagePull Secrets

kubectl create ns nim-service

kubectl create secret -n nim-service docker-registry ngc-secret \
    --docker-server=nvcr.io \
    --docker-username='$oauthtoken' \
    --docker-password=<PASTE_API_KEY_HERE>

kubectl create secret -n nim-service generic ngc-api-secret \
    --from-literal=NGC_API_KEY=<PASTE_API_KEY_HERE>

Create a NIM Service

Ensure that a default StorageClass exists in the cluster. If none is present, create an appropriate StorageClass before proceeding.

NOTE:

  • Select model-size based on the model and GPU type as described here.
  • For example, change the nvidia.com/gpu: 1 based on the model and number of GPU requirements
apiVersion: apps.nvidia.com/v1alpha1
kind: NIMService
metadata:
  name: diffdock
  namespace: nim-service
spec:
  image:
    repository: nvcr.io/nim/mit/diffdock
    tag: latest
    pullPolicy: IfNotPresent
    pullSecrets:
      - ngc-secret
  authSecret: ngc-api-secret
  storage:
    pvc:
      create: true
      size: "model-size"
      volumeAccessMode: "ReadWriteOnce"
  replicas: 1
  resources:
    limits:
      nvidia.com/gpu: 1
  expose:
    service:
      type: ClusterIP
      port: 8000

Test the Deployed NIM

kubectl run --rm -it -n default curl --image=ubuntu -- bash
apt update > /dev/null; apt install curl -y > /dev/null

protein_bytes=`curl -s https://files.rcsb.org/download/8G43.pdb | grep -E '^ATOM' | sed -z 's/\n/\\\n/g'`; \
 ligand_bytes=`curl -s https://files.rcsb.org/ligands/download/ZU6_ideal.sdf | sed -z 's/\n/\\\n/g'`; \
 echo "{
     \"ligand\": \"${ligand_bytes}\",
     \"ligand_file_type\": \"sdf\",
     \"protein\": \"${protein_bytes}\",
     \"num_poses\": 1,
     \"time_divisions\": 20,
     \"steps\": 18,
     \"save_trajectory\": false,
     \"is_staged\": false
 }" > diffdock.json

curl --header "Content-Type: application/json" \
    --request POST \
    --data @diffdock.json \
    --output output.json \
    http://diffdock.nim-service:8000/molecular-docking/diffdock/generate

For more details on getting started with this NIM, visit the NVIDIA NIM Docs or NVIDIA NIM Operator Docs.