Configuration Reference
All simulation parameters are set in a config.yaml file inside the input/<project>/ folder.
Complete Example
# AdsPro v0.1.0 Configuration File
nanoparticle:
radius: 71.3 # nm — nanoparticle radius
material: silica # surface material
zeta_potential: -0.050 # V — surface potential (-50 mV)
ionic_strength_mM: 20.0 # mM NaCl → Debye length computed automatically
surface_charge_mode: grahame # 'grahame' (from zeta) or 'direct'
simulation:
placement_distance: 0.5 # nm — gap between protein and NP at start
temperature: 310.0 # K — physiological temperature (constant NVT)
dt: 0.01 # ps — time step
max_steps: 100000 # steps per orientation in Phase 1
equilibrium_window: 500
equilibrium_threshold: 0.01 # kJ/mol — Phase 1 convergence tolerance
n_orientations: 6 # number of top Phase-0 orientations for Phase 1
orientation_selection: total_morse
com_restraint_max_distance: auto
com_restraint_k: 5000.0 # kJ/mol/nm² — COM restraint stiffness
em_tol: 500.0 # kJ/mol/nm — energy minimization force tolerance
em_step: 0.01 # nm — steepest-descent step size
em_max_steps: 5000
n_workers: 4
random_seed: 42 # set to null for non-reproducible runs
n_runs: 1 # number of independent simulations
pmf:
v_pull_nm_ps: 0.01 # nm/ps — steered MD pulling velocity
k_pull: 500.0 # kJ/mol/nm² — steered MD restraint stiffness
steps_steered_md: 70000 # must cover full window range
n_windows: 25 # umbrella windows along reaction coordinate
k_window: 50.0 # kJ/mol/nm² — window harmonic bias
steps_per_window: 200000 # sampling steps per window
steps_equil_window: 5000 # equilibration steps before sampling each window
proteins:
- pdb_file: Lysozyme.pdb
ph: 7.4
Nanoparticle Section
| Parameter |
Type |
Required |
Description |
radius |
float |
Yes |
NP radius in nm |
material |
string |
Yes |
Surface material. Must match a key in data/aa_parameters/ |
zeta_potential |
float |
Yes |
Surface potential in Volts. Negative for anionic surfaces (e.g., silica: −0.050 = −50 mV) |
ionic_strength_mM |
float |
No (default: 20.0) |
Salt concentration in mM → λ_D computed automatically |
surface_charge_mode |
string |
No (default: grahame) |
grahame: σ computed from ζ via Grahame equation. direct: user specifies σ directly |
sigma_direct_e_per_nm2 |
float |
Only if direct |
Surface charge density in elementary charges per nm² |
lambda_D_nm |
float |
No |
Manual override of Debye length. Leave unset to compute from ionic_strength_mM |
Simulation Section
Integration
| Parameter |
Type |
Default |
Description |
temperature |
float |
310.0 |
Simulation temperature in K (NVT) |
dt |
float |
0.01 |
Integration time step in ps. Must be ≤ 0.02 ps |
placement_distance |
float |
0.5 |
Initial gap (nm) between protein surface and NP surface before Phase 1 |
Phase 1 Convergence
| Parameter |
Type |
Default |
Description |
max_steps |
int |
5000 |
Phase 1 maximum MD steps per orientation |
equilibrium_window |
int |
500 |
Steps over which to check energy convergence |
equilibrium_threshold |
float |
0.01 |
Energy change tolerance for declaring convergence (kJ/mol) |
Production vs. exploratory
For production runs: max_steps = 100000. For quick screening: max_steps = 10000. The protein typically reaches a stable adsorbed conformation within 20,000–50,000 steps.
Orientation Selection
| Parameter |
Type |
Default |
Description |
n_orientations |
int |
4 |
Number of top Phase-0 orientations to refine in Phase 1 |
orientation_selection |
string |
total_morse |
Scoring metric for Phase 0 ranking. total_morse is recommended |
| Parameter |
Type |
Default |
Description |
com_restraint_max_distance |
float or auto |
auto |
Maximum COM distance from NP surface (nm). auto = use initial placement distance |
com_restraint_k |
float |
5000.0 |
COM restraint spring constant (kJ/mol/nm²) |
Energy Minimization
| Parameter |
Type |
Default |
Description |
em_tol |
float |
500.0 |
Target maximum force for energy minimization (kJ/mol/nm) |
em_step |
float |
0.01 |
Steepest-descent step size (nm) |
em_max_steps |
int |
5000 |
Maximum steepest-descent steps |
Parallelism and Reproducibility
| Parameter |
Type |
Default |
Description |
n_workers |
int |
4 |
CPU workers for parallel Phase 0 scoring |
random_seed |
int or null |
null |
Fixed seed for reproducibility. Each n_runs run uses seed, seed+1, seed+2, … null = random |
n_runs |
int |
1 |
Number of independent simulations. Final result is the median-closest run |
PMF Section
Steered MD
| Parameter |
Type |
Recommended |
Description |
v_pull_nm_ps |
float |
0.01 |
Pulling velocity in nm/ps |
k_pull |
float |
500.0 |
Stiff restraint spring constant (kJ/mol/nm²). Must be large enough to follow the target |
steps_steered_md |
int |
70000 |
Steered MD steps. Must cover the full trajectory. At v=0.01 nm/ps and dt=0.01 ps: total pull = 0.01 × 0.01 × 70000 = 7 nm |
Umbrella Sampling
| Parameter |
Type |
Recommended |
Description |
n_windows |
int |
25 |
Number of umbrella windows. More windows → finer PMF |
k_window |
float |
50.0 |
Window spring constant (kJ/mol/nm²). Controls sampling width: σ = √(kBT/k_window) |
steps_per_window |
int |
200000 |
Sampling steps per window. More → better WHAM convergence |
steps_equil_window |
int |
5000 |
Equilibration steps per window (not collected for histograms) |
window_min_nm |
float |
auto |
Manual PMF range start (nm). Default: actual adsorbed ξ |
window_max_nm |
float |
auto |
Manual PMF range end. Default: smart detection (Morse scan + Debye buffer) |
Window Overlap Rule of Thumb
The standard deviation of ξ in each window is:
\[
\sigma = \sqrt{\frac{k_BT}{k_\text{window}}}
\]
For WHAM to converge, the window spacing (= range / (n_windows − 1)) must be < 2σ. With the defaults:
- k_window = 50 → σ ≈ 0.23 nm
- 25 windows over ~4 nm range → spacing ≈ 0.17 nm
- overlap ratio = 0.23 / 0.17 ≈ 1.4× ✓
AdsPro prints the overlap ratio during the run. If it shows "WARNING: poor overlap", reduce k_window or add more windows.
Proteins Section
A list of one or more proteins to simulate sequentially.
| Field |
Type |
Description |
pdb_file |
string |
Filename of the PDB file in input/<project>/ |
ph |
float |
pH for charge assignment. Typical: 7.4 (physiological) |
Multiple proteins are listed as a YAML sequence:
proteins:
- pdb_file: Lysozyme.pdb
ph: 7.4
- pdb_file: BSA.pdb
ph: 7.4
Common Configurations
Production (most accurate)
simulation:
max_steps: 100000
n_runs: 3
pmf:
n_windows: 25
k_window: 50.0
steps_per_window: 200000
steps_equil_window: 5000
Fast screening
simulation:
max_steps: 10000
n_runs: 1
pmf:
n_windows: 15
k_window: 50.0
steps_per_window: 50000
steps_equil_window: 2000
Multi-protein (one NP, many proteins)
simulation:
max_steps: 50000
n_runs: 1
proteins:
- pdb_file: Lysozyme.pdb
ph: 7.4
- pdb_file: Albumin.pdb
ph: 7.4
- pdb_file: IgG.pdb
ph: 7.4