Pontibus force field and solvation Settings#
Protocol settings specific to pontibus force field and solvation behaviour.
Protocol Solvation Settings#
- pydantic model pontibus.utils.settings.BasePontibusSolvationSettings#
Base settings for use with Pontibus
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.
- field number_of_solvent_molecules: int | None = None#
The number of solvent molecules to add.
Note
Cannot be defined alongside
solvent_padding.
- field box_vectors: _is_box_shape)] | None = None#
Simulation box vectors.
Note
Cannot be defined alongside
target_density.If defined,
number_of_solvent_moleculesmust be defined.
- field solvent_padding: partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit='nanometer', convert=True))] | None = <Quantity(1.2, 'nanometer')>#
Minimum distance from any solute bounding sphere to the edge of the box.
Note
Cannot be defined if
number_of_solvent_moleculesis defined.
- field box_shape: Literal['cube', 'dodecahedron'] | None = 'cube'#
The shape of the periodic box to create.
- field assign_solvent_charges: bool = False#
If
True, assign solvent charges based on the input solvent molecule. IfFalse, rely on library charges.Notes
If no partial charges are set in the input molecule, the molecule will be charged using the approach defined in
partial_charge_settings.If not using
ExtendedSolventComponent, the input molecule will be created usingSolventComponent.smilesand partial charges will be set using the approach defined inpartial_charge_settings.
- field packing_tolerance: partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit='nanometer', convert=True))] = <Quantity(0.2, 'nanometer')>#
Packmol setting; minimum spacing between molecules in units of distance. 2.0 A is recommended when packing proteins, but can go as low as 0.5 A to help with convergence.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit=’nanometer’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- field target_density: partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit='grams / mL', convert=True))] | None = <Quantity(0.95, 'gram / milliliter')>#
Target mass density for the solvated system in units compatible with g / mL. Generally a
target_densityvalue of 0.95 * unit.grams / unit.mL is sufficient, although you may have to aim for a lower value should you find it difficult to pack your system.Default: 0.95 * unit.grams / unit.mL.
Notes
Cannot be defined alongside
box_vectors
- pydantic model pontibus.utils.settings.PackmolSolvationSettings#
Settings defining how to solvate the system using Packmol.
Notes
This is currently limited to the options allowed by Interchange’s
solvate_topology_nonwater.
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.
- field number_of_solvent_molecules: int | None = None#
The number of solvent molecules to add.
Note
Cannot be defined alongside
solvent_padding.
- field box_vectors: BoxQuantity | None = None#
Simulation box vectors.
Note
Cannot be defined alongside
target_density.If defined,
number_of_solvent_moleculesmust be defined.
- field solvent_padding: NanometerQuantity | None = <Quantity(1.2, 'nanometer')>#
Minimum distance from any solute bounding sphere to the edge of the box.
Note
Cannot be defined if
number_of_solvent_moleculesis defined.
- field box_shape: Literal['cube', 'dodecahedron'] | None = 'cube'#
The shape of the periodic box to create.
- field assign_solvent_charges: bool = False#
If
True, assign solvent charges based on the input solvent molecule. IfFalse, rely on library charges.Notes
If no partial charges are set in the input molecule, the molecule will be charged using the approach defined in
partial_charge_settings.If not using
ExtendedSolventComponent, the input molecule will be created usingSolventComponent.smilesand partial charges will be set using the approach defined inpartial_charge_settings.
- field packing_tolerance: NanometerQuantity = <Quantity(0.2, 'nanometer')>#
Packmol setting; minimum spacing between molecules in units of distance. 2.0 A is recommended when packing proteins, but can go as low as 0.5 A to help with convergence.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit=’nanometer’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- field target_density: GramsPerMolQuantity | None = <Quantity(0.95, 'gram / milliliter')>#
Target mass density for the solvated system in units compatible with g / mL. Generally a
target_densityvalue of 0.95 * unit.grams / unit.mL is sufficient, although you may have to aim for a lower value should you find it difficult to pack your system.Default: 0.95 * unit.grams / unit.mL.
Notes
Cannot be defined alongside
box_vectors
- pydantic model pontibus.utils.settings.InterchangeOpenMMSolvationSettings#
Settings defining how to solvate the system using OpenMM.
Notes
This settings class uses Interchange for system
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.
- field number_of_solvent_molecules: int | None = None#
The number of solvent molecules to add.
Note
Cannot be defined alongside
solvent_padding.
- field box_vectors: BoxQuantity | None = None#
Simulation box vectors.
Note
Cannot be defined alongside
target_density.If defined,
number_of_solvent_moleculesmust be defined.
- field solvent_padding: NanometerQuantity | None = <Quantity(1.2, 'nanometer')>#
Minimum distance from any solute bounding sphere to the edge of the box.
Note
Cannot be defined if
number_of_solvent_moleculesis defined.
- field box_shape: Literal['cube', 'dodecahedron'] | None = 'cube'#
The shape of the periodic box to create.
- field assign_solvent_charges: bool = False#
If
True, assign solvent charges based on the input solvent molecule. IfFalse, rely on library charges.Notes
If no partial charges are set in the input molecule, the molecule will be charged using the approach defined in
partial_charge_settings.If not using
ExtendedSolventComponent, the input molecule will be created usingSolventComponent.smilesand partial charges will be set using the approach defined inpartial_charge_settings.
- field packing_tolerance: NanometerQuantity = <Quantity(0.2, 'nanometer')>#
Packmol setting; minimum spacing between molecules in units of distance. 2.0 A is recommended when packing proteins, but can go as low as 0.5 A to help with convergence.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit=’nanometer’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- field target_density: GramsPerMolQuantity | None = <Quantity(0.95, 'gram / milliliter')>#
Target mass density for the solvated system in units compatible with g / mL. Generally a
target_densityvalue of 0.95 * unit.grams / unit.mL is sufficient, although you may have to aim for a lower value should you find it difficult to pack your system.Default: 0.95 * unit.grams / unit.mL.
Notes
Cannot be defined alongside
box_vectors
Protocol Force Field Assignment Settings#
- pydantic model pontibus.utils.settings.InterchangeFFSettings#
Parameters to set up the force field using Interchange and the OpenFF toolkit.
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.
- field hydrogen_mass: float = 3.023841#
Mass to be repartitioned to hydrogens from neighbouring heavy atoms (in amu), default 3.0
- field forcefields: list[str] = ['openff-2.0.0.offxml', 'tip3p.offxml']#
List of force field ffxmls to apply
- field nonbonded_method: Literal['pme', 'nocutoff'] = 'pme'#
Method for treating nonbonded interactions, currently only PME and NoCutoff are allowed. Default PME.
- field nonbonded_cutoff: partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit='nanometer', convert=True))] = <Quantity(0.9, 'nanometer')>#
Cutoff value for short range nonbonded interactions. Default 1.0 * unit.nanometer.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit=’nanometer’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- field switch_width: partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit='nanometer', convert=True))] = <Quantity(0.1, 'nanometer')>#
The width over which the VdW switching function is applied. Default 0.1 * unit.nanometer.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x759c8b55e520>, unit=’nanometer’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always