#!/bin/bash set -euo pipefail export LD_LIBRARY_PATH="$CONDA_PREFIX/lib/:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="$CONDA_PREFIX/lib/python3.11/site-packages/fastpt/torch/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH=${ROCM_PATH}/opencl/lib:$LD_LIBRARY_PATH SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) EXAMPLE_DIR=$(cd "${SCRIPT_DIR}/.." && pwd) REPO_ROOT=$(cd "${SCRIPT_DIR}/../../../.." && pwd) # source "${REPO_ROOT}/env.sh" if [[ -n "${ROCM_PATH:-}" && -f "${ROCM_PATH}/cuda/env.sh" ]]; then source "${ROCM_PATH}/cuda/env.sh" fi export PYTHONPATH="${REPO_ROOT}/src:${REPO_ROOT}:${PYTHONPATH:-}" export HIP_VISIBLE_DEVICES="${HIP_VISIBLE_DEVICES:-0}" export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:-${HIP_VISIBLE_DEVICES}}" export OMP_NUM_THREADS="${OMP_NUM_THREADS:-4}" export DIFFDOCK_RADIUS_ON_CPU="${RADIUS_ON_CPU:-false}" DIFFDOCK_DATA_ROOT="${DIFFDOCK_DATA_ROOT:-${ONESCIENCE_DATASETS_DIR}/diffdock}" export TORCH_HOME="${TORCH_HOME:-${DIFFDOCK_DATA_ROOT}/torch_home}" SCORE_MODEL_DIR="${SCORE_MODEL_DIR:-${DIFFDOCK_DATA_ROOT}/score_model}" SCORE_CKPT="${SCORE_CKPT:-best_ema_inference_epoch_model.pt}" CONFIDENCE_MODEL_DIR="${CONFIDENCE_MODEL_DIR:-${DIFFDOCK_DATA_ROOT}/confidence_model}" CONFIDENCE_CKPT="${CONFIDENCE_CKPT:-best_model_epoch75.pt}" ENABLE_CONFIDENCE="${ENABLE_CONFIDENCE:-true}" OLD_CONFIDENCE_MODEL="${OLD_CONFIDENCE_MODEL:-true}" OUT_DIR="${OUT_DIR:-${EXAMPLE_DIR}/outputs/scnet_inference}" CONFIG_PATH="${CONFIG_PATH:-${OUT_DIR}/inference_config.yml}" mkdir -p "${OUT_DIR}" OUT_DIR=$(cd "${OUT_DIR}" && pwd) CONFIG_DIR=$(dirname "${CONFIG_PATH}") CONFIG_NAME=$(basename "${CONFIG_PATH}") mkdir -p "${CONFIG_DIR}" CONFIG_PATH=$(cd "${CONFIG_DIR}" && pwd)/"${CONFIG_NAME}" DEFAULT_SHARED_CSV="${DIFFDOCK_DATA_ROOT}/datasets/inferdata/protein_ligand_example.csv" PROTEIN_LIGAND_CSV="${PROTEIN_LIGAND_CSV:-}" if [[ -z "${PROTEIN_LIGAND_CSV}" && -f "${DEFAULT_SHARED_CSV}" ]]; then PROTEIN_LIGAND_CSV="${DEFAULT_SHARED_CSV}" fi COMPLEX_NAME="${COMPLEX_NAME:-6o5u_test}" PROTEIN_PATH="${PROTEIN_PATH:-${EXAMPLE_DIR}/data/6o5u_protein_processed.pdb}" PROTEIN_SEQUENCE="${PROTEIN_SEQUENCE:-}" LIGAND_DESCRIPTION="${LIGAND_DESCRIPTION:-${EXAMPLE_DIR}/data/6o5u_ligand.sdf}" DEVICE="${DEVICE:-auto}" SAMPLES_PER_COMPLEX="${SAMPLES_PER_COMPLEX:-10}" BATCH_SIZE="${BATCH_SIZE:-10}" INFERENCE_STEPS="${INFERENCE_STEPS:-20}" ACTUAL_STEPS="${ACTUAL_STEPS:-}" NO_RANDOM="${NO_RANDOM:-false}" NO_FINAL_STEP_NOISE="${NO_FINAL_STEP_NOISE:-true}" CROP_BEYOND="${CROP_BEYOND:-}" yaml_value() { if [[ -z "${1:-}" || "${1}" == "null" ]]; then printf "null" else local value value=$(printf "%s" "$1" | sed "s/'/''/g") printf "'%s'" "$value" fi } yaml_bool() { if [[ "${1,,}" == "true" ]]; then printf "true" else printf "false" fi } if [[ "${ENABLE_CONFIDENCE,,}" == "true" ]]; then CONFIDENCE_MODEL_VALUE=$(yaml_value "${CONFIDENCE_MODEL_DIR}") else CONFIDENCE_MODEL_VALUE="null" fi cat > "${CONFIG_PATH}" <