-
Notifications
You must be signed in to change notification settings - Fork 2
/
opt_plan.py
50 lines (44 loc) · 1.47 KB
/
opt_plan.py
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
"""Optimize treatment plans."""
import pickle
import sys
repo = '\\\\client\\E$\\My Drive\\RayBay\\'
sys.path.append(repo + 'src\\')
import optimize
# Patient
patient = repo + 'results\\SBRT_lung_minsun\\'
#patient = repo + 'results\\ZZ_MK_LLungSBRT3778\\'
#patient = repo + 'results\\ZZ_MK_RLungSBRT4076\\'
#patient = repo + 'results\\ZZ_MK_RULungSBRT3796\\'
#patient = repo + 'results\\ZZ_MK_RLSBRT1931\\'
#patient = repo + 'results\\ZZ_MK_LLLungSBRT2736\\'
#patient = repo + 'results\\ZZ_MK_LULSBRT4544\\'
#patient = repo + 'results\\ZZ_MK_SBRTLL0924allviolated\\'
#patient = repo + 'results\\ZZ_MK_SBRTLL7289\\'
#patient = repo + 'results\\ZZ_MK_SBRTLLL8973\\'
#patient = repo + 'results\\ZZ_MK_SBRTRL7289\\'
#patient = repo + 'results\\ZZ_MK_SBRTRUL_2928allviolate\\'
# Case
case = 'bayes\\'
#case = 'dimension\\'
# Solver
#solver = 'dummy_minimize'
solver = 'gp_minimize'
# Optimize treatment plan
log_path = patient + case + 'log_linquad_' + solver + '.txt'
stdout = sys.stdout
with open(log_path, 'w') as fp:
sys.stdout = fp
result = optimize.get_plan(
funcs=patient + case + 'funcs.csv',
norm=('PTV', 4800, 95), # check PTV name
goals=patient + case + 'goals_linquad.csv',
solver=solver,
n_calls=100,
random_state=1,
n_initial_points=20,
verbose=True)
sys.stdout = stdout
# Save results
result_path = patient + case + 'res_linquad_' + solver + '.pkl'
with open(result_path, 'wb') as fp:
pickle.dump(result, fp)