File size: 1,415 Bytes
48b5986
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
cd "${PROJECT_ROOT}"

ESM_WEIGHT_DIR="${ESM_WEIGHT_DIR:-${PROJECT_ROOT}/weight}"
ESM_OUTPUT_DIR="${ESM_OUTPUT_DIR:-${PROJECT_ROOT}/outputs}"
ESM_FASTA="${ESM_FASTA:-${PROJECT_ROOT}/data/fasta/few_proteins.fasta}"
ESM2_8M_WEIGHT="${ESM2_8M_WEIGHT:-${ESM_WEIGHT_DIR}/esm2_t6_8M_UR50D.pt}"

mkdir -p "${ESM_OUTPUT_DIR}"

if [[ ! -f "${ESM2_8M_WEIGHT}" ]]; then
  echo "Missing ${ESM2_8M_WEIGHT}"
  echo "Run: bash scripts/download_weights.sh ${ESM_WEIGHT_DIR}"
  exit 1
fi

python scripts/extract.py \
  "${ESM2_8M_WEIGHT}" \
  "${ESM_FASTA}" \
  "${ESM_OUTPUT_DIR}/embeddings" \
  --include mean per_tok \
  --repr_layers 6

if [[ "${RUN_ESMFOLD:-0}" == "1" ]]; then
  python scripts/fold.py \
    -i "${ESM_FASTA}" \
    -o "${ESM_OUTPUT_DIR}/pdb" \
    --model-dir "${ESM_WEIGHT_DIR}" \
    --cpu-only
fi

if [[ "${RUN_VARIANT_PREDICTION:-0}" == "1" ]]; then
  python scripts/variant_prediction/predict.py \
    --model-location "${ESM_WEIGHT_DIR}/esm1v_t33_650M_UR90S_1.pt" \
    --sequence "${ESM_VARIANT_SEQUENCE:?Set ESM_VARIANT_SEQUENCE}" \
    --dms-input data/variant_prediction/BLAT_ECOLX_Ranganathan2015.csv \
    --mutation-col mutant \
    --dms-output "${ESM_OUTPUT_DIR}/variant_prediction.csv" \
    --offset-idx 24 \
    --scoring-strategy wt-marginals
fi