File size: 1,233 Bytes
12fea4a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env bash
# Official Cas9 pCoMole editor: cas9-likeness + deletion-count + PAM-matching,
# under Cas9-score, PAM-matching and length constraints.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
cd "$ROOT"

ORTHOLOG="${ORTHOLOG:-cjcas9}"
INPUT_SEQUENCE="$(awk -v n=">$ORTHOLOG" '
  $1==n {f=1; next} /^>/{f=0} f {printf "%s", $0}' cas9/data/orthologs.fasta)"
if [ -z "$INPUT_SEQUENCE" ]; then
  echo "Ortholog '$ORTHOLOG' not found in cas9/data/orthologs.fasta" >&2; exit 1
fi

python -u -m cas9.pcomole \
  --pcomol_config "$ROOT/configs/config_cas9.yaml" \
  --ckpt "$ROOT/cas9/ckpt/last.ckpt" \
  --input "$INPUT_SEQUENCE" \
  --cas9_objective --deletion_count_obj --pam_distr_objective \
  --objective_weights 1 1 1 \
  --target_pam matching \
  --num_steps 5 \
  --num_rollouts 5 \
  --num_candidates 10 \
  --num_sequences 50 \
  --max_deletion_percentage 0.2 \
  --deletion_rate_scale 2500 \
  --pam_min_confidence 0.7 \
  --pam_prediction_temperature 1 \
  --pam_probability_threshold 0.0 \
  --cas9_score_threshold 0.5 \
  --max_target_length 930 \
  --min_target_length 890 \
  --use_ce_loss --allow_equal_length --zero_lam_ins \
  --output_file "$ROOT/outputs/cas9_${ORTHOLOG}_pcomole.csv" \
  "$@"