BiosimulantBiosimulant
Docs
Search labs...
Sign inGet Started

DiffDock: DiffDockLDockingPredictor Lab

About lab

DiffDock: DiffDockLDockingPredictor Lab

This lab runs a single DiffDock-L docking job for one prepared receptor PDB and one ligand. The ligand can be a SMILES string or a path to an RDKit-readable ligand file (.sdf, .mol, .mol2, .pdb, .pdbqt). The lab ships with the bundled 1a0q receptor and a SMILES ligand so a fresh run produces ranked poses, a confidence summary, and a merged top-ranked complex without any extra setup.

The wrapper boots upstream DiffDock-L v1.1.3 in managed runtime mode: it clones the pinned DiffDock repository, creates a venv from model/requirements/runtime-gpu.txt, and runs DiffDock inference from that managed environment. Subsequent runs reuse the cached repo and venv.

This lab is for single-complex docking only. It does not prepare receptors from raw PDBs, run virtual-screening batches, or train DiffDock from scratch. Those belong in adjacent labs.

What You'll See

The lab opens as a small canvas with one DiffDock-L docking node and a run-results panel. With the bundled defaults, the run produces:

  • a ranked pose table sorted by DiffDock confidence,
  • a structure3d view of the top-ranked pose merged onto the receptor,
  • a confidence summary with the top pose score and confidence band,
  • run metadata with the executed command, returncode, and truncated stdout/stderr.

The first screenshot shows the canvas, node inputs and outputs, and the structure3d view for the top-ranked docked complex. The second scrolls down to the artifact details and ranked pose table for the same run, where the bundled 1a0q job reports 10 poses and a top confidence of -2.23 in the low band.

DiffDock-L lab canvas with top-ranked docked complex structure view

DiffDock-L artifact details and ranked pose confidence table

How to Read the Visualizations

The pose ranking table lists each DiffDock pose with its rank, confidence score, confidence band, and the underlying SDF filename. DiffDock-L confidences are unitless log-likelihood-style scores: positive values are mapped to the high band, scores between 0 and -1.5 to moderate, and scores below -1.5 to low. Use the band as a quick read on whether the top pose is worth following up.

The structure3d view shows the receptor with the top-ranked ligand pose merged in as top_rank_complex.pdb. Use it to sanity-check that the ligand sits inside a plausible binding pocket. If the ligand sits outside the receptor surface, treat the run as low-confidence regardless of the score.

The confidence summary captures the top pose rank, its confidence, the confidence band, the total pose count, and every per-pose confidence so you can spot bimodal pose distributions. In the shown default run, all 10 poses are in the low band, so the result is best read as a structural smoke test and not as a high-confidence binding prediction. The run metadata reports which runtime mode executed, where the managed runtime cached the DiffDock checkout and venv, the resolved inference command, the returncode, the truncated stdout/stderr from DiffDock, and status: completed or status: error so a failed run is still inspectable.

What This Lab Contains

  • lab.yaml describes the lab, exposes its inputs and outputs, and pins the bundled defaults.
  • wiring-layout.json places the model on the canvas.
  • model/model.yaml describes the model package, parameters, and ports.
  • model/src/diffdockl_docking_predictor.py contains the wrapper, managed runtime bootstrap, pose post-processing, and visualization shaping.
  • model/requirements/runtime-gpu.txt pins the torch and PyG stack installed into the managed venv.
  • model/data/1a0q/ ships the receptor PDB and reference ligand SDF used by the bundled defaults.
  • model/tests/ checks the wrapper, runtime bootstrap, output parsing, and visualization contract.

Inputs

The model accepts three input signals. Each one falls back to the matching default_* parameter in lab.yaml when the signal is not wired, which is what makes the lab runnable out of the box.

  • protein_path (path): receptor PDB file. Defaults to data/1a0q/1a0q_protein_processed.pdb.
  • ligand_description (str or path): SMILES string or path to an RDKit-readable ligand file. Defaults to the SMILES COc(cc1)ccc1C#N.
  • run_options (record): DiffDock run options merged onto the bundled defaults.
    • complex_name (str): output subdirectory name for the run.
    • samples_per_complex (int): number of DiffDock samples to draw.
    • inference_steps (int): denoising steps per sample.
    • batch_size (int): inference batch size.
    • save_visualisation (bool): whether to ask DiffDock to write per-step reverse-process PDBs.

Outputs

  • pose_summary (record): ranked poses with rank, confidence, confidence band, and per-pose SDF file path.
  • confidence_summary (record): aggregate confidence stats including top_pose_confidence, confidence_band, pose_count, and the full all_confidences list.
  • structure_artifacts (record): file-backed artifacts including the merged top_rank_complex.pdb consumed by the structure3d renderer, the top pose SDF, the confidence and pose summary JSON files, and per-rank SDF and reverseprocess PDB paths.
  • run_metadata (record): runtime metadata, runtime mode, runtime/cache directories, the executed command, returncode, truncated stdout/stderr, and status: completed or status: error.

Running in Biosimulant Desktop

Import the lab once with the Biosim CLI, then open it from the desktop app. The bundled 1a0q defaults mean the first run requires no parameter editing.

biosimulant labs import labs/diffdock-diffdockl-docking-predictor

To dock a different complex, override the inputs in the lab's run sidebar (or wire them to a source module that produces a receptor PDB path and a ligand SMILES or file). The model treats wired input signals as overrides on top of the defaults, so partial overrides work too.

Notes

  • The first real run needs internet access (to clone the upstream DiffDock repo and download model checkpoints) and a working git executable. Subsequent runs are offline.
  • DiffDock-L is GPU-friendly. CPU inference works for short smoke tests but is slow for production sample counts.
  • Managed runtime mode is required for remote execution. External mode (using a pre-installed DiffDock environment) is supported for local debugging via runtime_mode: external plus runtime_python.
  • The lab sets runtime.settle_steps: 1 so the downstream visualization module can consume the final structure artifacts without extending simulated time.
  • model/data/1a0q/ is shipped as part of the model package so the defaults resolve in remote runs too.

Multi-model lab with an embedded visualisation sibling for DiffDock-L 1.1.3 single-complex docking. Ships with the bundled 1a0q receptor and a SMILES ligand so the lab runs out of the box.

Runtime

Duration0.01
Comms Step0.01
Settle Steps1

Runs

Total2
Completed1
Failed1

Metadata

Packagediffdock-diffdockl-docking-predictor
Created2026-05-03
Updated2026-06-13
dockingdiffdockstructural-biologyprotein-ligandgpucudavisualisationother

Manifest

{
  "io": {
    "inputs": [
      {
        "name": "protein_path",
        "maps_to": "diffdock_diffdockl_docking_predictor.protein_path"
      },
      {
        "name": "ligand_description",
        "maps_to": "diffdock_diffdockl_docking_predictor.ligand_description"
      },
      {
        "name": "run_options",
        "maps_to": "diffdock_diffdockl_docking_predictor.run_options"
      }
    ],
    "outputs": [
      {
        "name": "pose_summary",
        "maps_to": "diffdock_diffdockl_docking_predictor.pose_summary"
      },
      {
        "name": "confidence_summary",
        "maps_to": "diffdock_diffdockl_docking_predictor.confidence_summary"
      },
      {
        "name": "structure_artifacts",
        "maps_to": "diffdock_diffdockl_docking_predictor.structure_artifacts"
      },
      {
        "name": "run_metadata",
        "maps_to": "diffdock_diffdockl_docking_predictor.run_metadata"
      }
    ]
  },
  "tags": [
    "docking",
    "diffdock",
    "structural-biology",
    "protein-ligand",
    "gpu",
    "cuda"
  ],
  "title": "DiffDock: DiffDockLDockingPredictor Lab",
  "models": [
    {
      "path": "models/core",
      "alias": "diffdock_diffdockl_docking_predictor",
      "parameters": {
        "runtime_mode": "managed",
        "default_run_options": {
          "batch_size": 2,
          "complex_name": "1a0q_custom",
          "inference_steps": 4,
          "save_visualisation": false,
          "samples_per_complex": 2
        },
        "default_protein_path": "data/1a0q/1a0q_protein_processed.pdb",
        "default_ligand_description": "COc(cc1)ccc1C#N"
      }
    },
    {
      "path": "models/visualisation",
      "alias": "visualisation",
      "parameters": {
        "integration_step": 0.01
      }
    }
  ],
  "wiring": [
    {
      "to": [
        "visualisation.diffdock_diffdockl_docking_predictor_pose_summary"
      ],
      "from": "diffdock_diffdockl_docking_predictor.pose_summary"
    },
    {
      "to": [
        "visualisation.diffdock_diffdockl_docking_predictor_confidence_summary"
      ],
      "from": "diffdock_diffdockl_docking_predictor.confidence_summary"
    },
    {
      "to": [
        "visualisation.diffdock_diffdockl_docking_predictor_structure_artifacts"
      ],
      "from": "diffdock_diffdockl_docking_predictor.structure_artifacts"
    },
    {
      "to": [
        "visualisation.diffdock_diffdockl_docking_predictor_run_metadata"
      ],
      "from": "diffdock_diffdockl_docking_predictor.run_metadata"
    }
  ],
  "package": "diffdock-diffdockl-docking-predictor",
  "runtime": {
    "duration": 0.01,
    "settle_steps": 1,
    "initial_inputs": {},
    "communication_step": 0.01
  },
  "version": "1.0.0",
  "description": "Multi-model lab with an embedded visualisation sibling for DiffDock-L 1.1.3 single-complex docking. Ships with the bundled 1a0q receptor and a SMILES ligand so the lab runs out of the box.",
  "schema_version": "2.0"
}

Sign in to start your own run. Public-lab history stays visible here.

Logs50
2026-05-03 07:34:22 UTCinfosystem
Preparing remote execution...
2026-05-03 07:34:24 UTCinfosystem
Staging package artifacts for remote execution...
2026-05-03 07:34:27 UTCinfosystem
Submitting remote job...
2026-05-03 07:34:30 UTCinfosystem
Running simulation remotely...
2026-05-03 07:34:53 UTCinfosandbox
BSIM_PROGRESS:{"message": "Validating DiffDock inputs", "phase": "inputs"}
2026-05-03 07:34:53 UTCinfosandbox
BSIM_PROGRESS:{"message": "Preparing DiffDock runtime", "phase": "runtime"}
2026-05-03 07:34:54 UTCinfosandbox
BSIM_PROGRESS:{"message": "Cloning DiffDock repository at v1.1.3", "phase": "runtime"}
2026-05-03 07:34:55 UTCwarningsandbox
[runtime] Cloning into '/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo'...
2026-05-03 07:34:55 UTCwarningsandbox
[runtime] Note: switching to '9a22cbcbc7612c7565c80e8399d9be298971f156'.
2026-05-03 07:34:56 UTCwarningsandbox
[runtime] You are in 'detached HEAD' state. You can look around, make experimental
2026-05-03 07:34:57 UTCwarningsandbox
[runtime] changes and commit them, and you can discard any commits you make in this
2026-05-03 07:34:57 UTCwarningsandbox
[runtime] state without impacting any branches by switching back to a branch.
2026-05-03 07:34:58 UTCwarningsandbox
[runtime] If you want to create a new branch to retain commits you create, you may
2026-05-03 07:34:59 UTCwarningsandbox
[runtime] do so (now or later) by using -c with the switch command. Example:
2026-05-03 07:34:59 UTCwarningsandbox
[runtime]   git switch -c <new-branch-name>
2026-05-03 07:35:00 UTCwarningsandbox
[runtime] Or undo this operation with:
2026-05-03 07:35:00 UTCwarningsandbox
[runtime]   git switch -
2026-05-03 07:35:01 UTCwarningsandbox
[runtime] Turn off this advice by setting config variable advice.detachedHead to false
2026-05-03 07:35:02 UTCinfosandbox
BSIM_PROGRESS:{"message": "DiffDock repository checkout is ready", "phase": "runtime"}
2026-05-03 07:35:02 UTCinfosandbox
BSIM_PROGRESS:{"message": "Creating managed DiffDock runtime environment", "phase": "runtime"}
2026-05-03 07:35:04 UTCinfosystem
Validating DiffDock inputs
2026-05-03 07:35:05 UTCinfosystem
Preparing DiffDock runtime
2026-05-03 07:35:07 UTCinfosystem
Cloning DiffDock repository at v1.1.3
2026-05-03 07:35:08 UTCinfosystem
DiffDock repository checkout is ready
2026-05-03 07:35:09 UTCinfosystem
Creating managed DiffDock runtime environment
2026-05-03 07:35:13 UTCinfosandbox
BSIM_PROGRESS:{"message": "Managed DiffDock runtime environment is ready", "phase": "runtime"}
2026-05-03 07:35:13 UTCinfosandbox
BSIM_PROGRESS:{"message": "Upgrading pip inside the managed DiffDock runtime", "phase": "runtime"}
2026-05-03 07:35:14 UTCinfosandbox
[runtime] Requirement already satisfied: pip in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (24.0)
2026-05-03 07:35:15 UTCinfosandbox
[runtime] Collecting pip
2026-05-03 07:35:15 UTCinfosandbox
[runtime]   Downloading pip-26.1-py3-none-any.whl.metadata (4.6 kB)
2026-05-03 07:35:16 UTCinfosandbox
[runtime] Downloading pip-26.1-py3-none-any.whl (1.8 MB)
2026-05-03 07:35:16 UTCinfosandbox
[runtime]     1.8/1.8 MB 83.3 MB/s eta 0:00:00
2026-05-03 07:35:17 UTCinfosandbox
[runtime] Installing collected packages: pip
2026-05-03 07:35:18 UTCinfosandbox
[runtime]   Attempting uninstall: pip
2026-05-03 07:35:18 UTCinfosandbox
[runtime]     Found existing installation: pip 24.0
2026-05-03 07:35:19 UTCinfosandbox
[runtime]     Uninstalling pip-24.0:
2026-05-03 07:35:20 UTCinfosandbox
[runtime]       Successfully uninstalled pip-24.0
2026-05-03 07:35:20 UTCinfosandbox
[runtime] Successfully installed pip-26.1
2026-05-03 07:35:21 UTCinfosandbox
BSIM_PROGRESS:{"message": "Managed runtime pip is up to date", "phase": "runtime"}
2026-05-03 07:35:22 UTCinfosandbox
BSIM_PROGRESS:{"message": "Installing DiffDock runtime dependencies (phase 1 of 2)", "phase": "runtime"}
2026-05-03 07:35:22 UTCinfosandbox
[runtime] Looking in links: https://data.pyg.org/whl/torch-2.0.1+cu117.html
2026-05-03 07:35:23 UTCinfosandbox
[runtime] Collecting setuptools==69.5.1
2026-05-03 07:35:24 UTCinfosandbox
[runtime]   Downloading setuptools-69.5.1-py3-none-any.whl.metadata (6.2 kB)
2026-05-03 07:35:24 UTCinfosandbox
[runtime] Collecting torch==2.0.1
2026-05-03 07:35:25 UTCinfosandbox
[runtime]   Downloading torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl.metadata (24 kB)
2026-05-03 07:35:26 UTCinfosandbox
[runtime] Collecting filelock (from torch==2.0.1)
2026-05-03 07:35:26 UTCinfosandbox
[runtime]   Downloading filelock-3.29.0-py3-none-any.whl.metadata (2.0 kB)
2026-05-03 07:35:27 UTCinfosandbox
[runtime] Collecting typing-extensions (from torch==2.0.1)
2026-05-03 07:35:28 UTCinfosandbox
[runtime]   Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
2026-05-03 07:35:28 UTCinfosandbox
[runtime] Collecting sympy (from torch==2.0.1)
JSON
{
  "outputs": {
    "diffdock_diffdockl_docking_predictor": {
      "pose_summary": {
        "type": "record",
        "source": "diffdock",
        "name": "pose_summary",
        "emitted_at": 0.01,
        "spec": {
          "signal_type": "record",
          "kind": "state",
          "dtype": null,
          "shape": null,
          "emitted_unit": null,
          "accepted_profiles": null,
          "interpolation": "zoh",
          "max_age": null,
          "stale_policy": "warn",
          "schema": {
            "payload": "json"
          },
          "description": null
        },
        "value": {
          "payload": [
            {
              "rank": 1,
              "confidence": -2.23,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank1_confidence-2.23.sdf"
            },
            {
              "rank": 2,
              "confidence": -2.28,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank2_confidence-2.28.sdf"
            },
            {
              "rank": 3,
              "confidence": -2.46,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank3_confidence-2.46.sdf"
            },
            {
              "rank": 4,
              "confidence": -2.57,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank4_confidence-2.57.sdf"
            },
            {
              "rank": 5,
              "confidence": -2.6,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank5_confidence-2.60.sdf"
            },
            {
              "rank": 6,
              "confidence": -2.63,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank6_confidence-2.63.sdf"
            },
            {
              "rank": 7,
              "confidence": -2.73,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank7_confidence-2.73.sdf"
            },
            {
              "rank": 8,
              "confidence": -2.94,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank8_confidence-2.94.sdf"
            },
            {
              "rank": 9,
              "confidence": -3.06,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank9_confidence-3.06.sdf"
            },
            {
              "rank": 10,
              "confidence": -4.1,
              "confidence_band": "low",
              "file_path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank10_confidence-4.10.sdf"
            }
          ]
        }
      },
      "confidence_summary": {
        "type": "record",
        "source": "diffdock",
        "name": "confidence_summary",
        "emitted_at": 0.01,
        "spec": {
          "signal_type": "record",
          "kind": "state",
          "dtype": null,
          "shape": null,
          "emitted_unit": null,
          "accepted_profiles": null,
          "interpolation": "zoh",
          "max_age": null,
          "stale_policy": "warn",
          "schema": {
            "payload": "json"
          },
          "description": null
        },
        "value": {
          "payload": {
            "top_pose_rank": 1,
            "top_pose_confidence": -2.23,
            "confidence_band": "low",
            "pose_count": 10,
            "all_confidences": [
              -2.23,
              -2.28,
              -2.46,
              -2.57,
              -2.6,
              -2.63,
              -2.73,
              -2.94,
              -3.06,
              -4.1
            ]
          }
        }
      },
      "structure_artifacts": {
        "type": "record",
        "source": "diffdock",
        "name": "structure_artifacts",
        "emitted_at": 0.01,
        "spec": {
          "signal_type": "record",
          "kind": "state",
          "dtype": null,
          "shape": null,
          "emitted_unit": null,
          "accepted_profiles": null,
          "interpolation": "zoh",
          "max_age": null,
          "stale_policy": "warn",
          "schema": {
            "payload": "json"
          },
          "description": null
        },
        "value": {
          "payload": {
            "prediction_dir": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom",
            "top_pose_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank1.sdf",
            "top_complex_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/top_rank_complex.pdb",
            "confidence_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/confidence_summary.json",
            "pose_summary_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/pose_summary.json",
            "rank_1_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank1_confidence-2.23.sdf",
            "rank_2_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank2_confidence-2.28.sdf",
            "rank_3_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank3_confidence-2.46.sdf",
            "rank_4_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank4_confidence-2.57.sdf",
            "rank_5_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank5_confidence-2.60.sdf",
            "rank_6_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank6_confidence-2.63.sdf",
            "rank_7_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank7_confidence-2.73.sdf",
            "rank_8_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank8_confidence-2.94.sdf",
            "rank_9_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank9_confidence-3.06.sdf",
            "rank_10_file": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/rank10_confidence-4.10.sdf"
          }
        }
      },
      "run_metadata": {
        "type": "record",
        "source": "diffdock",
        "name": "run_metadata",
        "emitted_at": 0.01,
        "spec": {
          "signal_type": "record",
          "kind": "state",
          "dtype": null,
          "shape": null,
          "emitted_unit": null,
          "accepted_profiles": null,
          "interpolation": "zoh",
          "max_age": null,
          "stale_policy": "warn",
          "schema": {
            "payload": "json"
          },
          "description": null
        },
        "value": {
          "payload": {
            "status": "completed",
            "runtime_mode": "managed",
            "runtime_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock",
            "cache_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/cache",
            "requirements_file": "/tmp/biosim-models/diffdock_diffdockl_docking_predictor/requirements/runtime-gpu.txt",
            "repo_bootstrapped": true,
            "runtime_bootstrapped": true,
            "runtime_setup_commands": [
              {
                "command": [
                  "git",
                  "clone",
                  "--branch",
                  "v1.1.3",
                  "--depth",
                  "1",
                  "https://github.com/gcorso/DiffDock.git",
                  "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo"
                ],
                "cwd": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
                "returncode": 0,
                "stdout": "",
                "stderr": "Cloning into '/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo'...\nNote: switching to '9a22cbcbc7612c7565c80e8399d9be298971f156'.\n\nYou are in 'detached HEAD' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by switching back to a branch.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -c with the switch command. Example:\n\n  git switch -c <new-branch-name>\n\nOr undo this operation with:\n\n  git switch -\n\nTurn off this advice by setting config variable advice.detachedHead to false\n\n"
              },
              {
                "command": [
                  "/usr/local/bin/python",
                  "-m",
                  "venv",
                  "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv"
                ],
                "cwd": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
                "returncode": 0,
                "stdout": "",
                "stderr": ""
              },
              {
                "command": [
                  "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/bin/python",
                  "-m",
                  "pip",
                  "install",
                  "--upgrade",
                  "pip"
                ],
                "cwd": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
                "returncode": 0,
                "stdout": "Requirement already satisfied: pip in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (24.0)\nCollecting pip\n  Downloading pip-26.1-py3-none-any.whl.metadata (4.6 kB)\nDownloading pip-26.1-py3-none-any.whl (1.8 MB)\n    1.8/1.8 MB 83.3 MB/s eta 0:00:00\nInstalling collected packages: pip\n  Attempting uninstall: pip\n    Found existing installation: pip 24.0\n    Uninstalling pip-24.0:\n      Successfully uninstalled pip-24.0\nSuccessfully installed pip-26.1\n",
                "stderr": ""
              },
              {
                "command": [
                  "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/bin/python",
                  "-m",
                  "pip",
                  "install",
                  "--disable-pip-version-check",
                  "--no-input",
                  "--find-links",
                  "https://data.pyg.org/whl/torch-2.0.1+cu117.html",
                  "setuptools==69.5.1",
                  "torch==2.0.1"
                ],
                "cwd": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
                "returncode": 0,
                "stdout": "Looking in links: https://data.pyg.org/whl/torch-2.0.1+cu117.html\nCollecting setuptools==69.5.1\n  Downloading setuptools-69.5.1-py3-none-any.whl.metadata (6.2 kB)\nCollecting torch==2.0.1\n  Downloading torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl.metadata (24 kB)\nCollecting filelock (from torch==2.0.1)\n  Downloading filelock-3.29.0-py3-none-any.whl.metadata (2.0 kB)\nCollecting typing-extensions (from torch==2.0.1)\n  Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting sympy (from torch==2.0.1)\n  Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)\nCollecting networkx (from torch==2.0.1)\n  Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)\nCollecting jinja2 (from torch==2.0.1)\n  Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\nCollecting nvidia-cuda-nvrtc-cu11==11.7.99 (from torch==2.0.1)\n  Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\nCollecting nvidia-cuda-runtime-cu11==11.7.99 (from torch==2.0.1)\n  Downloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cuda-cupti-cu11==11.7.101 (from torch==2.0.1)\n  Downloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cudnn-cu11==8.5.0.96 (from torch==2.0.1)\n  Downloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cublas-cu11==11.10.3.66 (from torch==2.0.1)\n  Downloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cufft-cu11==10.9.0.58 (from torch==2.0.1)\n  Downloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\nCollecting nvidia-curand-cu11==10.2.10.91 (from torch==2.0.1)\n  Downloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cusolver-cu11==11.4.0.1 (from torch==2.0.1)\n  Downloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cusparse-cu11==11.7.4.91 (from torch==2.0.1)\n  Downloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-nccl-cu11==2.14.3 (from torch==2.0.1)\n  Downloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)\nCollecting nvidia-nvtx-cu11==11.7.91 (from torch==2.0.1)\n  Downloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)\nCollecting triton==2.0.0 (from torch==2.0.1)\n  Downloading triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.0 kB)\nCollecting wheel (from nvidia-cublas-cu11==11.10.3.66->torch==2.0.1)\n  Downloading wheel-0.47.0-py3-none-any.whl.metadata (2.3 kB)\nCollecting cmake (from triton==2.0.0->torch==2.0.1)\n  Downloading cmake-4.3.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.5 kB)\nCollecting lit (from triton==2.0.0->torch==2.0.1)\n  Downloading lit-18.1.8-py3-none-any.whl.metadata (2.5 kB)\nCollecting MarkupSafe>=2.0 (from jinja2->torch==2.0.1)\n  Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)\nCollecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.0.1)\n  Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\nCollecting packaging>=24.0 (from wheel->nvidia-cublas-cu11==11.10.3.66->torch==2.0.1)\n  Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)\nDownloading setuptools-69.5.1-py3-none-any.whl (894 kB)\n    894.6/894.6 kB 3.0 MB/s  0:00:00\nDownloading torch-2.0.1-cp311-cp311-manylinux1_x86_64.whl (619.9 MB)\n    619.9/619.9 MB 176.8 MB/s  0:00:03\nDownloading nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)\n    317.1/317.1 MB 162.5 MB/s  0:00:01\nDownloading nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)\n    11.8/11.8 MB 161.1 MB/s  0:00:00\nDownloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)\n    21.0/21.0 MB 146.8 MB/s  0:00:00\nDownloading nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)\n    849.3/849.3 kB 193.2 MB/s  0:00:00\nDownloading nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)\n    557.1/557.1 MB 162.4 MB/s  0:00:03\nDownloading nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux2014_x86_64.whl (168.4 MB)\n    168.4/168.4 MB 175.5 MB/s  0:00:00\nDownloading nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)\n    54.6/54.6 MB 179.9 MB/s  0:00:00\nDownloading nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)\n    102.6/102.6 MB 166.1 MB/s  0:00:00\nDownloading nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)\n    173.2/173.2 MB 184.5 MB/s  0:00:00\nDownloading nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)\n    177.1/177.1 MB 198.1 MB/s  0:00:00\nDownloading nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)\nDownloading triton-2.0.0-1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (63.3 MB)\n    63.3/63.3 MB 218.5 MB/s  0:00:00\nDownloading cmake-4.3.2-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (29.5 MB)\n    29.5/29.5 MB 207.6 MB/s  0:00:00\nDownloading filelock-3.29.0-py3-none-any.whl (39 kB)\nDownloading jinja2-3.1.6-py3-none-any.whl (134 kB)\nDownloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)\nDownloading lit-18.1.8-py3-none-any.whl (96 kB)\nDownloading networkx-3.6.1-py3-none-any.whl (2.1 MB)\n    2.1/2.1 MB 230.0 MB/s  0:00:00\nDownloading sympy-1.14.0-py3-none-any.whl (6.3 MB)\n    6.3/6.3 MB 223.9 MB/s  0:00:00\nDownloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n    536.2/536.2 kB 215.7 MB/s  0:00:00\nDownloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)\nDownloading wheel-0.47.0-py3-none-any.whl (32 kB)\nDownloading packaging-26.2-py3-none-any.whl (100 kB)\nInstalling collected packages: mpmath, lit, typing-extensions, sympy, setuptools, packaging, nvidia-nccl-cu11, nvidia-cufft-cu11, nvidia-cuda-nvrtc-cu11, networkx, MarkupSafe, filelock, cmake, wheel, jinja2, nvidia-nvtx-cu11, nvidia-cusparse-cu11, nvidia-curand-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-cupti-cu11, nvidia-cublas-cu11, nvidia-cusolver-cu11, nvidia-cudnn-cu11, triton, torch\n  Attempting uninstall: setuptools\n    Found existing installation: setuptools 79.0.1\n    Uninstalling setuptools-79.0.1:\n      Successfully uninstalled setuptools-79.0.1\n\nSuccessfully installed MarkupSafe-3.0.3 cmake-4.3.2 filelock-3.29.0 jinja2-3.1.6 lit-18.1.8 mpmath-1.3.0 networkx-3.6.1 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 packaging-26.2 setuptools-69.5.1 sympy-1.14.0 torch-2.0.1 triton-2.0.0 typing-extensions-4.15.0 wheel-0.47.0\n",
                "stderr": ""
              },
              {
                "command": [
                  "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/bin/python",
                  "-m",
                  "pip",
                  "install",
                  "--disable-pip-version-check",
                  "--no-input",
                  "--find-links",
                  "https://data.pyg.org/whl/torch-2.0.1+cu117.html",
                  "torch-cluster==1.6.3+pt20cu117",
                  "torch-geometric==2.2.0",
                  "torch-scatter==2.1.2+pt20cu117",
                  "torch-sparse==0.6.18+pt20cu117",
                  "torch-spline-conv==1.2.2+pt20cu117",
                  "biopython==1.83",
                  "e3nn==0.5.1",
                  "fair-esm==2.0.0",
                  "networkx==2.8.4",
                  "numpy==1.26.4",
                  "pandas==1.5.3",
                  "prody==2.6.1",
                  "pyyaml==6.0.2",
                  "rdkit==2022.9.5",
                  "requests==2.32.3",
                  "scikit-learn==1.1.3",
                  "scipy==1.12.0",
                  "tqdm==4.66.5"
                ],
                "cwd": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
                "returncode": 0,
                "stdout": "m torch>=1.8.0->e3nn==0.5.1) (4.15.0)\nRequirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.7.99)\nRequirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.7.99)\nRequirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.7.101)\nRequirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (8.5.0.96)\nRequirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.10.3.66)\nRequirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (10.9.0.58)\nRequirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (10.2.10.91)\nRequirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.4.0.1)\nRequirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.7.4.91)\nRequirement already satisfied: nvidia-nccl-cu11==2.14.3 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (2.14.3)\nRequirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (11.7.91)\nRequirement already satisfied: triton==2.0.0 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from torch>=1.8.0->e3nn==0.5.1) (2.0.0)\nRequirement already satisfied: setuptools in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.8.0->e3nn==0.5.1) (69.5.1)\nRequirement already satisfied: wheel in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.8.0->e3nn==0.5.1) (0.47.0)\nRequirement already satisfied: cmake in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from triton==2.0.0->torch>=1.8.0->e3nn==0.5.1) (4.3.2)\nRequirement already satisfied: lit in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from triton==2.0.0->torch>=1.8.0->e3nn==0.5.1) (18.1.8)\nRequirement already satisfied: MarkupSafe>=2.0 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from jinja2->torch-geometric==2.2.0) (3.0.3)\nRequirement already satisfied: mpmath<1.4,>=1.1.0 in /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/lib/python3.11/site-packages (from sympy->e3nn==0.5.1) (1.3.0)\nDownloading biopython-1.83-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\n    3.1/3.1 MB 165.6 MB/s  0:00:00\nDownloading e3nn-0.5.1-py3-none-any.whl (118 kB)\nDownloading fair_esm-2.0.0-py3-none-any.whl (93 kB)\nDownloading networkx-2.8.4-py3-none-any.whl (2.0 MB)\n    2.0/2.0 MB 171.0 MB/s  0:00:00\nDownloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)\n    18.3/18.3 MB 177.9 MB/s  0:00:00\nDownloading pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.0 MB)\n    12.0/12.0 MB 160.7 MB/s  0:00:00\nDownloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n    763.0/763.0 kB 219.4 MB/s  0:00:00\nDownloading rdkit-2022.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.4 MB)\n    29.4/29.4 MB 157.3 MB/s  0:00:00\nDownloading requests-2.32.3-py3-none-any.whl (64 kB)\nDownloading scikit_learn-1.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.0 MB)\n    32.0/32.0 MB 190.8 MB/s  0:00:00\nDownloading scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB)\n    38.4/38.4 MB 189.0 MB/s  0:00:00\nDownloading tqdm-4.66.5-py3-none-any.whl (78 kB)\nDownloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (214 kB)\nDownloading idna-3.13-py3-none-any.whl (68 kB)\nDownloading pyparsing-3.1.1-py3-none-any.whl (103 kB)\nDownloading urllib3-2.6.3-py3-none-any.whl (131 kB)\nDownloading certifi-2026.4.22-py3-none-any.whl (135 kB)\nDownloading joblib-1.5.3-py3-none-any.whl (309 kB)\nDownloading opt_einsum_fx-0.1.4-py3-none-any.whl (13 kB)\nDownloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB)\nDownloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)\nDownloading pytz-2026.1.post1-py2.py3-none-any.whl (510 kB)\nDownloading six-1.17.0-py2.py3-none-any.whl (11 kB)\nDownloading threadpoolctl-3.6.0-py3-none-any.whl (18 kB)\nDownloading opt_einsum-3.4.0-py3-none-any.whl (71 kB)\nDownloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB)\n    7.1/7.1 MB 188.4 MB/s  0:00:00\nBuilding wheels for collected packages: torch-geometric, prody\n  Building wheel for torch-geometric (pyproject.toml): started\n  Building wheel for torch-geometric (pyproject.toml): finished with status 'done'\n  Created wheel for torch-geometric: filename=torch_geometric-2.2.0-py3-none-any.whl size=773348 sha256=304a2d10bf7d112db60449e7cda81be6f235c41163be5ee844b0b38f4397763a\n  Stored in directory: /tmp/pip-ephem-wheel-cache-av26z7zt/wheels/2a/4d/ee/0887392fb0c94e5398c1e0b306106e8b2645702c8f16ef9cad\n  Building wheel for prody (pyproject.toml): started\n  Building wheel for prody (pyproject.toml): finished with status 'done'\n  Created wheel for prody: filename=prody-2.6.1-cp311-cp311-linux_x86_64.whl size=36389326 sha256=550495b5ed26705bfbb72c117c6ca59c91c6ec6268830d851d80102291144811\n  Stored in directory: /tmp/pip-ephem-wheel-cache-av26z7zt/wheels/c1/f0/d2/42b08ebde1b316d1b7477373fe926adb297d9635b14ae7e711\nSuccessfully built torch-geometric prody\nInstalling collected packages: pytz, fair-esm, urllib3, tqdm, torch-spline-conv, torch-scatter, threadpoolctl, six, pyyaml, pyparsing, psutil, Pillow, opt-einsum, numpy, networkx, joblib, idna, charset-normalizer, certifi, scipy, requests, rdkit, python-dateutil, biopython, torch-sparse, torch-cluster, scikit-learn, prody, pandas, torch-geometric, opt-einsum-fx, e3nn\n  Attempting uninstall: networkx\n    Found existing installation: networkx 3.6.1\n    Uninstalling networkx-3.6.1:\n      Successfully uninstalled networkx-3.6.1\n\nSuccessfully installed Pillow-12.2.0 biopython-1.83 certifi-2026.4.22 charset-normalizer-3.4.7 e3nn-0.5.1 fair-esm-2.0.0 idna-3.13 joblib-1.5.3 networkx-2.8.4 numpy-1.26.4 opt-einsum-3.4.0 opt-einsum-fx-0.1.4 pandas-1.5.3 prody-2.6.1 psutil-7.2.2 pyparsing-3.1.1 python-dateutil-2.9.0.post0 pytz-2026.1.post1 pyyaml-6.0.2 rdkit-2022.9.5 requests-2.32.3 scikit-learn-1.1.3 scipy-1.12.0 six-1.17.0 threadpoolctl-3.6.0 torch-cluster-1.6.3+pt20cu117 torch-geometric-2.2.0 torch-scatter-2.1.2+pt20cu117 torch-sparse-0.6.18+pt20cu117 torch-spline-conv-1.2.2+pt20cu117 tqdm-4.66.5 urllib3-2.6.3\n",
                "stderr": ""
              }
            ],
            "stdout": "Generating ESM language model embeddings\nProcessing 1 of 1 batches (2 sequences)\n",
            "stderr": "s]\r 78%|  | 157/201 [00:53<00:14,  2.98it/s]\r 79%|  | 158/201 [00:53<00:14,  2.99it/s]\r 79%|  | 159/201 [00:53<00:14,  3.00it/s]\r 80%|  | 160/201 [00:54<00:13,  2.99it/s]\r 80%|  | 161/201 [00:54<00:13,  2.98it/s]\r 81%|  | 162/201 [00:54<00:13,  2.99it/s]\r 81%|  | 163/201 [00:55<00:12,  3.00it/s]\r 82%| | 164/201 [00:55<00:12,  3.01it/s]\r 82%| | 165/201 [00:55<00:12,  3.00it/s]\r 83%| | 166/201 [00:56<00:11,  2.97it/s]\r 83%| | 167/201 [00:56<00:11,  2.95it/s]\r 84%| | 168/201 [00:56<00:11,  2.97it/s]\r 84%| | 169/201 [00:57<00:10,  2.99it/s]\r 85%| | 170/201 [00:57<00:10,  3.02it/s]\r 85%| | 171/201 [00:57<00:09,  3.03it/s]\r 86%| | 172/201 [00:58<00:09,  3.04it/s]\r 86%| | 173/201 [00:58<00:09,  3.05it/s]\r 87%| | 174/201 [00:58<00:08,  3.06it/s]\r 87%| | 175/201 [00:59<00:08,  3.05it/s]\r 88%| | 176/201 [00:59<00:08,  3.06it/s]\r 88%| | 177/201 [00:59<00:07,  3.06it/s]\r 89%| | 178/201 [01:00<00:07,  3.06it/s]\r 89%| | 179/201 [01:00<00:07,  3.06it/s]\r 90%| | 180/201 [01:00<00:06,  3.06it/s]\r 90%| | 181/201 [01:01<00:06,  3.06it/s]\r 91%| | 182/201 [01:01<00:06,  3.05it/s]\r 91%| | 183/201 [01:01<00:05,  3.07it/s]\r 92%|| 184/201 [01:02<00:05,  2.99it/s]\r 92%|| 185/201 [01:02<00:05,  2.94it/s]\r 93%|| 186/201 [01:02<00:05,  2.93it/s]\r 93%|| 187/201 [01:03<00:04,  2.98it/s]\r 94%|| 188/201 [01:03<00:04,  2.99it/s]\r 94%|| 189/201 [01:03<00:04,  2.98it/s]\r 95%|| 190/201 [01:04<00:03,  2.99it/s]\r 95%|| 191/201 [01:04<00:03,  3.01it/s]\r 96%|| 192/201 [01:04<00:02,  3.04it/s]\r 96%|| 193/201 [01:05<00:02,  3.02it/s]\r 97%|| 194/201 [01:05<00:02,  3.03it/s]\r 97%|| 195/201 [01:05<00:01,  3.05it/s]\r 98%|| 196/201 [01:06<00:01,  3.07it/s]\r 98%|| 197/201 [01:06<00:01,  3.07it/s]\r 99%|| 198/201 [01:06<00:00,  3.09it/s]\r 99%|| 199/201 [01:06<00:00,  3.09it/s]\r100%|| 200/201 [01:07<00:00,  3.07it/s]\r100%|| 201/201 [01:07<00:00,  3.05it/s]\r100%|| 201/201 [01:07<00:00,  2.97it/s]\n\r  0%|          | 0/201 [00:00<?, ?it/s]\r  0%|          | 1/201 [00:00<01:25,  2.35it/s]\r  1%|          | 2/201 [00:00<01:27,  2.27it/s]\r  1%|         | 3/201 [00:01<01:27,  2.26it/s]\r  2%|         | 4/201 [00:01<01:27,  2.25it/s]\r  2%|         | 5/201 [00:02<01:27,  2.23it/s]\r  3%|         | 6/201 [00:02<01:27,  2.23it/s]\r  3%|         | 7/201 [00:03<01:26,  2.23it/s]\r  4%|         | 8/201 [00:03<01:26,  2.23it/s]\r  4%|         | 9/201 [00:04<01:26,  2.23it/s]\r  5%|         | 10/201 [00:04<01:25,  2.22it/s]\r  5%|         | 11/201 [00:04<01:25,  2.22it/s]\r  6%|         | 12/201 [00:05<01:25,  2.21it/s]\r  6%|         | 13/201 [00:05<01:24,  2.23it/s]\r  7%|         | 14/201 [00:06<01:23,  2.23it/s]\r  7%|         | 15/201 [00:06<01:23,  2.23it/s]\r  8%|         | 16/201 [00:07<01:22,  2.24it/s]\r  8%|         | 17/201 [00:07<01:22,  2.24it/s]\r  9%|         | 18/201 [00:08<01:21,  2.24it/s]\r  9%|         | 19/201 [00:08<01:21,  2.24it/s]\r 10%|         | 20/201 [00:08<01:20,  2.24it/s]\r 10%|         | 21/201 [00:09<01:20,  2.23it/s]\r 11%|         | 22/201 [00:09<01:19,  2.24it/s]\r 11%|        | 23/201 [00:10<01:19,  2.24it/s]\r 12%|        | 24/201 [00:10<01:18,  2.24it/s]\r 12%|        | 25/201 [00:11<01:18,  2.24it/s]\r 13%|        | 26/201 [00:11<01:18,  2.24it/s]\r 13%|        | 27/201 [00:12<01:17,  2.24it/s]\r 14%|        | 28/201 [00:12<01:17,  2.22it/s]\r 14%|        | 29/201 [00:12<01:17,  2.22it/s]\r 15%|        | 30/201 [00:13<01:17,  2.21it/s]\r 15%|        | 31/201 [00:13<01:17,  2.20it/s]\r 16%|        | 32/201 [00:14<01:17,  2.18it/s]\r 16%|        | 33/201 [00:14<01:18,  2.15it/s]\r 17%|        | 34/201 [00:15<01:18,  2.14it/s]\r 17%|        | 35/201 [00:15<01:18,  2.13it/s]\r 18%|        | 36/201 [00:16<01:17,  2.12it/s]\r 18%|        | 37/201 [00:16<01:17,  2.12it/s]\r 19%|        | 38/201 [00:17<01:17,  2.11it/s]\r 19%|        | 39/201 [00:17<01:16,  2.11it/s]\r 20%|        | 40/201 [00:18<01:16,  2.10it/s]\r 20%|        | 41/201 [00:18<01:16,  2.10it/s]\r 21%|        | 42/201 [00:19<01:15,  2.09it/s]\r 21%|       | 43/201 [00:19<01:15,  2.09it/s]\r 22%|       | 44/201 [00:20<01:15,  2.09it/s]\r 22%|       | 45/201 [00:20<01:14,  2.09it/s]\r 23%|       | 46/201 [00:21<01:13,  2.10it/s]\r 23%|       | 47/201 [00:21<01:12,  2.11it/s]\r 24%|       | 48/201 [00:21<01:12,  2.12it/s]\r 24%|       | 49/201 [00:22<01:11,  2.13it/s]\r 25%|       | 50/201 [00:22<01:10,  2.13it/s]\r 25%|       | 51/201 [00:23<01:10,  2.12it/s]\r 26%|       | 52/201 [00:23<01:10,  2.12it/s]\r 26%|       | 53/201 [00:24<01:09,  2.13it/s]\r 27%|       | 54/201 [00:24<01:08,  2.13it/s]\r 27%|       | 55/201 [00:25<01:07,  2.15it/s]\r 28%|       | 56/201 [00:25<01:07,  2.14it/s]\r 28%|       | 57/201 [00:26<01:06,  2.15it/s]\r 29%|       | 58/201 [00:26<01:06,  2.14it/s]\r 29%|       | 59/201 [00:27<01:06,  2.14it/s]\r 30%|       | 60/201 [00:27<01:06,  2.12it/s]\r 30%|       | 61/201 [00:28<01:06,  2.10it/s]\r 31%|       | 62/201 [00:28<01:05,  2.11it/s]\r 31%|      | 63/201 [00:29<01:05,  2.09it/s]\r 32%|      | 64/201 [00:29<01:05,  2.08it/s]\r 32%|      | 65/201 [00:30<01:05,  2.08it/s]\r 33%|      | 66/201 [00:30<01:04,  2.08it/s]\r 33%|      | 67/201 [00:30<01:04,  2.09it/s]\r 34%|      | 68/201 [00:31<01:03,  2.09it/s]\r 34%|      | 69/201 [00:31<01:03,  2.09it/s]\r 35%|      | 70/201 [00:32<01:02,  2.10it/s]\r 35%|      | 71/201 [00:32<01:02,  2.10it/s]\r 36%|      | 72/201 [00:33<01:01,  2.10it/s]\r 36%|      | 73/201 [00:33<01:00,  2.10it/s]\r 37%|      | 74/201 [00:34<01:00,  2.10it/s]\r 37%|      | 75/201 [00:34<00:59,  2.11it/s]\r 38%|      | 76/201 [00:35<00:59,  2.11it/s]\r 38%|      | 77/201 [00:35<00:58,  2.11it/s]\r 39%|      | 78/201 [00:36<00:58,  2.09it/s]\r 39%|      | 79/201 [00:36<01:00,  2.03it/s]\r 40%|      | 80/201 [00:37<01:00,  2.01it/s]\r 40%|      | 81/201 [00:37<00:58,  2.04it/s]\r 41%|      | 82/201 [00:38<00:58,  2.04it/s]\r 41%|     | 83/201 [00:38<00:58,  2.03it/s]\r 42%|     | 84/201 [00:39<00:59,  1.98it/s]\r 42%|     | 85/201 [00:39<01:01,  1.89it/s]\r 43%|     | 86/201 [00:40<01:00,  1.91it/s]\r 43%|     | 87/201 [00:40<00:59,  1.92it/s]\r 44%|     | 88/201 [00:41<00:58,  1.92it/s]\r 44%|     | 89/201 [00:41<00:57,  1.96it/s]\r 45%|     | 90/201 [00:42<00:55,  1.99it/s]\r 45%|     | 91/201 [00:42<00:54,  2.01it/s]\r 46%|     | 92/201 [00:43<00:53,  2.03it/s]\r 46%|     | 93/201 [00:43<00:52,  2.05it/s]\r 47%|     | 94/201 [00:44<00:51,  2.09it/s]\r 47%|     | 95/201 [00:44<00:50,  2.11it/s]\r 48%|     | 96/201 [00:45<00:49,  2.11it/s]\r 48%|     | 97/201 [00:45<00:48,  2.13it/s]\r 49%|     | 98/201 [00:46<00:48,  2.14it/s]\r 49%|     | 99/201 [00:46<00:47,  2.16it/s]\r 50%|     | 100/201 [00:47<00:46,  2.19it/s]\r 50%|     | 101/201 [00:47<00:43,  2.32it/s]\r 51%|     | 102/201 [00:47<00:42,  2.30it/s]\r 51%|     | 103/201 [00:48<00:43,  2.27it/s]\r 52%|    | 104/201 [00:48<00:43,  2.24it/s]\r 52%|    | 105/201 [00:49<00:42,  2.24it/s]\r 53%|    | 106/201 [00:49<00:42,  2.22it/s]\r 53%|    | 107/201 [00:50<00:43,  2.18it/s]\r 54%|    | 108/201 [00:50<00:43,  2.16it/s]\r 54%|    | 109/201 [00:51<00:42,  2.14it/s]\r 55%|    | 110/201 [00:51<00:42,  2.13it/s]\r 55%|    | 111/201 [00:52<00:42,  2.13it/s]\r 56%|    | 112/201 [00:52<00:41,  2.12it/s]\r 56%|    | 113/201 [00:52<00:41,  2.12it/s]\r 57%|    | 114/201 [00:53<00:41,  2.11it/s]\r 57%|    | 115/201 [00:53<00:40,  2.10it/s]\r 58%|    | 116/201 [00:54<00:40,  2.09it/s]\r 58%|    | 117/201 [00:54<00:40,  2.09it/s]\r 59%|    | 118/201 [00:55<00:39,  2.09it/s]\r 59%|    | 119/201 [00:55<00:39,  2.08it/s]\r 60%|    | 120/201 [00:56<00:39,  2.07it/s]\r 60%|    | 121/201 [00:56<00:38,  2.07it/s]\r 61%|    | 122/201 [00:57<00:38,  2.07it/s]\r 61%|    | 123/201 [00:57<00:37,  2.06it/s]\r 62%|   | 124/201 [00:58<00:38,  2.00it/s]\r 62%|   | 125/201 [00:58<00:37,  2.00it/s]\r 63%|   | 126/201 [00:59<00:37,  2.00it/s]\r 63%|   | 127/201 [00:59<00:37,  1.99it/s]\r 64%|   | 128/201 [01:00<00:36,  1.98it/s]\r 64%|   | 129/201 [01:00<00:36,  1.98it/s]\r 65%|   | 130/201 [01:01<00:36,  1.93it/s]\r 65%|   | 131/201 [01:01<00:36,  1.94it/s]\r 66%|   | 132/201 [01:02<00:36,  1.89it/s]\r 66%|   | 133/201 [01:02<00:35,  1.89it/s]\r 67%|   | 134/201 [01:03<00:35,  1.88it/s]\r 67%|   | 135/201 [01:04<00:35,  1.84it/s]\r 68%|   | 136/201 [01:04<00:34,  1.87it/s]\r 68%|   | 137/201 [01:05<00:34,  1.88it/s]\r 69%|   | 138/201 [01:05<00:32,  1.91it/s]\r 69%|   | 139/201 [01:06<00:31,  1.94it/s]\r 70%|   | 140/201 [01:06<00:30,  1.97it/s]\r 70%|   | 141/201 [01:07<00:30,  2.00it/s]\r 71%|   | 142/201 [01:07<00:29,  2.02it/s]\r 71%|   | 143/201 [01:08<00:28,  2.04it/s]\r 72%|  | 144/201 [01:08<00:27,  2.05it/s]\r 72%|  | 145/201 [01:09<00:27,  2.05it/s]\r 73%|  | 146/201 [01:09<00:26,  2.05it/s]\r 73%|  | 147/201 [01:10<00:26,  2.06it/s]\r 74%|  | 148/201 [01:10<00:25,  2.06it/s]\r 74%|  | 149/201 [01:10<00:25,  2.07it/s]\r 75%|  | 150/201 [01:11<00:24,  2.08it/s]\r 75%|  | 151/201 [01:11<00:24,  2.08it/s]\r 76%|  | 152/201 [01:12<00:23,  2.09it/s]\r 76%|  | 153/201 [01:12<00:22,  2.10it/s]\r 77%|  | 154/201 [01:13<00:22,  2.10it/s]\r 77%|  | 155/201 [01:13<00:21,  2.10it/s]\r 78%|  | 156/201 [01:14<00:21,  2.11it/s]\r 78%|  | 157/201 [01:14<00:20,  2.12it/s]\r 79%|  | 158/201 [01:15<00:20,  2.12it/s]\r 79%|  | 159/201 [01:15<00:19,  2.13it/s]\r 80%|  | 160/201 [01:16<00:19,  2.15it/s]\r 80%|  | 161/201 [01:16<00:18,  2.16it/s]\r 81%|  | 162/201 [01:17<00:18,  2.14it/s]\r 81%|  | 163/201 [01:17<00:17,  2.12it/s]\r 82%| | 164/201 [01:18<00:17,  2.12it/s]\r 82%| | 165/201 [01:18<00:16,  2.14it/s]\r 83%| | 166/201 [01:18<00:16,  2.14it/s]\r 83%| | 167/201 [01:19<00:15,  2.13it/s]\r 84%| | 168/201 [01:19<00:15,  2.13it/s]\r 84%| | 169/201 [01:20<00:15,  2.12it/s]\r 85%| | 170/201 [01:20<00:14,  2.13it/s]\r 85%| | 171/201 [01:21<00:14,  2.13it/s]\r 86%| | 172/201 [01:21<00:13,  2.14it/s]\r 86%| | 173/201 [01:22<00:13,  2.14it/s]\r 87%| | 174/201 [01:22<00:12,  2.14it/s]\r 87%| | 175/201 [01:23<00:12,  2.15it/s]\r 88%| | 176/201 [01:23<00:11,  2.15it/s]\r 88%| | 177/201 [01:24<00:11,  2.17it/s]\r 89%| | 178/201 [01:24<00:10,  2.17it/s]\r 89%| | 179/201 [01:25<00:10,  2.17it/s]\r 90%| | 180/201 [01:25<00:09,  2.19it/s]\r 90%| | 181/201 [01:25<00:09,  2.19it/s]\r 91%| | 182/201 [01:26<00:08,  2.19it/s]\r 91%| | 183/201 [01:26<00:08,  2.18it/s]\r 92%|| 184/201 [01:27<00:07,  2.16it/s]\r 92%|| 185/201 [01:27<00:07,  2.14it/s]\r 93%|| 186/201 [01:28<00:07,  2.13it/s]\r 93%|| 187/201 [01:28<00:06,  2.12it/s]\r 94%|| 188/201 [01:29<00:06,  2.12it/s]\r 94%|| 189/201 [01:29<00:05,  2.11it/s]\r 95%|| 190/201 [01:30<00:05,  2.11it/s]\r 95%|| 191/201 [01:30<00:04,  2.11it/s]\r 96%|| 192/201 [01:31<00:04,  2.11it/s]\r 96%|| 193/201 [01:31<00:03,  2.11it/s]\r 97%|| 194/201 [01:32<00:03,  2.11it/s]\r 97%|| 195/201 [01:32<00:02,  2.11it/s]\r 98%|| 196/201 [01:33<00:02,  2.11it/s]\r 98%|| 197/201 [01:33<00:01,  2.11it/s]\r 99%|| 198/201 [01:33<00:01,  2.10it/s]\r 99%|| 199/201 [01:34<00:00,  2.10it/s]\r100%|| 200/201 [01:34<00:00,  2.10it/s]\r100%|| 201/201 [01:35<00:00,  2.10it/s]\r100%|| 201/201 [01:35<00:00,  2.11it/s]\nDownloading: \"https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t33_650M_UR50D.pt\" to /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/cache/torch/hub/checkpoints/esm2_t33_650M_UR50D.pt\nDownloading: \"https://dl.fbaipublicfiles.com/fair-esm/regression/esm2_t33_650M_UR50D-contact-regression.pt\" to /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/cache/torch/hub/checkpoints/esm2_t33_650M_UR50D-contact-regression.pt\n\r0it [00:00, ?it/s]/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/datasets/parse_chi.py:91: RuntimeWarning: invalid value encountered in cast\n  Y = indices.astype(int)\n/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/utils/geometry.py:272: UserWarning: Specified kernel cache directory could not be created! This disables kernel caching. Specified directory is /__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/cache/xdg/torch/kernels. This warning will appear only once per process. (Triggered internally at ../aten/src/ATen/native/cuda/jit_utils.cpp:1442.)\n  R = torch.where(torch.linalg.det(R)[:, None, None] < 0, Rm, R)\n\r1it [00:55, 55.42s/it]\r1it [00:55, 55.42s/it]\n",
            "run_root": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd",
            "output_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd/output",
            "protein_path": "/tmp/biosim-models/diffdock_diffdockl_docking_predictor/data/1a0q/1a0q_protein_processed.pdb",
            "ligand_description": "COc(cc1)ccc1C#N",
            "resolved_python_executable": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/bin/python",
            "repo_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo",
            "model_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/workdir/v1.1/score_model",
            "confidence_model_dir": "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/workdir/v1.1/confidence_model",
            "command": [
              "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/venv/bin/python",
              "-m",
              "inference",
              "--config",
              "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/default_inference_args.yaml",
              "--out_dir",
              "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-work/diffdock/diffdock-run-mw5iv8kd/output",
              "--complex_name",
              "1a0q_custom",
              "--protein_path",
              "/tmp/biosim-models/diffdock_diffdockl_docking_predictor/data/1a0q/1a0q_protein_processed.pdb",
              "--ligand_description",
              "COc(cc1)ccc1C#N",
              "--model_dir",
              "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/workdir/v1.1/score_model",
              "--confidence_model_dir",
              "/__modal/volumes/vo-lOatSzb030HkyBZo62wvuJ/runtime-cache/diffdock/repo/workdir/v1.1/confidence_model",
              "--ckpt",
              "best_ema_inference_epoch_model.pt",
              "--confidence_ckpt",
              "best_model_epoch75.pt",
              "--samples_per_complex",
              "2",
              "--inference_steps",
              "4",
              "--batch_size",
              "2"
            ],
            "returncode": 0,
            "prediction_dir": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom"
          }
        }
      }
    }
  },
  "state": {
    "diffdock_diffdockl_docking_predictor": {}
  },
  "visuals": [
    {
      "module": "diffdock_diffdockl_docking_predictor",
      "module_class": "DiffDockLDockingPredictor",
      "visuals": [
        {
          "render": "structure3d",
          "data": {
            "title": "Top-Ranked Docked Complex",
            "source": {
              "kind": "artifact",
              "artifact_id": "structure-77553fae57730940",
              "path": "/tmp/bsim-clones/remote-artifacts/c51e64c9-0e80-4d98-b451-0623c9a6bb15/diffdock_diffdockl_docking_predictor/1a0q_custom/top_rank_complex.pdb"
            },
            "format": "pdb",
            "annotations": [
              {
                "label": "Top Pose Confidence",
                "value": -2.23
              },
              {
                "label": "Confidence Band",
                "value": "low"
              },
              {
                "label": "Pose Count",
                "value": 10
              }
            ],
            "initial_view": {
              "reset_camera": true
            }
          },
          "description": "Top-ranked DiffDock-L complex for the latest docking run."
        },
        {
          "render": "table",
          "data": {
            "title": "DiffDock Pose Summary",
            "columns": [
              "Rank",
              "Confidence",
              "Band",
              "Pose File"
            ],
            "rows": [
              [
                "1",
                "-2.23",
                "low",
                "rank1_confidence-2.23.sdf"
              ],
              [
                "2",
                "-2.28",
                "low",
                "rank2_confidence-2.28.sdf"
              ],
              [
                "3",
                "-2.46",
                "low",
                "rank3_confidence-2.46.sdf"
              ],
              [
                "4",
                "-2.57",
                "low",
                "rank4_confidence-2.57.sdf"
              ],
              [
                "5",
                "-2.6",
                "low",
                "rank5_confidence-2.60.sdf"
              ],
              [
                "6",
                "-2.63",
                "low",
                "rank6_confidence-2.63.sdf"
              ],
              [
                "7",
                "-2.73",
                "low",
                "rank7_confidence-2.73.sdf"
              ],
              [
                "8",
                "-2.94",
                "low",
                "rank8_confidence-2.94.sdf"
              ],
              [
                "9",
                "-3.06",
                "low",
                "rank9_confidence-3.06.sdf"
              ],
              [
                "10",
                "-4.1",
                "low",
                "rank10_confidence-4.10.sdf"
              ]
            ]
          },
          "description": "Ranked pose summary from the latest DiffDock-L run."
        }
      ]
    }
  ],
  "duration": 0.01,
  "communication_step": 0.01,
  "modules": [
    "diffdock_diffdockl_docking_predictor"
  ],
  "lab_commit": "638d9da99a40f68ef0eefc467abb0138192a92b108471ddc778bd3f95a603364",
  "model_resolutions": [
    {
      "alias": "diffdock_diffdockl_docking_predictor",
      "model_id": "embedded:owned/models/diffdock_diffdockl_docking_predictor",
      "repo_full_name": null,
      "commit_sha": null
    }
  ],
  "module_ports": {
    "diffdock_diffdockl_docking_predictor": {
      "inputs": [
        "ligand_description",
        "protein_path",
        "run_options"
      ],
      "outputs": [
        "confidence_summary",
        "pose_summary",
        "run_metadata",
        "structure_artifacts"
      ]
    }
  },
  "dependency_installs": [],
  "dependency_policy_enabled": true
}