File size: 1,917 Bytes
89d9c28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env bash
set -euo pipefail
mkdir -p /app/outputs/jobs
mkdir -p /app/outputs/deeppurpose
mkdir -p /home/abdullah/projects/egfr_drug_discovery/runs/deeppurpose

export PORT="${PORT:-7860}"
export PUBLIC_BASE_URL="${PUBLIC_BASE_URL:-http://localhost:${PORT}}"
export DEEPPURPOSE_URL="${DEEPPURPOSE_URL:-http://127.0.0.1:8001/reinvent_predict}"
export REINVENT_DEVICE="${REINVENT_DEVICE:-cpu}"
export PYTHON="${PYTHON:-python}"

if [ -x "/opt/AutoDock-GPU/bin/autodock_cpu_1wi" ]; then
  export ADGPU_BIN="${ADGPU_BIN:-/opt/AutoDock-GPU/bin/autodock_cpu_1wi}"
elif [ -x "/opt/AutoDock-GPU/bin/autodock_gpu_64wi" ]; then
  export ADGPU_BIN="${ADGPU_BIN:-/opt/AutoDock-GPU/bin/autodock_gpu_64wi}"
else
  export ADGPU_BIN="${ADGPU_BIN:-}"
fi

echo "PORT=${PORT}"
echo "PUBLIC_BASE_URL=${PUBLIC_BASE_URL}"
echo "DEEPPURPOSE_URL=${DEEPPURPOSE_URL}"
echo "REINVENT_DEVICE=${REINVENT_DEVICE}"
echo "ADGPU_BIN=${ADGPU_BIN}"

echo "Starting DeepPurpose affinity service on 127.0.0.1:8001..."
conda run --no-capture-output -n dp \
  uvicorn services.deeppurpose.serve_affinity:app \
  --app-dir /app/bundle \
  --host 127.0.0.1 \
  --port 8001 &

AFFINITY_PID=$!

echo "Waiting for DeepPurpose affinity service..."
conda run --no-capture-output -n ailixir python - <<'PY'
import time
import sys
import requests

url = "http://127.0.0.1:8001/health"

for i in range(180):
    try:
        r = requests.get(url, timeout=3)
        print(f"Affinity health attempt {i+1}: {r.status_code}")
        if r.status_code == 200:
            print("Affinity service is ready.")
            sys.exit(0)
    except Exception as e:
        print(f"Affinity health attempt {i+1} failed: {e}")
    time.sleep(2)

print("Affinity service did not become ready.")
sys.exit(1)
PY

echo "Starting Generation API on 0.0.0.0:${PORT}..."
exec conda run --no-capture-output -n ailixir \
  uvicorn api:app \
  --host 0.0.0.0 \
  --port "${PORT}"