Download scripts/infer.sh from OneScience-Group/DiffDock: direct link, hf CLI and curl.
- Browser
- Download file 4.88 kB
-
https://huggingface.co/OneScience-Group/DiffDock/resolve/main/scripts/infer.sh
- Command line
-
hf download hf://OneScience-Group/DiffDock/scripts/infer.sh
-
curl -L -o infer.sh https://huggingface.co/OneScience-Group/DiffDock/resolve/main/scripts/infer.sh
4.88 kB
| 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}" <<EOF | |
| runtime: | |
| device: $(yaml_value "${DEVICE}") | |
| loglevel: INFO | |
| out_dir: $(yaml_value "${OUT_DIR}") | |
| model: | |
| model_dir: $(yaml_value "${SCORE_MODEL_DIR}") | |
| ckpt: $(yaml_value "${SCORE_CKPT}") | |
| old_score_model: false | |
| confidence: | |
| confidence_model_dir: ${CONFIDENCE_MODEL_VALUE} | |
| confidence_ckpt: $(yaml_value "${CONFIDENCE_CKPT}") | |
| old_confidence_model: $(yaml_bool "${OLD_CONFIDENCE_MODEL}") | |
| input: | |
| protein_ligand_csv: $(yaml_value "${PROTEIN_LIGAND_CSV}") | |
| complex_name: $(yaml_value "${COMPLEX_NAME}") | |
| protein_path: $(yaml_value "${PROTEIN_PATH}") | |
| protein_sequence: $(yaml_value "${PROTEIN_SEQUENCE}") | |
| ligand_description: $(yaml_value "${LIGAND_DESCRIPTION}") | |
| lm_embeddings: null | |
| crop_beyond: $(yaml_value "${CROP_BEYOND}") | |
| sampling: | |
| samples_per_complex: ${SAMPLES_PER_COMPLEX} | |
| batch_size: ${BATCH_SIZE} | |
| inference_steps: ${INFERENCE_STEPS} | |
| actual_steps: $(yaml_value "${ACTUAL_STEPS}") | |
| sigma_schedule: expbeta | |
| inf_sched_alpha: 1.0 | |
| inf_sched_beta: 1.0 | |
| no_random: $(yaml_bool "${NO_RANDOM}") | |
| no_final_step_noise: $(yaml_bool "${NO_FINAL_STEP_NOISE}") | |
| ode: false | |
| choose_residue: false | |
| initial_noise_std_proportion: 1.0 | |
| temp_sampling_tr: 1.0 | |
| temp_psi_tr: 0.0 | |
| temp_sigma_data_tr: 0.5 | |
| temp_sampling_rot: 1.0 | |
| temp_psi_rot: 0.0 | |
| temp_sigma_data_rot: 0.5 | |
| temp_sampling_tor: 1.0 | |
| temp_psi_tor: 0.0 | |
| temp_sigma_data_tor: 0.5 | |
| EOF | |
| echo "DiffDock inference config: ${CONFIG_PATH}" | |
| echo "Output directory: ${OUT_DIR}" | |
| echo "Score model: ${SCORE_MODEL_DIR}/${SCORE_CKPT}" | |
| echo "Confidence rerank: ${ENABLE_CONFIDENCE}" | |
| echo "TORCH_HOME: ${TORCH_HOME}" | |
| echo "Radius on CPU: ${DIFFDOCK_RADIUS_ON_CPU}" | |
| if [[ -n "${PROTEIN_LIGAND_CSV}" ]]; then | |
| echo "Input CSV: ${PROTEIN_LIGAND_CSV}" | |
| else | |
| echo "Single input: ${PROTEIN_PATH} + ${LIGAND_DESCRIPTION}" | |
| fi | |
| cd "${REPO_ROOT}" | |
| python "${SCRIPT_DIR}/sample_diffdock.py" --config "${CONFIG_PATH}" | |