File size: 2,841 Bytes
9d6a2a3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | #!/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}"
}
# input is protein (needs to be converted to pocket)
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}"
# input is pocket
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}"
# calculate the atom contributions of the score
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}"
# calculate the residue contributions of the score
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."
|