| #!/usr/bin/env bash |
| set -euo pipefail |
| source ${ROCM_PATH}/cuda/env.sh |
| 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)" |
| OUTPUT_PREFIX="${SCRIPT_DIR}/out" |
| ROOT_DIR="$(cd "${SCRIPT_DIR}/../../.." && pwd)" |
|
|
| cd "${ROOT_DIR}" |
| source ${ROOT_DIR}/env.sh |
|
|
| export PYTHONPATH="${ROOT_DIR}/src:${PYTHONPATH:-}" |
|
|
| MODEL_DIR="${GENSCORE_MODEL_DIR:-${ONESCIENCE_DATASETS_DIR}/GenScore/trained_models}" |
| DATA_DIR="${GENSCORE_DATA_DIR:-${ONESCIENCE_DATASETS_DIR}/GenScore/genscore_data/inferdata}" |
| BATCH_SIZE="${GENSCORE_BATCH_SIZE:-8}" |
| NUM_WORKERS="${GENSCORE_NUM_WORKERS:-0}" |
|
|
| for input_file in 1qkt_decoys.sdf 1qkt_l.sdf 1qkt_p.pdb 1qkt_p_pocket_10.0.pdb; do |
| if [[ ! -f "${DATA_DIR}/${input_file}" ]]; then |
| echo "Missing required inference file: ${DATA_DIR}/${input_file}" >&2 |
| exit 1 |
| fi |
| done |
|
|
| run_step() { |
| local name="$1" |
| local output="$2" |
| shift 2 |
|
|
| echo "[run] ${name}" |
| "$@" |
| echo "[done] ${name}: ${output}" |
| } |
|
|
| |
| run_step "GT scoring with generated pocket" "${OUTPUT_PREFIX}_gt.csv" \ |
| python "${SCRIPT_DIR}/genscore.py" \ |
| -p "${DATA_DIR}/1qkt_p.pdb" \ |
| -l "${DATA_DIR}/1qkt_decoys.sdf" \ |
| -rl "${DATA_DIR}/1qkt_l.sdf" \ |
| -gen_pocket \ |
| -c 10.0 \ |
| -e gt \ |
| -m "${MODEL_DIR}/GT_0.0_1.pth" \ |
| -o "${OUTPUT_PREFIX}" \ |
| --batch_size "${BATCH_SIZE}" \ |
| --num_workers "${NUM_WORKERS}" |
|
|
| |
| run_step "GatedGCN scoring with prepared pocket" "${OUTPUT_PREFIX}_out_gatedgcn.csv" \ |
| python "${SCRIPT_DIR}/genscore.py" \ |
| -p "${DATA_DIR}/1qkt_p_pocket_10.0.pdb" \ |
| -l "${DATA_DIR}/1qkt_decoys.sdf" \ |
| -e gatedgcn \ |
| -m "${MODEL_DIR}/GatedGCN_0.5_1.pth" \ |
| -o "${OUTPUT_PREFIX}" \ |
| --batch_size "${BATCH_SIZE}" \ |
| --num_workers "${NUM_WORKERS}" |
|
|
| |
| run_step "GatedGCN atom contribution scoring" "${OUTPUT_PREFIX}_out_at.csv" \ |
| python "${SCRIPT_DIR}/genscore.py" \ |
| -p "${DATA_DIR}/1qkt_p_pocket_10.0.pdb" \ |
| -l "${DATA_DIR}/1qkt_decoys.sdf" \ |
| -e gatedgcn \ |
| -ac \ |
| -m "${MODEL_DIR}/GatedGCN_ft_1.0_1.pth" \ |
| -o "${OUTPUT_PREFIX}" \ |
| --batch_size "${BATCH_SIZE}" \ |
| --num_workers "${NUM_WORKERS}" |
|
|
| |
| run_step "GatedGCN residue contribution scoring" "${OUTPUT_PREFIX}_out_res.csv" \ |
| python "${SCRIPT_DIR}/genscore.py" \ |
| -p "${DATA_DIR}/1qkt_p_pocket_10.0.pdb" \ |
| -l "${DATA_DIR}/1qkt_decoys.sdf" \ |
| -e gatedgcn \ |
| -rc \ |
| -m "${MODEL_DIR}/GatedGCN_ft_1.0_1.pth" \ |
| -o "${OUTPUT_PREFIX}" \ |
| --batch_size "${BATCH_SIZE}" \ |
| --num_workers "${NUM_WORKERS}" |
|
|
| echo "[done] All GenScore inference examples completed." |
|
|