CodonTransformer / scripts /slurm /run_inference_finetuned.sh
anzhi2710gmailcom's picture
Upload folder using huggingface_hub
53e66de verified
Raw
History Blame Contribute Delete
2 kB
#!/usr/bin/env bash
set -euo pipefail
# Single deterministic inference with an exported finetuned .pt model.
# Run this after scripts/slurm/export_finetuned_model.sh.
# This script does not request SLURM resources.
PROJECT_DIR="${PROJECT_DIR:-/public/home/scnb9biwet/jiangqq/CodonTransformer-main}"
CONDA_ENV="${CONDA_ENV:-struct-evo}"
TOKENIZER_PATH="${TOKENIZER_PATH:-${PROJECT_DIR}/model/src/CodonTransformerTokenizer.json}"
MODEL_PATH="${MODEL_PATH:-${PROJECT_DIR}/weight/checkpoints/finetune/finetuned_model.pt}"
PROTEIN="${PROTEIN:-MFWY}"
ORGANISM="${ORGANISM:-Escherichia coli general}"
MATCH_PROTEIN="${MATCH_PROTEIN:-1}"
cd "${PROJECT_DIR}"
export PYTHONPATH="${PROJECT_DIR}/model:${PYTHONPATH:-}"
export TOKENIZER_PATH
export MODEL_PATH
export PROTEIN
export ORGANISM
export MATCH_PROTEIN
export PYTHONFAULTHANDLER=1
if [[ -n "${CONDA_ENV}" ]] && command -v conda >/dev/null 2>&1; then
# shellcheck disable=SC1091
source "$(conda info --base)/etc/profile.d/conda.sh"
conda activate "${CONDA_ENV}"
fi
if [[ ! -f "${TOKENIZER_PATH}" ]]; then
echo "Missing TOKENIZER_PATH: ${TOKENIZER_PATH}" >&2
exit 1
fi
if [[ ! -f "${MODEL_PATH}" ]]; then
echo "Missing MODEL_PATH: ${MODEL_PATH}" >&2
exit 1
fi
python - <<'PY'
import os
import torch
from CodonTransformer.CodonJupyter import format_model_output
from CodonTransformer.CodonPrediction import predict_dna_sequence
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
match_protein = os.environ.get("MATCH_PROTEIN", "1") == "1"
print(f"Device: {device}")
print(f"Tokenizer: {os.environ['TOKENIZER_PATH']}")
print(f"Model: {os.environ['MODEL_PATH']}")
output = predict_dna_sequence(
protein=os.environ["PROTEIN"],
organism=os.environ["ORGANISM"],
device=device,
tokenizer=os.environ["TOKENIZER_PATH"],
model=os.environ["MODEL_PATH"],
attention_type="original_full",
deterministic=True,
match_protein=match_protein,
)
print(format_model_output(output))
PY