| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -euo pipefail |
|
|
| |
| MODELS_ROOT="${1:-$(pwd)/tool_weights}" |
|
|
| AF2_DIR="${MODELS_ROOT}/af2" |
| MPNN_DIR="${MODELS_ROOT}/mpnn" |
|
|
| echo "Model root directory: ${MODELS_ROOT}" |
| mkdir -p "${AF2_DIR}" "${MPNN_DIR}" |
| |
| |
| |
| echo "==> Downloading AlphaFold2 parameters ..." |
|
|
| AF2_TAR="alphafold_params_2022-12-06.tar" |
| AF2_URL="https://storage.googleapis.com/alphafold/${AF2_TAR}" |
|
|
| |
| if compgen -G "${AF2_DIR}/params_model_1*.npz" > /dev/null; then |
| echo " AlphaFold2 params appear to already exist — skipping download." |
| else |
| tmp_tar="${MODELS_ROOT}/${AF2_TAR}" |
| echo " Downloading from: ${AF2_URL}" |
| curl -L "${AF2_URL}" -o "${tmp_tar}" |
|
|
| echo " Extracting to: ${AF2_DIR}" |
| tar -xf "${tmp_tar}" -C "${AF2_DIR}" |
| rm -f "${tmp_tar}" |
|
|
| echo " AlphaFold2 parameters downloaded successfully." |
| fi |
|
|
|
|
| |
| |
| |
| echo "==> Downloading ProteinMPNN weights ..." |
|
|
| TMP_DIR="$(mktemp -d)" |
| cleanup() { |
| rm -rf "${TMP_DIR}" |
| } |
| trap cleanup EXIT |
|
|
| echo " Cloning dauparas/ProteinMPNN (shallow clone)..." |
| git clone --depth 1 https://github.com/dauparas/ProteinMPNN.git "${TMP_DIR}" |
|
|
| |
| for subdir in ca_model_weights soluble_model_weights vanilla_model_weights; do |
| src="${TMP_DIR}/${subdir}" |
| dst="${MPNN_DIR}/${subdir}" |
|
|
| if [ -d "${dst}" ]; then |
| echo " ${subdir} already exists — skipping." |
| else |
| echo " Copying ${subdir} → ${dst}" |
| mkdir -p "${MPNN_DIR}" |
| cp -r "${src}" "${dst}" |
| fi |
| done |
|
|
| echo " ProteinMPNN weights are ready in: ${MPNN_DIR}" |
|
|
| |
| |
| |
| echo "==> Downloading CCD cache ..." |
|
|
| CCD_DIR="${1:-$(pwd)/release_data/ccd_cache}" |
| mkdir -p "${CCD_DIR}" |
|
|
| CCD_COMPONENTS_URL="https://pxdesign.tos-cn-beijing.volces.com/release_data/components.v20240608.cif" |
| CCD_RDKIT_URL="https://pxdesign.tos-cn-beijing.volces.com/release_data/components.v20240608.cif.rdkit_mol.pkl" |
| PDB_CLUSTER_URL="https://pxdesign.tos-cn-beijing.volces.com/release_data/clusters-by-entity-40.txt" |
|
|
| CCD_COMPONENTS_FILE="${CCD_DIR}/components.v20240608.cif" |
| CCD_RDKIT_FILE="${CCD_DIR}/components.v20240608.cif.rdkit_mol.pkl" |
| PDB_CLUSTER_FILE="${CCD_DIR}/clusters-by-entity-40.txt" |
|
|
| download_if_missing() { |
| local url="$1" |
| local out="$2" |
| if [ -f "$out" ]; then |
| echo " $(basename "$out") already exists — skipping." |
| else |
| echo " Downloading $(basename "$out")" |
| curl -L -C - "$url" -o "$out" |
| fi |
| } |
|
|
| download_if_missing "${CCD_COMPONENTS_URL}" "${CCD_COMPONENTS_FILE}" |
| download_if_missing "${CCD_RDKIT_URL}" "${CCD_RDKIT_FILE}" |
| download_if_missing "${PDB_CLUSTER_URL}" "${PDB_CLUSTER_FILE}" |
|
|
| echo " CCD cache is ready in: ${CCD_DIR}" |
|
|
| |
|
|
| echo "==> All downloads completed." |
| echo "Model weight directories:" |
| echo " AF2: ${AF2_DIR}" |
| echo " MPNN: ${MPNN_DIR}" |
| echo "CCD cache: ${CCD_DIR}" |
|
|