-
Notifications
You must be signed in to change notification settings - Fork 0
/
minimalistic_demo.yaml
executable file
·185 lines (170 loc) · 11.4 KB
/
minimalistic_demo.yaml
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# 1. GENERAL
gmx_path: gmx # path/alias to GROMACS
exec_folder: "" # string, empty = new directory named after timestamp, filled = continue opti from current state of this given directory
nb_particles: 3 # 'auto' or integer, size of the swarm of particles
# 2. REFERENCE ALL-ATOM (AA) DATA USED FOR THE BOTTOM-UP COMPONENT OF THE SCORE
mapping_type: 8BEADS # string, your mapping/framework type (defines where input files will be searched for)
solv: DRY # WET or DRY, for explicit or implicit solvent (defines where input files will be searched for)
lipids_codes: # lipids and temperatures to use for this optimization (other input files must be prepared accordingly)
POPC: [303K]
DOPC: [303K]
map_center: COG # COG or COM, for using Center Of Geometry or Center Of Mass when reading the NDX files and getting the AA-mapped bottom-up ref. data
reset: True # if True, recalculates bond and angle distributions and distance distributions between pair of beads from the AA data, otherwise, they are saved as a pickle and will be re-used
phosphate_pos: # position of the phosphate atom or bead, used for calculating Dhh membrane thickness
PC: # per head type
AA: 20 # atom id of the phosphate, 1-indexed
CG: 2 # bead id of the bead containing the phosphate, 1-indexed
# 3. CONDITIONS OF THE OPTIMIZATION: CHOICE OF THE PARAMETERS TO BE OPTIMIZED
cg_time_equi: # ns, CG MD equilibration time
POPC:
303K: 3
DOPC:
303K: 3
cg_time_prod: 20 # ns, CG MD production time
tune_bonds_equi_val: all # 'all' or list of bond types for which equilibrium values will be optimized or empty list
tune_bonds_fct: all # 'all' or list of bond types for which force constants will be optimized or empty list
tune_angles_equi_val: all # 'all' or list of angle types for which equilibrium values will be optimized or empty list
tune_angles_fct: all # 'all' or list of angle types for which force constants will be optimized or empty list
tune_radii: True # True or False, for tuning all radii for beads listed in 'init_beads_radii' (LJ sigma will be the sum of 2 radii for a pair of bead types)
tune_radii_in_groups: None # bead radii can be tuned in groups, using the same radii for several types of beads
tune_epsilons: all # 'all' or list of pairs of bead types for which the LJ epsilon interaction will be tuned, or empty list
score_rdfs: True # boolean, for including RDFs in the score (RDFs will be measured and plotted even if ignored in the score)
# 4. CONDITIONS OF THE OPTIMIZATION: RANGES OF THE PARAMETERS TO BE OPTIMIZED, THAT ARE ALLOWED TO BE EXPLORED
min_radius: 0.23 # nm, minimum bead radius
max_radius: 0.38 # nm, maximum bead radius
min_epsilon: 0.10 # kJ.mol-1, minimum LJ epsilon value
max_epsilon: 8.00 # kJ.mol-1, maximum LJ epsilon value
min_max_epsilon_relative_range: None # float or None, limit the allowed range of LJ epsilons value around (+/-) the value given in 'init_nonbonded'
min_fct_bonds: 100 # fct units
max_fct_bonds: 3500 # fct units
min_fct_angles: 0 # fct units
max_fct_angles: 200 # fct units
apl_base_perc_error: 10
dhh_base_perc_error: 10
apl_cap_perc_error: 40
dhh_cap_perc_error: 40
# 5. INITIALIZATION OF THE SWARM OF PARTICLES: AMPLITUDE OF THE VARIATIONS CREATED RANDOMLY AROUND THE STARTING FF PARAMETERS
# (i.e. DEFINES +/- RANGES FOR RANDOM VARIATIONS AROUND VALUES IN 'init_bonded', 'init_nonbonded' and 'init_beads_radii')
bond_value_guess_variation: 0.02 # nm, defines also the allowed parameter search range in top-down calibration of bonds equilibrium values
angle_value_guess_variation: 20 # degrees, defines also the allowed parameter search range in top-down calibration of angles equilibrium values
bond_fct_guess_variation: 1500 # fct units
angle_fct_guess_variation: 100 # fct units
radius_guess_variation: 0.10 # nm
epsilon_guess_variation: 3 # kJ.mol-1
# 6. PARAMETERS FOR RUNNING OPTIMIZATION SIMULATIONS: GENERAL
nb_cores_analysis: 8 # number of cores to use for analysis on the machine or node running the optimization software
gmx_mini_additional_args_str: "" # string, additional arguments to be appended to the GROMACS command line for the minimization step
gmx_equi_additional_args_str: "" # string, additional arguments to be appended to the GROMACS command line for the equilibration step
gmx_prod_additional_args_str: "" # string, additional arguments to be appended to the GROMACS command line for the production step
# 7. PARAMETERS FOR RUNNING OPTIMIZATION SIMULATIONS: SPECIFIC TO HPC RESOURCE (SLURM ONLY)
master_job_name: "MASTER" # name of the master job
nb_hpc_slots: 0 # max number of nodes to be used at a single time, SETTING TO 0 DISABLES HPC MODE
# 8. PARAMETERS FOR RUNNING OPTIMIZATION SIMULATIONS: SPECIFIC TO A LOCAL COMPUTER
nb_threads: "4 4" # string, space-separated number of OpenMP threads to use, defining the number of slots for simulations
gpu_ids: "X X" # string, space-separated GPU ids to use per simulation slot defined in nb_threads, use 'X' for disabling GPU via 'gpu_cancel_str'
gmx_gpu_cancel_str: "-nb cpu" # string, will be added to GROMACS commands for the slots which have disabled GPU usage (= marked 'X' in 'gpu_ids')
# 9. INITIAL FORCE FIELD PARAMETERS FOR BONDED TERMS
config_bonded_opti: # must correspond to bond and angle types as defined in your input ITP files
B1: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]}} # Bonds
B2: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} } # nm, kJ.mol-1.nm-2
B3: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B4: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B5: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B6: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B7: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B8: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B10: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
B11: { start: { val: 0.5, fct: 1250 }, swarm_init: { val: [0, 1], fct: [500, 2500] }, boundaries: { val: [0, 1.5], fct: [0, 5000]} }
A1: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} } # Angles
A2: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} } # degrees, kJ.mol-1
A3: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A4: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A5: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A6: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A7: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A8: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A9: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A10: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A11: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A12: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A13: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A14: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
A15: { start: { val: 150, fct: 50 }, swarm_init: { val: [120, 160], fct: [0, 50] }, boundaries: { val: [0, 180], fct: [0, 150]} }
# 10. INITIAL FORCE FIELD PARAMETERS FOR NON-BONDED TERMS
init_nonbonded: # must correspond to bead types as defined in your input ITP files
K0 K0: { sig: 0.600, eps: 4.0000 } # each pair of bead types must be sorted alphanumerically
K0 K1: { sig: 0.600, eps: 4.0000 } # nm, kJ.mol-1
K0 MB: { sig: 0.500, eps: 4.0000 }
K0 MS: { sig: 0.500, eps: 4.0000 }
K0 SB: { sig: 0.500, eps: 4.0000 }
K0 UB: { sig: 0.500, eps: 4.0000 }
K1 K1: { sig: 0.600, eps: 4.0000 }
K1 MB: { sig: 0.500, eps: 4.0000 }
K1 MS: { sig: 0.500, eps: 4.0000 }
K1 SB: { sig: 0.500, eps: 4.0000 }
K1 UB: { sig: 0.500, eps: 4.0000 }
MB MB: { sig: 0.500, eps: 4.0000 }
MB MS: { sig: 0.500, eps: 4.0000 }
MB SB: { sig: 0.500, eps: 4.0000 }
MB UB: { sig: 0.500, eps: 4.0000 }
MS MS: { sig: 0.500, eps: 4.0000 }
MS SB: { sig: 0.500, eps: 4.0000 }
MS UB: { sig: 0.500, eps: 4.0000 }
SB SB: { sig: 0.500, eps: 4.0000 }
SB UB: { sig: 0.500, eps: 4.0000 }
UB UB: { sig: 0.500, eps: 4.0000 }
# 11. RADII OF THE CG BEADS
init_beads_radii:
MB: 0.25 # nm
MS: 0.25
UB: 0.25
SB: 0.25
K0: 0.30
K1: 0.30
# 12. MASSES OF THE CG BEADS
beads_masses:
K0: 87 # u.m.a.
K1: 136
MB: 114
MS: 86
UB: 82
SB: 85
# 13. PARAMETERS FOR THE ANALYSIS OF THE BOTTOM-UP COMPONENT OF THE SCORE
bw_constraints: 0.002 # nm
bw_bonds: 0.01 # nm
bonds_max_range: 5 # nm, max range of the histograms created for EMD calculations
bw_angles: 2 # degrees
bw_dihedrals: 2 # degrees
bw_rdfs: 0.025 # nm
cutoff_rdfs: 2.5 # nm
eq_val_density_thres_constraints: 0.05 # cutoff to select equi val ranges, with respect to max density per constraint type
eq_val_density_thres_bonds: 0.05 # cutoff to select equi val ranges, with respect to max density per bond type
eq_val_density_thres_angles: 0.333 # cutoff to select equi val ranges, with respect to max density per angle type
# 14. EXPERIMENTAL DATA USED FOR THE TOP-DOWN COMPONENT OF THE SCORE
exp_data:
POPC:
303K: { apl: 0.643, Dhh: 3.65 } # nm2, nm
DOPC:
303K: { apl: 0.674, Dhh: 3.67 }
DPPC:
293K: { apl: 0.473, Dhh: 4.53 }
323K: { apl: 0.631, Dhh: 3.84 }
DMPC:
303K: { apl: 0.598, Dhh: 3.49 }
DLPC:
303K: { apl: 0.608, Dhh: 2.98 }
SDPC:
303K: { apl: 0.704, Dhh: 3.52 }
PDPC:
303K: { apl: 0.711, Dhh: 3.30 }
# 15. WEIGHT/CONFIDENCE ATTRIBUTED TO/INTO THE REFERENCE AA TRAJECTORIES
reference_AA_weight: # setting value to 0 will disable the usage of the bottom-up component for a given lipid
POPC:
303K: 1.0
DOPC:
303K: 1.0
# 16. OTHERS PARAMETERS (SHOULD NOT NEED CHANGES)
sim_kill_delay: 60 # number of seconds after which a simulation will be killed if it did not write in its log file
bonds2angles_scoring_factor: 500
row_x_scaling: True # use the same scale on all X axes for bond and angle distribution plots
row_y_scaling: True # use the same scale on all Y axes for bond and angle distribution plots