Skip to content

protocols

Reusable molecular dynamics protocol runners.

import mlx_atomistic.protocols

class MinimizeThenNVTProtocol
def __init__(minimize_steps: int = 200, minimize_step_size: float = 0.0001, force_tolerance: float = 0.001, equilibration_steps: int = 1000, production_steps: int = 5000, dt: float = 0.001, sample_interval: int = 100, temperature: float = 300.0, friction: float = 1.0, seed: int | None = 7, diagnostic_interval: int = 1, compile_force_evaluator: bool = True, ensemble: str = 'NVT', proof_mode: str = NVT_PROOF_MODE, barostat: str | bool | None = None, npt_barostat: bool = False, membrane_barostat: str | bool | None = None)

Minimal production-style protocol: minimize, equilibrate, then sample NVT.

Parameters

NameTypeDefaultDescription
minimize_stepsint200
minimize_step_sizefloat0.0001
force_tolerancefloat0.001
equilibration_stepsint1000
production_stepsint5000
dtfloat0.001
sample_intervalint100
temperaturefloat300.0
frictionfloat1.0
seedint | None7
diagnostic_intervalint1
compile_force_evaluatorboolTrue
ensemblestr'NVT'
proof_modestrNVT_PROOF_MODE
barostatstr | bool | NoneNone
npt_barostatboolFalse
membrane_barostatstr | bool | NoneNone

Methods

def compatibility_report(*, raise_on_blockers: bool = False) -> ProtocolCompatibilityReport

Return the fail-closed GPCRmd proof compatibility decision.

Parameters

NameTypeDefaultDescription
raise_on_blockersboolFalse

Returns

  • ProtocolCompatibilityReport
def protocol_metadata() -> dict[str, Any]

Return normalized metadata for accepted NVT proof runs.

Returns

  • dict[str, Any]
class ProtocolCompatibilityError(ValueError)
def __init__(report: ProtocolCompatibilityReport)

Raised when a requested protocol is outside the GPCRmd MLX proof gate.

Parameters

NameTypeDefaultDescription
reportProtocolCompatibilityReport
class ProtocolCompatibilityReport
def __init__(accepted: bool, ensemble: str, proof_mode: str, barostat: str, blockers: tuple[str, ...], metadata: dict[str, Any])

Compatibility decision for the GPCRmd MLX proof protocol.

Parameters

NameTypeDefaultDescription
acceptedbool
ensemblestr
proof_modestr
barostatstr
blockerstuple[str, ...]
metadatadict[str, Any]
class ProtocolResult
def __init__(minimization: MinimizationResult, equilibration: NVTResult | None, production: NVTResult, protocol_metadata: dict[str, Any] = dict())

Outputs from a minimize/equilibrate/production workflow.

Parameters

NameTypeDefaultDescription
minimizationMinimizationResult
equilibrationNVTResult | None
productionNVTResult
protocol_metadatadict[str, Any]dict()
def protocol_readiness_report(protocol_metadata: Mapping[str, Any] | None = None, *, ensemble: str | None = None, proof_mode: str | None = None, barostat: str | bool | None = None, npt_barostat: bool | None = None, membrane_barostat: str | bool | None = None) -> ReadinessReport

Return the protocol gate as a shared readiness report.

Parameters

NameTypeDefaultDescription
protocol_metadataMapping[str, Any] | NoneNone
ensemblestr | NoneNone
proof_modestr | NoneNone
barostatstr | bool | NoneNone
npt_barostatbool | NoneNone
membrane_barostatstr | bool | NoneNone

Returns

  • ReadinessReport
def run_minimize_then_nvt(positions, velocities, masses, force_terms: ForceTerm | list[ForceTerm] | tuple[ForceTerm, ...], *, protocol: MinimizeThenNVTProtocol | None = None, cell: Cell | None = None, constraints: DistanceConstraints | None = None, unit_system: MDUnitSystem | None = None, neighbor_manager: NeighborListManager | None = None, reporters: RuntimeReporter | list[RuntimeReporter] | tuple[RuntimeReporter, ...] | None = None) -> ProtocolResult

Run minimization, optional NVT equilibration, and NVT production in MLX.

Parameters

NameTypeDefaultDescription
positions
velocities
masses
force_termsForceTerm | list[ForceTerm] | tuple[ForceTerm, ...]
protocolMinimizeThenNVTProtocol | NoneNone
cellCell | NoneNone
constraintsDistanceConstraints | NoneNone
unit_systemMDUnitSystem | NoneNone
neighbor_managerNeighborListManager | NoneNone
reportersRuntimeReporter | list[RuntimeReporter] | tuple[RuntimeReporter, ...] | NoneNone

Returns

  • ProtocolResult
def validate_gpcrmd_protocol_request(protocol_metadata: Mapping[str, Any] | None = None, *, ensemble: str | None = None, proof_mode: str | None = None, barostat: str | bool | None = None, npt_barostat: bool | None = None, membrane_barostat: str | bool | None = None, raise_on_blockers: bool = False) -> ProtocolCompatibilityReport

Validate the current GPCRmd proof protocol gate.

The proof gate accepts NVT and the first orthorhombic Monte Carlo NPT path.

Parameters

NameTypeDefaultDescription
protocol_metadataMapping[str, Any] | NoneNone
ensemblestr | NoneNone
proof_modestr | NoneNone
barostatstr | bool | NoneNone
npt_barostatbool | NoneNone
membrane_barostatstr | bool | NoneNone
raise_on_blockersboolFalse

Returns

  • ProtocolCompatibilityReport