batter.config.simulation.SimulationConfig#
- pydantic model batter.config.simulation.SimulationConfig[source]#
Simulation configuration for ABFE/ASFE workflows. Values are fed by RunConfig.resolved_sim_config(), which merges create: and fe_sim:.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Fields:
- Validators:
_coerce_barostat»barostat_coerce_yes_no»enable_mcwat_coerce_yes_no»hmr_coerce_yes_no»neutralize_only_coerce_yes_no»remd_coerce_yes_no»rocklin_correction_finalize»all fields_lower_enums»dec_int_lower_enums»fe_type_parse_lambdas»lambdas_validate_anchor»p1_validate_anchor»p2_validate_anchor»p3
- field all_atoms: Literal['yes', 'no'] = 'no'#
save all atoms for FE
- Validated by:
_finalize
- field analysis_fe_range: Tuple[int, int] | None = (2, -1)#
Optional tuple (start, end) limiting FE simulations analyzed per window.
- Validated by:
_finalize
- field anion: str = 'Cl-'#
Anion species
- Validated by:
_finalize
- field barostat: Literal[1, 2] = 2#
1=Berendsen, 2=MC barostat
- Validated by:
_coerce_barostat_finalize
- field blocks: int = 0#
MBAR blocks
- Validated by:
_finalize
- field buffer_x: float = 10.0#
Box buffer X (Å)
- Validated by:
_finalize
- field buffer_y: float = 10.0#
Box buffer Y (Å)
- Validated by:
_finalize
- field buffer_z: float = 10.0#
Box buffer Z (Å)
- Validated by:
_finalize
- field cation: str = 'Na+'#
Cation species
- Validated by:
_finalize
- field component_lambdas: Dict[str, List[float]] [Optional]#
Lambda schedule for each component
- Validated by:
_finalize
- field component_windows: Dict[str, List[float]] [Optional]#
Per-component lambda values for overrides
- Validated by:
_finalize
- field components: List[str] [Optional]#
List of components (v, o, z, etc.)
- Validated by:
_finalize
- field cut: float = 9.0#
Nonbonded cutoff (Å)
- Validated by:
_finalize
- field dec_int: Literal['mbar', 'ti'] = 'mbar'#
Integration method (mbar/ti)
- Validated by:
_finalize_lower_enums
- field dec_method: str | None = None#
Decoupling method (set for fe_type=’custom’)
- Validated by:
_finalize
- field dic_steps1: Dict[str, int] [Optional]#
Stage1 steps per component
- Validated by:
_finalize
- field dic_steps2: Dict[str, int] [Optional]#
Stage2 steps per component
- Validated by:
_finalize
- field dt: float = 0.004#
Time step (ps)
- Validated by:
_finalize
- field enable_mcwat: Literal['yes', 'no'] = 'yes'#
Enable MC water exchange moves during equilibration templates.
- Validated by:
_coerce_yes_no_finalize
- field eq_steps: int = 1000000#
Steps per equilibration segment (derived)
- Validated by:
_finalize
- field eq_steps1: int = 500000#
Equilibration stage 1 steps (legacy mirror of eq_steps)
- Validated by:
_finalize
- field eq_steps2: int = 1000000#
Equilibration stage 2 steps (legacy mirror of eq_steps)
- Validated by:
_finalize
- field fe_type: Literal['custom', 'rest', 'sdr', 'dd', 'sdr-rest', 'express', 'relative', 'uno', 'uno_com', 'uno_rest', 'self', 'uno_dd', 'dd-rest', 'asfe', 'md'] [Required]#
Free-energy protocol type
- Validated by:
_finalize_lower_enums
- field gamma_ln: float = 1.0#
Langevin γ (ps^-1)
- Validated by:
_finalize
- field hmr: Literal['yes', 'no'] = 'no'#
Hydrogen mass repartitioning
- Validated by:
_coerce_yes_no_finalize
- field infe: bool = False#
Enable NFE (infinite) equilibration when true.
- Validated by:
_finalize
- field ion_conc: float = 0.15#
Target salt concentration (M)
- Validated by:
_finalize
- field ion_def: List[Any] [Optional]#
Ion tuple [cation, anion, conc]
- Validated by:
_finalize
- field l1_range: float | None = None#
L1 search radius (Å)
- Validated by:
_finalize
- field l1_x: float | None = None#
L1 center offset X (Å)
- Validated by:
_finalize
- field l1_y: float | None = None#
L1 center offset Y (Å)
- Validated by:
_finalize
- field l1_z: float | None = None#
L1 center offset Z (Å)
- Validated by:
_finalize
- field lambdas: List[float] [Optional]#
default lambda values
- Validated by:
_finalize_parse_lambdas
- field lig_angle_force: float = 0.0#
Ligand angle/dihedral spring (kcal/mol/rad^2)
- Validated by:
_finalize
- field lig_buffer: float = 10.0#
Ligand box buffer (Å)
- Validated by:
_finalize
- field lig_com_force: float = 0.0#
Ligand COM spring
- Validated by:
_finalize
- field lig_dihcf_force: float = 0.0#
Ligand dihedral spring (kcal/mol/rad^2)
- Validated by:
_finalize
- field lig_distance_force: float = 0.0#
Ligand COM distance spring (kcal/mol/Å^2)
- Validated by:
_finalize
- field ligand_dict: Dict[str, Any] [Optional]#
Ligand dictionary
- Validated by:
_finalize
- field ligand_ff: str = 'gaff2'#
Ligand FF
- Validated by:
_finalize
- field lipid_ff: str = 'lipid21'#
Lipid FF
- Validated by:
_finalize
- field lipid_mol: List[str] [Optional]#
Lipid molecules
- Validated by:
_finalize
- field max_adis: float | None = None#
Max anchor distance (Å)
- Validated by:
_finalize
- field membrane_simulation: bool = True#
Whether system includes a membrane
- Validated by:
_finalize
- field min_adis: float | None = None#
Min anchor distance (Å)
- Validated by:
_finalize
- field n_steps_dict: Dict[str, int] [Optional]#
Per-component steps (keys: ‘{comp}_steps1|2’)
- Validated by:
_finalize
- field neut: str = ''#
Alias of neutralize_only
- Validated by:
_finalize
- field neutralize_only: Literal['yes', 'no'] = 'no'#
Neutralize only
- Validated by:
_coerce_yes_no_finalize
- field ntpr: int = 1000#
Print energy every ntpr steps
- Validated by:
_finalize
- field ntwe: int = 0#
Write energy every ntwe steps
- Validated by:
_finalize
- field ntwr: int = 10000#
Write restart every ntwr steps
- Validated by:
_finalize
- field ntwx: int = 2500#
Write trajectory every ntwx steps
- Validated by:
_finalize
- field num_equil_extends: int = 0#
Number of equilibration extends (derived)
- Validated by:
_finalize
- field num_fe_extends: int = 10#
# restarts per λ
- Validated by:
_finalize
- field other_mol: List[str] [Optional]#
Other co-binders
- Validated by:
_finalize
- field p1: str = ''#
Anchor P1 “RESID@ATOM” (e.g., “85@CA”)
- Validated by:
_finalize_validate_anchor
- field p2: str = ''#
Anchor P2 “RESID@ATOM”
- Validated by:
_finalize_validate_anchor
- field p3: str = ''#
Anchor P3 “RESID@ATOM”
- Validated by:
_finalize_validate_anchor
- field protein_align: str = 'name CA'#
Alignment selection
- Validated by:
_finalize
- field rec_com_force: float = 0.0#
Protein COM spring
- Validated by:
_finalize
- field receptor_ff: str = 'protein.ff14SB'#
Receptor FF
- Validated by:
_finalize
- field receptor_segment: str | None = None#
Segment to embed in membrane
- Validated by:
_finalize
- field release_eq: List[float] [Optional]#
Equilibration release weights (derived)
- Validated by:
_finalize
- field remd: Literal['yes', 'no'] = 'no'#
H-REMD toggle
- Validated by:
_coerce_yes_no_finalize
- field remd_nstlim: int = 100#
Steps per REMD segment (applied to mdin-*-remd copies).
- Validated by:
_finalize
- field remd_numexchg: int = 3000#
Exchange attempt interval for REMD (numexchg).
- Validated by:
_finalize
- field rest: List[float] [Optional]#
Packed restraint constants
- Validated by:
_finalize
- field rng: int = 0#
Range of release_eq
- Validated by:
_finalize
- field rocklin_correction: Literal['yes', 'no'] = 'no'#
Rocklin correction
- Validated by:
_coerce_yes_no_finalize
- field sdr_dist: float | None = 0.0#
SDR placement distance (Å)
- Validated by:
_finalize
- field solv_shell: float | None = 15.0#
Initial solvent shell radius (Å)
- Validated by:
_finalize
- field system_name: str [Required]#
System name (required)
- Validated by:
_finalize
- field temperature: float = 298.15#
Temperature (K)
- Validated by:
_finalize
- field ti_points: int | None = 0#
TI points (not implemented)
- Validated by:
_finalize
- field unbound_threshold: float = 8.0#
Distance (Å) between ligand COMs that classifies equilibration as unbound.
- Constraints:
ge = 0.0
- Validated by:
_finalize
- field water_model: Literal['SPCE', 'TIP4PEW', 'TIP3P', 'TIP3PF', 'OPC'] = 'TIP3P'#
Water model
- Validated by:
_finalize
- classmethod from_sections(create: CreateArgs, fe: FESimArgs, *, protocol: str | None = None, fe_type: str | None = None, slurm_header_dir: Path | None = None) SimulationConfig[source]#
Construct a
SimulationConfigfrom run sections.- Parameters:
create (CreateArgs) – System creation inputs taken from the
createYAML section.fe (FESimArgs) – Free-energy simulation overrides from the
fe_simsection.
- Returns:
Fully merged simulation configuration ready for downstream use.
- Return type: