From 2516e40697f3fc8183f4ec63855cbb520ae01c5d Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 3 Jan 2024 16:58:13 +0000 Subject: [PATCH 001/123] Initial commit, still WIP Begins to add support for serial AToM simulations in BioSimSpace OpenMM. --- .../FreeEnergy/AToM/_AToM_system.py | 727 ++++++++++++ .../BioSimSpace/FreeEnergy/AToM/__init__.py | 21 + python/BioSimSpace/FreeEnergy/__init__.py | 1 + python/BioSimSpace/Process/_atom_utils.py | 219 ++++ python/BioSimSpace/Process/_openmm.py | 69 ++ python/BioSimSpace/Protocol/_AToM.py | 1037 +++++++++++++++++ python/BioSimSpace/Protocol/__init__.py | 1 + 7 files changed, 2075 insertions(+) create mode 100644 python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py create mode 100644 python/BioSimSpace/FreeEnergy/AToM/__init__.py create mode 100644 python/BioSimSpace/Process/_atom_utils.py create mode 100644 python/BioSimSpace/Protocol/_AToM.py diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py new file mode 100644 index 000000000..0cf4c5a1f --- /dev/null +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -0,0 +1,727 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +###################################################################### + +# Functionality for creating and viewing systems for Atomic transfer. + +__all__ = ["makeSystem", "viewRigidCores"] + +from ... import _is_notebook +from ..._SireWrappers import Molecule as _Molecule +from ..._SireWrappers import System as _System +from ... import _Utils +from ...Types import Length as _Length +from ...Types import Vector as _Vector +from ...Types import Coordinate as _Coordinate +from ...Align import matchAtoms as _matchAtoms +from ...Align import rmsdAlign as _rmsdAlign +from ...Notebook import View as _View + + +class makeSystem: + """ + A class for creating AToM systems + """ + + def __init__( + self, + mol1, + ligand1=None, + ligand2=None, + displacement="20A", + protein_index=0, + ligand1_index=1, + ligand2_index=2, + ligand1_rigid_core=None, + ligand2_rigid_core=None, + ): + """ + Constructor for AToMSystem class + + Parameters + ---------- + mol1 : BioSimSpace._SireWrappers.Molecule, BioSimSpace._SireWrappers.Molecules, BioSimSpace._SireWrappers.System + The first molecule/system - this can be one of the following: + - A single protein (BioSimSpace._SireWrappers.Molecule) + - A pre-prepared protein-ligand-ligand system ready for use in AToM (BioSimSpace._SireWrappers.System). + ligand1 : BioSimSpace._SireWrappers.Molecule + The bound ligand. + ligand1 : BioSimSpace._SireWrappers.Molecule + The free ligand. + displacement : float, list + The diplacement between the bound and free ligands. + If a float is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. + If a list is given, the vector will be used directly. + protein_index : int + The index of the protein in the system (only needed if passing in a pre-prepared system). + ligand1_index : int + The index of the bound ligand in the system (only needed if passing in a pre-prepared system). + ligand2_index : int + The index of the free ligand in the system (only needed if passing in a pre-prepared system). + ligand1_rigid_core : list + A list of three atom indices that define the rigid core of the bound ligand. + Indices are set relative to the ligand, not the system and are 0-indexed. + ligand2_rigid_core : list + A list of three atom indices that define the rigid core of the free ligand. + Indices are set relative to the ligand, not the system and are 0-indexed. + """ + if isinstance(mol1, _Molecule) and ( + not isinstance(ligand1, _Molecule) or not isinstance(ligand2, _Molecule) + ): + raise ValueError( + "ligand1 and ligand2 must be specified if mol1 is a Molecule" + ) + self.data = {} + self._is_pre_prepared = False + self._setProteinIndex(protein_index) + self._setLigand1Index(ligand1_index) + self._setLigand2Index(ligand2_index) + self._setMol1(mol1) + self._setLigand1(ligand1) + self._setLigand2(ligand2) + self.setLigand1RigidCore(ligand1_rigid_core) + self.setLigand2RigidCore(ligand2_rigid_core) + self._setDisplacement(displacement) + if isinstance(self.mol1, _Molecule): + self._makeSystemFromThree() + # These will be updated if/when needed + self.protein_index = protein_index + self.ligand1_index = ligand1_index + self.ligand2_index = ligand2_index + + def getProteinIndex(self): + """ + Get the index of the protein in the system + + Returns + ------- + int + The index of the protein in the system. + """ + return self.protein_index + + def _setProteinIndex(self, protein_index): + """ + Set the index of the protein in the system + + Parameters + ---------- + protein_index : int + The index of the protein in the system. + """ + if not isinstance(protein_index, int): + raise TypeError("protein_index must be an int") + else: + self.protein_index = protein_index + + def getLigand1Index(self): + """ + Get the index of the bound ligand in the system + + Returns + ------- + int + The index of the bound ligand in the system. + """ + return self.ligand1_index + + def _setLigand1Index(self, ligand1_index): + """ + Set the index of the bound ligand in the system + + Parameters + ---------- + ligand1_index : int + The index of the bound ligand in the system. + """ + if not isinstance(ligand1_index, int): + raise TypeError("ligand1_index must be an int") + else: + self.ligand1_index = ligand1_index + + def getLigand2Index(self): + """ + Get the index of the free ligand in the system + + Returns + ------- + int + The index of the free ligand in the system. + """ + return self.ligand2_index + + def _setLigand2Index(self, ligand2_index): + """ + Set the index of the free ligand in the system + + Parameters + ---------- + ligand2_index : int + The index of the free ligand in the system. + """ + if not isinstance(ligand2_index, int): + raise TypeError("ligand2_index must be an int") + else: + self.ligand2_index = ligand2_index + + def getLigand1RigidCore(self): + """ + Get the user-defined rigid core atom indices for the bound ligand + + Returns + ------- + list + A list of three atom indices that define the rigid core of the bound ligand. + """ + return self.ligand1_rigid_core + + def setLigand1RigidCore(self, ligand1_rigid_core): + """ + Set the user-defined rigid core atom indices for the bound ligand + """ + if not ligand1_rigid_core: + self.ligand1_rigid_core = None + else: + if not isinstance(ligand1_rigid_core, list): + raise TypeError("ligand1_rigid_core must be a list") + if len(ligand1_rigid_core) != 3: + raise ValueError("ligand1_rigid_core must have length 3") + if any(x >= self.ligand1_atomcount for x in ligand1_rigid_core): + raise ValueError( + "ligand1_rigid_core contains an index that is greater than the number of atoms in the ligand" + ) + self.ligand1_rigid_core = ligand1_rigid_core + + def getLigand2RigidCore(self): + """ + Get the user-defined rigid core atom indices for the free ligand + + Returns + ------- + list + A list of three atom indices that define the rigid core of the free ligand. + """ + return self.ligand2_rigid_core + + def setLigand2RigidCore(self, ligand2_rigid_core): + """ + Set the user-defined rigid core atom indices for the free ligand + """ + if not ligand2_rigid_core: + self.ligand2_rigid_core = None + else: + if not isinstance(ligand2_rigid_core, list): + raise TypeError("ligand2_rigid_core must be a list") + if len(ligand2_rigid_core) != 3: + raise ValueError("ligand2_rigid_core must have length 3") + if any(x >= self.ligand2_atomcount for x in ligand2_rigid_core): + raise ValueError( + "ligand2_rigid_core contains an index that is greater than the number of atoms in the ligand" + ) + self.ligand2_rigid_core = ligand2_rigid_core + + def _setMol1(self, mol1): + """ + Set the first molecule/system + + Parameters + ---------- + mol1 : BioSimSpace._SireWrappers.Molecule, BioSimSpace._SireWrappers.System + The first molecule/system - this can be one of the following: + - A single protein (BioSimSpace._SireWrappers.Molecule) + - A pre-prepared protein-ligand-ligand system ready for use in AToM (BioSimSpace._SireWrappers.System). + """ + if not isinstance(mol1, (_Molecule, _System)): + raise TypeError("mol1 must be a Molecule or System") + + if isinstance(mol1, _Molecule): + if mol1.isWater(): + print("Looks like mol1 is a water molecule - it should be a protein") + self.mol1_atomcount = mol1.nAtoms() + self.mol1 = mol1 + elif isinstance(mol1, _System): + print("Assuming that mol1 is a pre-prepared AToM system") + self._is_pre_prepared = True + self.system = mol1 + self._systemInfo() + + def _systemInfo(self): + """ + If the user gives a pre-prepared AToM system, extract the needed information + + Returns + ------- + dict + A dictionary containing information on the AToM system + """ + if self.system[self.protein_index].isWater(): + print( + f"The molecule at index {self.protein_index} appears to be a water molecule." + " This should be a protein." + ) + if self.system[self.ligand1_index].isWater(): + print( + f"The molecule at index {self.ligand1_index} appears to be a water molecule." + " This should be the bound ligand." + ) + if self.system[self.ligand2_index].isWater(): + print( + f"The molecule at index {self.ligand2_index} appears to be a water molecule." + " This should be the free ligand." + ) + self.mol1_atomcount = self.system[self.protein_index].nAtoms() + self.ligand1_atomcount = self.system[self.ligand1_index].nAtoms() + self.ligand2_atomcount = self.system[self.ligand2_index].nAtoms() + + def _setLigand1(self, ligand1): + if self._is_pre_prepared: + print("Pre-prepared system given...Ignoring ligand1") + else: + if not isinstance(ligand1, _Molecule): + raise TypeError("ligand1 must be a Molecule") + if ligand1.isWater(): + print( + "Looks like ligand1 is a water molecule - it should the bound ligand" + ) + self.ligand1 = ligand1 + self.ligand1_atomcount = ligand1.nAtoms() + + def _setLigand2(self, ligand2): + if self._is_pre_prepared: + print("Pre-prepared system given...Ignoring ligand2") + else: + if not isinstance(ligand2, _Molecule): + raise TypeError("ligand2 must be a Molecule") + if ligand2.isWater(): + print( + "Looks like ligand2 is a water molecule - it should the free ligand" + ) + self.ligand2 = ligand2 + self.ligand2_atomcount = ligand2.nAtoms() + + def _setDisplacement(self, displacement): + if isinstance(displacement, str): + self.displacement = _Length(displacement) + elif isinstance(displacement, _Length): + self.displacement = displacement + elif isinstance(displacement, list): + if len(displacement) != 3: + raise ValueError("displacement must have length 3") + if all(isinstance(x, float) for x in displacement): + self.displacement = _Vector(displacement) + elif all(isinstance(x, _Length) for x in displacement): + self.displacement = _Vector([x.value() for x in displacement]) + else: + raise TypeError("displacement must be a list of floats or BSS lengths") + else: + raise TypeError("displacement must be a string, BSS length or list") + + def _makeSystemFromThree(self): + """ + Make the AToM system from a protein and two ligands + """ + # First step is to align the ligands + # align ligand2 to ligand1 + mapping = _matchAtoms(self.ligand2, self.ligand1) + self.ligand2 = _rmsdAlign(self.ligand2, self.ligand1, mapping) + + # Concatenate the molecules + system_ligand1 = (self.mol1 + self.ligand1).toSystem() + + if isinstance(self.displacement, list): + self.ligand2.translate(self.displacement) + self.data["displacement"] = self.displacement + else: + # Now we need to translate ligand2 so that it is separated from the protein/ligand1 + # by the desired distance + vec = self._findTranslationVector( + system_ligand1, + self.displacement, + protein=self.mol1, + ligand=self.ligand1, + ) + self.ligand2.translate([vec.x(), vec.y(), vec.z()]) + self.data["displacement"] = [vec.x(), vec.y(), vec.z()] + + self.system = (self.mol1 + self.ligand1 + self.ligand2).toSystem() + self.protein_index = self.system.getIndex(self.mol1) + self.ligand1_index = self.system.getIndex(self.ligand1) + self.ligand2_index = self.system.getIndex(self.ligand2) + + def _findAtomIndices(self): + """ + Find the indices of the protein and ligand atoms in the system + + Returns + ------- + dict + A dictionary containing the indices of the protein and ligand atoms in the system + """ + protein_atom_start = self.system[self.protein_index].getAtoms()[0] + protein_atom_end = self.system[self.protein_index].getAtoms()[-1] + self.first_protein_atom_index = self.system.getIndex(protein_atom_start) + self.last_protein_atom_index = self.system.getIndex(protein_atom_end) + + ligand1_atom_start = self.system[self.ligand1_index].getAtoms()[0] + ligand1_atom_end = self.system[self.ligand1_index].getAtoms()[-1] + self.first_ligand1_atom_index = self.system.getIndex(ligand1_atom_start) + self.last_ligand1_atom_index = self.system.getIndex(ligand1_atom_end) + + ligand2_atom_start = self.system[self.ligand2_index].getAtoms()[0] + ligand2_atom_end = self.system[self.ligand2_index].getAtoms()[-1] + self.first_ligand2_atom_index = self.system.getIndex(ligand2_atom_start) + self.last_ligand2_atom_index = self.system.getIndex(ligand2_atom_end) + + @staticmethod + def _findTranslationVector( + system, + displacement, + protein=None, + ligand=None, + protein_index=None, + ligand1_index=None, + ): + """ + Finds the vector along which the free ligand is to be translated. + Based on the funnel making logic of biosimspace + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + The system containing the protein and ligand. + + protein : BioSimSpace._SireWrappers.Molecule + The protein molecule. + ligand : BioSimSpace._SireWrappers.Molecule + The ligand molecule. + displacement : float + The desired displacement between the ligands in angstroms. + + Returns + ------- + BioSimSpace.Types.Vector + The vector along which the ligand is to be translated. + """ + from sire.legacy.Maths import Vector + + if not isinstance(system, _System): + raise TypeError("system must be a BioSimSpace system") + if not isinstance(protein, (_Molecule, type(None))): + raise TypeError("protein must be a BioSimSpace molecule") + if not isinstance(ligand, (_Molecule, type(None))): + raise TypeError("ligand must be a BioSimSpace molecule") + + if protein is None: + protein = system[protein_index] + if ligand is None: + ligand = system[ligand1_index] + # Assume that binding sire is the center of mass of the ligand + binding = _Coordinate(*ligand._getCenterOfMass()) + + # Create grid around the binding site + # This will act as the search region + grid_length = _Length(20.0, "angstroms") + + num_edges = 5 + search_radius = (grid_length / num_edges) / 2 + grid_min = binding - 0.5 * grid_length + grid_max = binding + 0.5 * grid_length + + non_protein_coords = Vector() + # Count grid squares that contain no protein atoms + num_non_prot = 0 + + import numpy as np + + # Loop over the grid + for x in np.linspace(grid_min.x().value(), grid_max.x().value(), num_edges): + for y in np.linspace(grid_min.y().value(), grid_max.y().value(), num_edges): + for z in np.linspace( + grid_min.z().value(), grid_max.z().value(), num_edges + ): + search = f"atoms within {search_radius.value()} of ({x}, {y}, {z})" + + try: + protein.search(search) + except: + non_protein_coords += Vector(x, y, z) + num_non_prot += 1 + + non_protein_coords /= num_non_prot + non_protein_coords = _Coordinate._from_sire_vector(non_protein_coords) + + # Now search out alpha carbons in system + x = binding.x().angstroms().value() + y = binding.y().angstroms().value() + z = binding.z().angstroms().value() + string = f"(atoms within 10 of {x},{y},{z}) and atomname CA" + + try: + search = system.search(string) + except: + raise ValueError("No alpha carbons found in system") + + com = _Coordinate(_Length(0, "A"), _Length(0, "A"), _Length(0, "A")) + atoms1 = [] + for atom in search: + com += atom.coordinates() + atoms1.append(system.getIndex(atom)) + com /= search.nResults() + + initial_normal_vector = (non_protein_coords - com).toVector().normalise() + + out_of_protein = com.toVector() + displacement.value() * initial_normal_vector + return out_of_protein + + def getSystem(self): + """ + Get the AToM system + + Returns + ------- + BioSimSpace._SireWrappers.System + The AToM system + """ + self._makeData() + return self.system, self.data + + def _makeData(self): + """ + Make the data dictionary for the AToM system + """ + self._findAtomIndices() + self.data["protein_index"] = self.protein_index + self.data["ligand1_index"] = self.ligand1_index + self.data["ligand2_index"] = self.ligand2_index + self.data["ligand1_rigid_core"] = self.ligand1_rigid_core + self.data["ligand2_rigid_core"] = self.ligand2_rigid_core + self.data["mol1_atomcount"] = self.mol1_atomcount + self.data["ligand1_atomcount"] = self.ligand1_atomcount + self.data["ligand2_atomcount"] = self.ligand2_atomcount + self.data["first_protein_atom_index"] = self.first_protein_atom_index + self.data["last_protein_atom_index"] = self.last_protein_atom_index + self.data["first_ligand1_atom_index"] = self.first_ligand1_atom_index + self.data["last_ligand1_atom_index"] = self.last_ligand1_atom_index + self.data["first_ligand2_atom_index"] = self.first_ligand2_atom_index + self.data["last_ligand2_atom_index"] = self.last_ligand2_atom_index + + +class relativeATM: + """ + A class for setting up and performing RBFE calculations using AToM + """ + + def __init__( + self, + system, + protocol=None, + work_dir=None, + setup_only=False, + ignore_warnings=False, + show_errors=True, + extra_options={}, + extra_lines=[], + property_map={}, + ): + """ + Constructor. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + A prepared AToM system containing a protein and two ligands, one bound and one free. + Assumed to already be equilibrated. + + protocol : BioSimSpace.Protocol.AToM + A protocol object that defines the RBFE protocol. + + work_dir : str + The working directory for the simulation. + + setup_only : bool + Whether to only support simulation setup. If True, then no + simulation processes objects will be created, only the directory + hierarchy and input files to run a simulation externally. This + can be useful when you don't intend to use BioSimSpace to run + the simulation. Note that a 'work_dir' must also be specified. + + ignore_warnings : bool + Whether to ignore warnings when generating the binary run file. + This option is specific to GROMACS and will be ignored when a + different molecular dynamics engine is chosen. + + show_errors : bool + Whether to show warning/error messages when generating the binary + run file. This option is specific to GROMACS and will be ignored + when a different molecular dynamics engine is chosen. + + extra_options : dict + A dictionary containing extra options. Overrides the defaults generated + by the protocol. + + extra_lines : [str] + A list of extra lines to put at the end of the configuration file. + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + + """ + if not isinstance(system, _System): + raise TypeError( + "'system' must be of type 'BioSimSpace._SireWrappers.System'" + ) + else: + # Store a copy of solvated system. + self._system = system.copy() + + # Validate the protocol. + if protocol is not None: + from ...Protocol._AToM import AToM as _AToM + + if not isinstance(protocol, _AToM): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToM'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + + if not isinstance(setup_only, bool): + raise TypeError("'setup_only' must be of type 'bool'.") + else: + self._setup_only = setup_only + + if work_dir is None and setup_only: + raise ValueError( + "A 'work_dir' must be specified when 'setup_only' is True!" + ) + + # Create the working directory. + self._work_dir = _Utils.WorkDir(work_dir) + + if not isinstance(ignore_warnings, bool): + raise ValueError("'ignore_warnings' must be of type 'bool.") + self._ignore_warnings = ignore_warnings + + if not isinstance(show_errors, bool): + raise ValueError("'show_errors' must be of type 'bool.") + self._show_errors = show_errors + + # Check the extra options. + if not isinstance(extra_options, dict): + raise TypeError("'extra_options' must be of type 'dict'.") + else: + keys = extra_options.keys() + if not all(isinstance(k, str) for k in keys): + raise TypeError("Keys of 'extra_options' must be of type 'str'.") + self._extra_options = extra_options + + # Check the extra lines. + if not isinstance(extra_lines, list): + raise TypeError("'extra_lines' must be of type 'list'.") + else: + if not all(isinstance(line, str) for line in extra_lines): + raise TypeError("Lines in 'extra_lines' must be of type 'str'.") + self._extra_lines = extra_lines + + # Check that the map is valid. + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + self._property_map = property_map + + def _inititalise_runner(self, system): + """ + Internal helper function to initialise the process runner. + + Parameters + ---------- + + system : :class:`System ` + The molecular system. + """ + # Initialise list to store the processe + processes = [] + + # Get first lambda values. + lam1 = self._protocol.getLambda1() + lam2 = self._protocol.getLambda2() + + +def viewRigidCores(system, data): + """ + View the aligned ligands with rigid core atoms defined by the user during system creation. + """ + + def move_to_origin(lig): + com = _Coordinate(*lig._getCenterOfMass()) + lig.translate([-com.x().value(), -com.y().value(), -com.z().value()]) + + if not _is_notebook: + raise RuntimeError("This function can only be used in a Jupyter notebook") + + if not isinstance(system, _System): + raise TypeError("system must be a BioSimSpace system") + + if not isinstance(data, dict): + raise TypeError("data must be a dictionary") + + # copy the ligands + ligand1 = system[data["ligand1_index"]].copy() + move_to_origin(ligand1) + ligand2 = system[data["ligand2_index"]].copy() + move_to_origin(ligand2) + + # Translate ligand2 so they don't overlap + ligand2.translate([10.0, 0, 0]) + + # Get coords of rigid core atoms + ligand1_core_coords = [] + ligand2_core_coords = [] + + for i in data["ligand1_rigid_core"]: + ligand1_core_coords.append(ligand1.getAtoms()[i].coordinates()) + + for i in data["ligand2_rigid_core"]: + ligand2_core_coords.append(ligand2.getAtoms()[i].coordinates()) + + # Create molecule containing both ligands + mol = ligand1 + ligand2 + + # Create view + view = _View(mol) + + # Create nglview object + ngl = view.system(mol) + colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] + # Add spheres to rigid core locations + for coord1, coord2, colour in zip( + ligand1_core_coords, ligand2_core_coords, colours + ): + ngl.shape.add_sphere( + [coord1.x().value(), coord1.y().value(), coord1.z().value()], colour, 0.7 + ) + ngl.shape.add_sphere( + [coord2.x().value(), coord2.y().value(), coord2.z().value()], colour, 0.7 + ) + return ngl diff --git a/python/BioSimSpace/FreeEnergy/AToM/__init__.py b/python/BioSimSpace/FreeEnergy/AToM/__init__.py new file mode 100644 index 000000000..abca426c3 --- /dev/null +++ b/python/BioSimSpace/FreeEnergy/AToM/__init__.py @@ -0,0 +1,21 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +##################################################################### +from ._AToM_system import * diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 7cc1ba2c5..f29dfefb1 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -42,3 +42,4 @@ from ._relative import * from ._utils import * +from . import AToM diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py new file mode 100644 index 000000000..5ee8f1f2f --- /dev/null +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -0,0 +1,219 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +##################################################################### +__all__ = ["_AToMUtils"] +from ..Protocol import Protocol as _Protocol + + +class _AToMUtils: + # Internal class for creating openmm forces within an AToM process. + def __init__(self, protocol): + # Check for proper typing + if not isinstance(protocol, _Protocol.AToM): + raise TypeError("Protocol must be a BioSimSpace.Protocol object") + self.protocol = protocol + self.data = self.protocol.getData() + + def getAlignmentConstants(self): + self.alignment_k_distance = self.protocol.getAlignKfSep() + self.alignment_k_theta = self.protocol.getAlignKTheta() + self.alignment_k_psi = self.protocol.getAlignKPsi() + + def findAbsoluteCoreIndices(self): + import numpy as np + + self.lig1_first_atomnum = self.data["first_lig1_atom_index"] + self.lig1_rigid_atoms = list( + np.add(self.lig1_first_atomnum, self.data["lig1_rigid_core"]) + ) + self.lig2_first_atomnum = self.data["first_lig2_atom_index"] + self.lig2_rigid_atoms = list( + np.add(self.lig1_first_atomnum, self.data["lig2_rigid_core"]) + ) + + def findDisplacement(self): + if not isinstance(self.data["displacement"], list): + raise TypeError("Displacement must be a list") + elif not all(isinstance(x, float) for x in self.data["displacement"]): + raise TypeError("Displacement must be a list of floats") + self.displacement = self.data["displacement"] + + def createAlignmentForce(self): + # This force is the same in every lambda window + self.get_alignment_constants() + self.find_absolute_core_indices() + self.find_displacement() + + output = "\n\n" + d = [round(x, 3) for x in self.displacement] + output += "displacment = {}\n".format(d) + output += "k_distance = {}\n".format(self.alignment_k_distance) + output += "k_theta = {}\n".format(self.alignment_k_theta) + output += "k_psi = {}\n".format(self.alignment_k_psi) + output += "idxs_a = {}\n".format(self.lig1_rigid_atoms) + output += "idxs_b = {}\n".format(self.lig2_rigid_atoms) + output += "\n\n" + + output += 'distance_energy_fn = "0.5 * k * ((x1 - x2 - dx)^2 + (y1 - y2 - dy)^2 + (z1 - z2 - dz)^2);"\n' + output += ( + "distance_force = openmm.CustomCompoundBondForce(2, distance_energy_fn)\n" + ) + output += "distance_force.addPerBondParameter('k')\n" + output += "distance_force.addPerBondParameter('dx')\n" + output += "distance_force.addPerBondParameter('dy')\n" + output += "distance_force.addPerBondParameter('dz')\n" + + output += """distance_parameters = [ + k_distance*openmm.unit( + openmm.unit.kilojoules_per_mole / openmm.unit.angstrom**2 + ), + displacment[0]*openmm.unit.angstrom, + displacment[1]*openmm.unit.angstrom, + displacment[2]*openmm.unit.angstrom, + ]\n""" + + output += "distance_force.addBond((idxs_b[0], idxs_a[0]), distance_parameters)" + output += "system.addForce(distance_force)\n" + output += "\n\n" + + output += """angle_energy_fn = ( + "0.5 * k * (1 - cos_theta);" + "" + "cos_theta = (dx_1 * dx_2 + dy_1 * dy_2 + dz_1 * dz_2) / (norm_1 * norm_2);" + "" + "norm_1 = sqrt(dx_1^2 + dy_1^2 + dz_1^2);" + "dx_1 = x2 - x1; dy_1 = y2 - y1; dz_1 = z2 - z1;" + "" + "norm_2 = sqrt(dx_2^2 + dy_2^2 + dz_2^2);" + "dx_2 = x4 - x3; dy_2 = y4 - y3; dz_2 = z4 - z3;" + )\n""" + output += "angle_force = openmm.CustomCompoundBondForce(4, angle_energy_fn)\n" + output += 'angle_force.addPerBondParameter("k")\n' + output += """angle_force.addBond( + (idxs_b[0], idxs_b[1], idxs_a[0], idxs_a[1]), + [k_theta*openmm.unit.kilojoules_per_mole], + )\n""" + output += "system.addForce(angle_force)\n\n" + + output += """dihedral_energy_fn = ( + "0.5 * k * (1 - cos_phi);" + "" + "cos_phi = (v_x * w_x + v_y * w_y + v_z * w_z) / (norm_v * norm_w);" + "" + "norm_v = sqrt(v_x^2 + v_y^2 + v_z^2);" + "v_x = dx_31 - dot_31 * dx_21 / norm_21;" + "v_y = dy_31 - dot_31 * dy_21 / norm_21;" + "v_z = dz_31 - dot_31 * dz_21 / norm_21;" + "" + "dot_31 = (dx_31 * dx_21 + dy_31 * dy_21 + dz_31 * dz_21) / norm_21;" + "dx_31 = x3 - x1; dy_31 = y3 - y1; dz_31 = z3 - z1;" + "" + "norm_w = sqrt(w_x^2 + w_y^2 + w_z^2);" + "w_x = dx_54 - dot_54 * dx_21 / norm_21;" + "w_y = dy_54 - dot_54 * dy_21 / norm_21;" + "w_z = dz_54 - dot_54 * dz_21 / norm_21;" + "" + "dot_54 =(dx_54 * dx_21 + dy_54 * dy_21 + dz_54 * dz_21) / norm_21;" + "dx_54 = x5 - x4; dy_54 = y5 - y4; dz_54 = z5 - z4;" + "" + "norm_21 = sqrt(dx_21^2 + dy_21^2 + dz_21^2);" + "dx_21 = x2 - x1; dy_21 = y2 - y1; dz_21 = z2 - z1;" + )\n""" + + output += ( + "dihedral_force = openmm.CustomCompoundBondForce(5, dihedral_energy_fn)\n" + ) + output += 'dihedral_force.addPerBondParameter("k")\n' + output += """dihedral_force.addBond( + (idxs_b[0], idxs_b[1], idxs_b[2], idxs_a[0], idxs_a[2]), + [0.5 * k_psi * unit(openmm.unit.kilojoules_per_mole)], + )\n""" + output += """dihedral_force.addBond( + (idxs_a[0], idxs_a[1], idxs_a[2], idxs_b[0], idxs_b[2]), + [0.5 * k_dihedral*unit(openmm.unit.kilojoules_per_mole)], + )\n""" + output += "system.addForce(dihedral_force)\n\n" + return output + + def getLigand1AtomsAsList(self): + import numpy as np + + return list( + np.arange( + self.data["first_lig1_atom_index"], + self.data["last_ligand1_atom_index"] + 1, + ) + ) + + def getLigand2AtomsAsList(self): + import numpy as np + + return list( + np.arange( + self.data["first_lig2_atom_index"], + self.data["last_ligand2_atom_index"] + 1, + ) + ) + + def createATMForce( + self, + lambda1, + lambda2, + displacement, + alpha, + u0, + w0, + direction, + sc_Umax, + sc_U0, + sc_a, + ): + output = "" + output += "#Parameters for ATM force\n" + output += "lig1_atoms = {}\n".format(self.getLigand1AtomsAsList()) + output += "lig2_atoms = {}\n".format(self.getLigand2AtomsAsList()) + output += "displacement = {}\n".format(displacement) + output += "lambda1 = {}\n".format(lambda1) + output += "lambda2 = {}\n".format(lambda2) + output += "alpha = {}\n".format(alpha) + output += "u0 = {}\n".format(u0) + output += "w0 = {}\n".format(w0) + output += "direction = {}\n".format(direction) + output += "sc_Umax = {}\n".format(sc_Umax) + output += "sc_U0 = {}\n".format(sc_U0) + output += "sc_a = {}\n".format(sc_a) + + output += "\n\n #Define ATM force\n" + output += """atm_force = openmm.ATMForce( + lambda1, + lambda2, + alpha * openmm.unit.kilojoules_per_mole, + u0 * openmm.unit.kilojoules_per_mole, + w0 * openmm.unit.kilojoules_per_mole, + sc_Umax * openmm.unit.kilojoules_per_mole, + sc_u0 * openmm.unit.kilojoules_per_mole, + sc_a, + direction, + )""" + + output += "\n\n #Add ATM force to system\n" + output += "for _ in range(len(self._topology.atoms)):\n" + output += " atm_force.addParticle(openmm.Vec3(0.0,0.0,0.0))\n" + # TODO: add offset - check convesion of a list to a Vec3 diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 92a40be04..cfc05b5c0 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1134,6 +1134,75 @@ def _generate_config(self): setattr(self, "sampleConfigurations", self._sampleConfigurations) setattr(self, "getTime", self._getTime) + elif isinstance(self._protocol, _Protocol.AToM): + from ._atom_utils import _AToMUtils as _AToMUtils + + align_cores = self._protocol.getAlignCores() + util = _AToMUtils(self._system, align_cores) + + # Write the OpenMM import statements. + self._add_config_imports() + self._add_config_monkey_patches() + + # Add standard openMM config + self._add_config_imports() + self.addToConfig( + "from metadynamics import *" + ) # Use local patched metadynamics module. + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + is_periodic = True + self.addToConfig("\n# Initialise the molecular system.") + if not has_box or not self._has_water: + is_periodic = False + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Get the starting temperature and system pressure. + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() + + # Add a Monte Carlo barostat if the simulation is at constant pressure. + is_const_pressure = False + if pressure is not None: + # Cannot use a barostat with a non-periodic system. + if not is_periodic: + _warnings.warn( + "Cannot use a barostat for a vacuum or non-periodic simulation" + ) + else: + is_const_pressure = True + + # Convert to bar and get the value. + pressure = pressure.bar().value() + + # Create the barostat and add its force to the system. + self.addToConfig("\n# Add a barostat to run at constant pressure.") + self.addToConfig( + f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" + ) + if self._is_seeded: + self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") + self.addToConfig("system.addForce(barostat)") + + # Use utils to create alignment force else: raise _IncompatibleError( "Unsupported protocol: '%s'" % self._protocol.__class__.__name__ diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py new file mode 100644 index 000000000..b225577b8 --- /dev/null +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -0,0 +1,1037 @@ +from .. import Types as _Types +from ._protocol import Protocol as _Protocol +from ._position_restraint_mixin import _PositionRestraintMixin +from .. import Units as _Units + +__all__ = ["AToM"] + + +# When placed in to BSS this needs to be AToM_protocol(protocol): +class AToM(_Protocol, _PositionRestraintMixin): + def __init__( + self, + data, + timestep=_Types.Time(2.0, "femtosecond"), + runtime=_Types.Time(1, "picosecond"), + temperature=_Types.Temperature(300, "kelvin"), + pressure=_Types.Pressure(1, "atmosphere"), + thermostat_time_constant=_Types.Time(1.0, "picosecond"), + report_interval=100, + restart_interval=100, + restart=False, + core_alignment=True, + restraint=None, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + directions=[ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + lambda1=[ + 0.00, + 0.05, + 0.10, + 0.15, + 0.20, + 0.25, + 0.30, + 0.35, + 0.40, + 0.45, + 0.50, + 0.50, + 0.45, + 0.40, + 0.35, + 0.30, + 0.25, + 0.20, + 0.15, + 0.10, + 0.05, + 0.00, + ], + lambda2=[ + 0.00, + 0.05, + 0.10, + 0.15, + 0.20, + 0.25, + 0.30, + 0.35, + 0.40, + 0.45, + 0.50, + 0.50, + 0.45, + 0.40, + 0.35, + 0.30, + 0.25, + 0.20, + 0.15, + 0.10, + 0.05, + 0.00, + ], + alpha=[ + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + ], + U0=[ + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + ], + w0coeff=[ + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + ], + align_kf_sep=2.5, + align_k_theta=10.0, + align_k_psi=10.0, + SC_umax=100.0, + SC_u0=50.0, + sc_a=0.0625, + ): + """ + Create a protocol object. + + Parameters + ---------- + + data : dict + The AToM data dictionary. + + timestep : :class:`Time ` + The integration timestep. + + runtime : :class:`Time ` + The running time. + + temperature : :class:`Temperature ` + The temperature. + + pressure : :class:`Pressure ` + The pressure. Pass pressure=None to use the NVT ensemble. + + thermostat_time_constant : :class:`Time ` + Time constant for thermostat coupling. + + report_interval : int + The frequency at which statistics are recorded. (In integration steps.) + + restart_interval : int + The frequency at which restart configurations and trajectory + + restart : bool + Whether this is a continuation of a previous simulation. + + use_core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used.Restraint ` + The restraint. + + lambdas : list of float + The lambda values. + + direction : list of int + The direction values. Must be either 1 (forwards) or -1 (backwards). + + lambda1 : list of float + The lambda1 values. + + lambda2 : list of float + The lambda2 values. + + alpha : list of float + The alpha values. + + U0 : list of float + The U0 values. + + w0coeff : list of float + The w0coeff values. + + pos_restrained_atoms : list of int + The atoms to be restrained. + + align_kf_sep : float + The force constant for the distance portion of the alignment restraint (kcal/mol/A^2). + + align_k_theta : float + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : float + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + + SC_umax : float + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : float + The U0 value for the ATM softcore potential (kcal/mol). + + sc_a : float + The a value for the ATM softcore potential. + + """ + # TODO ADD checks for list length consistency + # Call the base class constructor. + super().__init__() + + # Store the AToM system. + if isinstance(data, dict): + self._system_data = data + else: + raise TypeError("'data' must be of type 'dict'") + + self.setTimeStep(timestep) + + self.setRunTime(runtime) + + self.setTemperature(temperature) + + # Set the system pressure. + if pressure is not None: + self.setPressure(pressure) + else: + self._pressure = None + + self.setThermostatTimeConstant(thermostat_time_constant) + + self.setReportInterval(report_interval) + + self.setRestartInterval(restart_interval) + + self.setRestart(restart) + + # Whether or not to use alignment restraints. + self.setCoreAlignment(core_alignment) + + # Store the direction values. + self.setDirections(directions) + + # Store the lambda1 values. + self.setLambda1(lambda1) + + # Store the lambda2 values. + self.setLambda2(lambda2) + + # Store the alpha values. + self.setAlpha(alpha) + + # Store the U0 values. + self.setU0(U0) + + # Store the w0coeff values. + self.setW0coeff(w0coeff) + + # Store the align_kf_sep value. + self.setAlignKfSep(align_kf_sep) + + # Store the align_k_theta value. + self.setAlignKTheta(align_k_theta) + + # Store the align_k_psi value. + self.setAlignKPsi(align_k_psi) + + # Store the SC_umax value. + self.setSCUmax(SC_umax) + + # Store the SC_u0 value. + self.setSCU0(SC_u0) + + # Store the sc_a value. + self.setSCa(sc_a) + + # Set the postition restraint. + _PositionRestraintMixin.__init__(self, restraint, force_constant) + + def __str__(self): + d = self.getData() + """Return a string representation of the protocol.""" + string = ": " + string += "timestep=%s " % self.getTimeStep() + string += ", runtime=%s " % self.getRunTime() + string += ", temperature=%s " % self.getTemperature() + if self._pressure is not None: + string += ", pressure=%s, " % self.getPressure() + string += ", lambda1=%s " % self.getLambda1() + string += ", lambda2=%s " % self.getLambda2() + string += ", ligand1 core atoms=%s" % d["ligand1_rigid_core"] + string += ", ligand2 core atoms=%s" % d["ligand2_rigid_core"] + string += ", report_interval=%s " % self.getReportInterval() + string += ", restart_interval=%s " % self.getRestartInterval() + string += ">" + + return string + + def __repr__(self): + """Return a string showing how to instantiate the object.""" + return self.__str__() + + def getData(self): + """ + Return the AToM data dictionary. + + Returns + ------- + + data : dict + The AToM data dictionary. + """ + return self._system_data + + def getTimeStep(self): + """ + Return the time step. + + Returns + ------- + + time : :class:`Time ` + The integration time step. + """ + return self._timestep + + def setTimeStep(self, timestep): + """ + Set the time step. + + Parameters + ---------- + + time : str, :class:`Time ` + The integration time step. + """ + if isinstance(timestep, str): + try: + self._timestep = _Types.Time(timestep) + except: + raise ValueError("Unable to parse 'timestep' string.") from None + elif isinstance(timestep, _Types.Time): + self._timestep = timestep + else: + raise TypeError( + "'timestep' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) + + def getRunTime(self): + """ + Return the running time. + + Returns + ------- + + runtime : :class:`Time ` + The simulation run time. + """ + return self._runtime + + def setRunTime(self, runtime): + """ + Set the running time. + + Parameters + ---------- + + runtime : str, :class:`Time ` + The simulation run time. + """ + if isinstance(runtime, str): + try: + self._runtime = _Types.Time(runtime) + except: + raise ValueError("Unable to parse 'runtime' string.") from None + elif isinstance(runtime, _Types.Time): + self._runtime = runtime + else: + raise TypeError( + "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) + + def getTemperature(self): + """ + Return temperature. + + Returns + ------- + + temperature : :class:`Temperature ` + The simulation temperature. + """ + return self._temperature + + def setTemperature(self, temperature): + """ + Set the temperature. + + Parameters + ---------- + + temperature : str, :class:`Temperature ` + The simulation temperature. + """ + if isinstance(temperature, str): + try: + self._temperature = _Types.Temperature(temperature) + except: + raise ValueError("Unable to parse 'temperature' string.") from None + elif isinstance(temperature, _Types.Temperature): + self._temperature = temperature + else: + raise TypeError( + "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" + ) + + def getPressure(self): + """ + Return the pressure. + + Returns + ------- + + pressure : :class:`Pressure ` + The pressure. + """ + return self._pressure + + def setPressure(self, pressure): + """ + Set the pressure. + + Parameters + ---------- + + pressure : str, :class:`Pressure ` + The pressure. + """ + if isinstance(pressure, str): + try: + self._pressure = _Types.Pressure(pressure) + except: + raise ValueError("Unable to parse 'pressure' string.") from None + elif isinstance(pressure, _Types.Pressure): + self._pressure = pressure + else: + raise TypeError( + "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" + ) + + def getThermostatTimeConstant(self): + """ + Return the time constant for the thermostat. + + Returns + ------- + + runtime : :class:`Time ` + The time constant for the thermostat. + """ + return self._thermostat_time_constant + + def setThermostatTimeConstant(self, thermostat_time_constant): + """ + Set the time constant for the thermostat. + + Parameters + ---------- + + thermostat_time_constant : str, :class:`Time ` + The time constant for the thermostat. + """ + if isinstance(thermostat_time_constant, str): + try: + self._thermostat_time_constant = _Types.Time(thermostat_time_constant) + except: + raise ValueError( + "Unable to parse 'thermostat_time_constant' string." + ) from None + elif isinstance(thermostat_time_constant, _Types.Time): + self._thermostat_time_constant = thermostat_time_constant + else: + raise TypeError( + "'thermostat_time_constant' must be of type 'BioSimSpace.Types.Time'" + ) + + def getReportInterval(self): + """ + Return the interval between reporting statistics. (In integration steps.). + Returns + ------- + report_interval : int + The number of integration steps between reporting statistics. + """ + return self._report_interval + + def setReportInterval(self, report_interval): + """ + Set the interval at which statistics are reported. (In integration steps.). + + Parameters + ---------- + + report_interval : int + The number of integration steps between reporting statistics. + """ + if not type(report_interval) is int: + raise TypeError("'report_interval' must be of type 'int'") + + if report_interval <= 0: + print("'report_interval' must be positive. Using default (100).") + report_interval = 100 + + self._report_interval = report_interval + + def getRestartInterval(self): + """ + Return the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Returns + ------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + return self._restart_interval + + def setRestartInterval(self, restart_interval): + """ + Set the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Parameters + ---------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + if not type(restart_interval) is int: + raise TypeError("'restart_interval' must be of type 'int'") + + if restart_interval <= 0: + print("'restart_interval' must be positive. Using default (500).") + restart_interval = 500 + + self._restart_interval = restart_interval + + def isRestart(self): + """ + Return whether this restart simulation. + + Returns + ------- + + is_restart : bool + Whether this is a restart simulation. + """ + return self._restart + + def setRestart(self, restart): + """ + Set the restart flag. + + Parameters + ---------- + + restart : bool + Whether this is a restart simulation. + """ + if isinstance(restart, bool): + self._restart = restart + else: + print("Non-boolean restart flag. Defaulting to False!") + self._restart = False + + def getCoreAlignment(self): + """ + Return core alignment boolean. + + Returns + ------- + + core_alignment : bool + Whether to use core alignment. + """ + return self._core_alignment + + def setCoreAlignment(self, core_alignment): + """ + Set the core alignment flag. + + Parameters + ---------- + + core_alignment : bool + Whether to use core alignment. + """ + if isinstance(core_alignment, bool): + self._core_alignment = core_alignment + else: + print("Non-boolean core alignment flag. Defaulting to True!") + self._core_alignment = True + + def getDirections(self): + """ + Return the direction values. + + Returns + ------- + + lambdas : list of float + The directions. + """ + return self._direction + + def setDirections(self, directions): + """ + Set the direction values. + + Parameters + ---------- + + directions : list of int + The directions. + """ + if isinstance(directions, list): + if all(item == 1 or item == -1 for item in directions): + self._directions = directions + else: + raise ValueError("all entries in 'directions' must be either 1 or -1") + else: + raise TypeError("'directions' must be of type 'list'") + + def getLambda1(self): + """ + Return the lambda1 values. + + Returns + ------- + + lambda1 : list of float + The lambda1 values. + """ + return self._lambda1 + + def setLambda1(self, lambda1): + """ + Set the lambda1 values. + + Parameters + ---------- + + lambda1 : list of float + The lambda1 values. + """ + if isinstance(lambda1, list): + if all(isinstance(item, float) for item in lambda1): + self._lambda1 = lambda1 + else: + raise ValueError("all entries in 'lambda1' must be floats") + else: + raise TypeError("'lambda1' must be of type 'list'") + + def getLambda2(self): + """ + Return the lambda2 values. + + Returns + ------- + + lambda2 : list of float + The lambda2 values. + """ + return self._lambda2 + + def setLambda2(self, lambda2): + """ + Set the lambda2 values. + + Parameters + ---------- + + lambda2 : list of float + The lambda2 values. + """ + if isinstance(lambda2, list): + if all(isinstance(item, float) for item in lambda2): + if len(lambda2) != len(self._lambda1): + raise ValueError( + "'lambda2' and 'lambda1' must have the same length" + ) + self._lambda2 = lambda2 + else: + raise ValueError("all entries in 'lambda2' must be floats") + else: + raise TypeError("'lambda2' must be of type 'list'") + + def getAlpha(self): + """ + Return the alpha values. + + Returns + ------- + + alpha : list of float + The alpha values. + """ + return self._alpha + + def setAlpha(self, alpha): + """ + Set the alpha values. + + Parameters + ---------- + + alpha : list of float + The alpha values. + """ + if isinstance(alpha, list): + if all(isinstance(item, float) for item in alpha): + self._alpha = alpha + else: + raise ValueError("all entries in 'alpha' must be floats") + else: + raise TypeError("'alpha' must be of type 'list'") + + def getU0(self): + """ + Return the U0 values. + + Returns + ------- + + U0 : list of float + The U0 values. + """ + return self._U0 + + def setU0(self, U0): + """ + Set the U0 values. + + Parameters + ---------- + + U0 : list of float + The U0 values. + """ + if isinstance(U0, list): + if all(isinstance(item, float) for item in U0): + self._U0 = U0 + else: + raise ValueError("all entries in 'U0' must be floats") + else: + raise TypeError("'U0' must be of type 'list'") + + def getW0coeff(self): + """ + Return the w0coeff values. + + Returns + ------- + + w0coeff : list of float + The w0coeff values. + """ + return self._w0coeff + + def setW0coeff(self, w0coeff): + """ + Set the w0coeff values. + + Parameters + ---------- + + w0coeff : list of float + The w0coeff values. + """ + if isinstance(w0coeff, list): + if all(isinstance(item, float) for item in w0coeff): + self._w0coeff = w0coeff + else: + raise ValueError("all entries in 'w0coeff' must be floats") + else: + raise TypeError("'w0coeff' must be of type 'list'") + + def getAlignKfSep(self): + """ + Return the align_kf_sep value. + + Returns + ------- + + align_kf_sep : str, BSS.Types.Length + The align_kf_sep value. + """ + return self._align_kf_sep + + def setAlignKfSep(self, align_kf_sep): + """ + Set the align_kf_sep value. + + Parameters + ---------- + + align_kf_sep : str, BSS.Types.Length + Length value for the alignment restraint. + """ + if isinstance(align_kf_sep, float): + self._align_kf_sep = align_kf_sep + else: + raise TypeError("'align_kf_sep' must be of type 'float'") + + def getAlignKTheta(self): + """ + Return the align_k_theta value. + + Returns + ------- + + align_k_theta : str, BSS.Types.Angle + The align_k_theta value. + """ + return self._align_k_theta + + def setAlignKTheta(self, align_k_theta): + """ + Set the align_k_theta value. + + Parameters + ---------- + + align_k_theta : str, BSS.Types.Angle + Angle value for the alignment angular constraint. + """ + if isinstance(align_k_theta, float): + self._align_k_theta = align_k_theta + else: + raise TypeError("'align_k_theta' must be of type 'float'") + + def getAlignKPsi(self): + """ + Return the align_k_psi value. + + Returns + ------- + + align_k_psi : str, BSS.Types.Angle + The align_k_psi value. + """ + return self._align_k_psi + + def setAlignKPsi(self, align_k_psi): + """ + Set the align_k_psi value. + + Parameters + ---------- + + align_k_psi : float + Angle value for the alignment dihedral constraint. + """ + if isinstance(align_k_psi, float): + self._align_k_psi = align_k_psi + else: + raise TypeError("'align_k_psi' must be of type 'float'") + + def getSCUmax(self): + """ + Return the SC_umax value. + + Returns + ------- + + SC_umax : float + The SC_umax value. + """ + return self._SC_umax + + def setSCUmax(self, SC_umax): + """ + Set the SC_umax value. + + Parameters + ---------- + + SC_umax : float + The SC_umax value. + """ + if isinstance(SC_umax, float): + self._SC_umax = SC_umax + else: + raise TypeError("'SC_umax' must be of type 'float'") + + def getSCU0(self): + """ + Return the SC_u0 value. + + Returns + ------- + + SC_u0 : float + The SC_u0 value. + """ + return self._SC_u0 + + def setSCU0(self, SC_u0): + """ + Set the SC_u0 value. + + Parameters + ---------- + + SC_u0 : float + The SC_u0 value. + """ + if isinstance(SC_u0, float): + self._SC_u0 = SC_u0 + else: + raise TypeError("'SC_u0' must be of type 'float'") + + def getSCa(self): + """ + Return the sc_a value. + + Returns + ------- + + sc_a : float + The sc_a value. + """ + return self._sc_a + + def setSCa(self, sc_a): + """ + Set the sc_a value. + + Parameters + ---------- + + sc_a : float + The sc_a value. + """ + if isinstance(sc_a, float): + self._sc_a = sc_a + else: + raise TypeError("'sc_a' must be of type 'float'") + + def _set_current_lambdas(self, lam1, lam2): + # Internal function to set the current lambda values for a specific process + if not (isinstance(lam1, float) and lam1 >= 0.0 and lam1 <= 1.0): + raise TypeError( + "'lam1' must be of type 'float' with value between 0.0 and 1.0" + ) + if not (isinstance(lam2, float) and lam2 >= 0.0 and lam2 <= 1.0): + raise TypeError( + "'lam2' must be of type 'float' with value between 0.0 and 1.0" + ) + self._current_lambda1 = lam1 + self._current_lambda2 = lam2 + + def _get_current_lambdas(self): + # Internal function to get the current lambda values for a specific process + return self._current_lambda1, self._current_lambda2 diff --git a/python/BioSimSpace/Protocol/__init__.py b/python/BioSimSpace/Protocol/__init__.py index 9f95d4224..0f26d8555 100644 --- a/python/BioSimSpace/Protocol/__init__.py +++ b/python/BioSimSpace/Protocol/__init__.py @@ -105,3 +105,4 @@ from ._production import * from ._steering import * from ._utils import * +from ._AToM import * From be8dc09d6b9ce3653e874b85377a678d08486868 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 10 Jan 2024 17:11:34 +0000 Subject: [PATCH 002/123] Added multi-simulation support --- .../FreeEnergy/AToM/_AToM_system.py | 114 ++++++++++++++-- python/BioSimSpace/Process/_atom_utils.py | 117 ++++++++-------- python/BioSimSpace/Process/_openmm.py | 128 +++++++++++++++++- python/BioSimSpace/Protocol/_AToM.py | 69 +++++----- 4 files changed, 331 insertions(+), 97 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 0cf4c5a1f..334131f89 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -21,7 +21,7 @@ # Functionality for creating and viewing systems for Atomic transfer. -__all__ = ["makeSystem", "viewRigidCores"] +__all__ = ["makeSystem", "viewRigidCores", "relativeATM"] from ... import _is_notebook from ..._SireWrappers import Molecule as _Molecule @@ -32,7 +32,10 @@ from ...Types import Coordinate as _Coordinate from ...Align import matchAtoms as _matchAtoms from ...Align import rmsdAlign as _rmsdAlign +from ... import Process as _Process from ...Notebook import View as _View +import os as _os +import shutil as _shutil class makeSystem: @@ -90,6 +93,7 @@ def __init__( ) self.data = {} self._is_pre_prepared = False + self._is_made = False self._setProteinIndex(protein_index) self._setLigand1Index(ligand1_index) self._setLigand2Index(ligand2_index) @@ -325,7 +329,7 @@ def _setDisplacement(self, displacement): if len(displacement) != 3: raise ValueError("displacement must have length 3") if all(isinstance(x, float) for x in displacement): - self.displacement = _Vector(displacement) + self.displacement = _Vector(*displacement) elif all(isinstance(x, _Length) for x in displacement): self.displacement = _Vector([x.value() for x in displacement]) else: @@ -345,8 +349,10 @@ def _makeSystemFromThree(self): # Concatenate the molecules system_ligand1 = (self.mol1 + self.ligand1).toSystem() - if isinstance(self.displacement, list): - self.ligand2.translate(self.displacement) + if isinstance(self.displacement, _Vector): + self.ligand2.translate( + [self.displacement.x(), self.displacement.y(), self.displacement.z()] + ) self.data["displacement"] = self.displacement else: # Now we need to translate ligand2 so that it is separated from the protein/ligand1 @@ -377,16 +383,19 @@ def _findAtomIndices(self): protein_atom_start = self.system[self.protein_index].getAtoms()[0] protein_atom_end = self.system[self.protein_index].getAtoms()[-1] self.first_protein_atom_index = self.system.getIndex(protein_atom_start) + print(self.first_protein_atom_index) self.last_protein_atom_index = self.system.getIndex(protein_atom_end) ligand1_atom_start = self.system[self.ligand1_index].getAtoms()[0] ligand1_atom_end = self.system[self.ligand1_index].getAtoms()[-1] self.first_ligand1_atom_index = self.system.getIndex(ligand1_atom_start) + print(self.first_ligand1_atom_index) self.last_ligand1_atom_index = self.system.getIndex(ligand1_atom_end) ligand2_atom_start = self.system[self.ligand2_index].getAtoms()[0] ligand2_atom_end = self.system[self.ligand2_index].getAtoms()[-1] self.first_ligand2_atom_index = self.system.getIndex(ligand2_atom_start) + print(self.first_ligand2_atom_index) self.last_ligand2_atom_index = self.system.getIndex(ligand2_atom_end) @staticmethod @@ -650,7 +659,7 @@ def __init__( raise TypeError("'property_map' must be of type 'dict'") self._property_map = property_map - def _inititalise_runner(self, system): + def _inititalise_runner(self): """ Internal helper function to initialise the process runner. @@ -660,12 +669,93 @@ def _inititalise_runner(self, system): system : :class:`System ` The molecular system. """ + if self._protocol is None: + raise RuntimeError("No protocol has been set - cannot run simulations.") # Initialise list to store the processe processes = [] - # Get first lambda values. - lam1 = self._protocol.getLambda1() - lam2 = self._protocol.getLambda2() + # Get the list of lambda1 values so that the total number of simulations can + # be asserted + lambda1_list = self._protocol.getLambda1() + # Use for loop to avoid annyoing typecheck for numpy int type + simulation_indices = [x for x in range(len(lambda1_list))] + self._protocol._set_window_index(simulation_indices[0]) + + first_dir = "%s/window_%i" % (self._work_dir, simulation_indices[0]) + + # Create the first simulation, which will be copied and used for future simulations. + first_process = _Process.OpenMM( + system=self._system, + protocol=self._protocol, + work_dir=first_dir, + ) + + if self._setup_only: + del first_process + else: + processes.append(first_process) + + # Remove first index as its already been used + simulation_indices = simulation_indices[1:] + + for index in simulation_indices: + # TODO: Support for simulations restarting from a checkpoint. + # Files are named according to index, rather than lambda value + # This is to avoid confusion arising from the fact that there are multiple lambdas + # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 + # and may contain duplicates + new_dir = "%s/window_%i" % (self._work_dir, index) + # Use absolute path. + if not _os.path.isabs(new_dir): + new_dir = _os.path.abspath(new_dir) + + # Delete any existing directories. + if _os.path.isdir(new_dir): + _shutil.rmtree(new_dir, ignore_errors=True) + + # Copy the first directory to that of the current lambda value. + _shutil.copytree(first_dir, new_dir) + # For speed reasons, additional processes need to be created by copying the first process. + # this is more difficult than usual due to the number of window-dependent variables + new_config = [] + # All variables that need to change + new_lam_1 = self._protocol.getLambda1()[index] + new_lam_2 = self._protocol.getLambda2()[index] + new_alpha = self._protocol.getAlpha()[index] + new_u0 = self._protocol.getU0()[index] + new_w0 = self._protocol.getW0()[index] + new_direction = self._protocol.getDirections()[index] + with open(new_dir + "/openmm_script.py", "r") as f: + for line in f: + if line.startswith("lambda1"): + new_config.append(f"lambda1 = {new_lam_1}\n") + elif line.startswith("lambda2"): + new_config.append(f"lambda2 = {new_lam_2}\n") + elif line.startswith("alpha"): + new_config.append(f"alpha = {new_alpha}\n") + elif line.startswith("u0"): + new_config.append(f"u0 = {new_u0}\n") + elif line.startswith("w0"): + new_config.append(f"w0 = {new_w0}\n") + elif line.startswith("direction"): + new_config.append(f"direction = {new_direction}\n") + else: + new_config.append(line) + with open(new_dir + "/openmm_script.py", "w") as f: + for line in new_config: + f.write(line) + # TODO alter process object to match new directory + + def run(self): + """ + Run the simulations. + Returns + ------- + list of :class:`Process ` + A list of process objects. + """ + # Initialise the runner. + self._inititalise_runner() def viewRigidCores(system, data): @@ -673,6 +763,14 @@ def viewRigidCores(system, data): View the aligned ligands with rigid core atoms defined by the user during system creation. """ + if ( + "ligand1_rigid_core" not in data.keys() + or "ligand2_rigid_core" not in data.keys() + ): + raise ValueError( + "ligand1_rigid_core and ligand2_rigid_core must be defined in data" + ) + def move_to_origin(lig): com = _Coordinate(*lig._getCenterOfMass()) lig.translate([-com.x().value(), -com.y().value(), -com.z().value()]) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 5ee8f1f2f..21543318b 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -19,7 +19,7 @@ # along with BioSimSpace. If not, see . ##################################################################### __all__ = ["_AToMUtils"] -from ..Protocol import Protocol as _Protocol +from .. import Protocol as _Protocol class _AToMUtils: @@ -39,13 +39,13 @@ def getAlignmentConstants(self): def findAbsoluteCoreIndices(self): import numpy as np - self.lig1_first_atomnum = self.data["first_lig1_atom_index"] + self.lig1_first_atomnum = self.data["first_ligand1_atom_index"] self.lig1_rigid_atoms = list( - np.add(self.lig1_first_atomnum, self.data["lig1_rigid_core"]) + np.add(self.lig1_first_atomnum, self.data["ligand1_rigid_core"]) ) - self.lig2_first_atomnum = self.data["first_lig2_atom_index"] + self.lig2_first_atomnum = self.data["first_ligand2_atom_index"] self.lig2_rigid_atoms = list( - np.add(self.lig1_first_atomnum, self.data["lig2_rigid_core"]) + np.add(self.lig2_first_atomnum, self.data["ligand2_rigid_core"]) ) def findDisplacement(self): @@ -57,9 +57,9 @@ def findDisplacement(self): def createAlignmentForce(self): # This force is the same in every lambda window - self.get_alignment_constants() - self.find_absolute_core_indices() - self.find_displacement() + self.getAlignmentConstants() + self.findAbsoluteCoreIndices() + self.findDisplacement() output = "\n\n" d = [round(x, 3) for x in self.displacement] @@ -72,21 +72,19 @@ def createAlignmentForce(self): output += "\n\n" output += 'distance_energy_fn = "0.5 * k * ((x1 - x2 - dx)^2 + (y1 - y2 - dy)^2 + (z1 - z2 - dz)^2);"\n' - output += ( - "distance_force = openmm.CustomCompoundBondForce(2, distance_energy_fn)\n" - ) + output += "distance_force = CustomCompoundBondForce(2, distance_energy_fn)\n" output += "distance_force.addPerBondParameter('k')\n" output += "distance_force.addPerBondParameter('dx')\n" output += "distance_force.addPerBondParameter('dy')\n" output += "distance_force.addPerBondParameter('dz')\n" output += """distance_parameters = [ - k_distance*openmm.unit( - openmm.unit.kilojoules_per_mole / openmm.unit.angstrom**2 + k_distance*( + kilojoules_per_mole / angstrom**2 ), - displacment[0]*openmm.unit.angstrom, - displacment[1]*openmm.unit.angstrom, - displacment[2]*openmm.unit.angstrom, + displacment[0]*angstrom, + displacment[1]*angstrom, + displacment[2]*angstrom, ]\n""" output += "distance_force.addBond((idxs_b[0], idxs_a[0]), distance_parameters)" @@ -104,11 +102,11 @@ def createAlignmentForce(self): "norm_2 = sqrt(dx_2^2 + dy_2^2 + dz_2^2);" "dx_2 = x4 - x3; dy_2 = y4 - y3; dz_2 = z4 - z3;" )\n""" - output += "angle_force = openmm.CustomCompoundBondForce(4, angle_energy_fn)\n" + output += "angle_force = CustomCompoundBondForce(4, angle_energy_fn)\n" output += 'angle_force.addPerBondParameter("k")\n' output += """angle_force.addBond( (idxs_b[0], idxs_b[1], idxs_a[0], idxs_a[1]), - [k_theta*openmm.unit.kilojoules_per_mole], + [k_theta*kilojoules_per_mole], )\n""" output += "system.addForce(angle_force)\n\n" @@ -137,17 +135,15 @@ def createAlignmentForce(self): "dx_21 = x2 - x1; dy_21 = y2 - y1; dz_21 = z2 - z1;" )\n""" - output += ( - "dihedral_force = openmm.CustomCompoundBondForce(5, dihedral_energy_fn)\n" - ) + output += "dihedral_force = CustomCompoundBondForce(5, dihedral_energy_fn)\n" output += 'dihedral_force.addPerBondParameter("k")\n' output += """dihedral_force.addBond( (idxs_b[0], idxs_b[1], idxs_b[2], idxs_a[0], idxs_a[2]), - [0.5 * k_psi * unit(openmm.unit.kilojoules_per_mole)], + [0.5 * k_psi * unit(kilojoules_per_mole)], )\n""" output += """dihedral_force.addBond( (idxs_a[0], idxs_a[1], idxs_a[2], idxs_b[0], idxs_b[2]), - [0.5 * k_dihedral*unit(openmm.unit.kilojoules_per_mole)], + [0.5 * k_psi*unit(kilojoules_per_mole)], )\n""" output += "system.addForce(dihedral_force)\n\n" return output @@ -157,7 +153,7 @@ def getLigand1AtomsAsList(self): return list( np.arange( - self.data["first_lig1_atom_index"], + self.data["first_ligand1_atom_index"], self.data["last_ligand1_atom_index"] + 1, ) ) @@ -167,53 +163,68 @@ def getLigand2AtomsAsList(self): return list( np.arange( - self.data["first_lig2_atom_index"], + self.data["first_ligand2_atom_index"], self.data["last_ligand2_atom_index"] + 1, ) ) def createATMForce( self, - lambda1, - lambda2, - displacement, - alpha, - u0, - w0, - direction, - sc_Umax, - sc_U0, - sc_a, + index, ): + """ + Create a string which can be added directly to an openmm script to add an ATM force to the system. + + Parameters + ---------- + index : int + Index of current window - used to set window-dependent variables. + """ output = "" output += "#Parameters for ATM force\n" output += "lig1_atoms = {}\n".format(self.getLigand1AtomsAsList()) output += "lig2_atoms = {}\n".format(self.getLigand2AtomsAsList()) - output += "displacement = {}\n".format(displacement) - output += "lambda1 = {}\n".format(lambda1) - output += "lambda2 = {}\n".format(lambda2) - output += "alpha = {}\n".format(alpha) - output += "u0 = {}\n".format(u0) - output += "w0 = {}\n".format(w0) - output += "direction = {}\n".format(direction) - output += "sc_Umax = {}\n".format(sc_Umax) - output += "sc_U0 = {}\n".format(sc_U0) - output += "sc_a = {}\n".format(sc_a) + output += "displacement = {}\n".format(self.protocol.getData()["displacement"]) + output += "lambda1 = {}\n".format(self.protocol.getLambda1()[index]) + output += "lambda2 = {}\n".format(self.protocol.getLambda2()[index]) + output += "alpha = {}\n".format(self.protocol.getAlpha()[index]) + output += "u0 = {}\n".format(self.protocol.getU0()[index]) + output += "w0 = {}\n".format(self.protocol.getW0()[index]) + output += "direction = {}\n".format(self.protocol.getDirections()[index]) + output += "sc_Umax = {}\n".format(self.protocol.getSCUmax()) + output += "sc_U0 = {}\n".format(self.protocol.getSCU0()) + output += "sc_a = {}\n".format(self.protocol.getSCa()) output += "\n\n #Define ATM force\n" - output += """atm_force = openmm.ATMForce( + output += """atm_force = ATMForce( lambda1, lambda2, - alpha * openmm.unit.kilojoules_per_mole, - u0 * openmm.unit.kilojoules_per_mole, - w0 * openmm.unit.kilojoules_per_mole, - sc_Umax * openmm.unit.kilojoules_per_mole, - sc_u0 * openmm.unit.kilojoules_per_mole, + alpha * kilojoules_per_mole, + u0 * kilojoules_per_mole, + w0 * kilojoules_per_mole, + sc_Umax * kilojoules_per_mole, + sc_U0 * kilojoules_per_mole, sc_a, direction, )""" output += "\n\n #Add ATM force to system\n" - output += "for _ in range(len(self._topology.atoms)):\n" - output += " atm_force.addParticle(openmm.Vec3(0.0,0.0,0.0))\n" + output += "for _ in range(len(system.topology.atoms)):\n" + output += " atm_force.addParticle(Vec3(0.0,0.0,0.0))" + output += "\n" # TODO: add offset - check convesion of a list to a Vec3 + # Assuming that offset is the 3-vector which deifnes the ligand displacement + output += """ + for i in lig1_atoms: + atm_force.setParticleParameters(i, Vec3(*displacement)) + """ + output += """ + for i in lig2_atoms: + atm_force.setParticleParameters(i, -Vec3(*displacement)) """ + output += "\n" + output += "nonbonded_force_id = [i for i, force in enumerate(system.getForces()) if isinstance(force, NonbondedForce)][0]\n" + output += "nonbonded = copy.deepcopy(system.getForce(nonbonded_force_id))\n" + output += "system.removeForce(nonbonded_force_id)\n" + output += "atm_force.addForce(nonbonded)\n" + output += "system.addForce(atm_force)\n" + return output diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index cfc05b5c0..df8eaa407 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1135,10 +1135,15 @@ def _generate_config(self): setattr(self, "getTime", self._getTime) elif isinstance(self._protocol, _Protocol.AToM): + # TODO: check extra_options, extra_lines and property_map from ._atom_utils import _AToMUtils as _AToMUtils - align_cores = self._protocol.getAlignCores() - util = _AToMUtils(self._system, align_cores) + if self._protocol._get_window_index() is None: + raise _IncompatibleError( + "AToM protocol requires the current window index to be set." + ) + + util = _AToMUtils(self._protocol) # Write the OpenMM import statements. self._add_config_imports() @@ -1202,7 +1207,124 @@ def _generate_config(self): self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") self.addToConfig("system.addForce(barostat)") - # Use utils to create alignment force + # Add any position restraints. + if self._protocol.getRestraint() is not None: + self._add_config_restraints() + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig( + f"integrator = LangevinMiddleIntegrator({temperature}*kelvin," + ) + friction = ( + 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() + ) + self.addToConfig( + f" {friction:.5f}/picosecond," + ) + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + # Use utils to create AToM-specific forces + util = _AToMUtils(self._protocol) + if self._protocol.getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + # Atom force is the only window-dependent force + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig( + " box_vectors = reducePeriodicBoxVectors(prm.box_vectors)" + ) + self.addToConfig( + " simulation.context.setPeriodicBoxVectors(*box_vectors)" + ) + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig( + " print(f'Simulation is {percent_complete}% complete.')" + ) + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / 100) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + # Now run the simulation. + self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") + self.addToConfig(f"for x in range(0, {cycles}):") + self.addToConfig(f" simulation.step({steps_per_cycle})") + self.addToConfig(f" simulation.saveState('{self._name}.xml')") + else: raise _IncompatibleError( "Unsupported protocol: '%s'" % self._protocol.__class__.__name__ diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index b225577b8..05c179ae3 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -142,7 +142,7 @@ def __init__( 0.00, 0.00, ], - w0coeff=[ + W0=[ 0.00, 0.00, 0.00, @@ -249,8 +249,8 @@ def __init__( U0 : list of float The U0 values. - w0coeff : list of float - The w0coeff values. + W0 : list of float + The W0 values. pos_restrained_atoms : list of int The atoms to be restrained. @@ -322,8 +322,8 @@ def __init__( # Store the U0 values. self.setU0(U0) - # Store the w0coeff values. - self.setW0coeff(w0coeff) + # Store the W0 values. + self.setW0(W0) # Store the align_kf_sep value. self.setAlignKfSep(align_kf_sep) @@ -683,7 +683,7 @@ def getDirections(self): lambdas : list of float The directions. """ - return self._direction + return self._directions def setDirections(self, directions): """ @@ -827,35 +827,35 @@ def setU0(self, U0): else: raise TypeError("'U0' must be of type 'list'") - def getW0coeff(self): + def getW0(self): """ - Return the w0coeff values. + Return the W0 values. Returns ------- - w0coeff : list of float - The w0coeff values. + W0 : list of float + The W0 values. """ - return self._w0coeff + return self._W0 - def setW0coeff(self, w0coeff): + def setW0(self, W0): """ - Set the w0coeff values. + Set the W0 values. Parameters ---------- - w0coeff : list of float - The w0coeff values. + W0 : list of float + The W0 values. """ - if isinstance(w0coeff, list): - if all(isinstance(item, float) for item in w0coeff): - self._w0coeff = w0coeff + if isinstance(W0, list): + if all(isinstance(item, float) for item in W0): + self._W0 = W0 else: - raise ValueError("all entries in 'w0coeff' must be floats") + raise ValueError("all entries in 'W0' must be floats") else: - raise TypeError("'w0coeff' must be of type 'list'") + raise TypeError("'W0' must be of type 'list'") def getAlignKfSep(self): """ @@ -1019,19 +1019,22 @@ def setSCa(self, sc_a): else: raise TypeError("'sc_a' must be of type 'float'") - def _set_current_lambdas(self, lam1, lam2): - # Internal function to set the current lambda values for a specific process - if not (isinstance(lam1, float) and lam1 >= 0.0 and lam1 <= 1.0): - raise TypeError( - "'lam1' must be of type 'float' with value between 0.0 and 1.0" - ) - if not (isinstance(lam2, float) and lam2 >= 0.0 and lam2 <= 1.0): - raise TypeError( - "'lam2' must be of type 'float' with value between 0.0 and 1.0" + def _set_window_index(self, index): + # Internal function to set index of the current simulation window + # used to set all window-specific parameters + if index < 0: + raise ValueError("index must be positive") + if index >= len(self._lambda1): + raise ValueError( + "index must be less than the number of lambda1 values (len(lambda1))" ) - self._current_lambda1 = lam1 - self._current_lambda2 = lam2 + if not isinstance(index, int): + raise TypeError("index must be an integer") + self._current_index = index - def _get_current_lambdas(self): + def _get_window_index(self): # Internal function to get the current lambda values for a specific process - return self._current_lambda1, self._current_lambda2 + try: + return self._current_index + except: + return None From 8e79065002d1856424866fc14bf3d337fbec1743 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 11 Jan 2024 16:34:10 +0000 Subject: [PATCH 003/123] STILL WIP. Several bug fixes, production simulations now run (contingent on minimisation and equilibration). --- python/BioSimSpace/Process/_atom_utils.py | 40 ++++++++++++----------- python/BioSimSpace/Process/_openmm.py | 10 ++---- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 21543318b..0651157ce 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -59,11 +59,8 @@ def createAlignmentForce(self): # This force is the same in every lambda window self.getAlignmentConstants() self.findAbsoluteCoreIndices() - self.findDisplacement() output = "\n\n" - d = [round(x, 3) for x in self.displacement] - output += "displacment = {}\n".format(d) output += "k_distance = {}\n".format(self.alignment_k_distance) output += "k_theta = {}\n".format(self.alignment_k_theta) output += "k_psi = {}\n".format(self.alignment_k_psi) @@ -80,14 +77,16 @@ def createAlignmentForce(self): output += """distance_parameters = [ k_distance*( - kilojoules_per_mole / angstrom**2 + kilojoules_per_mole / nanometer**2 ), - displacment[0]*angstrom, - displacment[1]*angstrom, - displacment[2]*angstrom, + displacement[0]*nanometer, + displacement[1]*nanometer, + displacement[2]*nanometer, ]\n""" - output += "distance_force.addBond((idxs_b[0], idxs_a[0]), distance_parameters)" + output += ( + "distance_force.addBond((idxs_b[0], idxs_a[0]), distance_parameters)\n" + ) output += "system.addForce(distance_force)\n" output += "\n\n" @@ -139,11 +138,11 @@ def createAlignmentForce(self): output += 'dihedral_force.addPerBondParameter("k")\n' output += """dihedral_force.addBond( (idxs_b[0], idxs_b[1], idxs_b[2], idxs_a[0], idxs_a[2]), - [0.5 * k_psi * unit(kilojoules_per_mole)], + [0.5 * k_psi * kilojoules_per_mole], )\n""" output += """dihedral_force.addBond( (idxs_a[0], idxs_a[1], idxs_a[2], idxs_b[0], idxs_b[2]), - [0.5 * k_psi*unit(kilojoules_per_mole)], + [0.5 * k_psi*kilojoules_per_mole], )\n""" output += "system.addForce(dihedral_force)\n\n" return output @@ -180,11 +179,16 @@ def createATMForce( index : int Index of current window - used to set window-dependent variables. """ + self.findDisplacement() output = "" output += "#Parameters for ATM force\n" output += "lig1_atoms = {}\n".format(self.getLigand1AtomsAsList()) output += "lig2_atoms = {}\n".format(self.getLigand2AtomsAsList()) - output += "displacement = {}\n".format(self.protocol.getData()["displacement"]) + # Divide by 10 to convert to nm + d = [round(x, 3) for x in self.displacement] + output += "displacement = {}\n".format(d) + output += "#BioSimSpace output is in angstrom, divide by 10 to convert to the expected units of nm\n" + output += "displacement = [i/10.0 for i in displacement]\n" output += "lambda1 = {}\n".format(self.protocol.getLambda1()[index]) output += "lambda2 = {}\n".format(self.protocol.getLambda2()[index]) output += "alpha = {}\n".format(self.protocol.getAlpha()[index]) @@ -209,18 +213,16 @@ def createATMForce( )""" output += "\n\n #Add ATM force to system\n" - output += "for _ in range(len(system.topology.atoms)):\n" + output += "for _ in prm.topology.atoms():\n" output += " atm_force.addParticle(Vec3(0.0,0.0,0.0))" output += "\n" # TODO: add offset - check convesion of a list to a Vec3 # Assuming that offset is the 3-vector which deifnes the ligand displacement - output += """ - for i in lig1_atoms: - atm_force.setParticleParameters(i, Vec3(*displacement)) - """ - output += """ - for i in lig2_atoms: - atm_force.setParticleParameters(i, -Vec3(*displacement)) """ + # need to convert displacement to nm + output += "for i in lig1_atoms:\n" + output += " atm_force.setParticleParameters(i, Vec3(*displacement))\n" + output += "for i in lig2_atoms:\n" + output += " atm_force.setParticleParameters(i, -Vec3(*displacement))\n" output += "\n" output += "nonbonded_force_id = [i for i, force in enumerate(system.getForces()) if isinstance(force, NonbondedForce)][0]\n" output += "nonbonded = copy.deepcopy(system.getForce(nonbonded_force_id))\n" diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index df8eaa407..117e98d5b 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1150,10 +1150,6 @@ def _generate_config(self): self._add_config_monkey_patches() # Add standard openMM config - self._add_config_imports() - self.addToConfig( - "from metadynamics import *" - ) # Use local patched metadynamics module. self.addToConfig("from glob import glob") self.addToConfig("import math") self.addToConfig("import os") @@ -1233,14 +1229,14 @@ def _generate_config(self): self._add_config_platform() # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) util = _AToMUtils(self._protocol) if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - # Atom force is the only window-dependent force - self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) self.addToConfig("\n# Initialise and configure the simulation object.") self.addToConfig("simulation = Simulation(prm.topology,") From b874012571c9e3cd7e9f0aad92902c821cbca614 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 12 Jan 2024 09:17:37 +0000 Subject: [PATCH 004/123] Removed redundant print statements --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 334131f89..7de542fd6 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -383,19 +383,16 @@ def _findAtomIndices(self): protein_atom_start = self.system[self.protein_index].getAtoms()[0] protein_atom_end = self.system[self.protein_index].getAtoms()[-1] self.first_protein_atom_index = self.system.getIndex(protein_atom_start) - print(self.first_protein_atom_index) self.last_protein_atom_index = self.system.getIndex(protein_atom_end) ligand1_atom_start = self.system[self.ligand1_index].getAtoms()[0] ligand1_atom_end = self.system[self.ligand1_index].getAtoms()[-1] self.first_ligand1_atom_index = self.system.getIndex(ligand1_atom_start) - print(self.first_ligand1_atom_index) self.last_ligand1_atom_index = self.system.getIndex(ligand1_atom_end) ligand2_atom_start = self.system[self.ligand2_index].getAtoms()[0] ligand2_atom_end = self.system[self.ligand2_index].getAtoms()[-1] self.first_ligand2_atom_index = self.system.getIndex(ligand2_atom_start) - print(self.first_ligand2_atom_index) self.last_ligand2_atom_index = self.system.getIndex(ligand2_atom_end) @staticmethod From c0afe3cae1c4ca2673479b803e9c7211268ec5b5 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 15 Jan 2024 14:55:27 +0000 Subject: [PATCH 005/123] Introduces the master lambda lever, set using a num_lambda argument. The introduction of this lever means that guesses have to be made regarding underlying details of the lambda schedule. Current assumptions are made using the base configs of both the Gallacchio lab and femto protocols --- .../FreeEnergy/AToM/_AToM_system.py | 32 ++- python/BioSimSpace/Protocol/_AToM.py | 264 ++++++++---------- 2 files changed, 138 insertions(+), 158 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 7de542fd6..0cf2e85b4 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -36,6 +36,7 @@ from ...Notebook import View as _View import os as _os import shutil as _shutil +import copy as _copy class makeSystem: @@ -666,6 +667,8 @@ def _inititalise_runner(self): system : :class:`System ` The molecular system. """ + # TODO: generate generic protocol if None is passed. + # This protocol will have to be minimal - cannot guess rigid core atoms if self._protocol is None: raise RuntimeError("No protocol has been set - cannot run simulations.") # Initialise list to store the processe @@ -673,12 +676,12 @@ def _inititalise_runner(self): # Get the list of lambda1 values so that the total number of simulations can # be asserted - lambda1_list = self._protocol.getLambda1() - # Use for loop to avoid annyoing typecheck for numpy int type - simulation_indices = [x for x in range(len(lambda1_list))] - self._protocol._set_window_index(simulation_indices[0]) + lambda_list = self._protocol._get_lambda_values() + # Set index of current simulation to 0 + self._protocol._set_current_index(0) + lam = lambda_list[0] - first_dir = "%s/window_%i" % (self._work_dir, simulation_indices[0]) + first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) # Create the first simulation, which will be copied and used for future simulations. first_process = _Process.OpenMM( @@ -693,15 +696,15 @@ def _inititalise_runner(self): processes.append(first_process) # Remove first index as its already been used - simulation_indices = simulation_indices[1:] - - for index in simulation_indices: + lambda_list = lambda_list[1:] + # Enumerate starting at 1 to account for the removal of the first lambda value + for index, lam in enumerate(lambda_list, 1): # TODO: Support for simulations restarting from a checkpoint. # Files are named according to index, rather than lambda value # This is to avoid confusion arising from the fact that there are multiple lambdas # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 # and may contain duplicates - new_dir = "%s/window_%i" % (self._work_dir, index) + new_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) # Use absolute path. if not _os.path.isabs(new_dir): new_dir = _os.path.abspath(new_dir) @@ -741,6 +744,17 @@ def _inititalise_runner(self): with open(new_dir + "/openmm_script.py", "w") as f: for line in new_config: f.write(line) + + # TODO: biosimspace runner functionality + """if not self._setup_only: + protocol = self._protocol.copy() + protocol._set_window_index(index) + # Create the process. + process = _copy.copy(first_process) + process._system = first_process._system.copy() + process._protocol = protocol + process._work_dir = new_dir + process._std""" # TODO alter process object to match new directory def run(self): diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 05c179ae3..55fd4151a 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -2,6 +2,8 @@ from ._protocol import Protocol as _Protocol from ._position_restraint_mixin import _PositionRestraintMixin from .. import Units as _Units +import math as _math +import numpy as _np __all__ = ["AToM"] @@ -22,150 +24,13 @@ def __init__( core_alignment=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - directions=[ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - ], - lambda1=[ - 0.00, - 0.05, - 0.10, - 0.15, - 0.20, - 0.25, - 0.30, - 0.35, - 0.40, - 0.45, - 0.50, - 0.50, - 0.45, - 0.40, - 0.35, - 0.30, - 0.25, - 0.20, - 0.15, - 0.10, - 0.05, - 0.00, - ], - lambda2=[ - 0.00, - 0.05, - 0.10, - 0.15, - 0.20, - 0.25, - 0.30, - 0.35, - 0.40, - 0.45, - 0.50, - 0.50, - 0.45, - 0.40, - 0.35, - 0.30, - 0.25, - 0.20, - 0.15, - 0.10, - 0.05, - 0.00, - ], - alpha=[ - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - ], - U0=[ - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - ], - W0=[ - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - 0.00, - ], + num_lambda=22, + directions=None, + lambda1=None, + lambda2=None, + alpha=None, + U0=None, + W0=None, align_kf_sep=2.5, align_k_theta=10.0, align_k_psi=10.0, @@ -231,6 +96,10 @@ def __init__( be used.Restraint ` The restraint. + num_lambda : int + The number of lambda values. This will be used to set the window-dependent + AToM parameters, unless they are explicitly set by the user. + lambdas : list of float The lambda values. @@ -274,7 +143,9 @@ def __init__( The a value for the ATM softcore potential. """ - # TODO ADD checks for list length consistency + # TODO Make the master num_lambda functional + # i.e use it to set other arrays of values to some sensible numbers + # more complex than it may appear due to the spread of values # Call the base class constructor. super().__init__() @@ -307,6 +178,11 @@ def __init__( # Whether or not to use alignment restraints. self.setCoreAlignment(core_alignment) + # Set the number of lambda values. + # If other window-dependent parameters are not set, then set them to + # sensible defaults. + self.setNumLambda(num_lambda) + # Store the direction values. self.setDirections(directions) @@ -673,6 +549,39 @@ def setCoreAlignment(self, core_alignment): print("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True + def getNumLambda(self): + """ + Return the number of lambda values. + + Returns + ------- + + num_lambda : int + The number of lambda values. + """ + return self._num_lambda + + def setNumLambda(self, num_lambda): + """ + Set the number of lambda values. + + Parameters + ---------- + + num_lambda : int + The number of lambda values. + """ + if isinstance(num_lambda, int) and num_lambda > 0: + if num_lambda % 2 != 0: + # Swap this print statement with a warning + print( + "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." + ) + self._num_lambda = num_lambda + self._set_lambda_values() + else: + raise TypeError("'num_lambda' must be of type 'int'") + def getDirections(self): """ Return the direction values. @@ -696,12 +605,20 @@ def setDirections(self, directions): The directions. """ if isinstance(directions, list): + if len(directions) != self._num_lambda: + raise ValueError( + "'directions' must have the same length as 'num_lambda'" + ) if all(item == 1 or item == -1 for item in directions): self._directions = directions else: raise ValueError("all entries in 'directions' must be either 1 or -1") + elif directions is None: + self._directions = [1] * _math.floor(self._num_lambda / 2) + [ + -1 + ] * _math.ceil(self._num_lambda / 2) else: - raise TypeError("'directions' must be of type 'list'") + raise TypeError("'directions' must be of type 'list' or 'None'") def getLambda1(self): """ @@ -726,10 +643,22 @@ def setLambda1(self, lambda1): The lambda1 values. """ if isinstance(lambda1, list): + if len(lambda1) != self._num_lambda: + raise ValueError("'lambda1' must have the same length as 'num_lambda'") if all(isinstance(item, float) for item in lambda1): self._lambda1 = lambda1 else: raise ValueError("all entries in 'lambda1' must be floats") + elif lambda1 is None: + # use numpy to create a list of floats + self._lambda1 = _np.concatenate( + [ + _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), + _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), + ] + ).tolist() + # Round the floats to 5 decimal places + self._lambda1 = [round(num, 5) for num in self._lambda1] else: raise TypeError("'lambda1' must be of type 'list'") @@ -756,6 +685,8 @@ def setLambda2(self, lambda2): The lambda2 values. """ if isinstance(lambda2, list): + if len(lambda2) != self._num_lambda: + raise ValueError("'lambda2' must have the same length as 'num_lambda'") if all(isinstance(item, float) for item in lambda2): if len(lambda2) != len(self._lambda1): raise ValueError( @@ -764,6 +695,16 @@ def setLambda2(self, lambda2): self._lambda2 = lambda2 else: raise ValueError("all entries in 'lambda2' must be floats") + elif lambda2 is None: + # use numpy to create a list of floats + self._lambda2 = _np.concatenate( + [ + _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), + _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), + ] + ).tolist() + # Round the floats to 5 decimal places + self._lambda2 = [round(num, 5) for num in self._lambda2] else: raise TypeError("'lambda2' must be of type 'list'") @@ -790,10 +731,14 @@ def setAlpha(self, alpha): The alpha values. """ if isinstance(alpha, list): + if len(alpha) != self._num_lambda: + raise ValueError("'alpha' must have the same length as 'num_lambda'") if all(isinstance(item, float) for item in alpha): self._alpha = alpha else: raise ValueError("all entries in 'alpha' must be floats") + elif alpha is None: + self._alpha = [0.00] * self._num_lambda else: raise TypeError("'alpha' must be of type 'list'") @@ -820,10 +765,14 @@ def setU0(self, U0): The U0 values. """ if isinstance(U0, list): + if len(U0) != self._num_lambda: + raise ValueError("'U0' must have the same length as 'num_lambda'") if all(isinstance(item, float) for item in U0): self._U0 = U0 else: raise ValueError("all entries in 'U0' must be floats") + elif U0 is None: + self._U0 = [0.00] * self._num_lambda else: raise TypeError("'U0' must be of type 'list'") @@ -850,10 +799,14 @@ def setW0(self, W0): The W0 values. """ if isinstance(W0, list): + if len(W0) != self._num_lambda: + raise ValueError("'W0' must have the same length as 'num_lambda'") if all(isinstance(item, float) for item in W0): self._W0 = W0 else: raise ValueError("all entries in 'W0' must be floats") + elif W0 is None: + self._W0 = [0.00] * self._num_lambda else: raise TypeError("'W0' must be of type 'list'") @@ -1019,9 +972,22 @@ def setSCa(self, sc_a): else: raise TypeError("'sc_a' must be of type 'float'") - def _set_window_index(self, index): + def _set_lambda_values(self): + # Internal function to set the 'master lambda' + # This lambda value serves as the master for all other window-dependent parameters + self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() + + def _get_lambda_values(self): + # Internal function to get the 'master lambda' + # This lambda value serves as the master for all other window-dependent parameters + try: + return self._lambda_values + except: + return None + + def _set_current_index(self, index): # Internal function to set index of the current simulation window - # used to set all window-specific parameters + # set using the master lambda list if index < 0: raise ValueError("index must be positive") if index >= len(self._lambda1): @@ -1033,7 +999,7 @@ def _set_window_index(self, index): self._current_index = index def _get_window_index(self): - # Internal function to get the current lambda values for a specific process + # Internal function to get the current window index try: return self._current_index except: From e6b63dddc39aca4ebb1674fd0a766b3c92d44370 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 15 Jan 2024 17:04:58 +0000 Subject: [PATCH 006/123] Added processrunner support --- .../FreeEnergy/AToM/_AToM_system.py | 63 ++++++++++++------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 0cf2e85b4..82fa1ed09 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -37,6 +37,7 @@ import os as _os import shutil as _shutil import copy as _copy +import warnings as _warnings class makeSystem: @@ -657,7 +658,27 @@ def __init__( raise TypeError("'property_map' must be of type 'dict'") self._property_map = property_map - def _inititalise_runner(self): + self._inititalise_runner(system=self._system) + + def run(self, serial=True): + """ + Run the simulations. + Returns + ------- + list of :class:`Process ` + A list of process objects. + """ + # Initialise the runner. + if not isinstance(serial, bool): + raise TypeError("'serial' must be of type 'bool'.") + + if self._setup_only: + _warnings.warn("No processes exist! Object created in 'setup_only' mode.") + + else: + self._runner.startAll(serial=serial) + + def _inititalise_runner(self, system): """ Internal helper function to initialise the process runner. @@ -685,7 +706,7 @@ def _inititalise_runner(self): # Create the first simulation, which will be copied and used for future simulations. first_process = _Process.OpenMM( - system=self._system, + system=system, protocol=self._protocol, work_dir=first_dir, ) @@ -745,28 +766,28 @@ def _inititalise_runner(self): for line in new_config: f.write(line) - # TODO: biosimspace runner functionality - """if not self._setup_only: - protocol = self._protocol.copy() - protocol._set_window_index(index) - # Create the process. + # biosimspace runner functionality + if not self._setup_only: process = _copy.copy(first_process) process._system = first_process._system.copy() - process._protocol = protocol + process._protocol = self._protocol process._work_dir = new_dir - process._std""" - # TODO alter process object to match new directory - - def run(self): - """ - Run the simulations. - Returns - ------- - list of :class:`Process ` - A list of process objects. - """ - # Initialise the runner. - self._inititalise_runner() + process._stdout_file = new_dir + "/AToM.out" + process._stderr_file = new_dir + "/AToM.err" + process._rst_file = new_dir + "/openmm.rst7" + process._top_file = new_dir + "/openmm.prm7" + process._traj_file = new_dir + "/openmm.dcd" + process._config_file = new_dir + "/openmm_script.py" + process._input_files = [ + process._config_file, + process._rst_file, + process._top_file, + ] + processes.append(process) + + if not self._setup_only: + # Initialise process runner. + self._runner = _Process.ProcessRunner(processes) def viewRigidCores(system, data): From 590089fcb45b7732aa5a204e66d8e74bfd7e3c60 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 6 Feb 2024 12:06:33 +0000 Subject: [PATCH 007/123] Added fallback for systems with no carbon atoms, and exposed platform argument to BSS.FreeEnergy.AToM.relativeATM --- .../FreeEnergy/AToM/_AToM_system.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 82fa1ed09..8e4825806 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -484,7 +484,14 @@ def _findTranslationVector( try: search = system.search(string) except: - raise ValueError("No alpha carbons found in system") + _warnings.warn( + "No alpha carbons found in system, falling back on any carbon atoms." + ) + try: + string = f"(atoms within 10 of {x},{y},{z}) and element C" + search = system.search(string) + except: + raise ValueError("No carbon atoms found in system") com = _Coordinate(_Length(0, "A"), _Length(0, "A"), _Length(0, "A")) atoms1 = [] @@ -540,6 +547,7 @@ def __init__( self, system, protocol=None, + platform="CPU", work_dir=None, setup_only=False, ignore_warnings=False, @@ -560,6 +568,12 @@ def __init__( protocol : BioSimSpace.Protocol.AToM A protocol object that defines the RBFE protocol. + platform : str + The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. + For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, + e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. + For OPENCL, instead use OPENCL_VISIBLE_DEVICES. + work_dir : str The working directory for the simulation. @@ -615,6 +629,12 @@ def __init__( # No default protocol due to the need for well-defined rigid cores raise ValueError("A protocol must be specified") + # Check the platform. + if not isinstance(platform, str): + raise TypeError("'platform' must be of type 'str'.") + else: + self._platform = platform + if not isinstance(setup_only, bool): raise TypeError("'setup_only' must be of type 'bool'.") else: @@ -708,6 +728,7 @@ def _inititalise_runner(self, system): first_process = _Process.OpenMM( system=system, protocol=self._protocol, + platform=self._platform, work_dir=first_dir, ) From dd834737b1f7b40ef4518b2edbff253e7a231b19 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 7 Feb 2024 11:49:03 +0000 Subject: [PATCH 008/123] More sensible default for distance restraint weight --- python/BioSimSpace/Protocol/_AToM.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 55fd4151a..7904728e3 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -31,7 +31,7 @@ def __init__( alpha=None, U0=None, W0=None, - align_kf_sep=2.5, + align_kf_sep=25.0, align_k_theta=10.0, align_k_psi=10.0, SC_umax=100.0, From 5c7cd189855411dd67ef2771c0416ee358cda9e3 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 14 Feb 2024 13:39:56 +0000 Subject: [PATCH 009/123] Adds support for annealing within AToM free energy protocols, aiming to increase the stability of high lambda value calculations --- .../FreeEnergy/AToM/_AToM_system.py | 73 +++- python/BioSimSpace/Process/_atom_utils.py | 41 ++- python/BioSimSpace/Process/_openmm.py | 80 ++-- python/BioSimSpace/Protocol/_AToM.py | 341 ++++++++++++++++-- 4 files changed, 481 insertions(+), 54 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 8e4825806..9ebe2cc39 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -21,7 +21,7 @@ # Functionality for creating and viewing systems for Atomic transfer. -__all__ = ["makeSystem", "viewRigidCores", "relativeATM"] +__all__ = ["makeSystem", "viewRigidCores", "relativeATM", "anneal"] from ... import _is_notebook from ..._SireWrappers import Molecule as _Molecule @@ -714,7 +714,8 @@ def _inititalise_runner(self, system): raise RuntimeError("No protocol has been set - cannot run simulations.") # Initialise list to store the processe processes = [] - + # Make sure production protocol is used, not annealing + self._protocol._set_is_annealing_step(False) # Get the list of lambda1 values so that the total number of simulations can # be asserted lambda_list = self._protocol._get_lambda_values() @@ -730,6 +731,7 @@ def _inititalise_runner(self, system): protocol=self._protocol, platform=self._platform, work_dir=first_dir, + property_map=self._property_map, ) if self._setup_only: @@ -764,7 +766,7 @@ def _inititalise_runner(self, system): new_lam_1 = self._protocol.getLambda1()[index] new_lam_2 = self._protocol.getLambda2()[index] new_alpha = self._protocol.getAlpha()[index] - new_u0 = self._protocol.getU0()[index] + new_uh = self._protocol.getuh()[index] new_w0 = self._protocol.getW0()[index] new_direction = self._protocol.getDirections()[index] with open(new_dir + "/openmm_script.py", "r") as f: @@ -775,8 +777,8 @@ def _inititalise_runner(self, system): new_config.append(f"lambda2 = {new_lam_2}\n") elif line.startswith("alpha"): new_config.append(f"alpha = {new_alpha}\n") - elif line.startswith("u0"): - new_config.append(f"u0 = {new_u0}\n") + elif line.startswith("uh"): + new_config.append(f"uh = {new_uh}\n") elif line.startswith("w0"): new_config.append(f"w0 = {new_w0}\n") elif line.startswith("direction"): @@ -876,3 +878,64 @@ def move_to_origin(lig): [coord2.x().value(), coord2.y().value(), coord2.z().value()], colour, 0.7 ) return ngl + + +class anneal(_Process.OpenMM): + """A class for running a pre-production annealing step. + Required for most systems to preven atom overlapping issues.""" + + def __init__( + self, + system, + protocol, + exe=None, + platform="CPU", + seed=None, + property_map={}, + ): + """ + Constructor. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + A prepared AToM system containing a protein and two ligands, one bound and one + + protocol : BioSimSpace.Protocol.AToM + A protocol object that defines the RBFE protocol and includes an annealing step. + + exe : str + The full path to the Python interpreter used to run OpenMM. + + platform : str + The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. + For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, + e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. + For OPENCL, instead use OPENCL_VISIBLE_DEVICES. + + work_dir : str + The working directory for the simulation. + + seed : int + A random number seed. + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + """ + self._protocol = protocol + self._protocol._set_is_annealing_step(True) + # Use values from lambda=0 for annealing + protocol._set_current_index(0) + work_dir = protocol.getAnnealOptions()["output_dir"] + super().__init__( + system=system, + protocol=protocol, + exe=exe, + name="anneal", + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + ) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 0651157ce..3ae8cb39b 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -192,7 +192,7 @@ def createATMForce( output += "lambda1 = {}\n".format(self.protocol.getLambda1()[index]) output += "lambda2 = {}\n".format(self.protocol.getLambda2()[index]) output += "alpha = {}\n".format(self.protocol.getAlpha()[index]) - output += "u0 = {}\n".format(self.protocol.getU0()[index]) + output += "uh = {}\n".format(self.protocol.getuh()[index]) output += "w0 = {}\n".format(self.protocol.getW0()[index]) output += "direction = {}\n".format(self.protocol.getDirections()[index]) output += "sc_Umax = {}\n".format(self.protocol.getSCUmax()) @@ -204,7 +204,7 @@ def createATMForce( lambda1, lambda2, alpha * kilojoules_per_mole, - u0 * kilojoules_per_mole, + uh * kilojoules_per_mole, w0 * kilojoules_per_mole, sc_Umax * kilojoules_per_mole, sc_U0 * kilojoules_per_mole, @@ -230,3 +230,40 @@ def createATMForce( output += "atm_force.addForce(nonbonded)\n" output += "system.addForce(atm_force)\n" return output + + def createAnnealingProtocol(self): + """ + Create a string which can be added directly to an openmm script to add an annealing protocol to the system. + """ + options = self.protocol.getAnnealOptions().copy() + anneal_runtime = options["runtime"] + anneal_cycle_time = options["cycle_time"] + num_cycles = anneal_runtime / anneal_cycle_time + cycle_numsteps = anneal_cycle_time / self.protocol.getTimeStep() + + prot = self.protocol.getAnnealValues() + # Find all entries whose keys contain "start" and create a dictionary of these entries + # Also remove the word "start" from the key + start = {k.replace("_start", ""): v for k, v in prot.items() if "start" in k} + # Same for "end" + end = {k.replace("_end", ""): v for k, v in prot.items() if "end" in k} + # write protocol to output in dictionary format + output = "" + output += f"values_start = {start}\n" + output += f"values_end = {end}\n" + output += "increments = {\n" + output += f" key: (values_end[key] - values_start[key]) / {num_cycles}\n" + output += " for key in values_start.keys()\n" + output += "}\n" + # First set all values using the start values + output += "for key in values_start.keys():\n" + output += " simulation.context.setParameter(key, values_start[key])\n" + # Now perform the annealing in cycles + output += f"for i in range({int(num_cycles)}):\n" + output += f" simulation.step({cycle_numsteps})\n" + output += " print(f'Cycle {i+1}')\n" + if options["save_state"]: + output += " state = simulation.context.getState(getPositions=True, getVelocities=True)\n" + output += " for key in values_start.keys():\n" + output += " simulation.context.setParameter(key, simulation.context.getParameter(key) + increments[key])\n" + return output diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 117e98d5b..401842939 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1138,7 +1138,10 @@ def _generate_config(self): # TODO: check extra_options, extra_lines and property_map from ._atom_utils import _AToMUtils as _AToMUtils - if self._protocol._get_window_index() is None: + if ( + self._protocol._get_window_index() is None + and not self._protocol._get_is_annealing_step() + ): raise _IncompatibleError( "AToM protocol requires the current window index to be set." ) @@ -1315,11 +1318,17 @@ def _generate_config(self): # Work out the number of steps per cycle. steps_per_cycle = int(steps / cycles) - # Now run the simulation. - self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") - self.addToConfig(f"for x in range(0, {cycles}):") - self.addToConfig(f" simulation.step({steps_per_cycle})") - self.addToConfig(f" simulation.saveState('{self._name}.xml')") + if not self._protocol._get_is_annealing_step(): + # Now run the simulation. + self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") + self.addToConfig(f"for x in range(0, {cycles}):") + self.addToConfig(f" simulation.step({steps_per_cycle})") + self.addToConfig(f" simulation.saveState('{self._name}.xml')") + # Need a separate run protocol for annealing steps + else: + # get annealing protocol from atom utils + annealing_protocol = util.createAnnealingProtocol() + self.addToConfig(annealing_protocol) else: raise _IncompatibleError( @@ -1513,15 +1522,29 @@ def getSystem(self, block="AUTO"): return old_system else: - # Work out the total number of trajectory frames. - num_frames = int( - (self._protocol.getRunTime() / self._protocol.getTimeStep()) - / self._protocol.getRestartInterval() - ) - - # Work out the fraction of the simulation that has been completed. - frac_complete = self._protocol.getRunTime() / self.getTime() - + # If this is an AToM annealing step then the runtime is different + if ( + isinstance(self._protocol, _Protocol.AToM) + and self._protocol._get_is_annealing_step() + ): + num_frames = int( + ( + self._protocol.getAnnealOptions()["runtime"] + / self._protocol.getTimeStep() + ) + / self._protocol.getRestartInterval() + ) + frac_complete = ( + self._protocol.getAnnealOptions()["runtime"] / self.getTime() + ) + else: + # Work out the total number of trajectory frames. + num_frames = int( + (self._protocol.getRunTime() / self._protocol.getTimeStep()) + / self._protocol.getRestartInterval() + ) + # Work out the fraction of the simulation that has been completed. + frac_complete = self._protocol.getRunTime() / self.getTime() # Make sure the fraction doesn't exceed one. OpenMM can report # time values that are larger than the number of integration steps # multiplied by the time step. @@ -1615,14 +1638,26 @@ def getFrame(self, index): if not type(index) is int: raise TypeError("'index' must be of type 'int'") - max_index = ( - int( - (self._protocol.getRunTime() / self._protocol.getTimeStep()) - / self._protocol.getRestartInterval() + if ( + isinstance(self._protocol, _Protocol.AToM) + and self._protocol._get_is_annealing_step() + ): + anneal_opts = self._protocol.getAnnealOptions() + max_index = ( + int( + (anneal_opts["runtime"] / self._protocol.getTimeStep()) + / self._protocol.getRestartInterval() + ) + - 1 + ) + else: + max_index = ( + int( + (self._protocol.getRunTime() / self._protocol.getTimeStep()) + / self._protocol.getRestartInterval() + ) + - 1 ) - - 1 - ) - if index < 0 or index > max_index: raise ValueError(f"'index' must be in range [0, {max_index}].") @@ -1642,7 +1677,6 @@ def getFrame(self, index): # Get the latest trajectory frame. new_system = _Trajectory.getFrame(self._traj_file, self._top_file, index) - # Update the coordinates and velocities and return a mapping between # the molecule indices in the two systems. sire_system, mapping = _SireIO.updateCoordinatesAndVelocities( diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 7904728e3..e7cb7ede9 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -29,7 +29,7 @@ def __init__( lambda1=None, lambda2=None, alpha=None, - U0=None, + uh=None, W0=None, align_kf_sep=25.0, align_k_theta=10.0, @@ -37,6 +37,8 @@ def __init__( SC_umax=100.0, SC_u0=50.0, sc_a=0.0625, + anneal_values=None, + anneal_options=None, ): """ Create a protocol object. @@ -115,8 +117,8 @@ def __init__( alpha : list of float The alpha values. - U0 : list of float - The U0 values. + uh : list of float + The uh values. W0 : list of float The W0 values. @@ -137,11 +139,56 @@ def __init__( The Umax value for the ATM softcore potential (kcal/mol). SC_u0 : float - The U0 value for the ATM softcore potential (kcal/mol). + The uh value for the ATM softcore potential (kcal/mol). sc_a : float The a value for the ATM softcore potential. + anneal_values : dict, None, "default" + If None, then no annealing will be performed. + If "default", then lambda values will be annealed from 0 to 0.5. + If more complex annealing is required, then + a dictionary with some or all of the following keys should be given: + "lambda1_start" : float + The starting value for lambda1. + "lambda1_end" : float + The ending value for lambda1. + "lambda2_start" : float + The starting value for lambda2. + "lambda2_end" : float + The ending value for lambda2. + "alpha_start" : float + The starting value for alpha. + "alpha_end" : float + The ending value for alpha. + "uh_start" : float + The starting value for uh. + "uh_end" : float + The ending value for uh. + "W0_start" : float + The starting value for W0. + "W0_end" : float + The ending value for W0 + Any unspecified values will use their default lambda=0 value. + + anneal_options: dict + A dictionary of options for the annealing protocol. + If None, then default values will be used. + Should be a dictionary with the following keys: + "runtime" : :class:`Time ` + The total runtime for the annealing protocol. Default 1ns. + "cycle_time" : :class:`Time ` + The time for each annealing cycle. Default 20ps. + "use_core_alignment": bool + Whether to use core alignment restraints. Default True. + "save_state" : bool + Whether to save the state for each annealing cycle. + Default False. + "output_dir" : str + The directory to save the output files to. Default "anneal_out". + + + """ # TODO Make the master num_lambda functional # i.e use it to set other arrays of values to some sensible numbers @@ -195,8 +242,8 @@ def __init__( # Store the alpha values. self.setAlpha(alpha) - # Store the U0 values. - self.setU0(U0) + # Store the uh values. + self.setuh(uh) # Store the W0 values. self.setW0(W0) @@ -219,6 +266,12 @@ def __init__( # Store the sc_a value. self.setSCa(sc_a) + # Store the anneal values. + self.setAnnealValues(anneal_values) + + # Store the anneal options. + self.setAnnealOptions(anneal_options) + # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) @@ -742,39 +795,39 @@ def setAlpha(self, alpha): else: raise TypeError("'alpha' must be of type 'list'") - def getU0(self): + def getuh(self): """ - Return the U0 values. + Return the uh values. Returns ------- - U0 : list of float - The U0 values. + uh : list of float + The uh values. """ - return self._U0 + return self._uh - def setU0(self, U0): + def setuh(self, uh): """ - Set the U0 values. + Set the uh values. Parameters ---------- - U0 : list of float - The U0 values. + uh : list of float + The uh values. """ - if isinstance(U0, list): - if len(U0) != self._num_lambda: - raise ValueError("'U0' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in U0): - self._U0 = U0 + if isinstance(uh, list): + if len(uh) != self._num_lambda: + raise ValueError("'uh' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in uh): + self._uh = uh else: - raise ValueError("all entries in 'U0' must be floats") - elif U0 is None: - self._U0 = [0.00] * self._num_lambda + raise ValueError("all entries in 'uh' must be floats") + elif uh is None: + self._uh = [0.00] * self._num_lambda else: - raise TypeError("'U0' must be of type 'list'") + raise TypeError("'uh' must be of type 'list'") def getW0(self): """ @@ -972,6 +1025,233 @@ def setSCa(self, sc_a): else: raise TypeError("'sc_a' must be of type 'float'") + def getAnnealValues(self): + """ + Return the anneal protocol. + + Returns + ------- + + anneal_protocol : dict + The anneal protocol. + """ + return self._anneal_values + + def setAnnealValues(self, anneal_values): + """ + Set the anneal protocol. + + Parameters + ---------- + + anneal_values : dict + The anneal values. + """ + + def capitalise_keys(input_dict): + # The first letter of each key needs to be captilised + # so that it can be properly passed to openMM later + capitalized_dict = {} + for key, value in input_dict.items(): + capitalized_key = key.capitalize() + capitalized_dict[capitalized_key] = value + return capitalized_dict + + if anneal_values == "default": + self._anneal_values = capitalise_keys( + { + "lambda1_start": 0, + "lambda1_end": 0.5, + "lambda2_start": 0, + "lambda2_end": 0.5, + } + ) + elif isinstance(anneal_values, dict): + # check that the given keys are valid + keys = [ + "lambda1_start", + "lambda1_end", + "lambda2_start", + "lambda2_end", + "alpha_start", + "alpha_end", + "uh_start", + "uh_end", + "W0_start", + "W0_end", + ] + if all(key in anneal_values for key in keys): + # check that the values are of the correct type + if all(isinstance(anneal_values[key], (float, int)) for key in keys): + # check that the values are in the correct range + if ( + 0 <= anneal_values["lambda1_start"] <= 1 + and 0 <= anneal_values["lambda1_end"] <= 1 + and 0 <= anneal_values["lambda2_start"] <= 1 + and 0 <= anneal_values["lambda2_end"] <= 1 + and 0 <= anneal_values["alpha_start"] <= 1 + and 0 <= anneal_values["alpha_end"] <= 1 + and 0 <= anneal_values["uh_start"] <= 1 + and 0 <= anneal_values["uh_end"] <= 1 + and 0 <= anneal_values["W0_start"] <= 1 + and 0 <= anneal_values["W0_end"] <= 1 + ): + # check that, if {x}_start is given, then {x}_end is also given + # if this check passes, then the values should be valid + if all(key.endswith("_start") for key in anneal_values): + if all( + key.replace("_start", "_end") in anneal_values + for key in anneal_values + ): + pass + else: + raise ValueError( + "If a value is given for {x}_start, then a value must also be given for {x}_end" + ) + + else: + raise ValueError( + "The values in the anneal values must be in the range 0 to 1" + ) + else: + raise TypeError( + "The values in the anneal values must be of type 'float' or 'int' for all keys except 'runtime', which must be of type 'BioSimSpace.Types.Time'" + ) + else: + raise ValueError( + "The anneal values can only contain the following keys: 'lambda1_start', 'lambda1_end', 'lambda2_start', 'lambda2_end', 'alpha_start', 'alpha_end', 'uh_start', 'uh_end', 'W0_start', 'W0_end', 'runtime'" + ) + self._anneal_values = capitalise_keys(anneal_values) + elif anneal_values is None: + self._anneal_values = None + + else: + raise TypeError( + "'anneal_values' must be of type 'dict', 'None', or 'default'" + ) + + def getAnnealOptions(self): + """ + Return the anneal options. + + Returns + ------- + + anneal_options : dict + The anneal options. + """ + return self._anneal_options + + def setAnnealOptions(self, anneal_options): + """ + Set the anneal options. + + Parameters + ---------- + + anneal_options : dict + The anneal options. + """ + default_options = { + "runtime": _Types.Time("1ns"), + "cycle_time": _Types.Time("20ps"), + "use_core_alignment": True, + "save_state": False, + "output_dir": "anneal_out", + } + if self._anneal_values is None and anneal_options is not None: + raise ValueError( + "Anneal options can only be set if anneal values are given" + ) + if isinstance(anneal_options, dict): + final_options = {} + # find all options that arn't given and set them to the default + for key in default_options.keys(): + if key not in anneal_options: + final_options[key] = default_options[key] + if all(key in default_options for key in anneal_options.keys()): + # check that the values are of the correct type + if all( + isinstance(anneal_options[key], (str, int, bool)) + for key in anneal_options.keys() + ): + # check that the values are in the correct range + if "runtime" in anneal_options: + if isinstance(anneal_options["runtime"], str): + try: + _Types.Time(anneal_options["runtime"]) + final_options["runtime"] = _Types.Time( + anneal_options["runtime"] + ) + except: + raise ValueError( + "Unable to parse 'runtime' string." + ) from None + elif isinstance(anneal_options["runtime"], _Types.Time): + final_options["runtime"] = anneal_options["runtime"] + else: + raise ValueError( + "The values in the anneal options must be of type 'str' or 'BioSimSpace.Types.Time' for 'runtime'" + ) + if "cycle_time" in anneal_options: + if isinstance(anneal_options["cycle_time"], str): + try: + _Types.Time(anneal_options["cycle_time"]) + final_options["cycle_time"] = _Types.Time( + anneal_options["cycle_time"] + ) + except: + raise ValueError( + "Unable to parse 'cycle_time' string." + ) from None + elif isinstance(anneal_options["cycle_time"], _Types.Time): + final_options["cycle_time"] = anneal_options["cycle_time"] + else: + raise ValueError( + "The values in the anneal options must be of type 'str' or 'BioSimSpace.Types.Time' for 'cycle_time'" + ) + if "use_core_alignment" in anneal_options: + if isinstance(anneal_options["use_core_alignment"], bool): + final_options["use_core_alignment"] = anneal_options[ + "use_core_alignment" + ] + else: + raise ValueError( + "The values in the anneal options must be of type 'bool' for 'use_core_alignment'" + ) + if "save_state" in anneal_options: + if isinstance(anneal_options["save_state"], bool): + final_options["save_state"] = anneal_options["save_state"] + else: + raise ValueError( + "The values in the anneal options must be of type 'bool' for 'save_state'" + ) + if "output_dir" in anneal_options: + if isinstance(anneal_options["output_dir"], str): + final_options["output_dir"] = anneal_options["output_dir"] + else: + raise ValueError( + "The values in the anneal options must be of type 'str' for 'output_dir'" + ) + else: + raise TypeError( + "The values in the anneal options must be of type 'str' or 'bool'" + ) + else: + # Find the keys that are not present so that they can be given in the error + keys_diff = [] + for key in anneal_options.keys(): + if key not in default_options.keys(): + keys_diff.append(key) + raise ValueError( + f"The following option(s) is not permitted in anneal_options {keys_diff}. Anneal options must contain the following keys: 'runtime', 'cycle_time', 'save_state', 'output_dir'" + ) + self._anneal_options = final_options + elif anneal_options is None and self._anneal_values is not None: + self._anneal_options = default_options + else: + raise TypeError("'anneal_options' must be of type 'dict' or None") + def _set_lambda_values(self): # Internal function to set the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters @@ -1004,3 +1284,16 @@ def _get_window_index(self): return self._current_index except: return None + + def _set_is_annealing_step(self, is_annealing_step=False): + # Internal function to set whether the current step is an annealing step + if not isinstance(is_annealing_step, bool): + raise TypeError("is_annealing_step must be a boolean") + self._is_annealing_step = is_annealing_step + + def _get_is_annealing_step(self): + # Internal function to get whether the current step is an annealing step + try: + return self._is_annealing_step + except: + return None From e360d60e117c9efd55f967c8abadfa7407a7d58f Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 26 Feb 2024 16:44:16 +0000 Subject: [PATCH 010/123] Begins to add support for COM restraints --- .../FreeEnergy/AToM/_AToM_system.py | 119 ++++++++++++++++++ python/BioSimSpace/Process/_atom_utils.py | 19 ++- 2 files changed, 135 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 9ebe2cc39..a01efda08 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -86,6 +86,15 @@ def __init__( ligand2_rigid_core : list A list of three atom indices that define the rigid core of the free ligand. Indices are set relative to the ligand, not the system and are 0-indexed. + protein_com_atoms: list + A list of atom indices that define the center of mass of the protein. + If None, the center of mass will be calculated. + lig1_com_atoms: list + A list of atom indices that define the center of mass of the bound ligand. + If None, the center of mass will be calculated. + lig2_com_atoms: list + A list of atom indices that define the center of mass of the free ligand. + If None, the center of mass will be calculated. """ if isinstance(mol1, _Molecule) and ( not isinstance(ligand1, _Molecule) or not isinstance(ligand2, _Molecule) @@ -505,6 +514,116 @@ def _findTranslationVector( out_of_protein = com.toVector() + displacement.value() * initial_normal_vector return out_of_protein + def _get_prot_com_atoms(self): + """ + Get the atoms that define the center of mass of the protein as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the protein. + """ + return self._mol1_com_atoms + + def _set_mol1_com_atoms(self, mol1_com_atoms): + """ + Set the atoms that define the center of mass of the protein + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the protein. + """ + if mol1_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(mol1_com_atoms, list): + raise TypeError("mol1_com_atoms must be a list") + if not all(isinstance(x, int) for x in mol1_com_atoms): + raise TypeError("mol1_com_atoms must be a list of ints") + self._mol1_com_atoms = mol1_com_atoms + else: + # Find com of the protein + if self._is_pre_prepared: + protein = self.system[self.protein_index] + else: + protein = self.mol1 + com = protein._sire_object.coordinates() + self._mol1_com_atoms = [ + a.index().value() + for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] + ] + + def _get_lig1_com_atoms(self): + """ + Get the atoms that define the center of mass of the bound ligand as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the bound ligand. + """ + return self._lig1_com_atoms + + def _set_lig1_com_atoms(self, lig1_com_atoms): + """ + Set the atoms that define the center of mass of the bound ligand + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the bound ligand. + In most cases this will be all atoms within the ligand + """ + if lig1_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(lig1_com_atoms, list): + raise TypeError("lig1_com_atoms must be a list") + if not all(isinstance(x, int) for x in lig1_com_atoms): + raise TypeError("lig1_com_atoms must be a list of ints") + self._lig1_com_atoms = lig1_com_atoms + else: + # Find com of the ligand + if self._is_pre_prepared: + ligand1 = self.system[self.ligand1_index] + else: + ligand1 = self.ligand1 + com = ligand1._sire_object.coordinates() + self._lig1_com_atoms = [ + a.index().value() + for a in ligand1._sire_object[f"atoms within 11 angstrom of {com}"] + ] + + def _get_lig2_com_atoms(self): + """ + Get the atoms that define the center of mass of the free ligand as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the free ligand. + """ + return self._lig2_com_atoms + + def _set_lig2_com_atoms(self, lig2_com_atoms): + """ + Set the atoms that define the center of mass of the free ligand + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the free ligand. + In most cases this will be all atoms within the ligand + """ + if lig2_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(lig2_com_atoms, list): + raise TypeError("lig2_com_atoms must be a list") + if not all(isinstance(x, int) for x in lig2_com_atoms): + raise TypeError("lig2_com_atoms must be a list of ints") + self._lig2_com_atoms = lig2_com_atoms + else: + # Find com of the ligand + if self._is_pre_prepared: + ligand2 = self.system[self.ligand2_index] + else: + ligand2 = self.ligand2 + com = ligand2._sire_object.coordinates() + self._lig2_com_atoms = [ + a.index().value() + for a in ligand2._sire_object[f"atoms within 11 angstrom of {com}"] + ] + def getSystem(self): """ Get the AToM system diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 3ae8cb39b..455d1693a 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -32,9 +32,16 @@ def __init__(self, protocol): self.data = self.protocol.getData() def getAlignmentConstants(self): - self.alignment_k_distance = self.protocol.getAlignKfSep() - self.alignment_k_theta = self.protocol.getAlignKTheta() - self.alignment_k_psi = self.protocol.getAlignKPsi() + if self.protocol._get_is_annealing_step(): + self.alignment_k_distance = self.protocol.getAnnealOptions()[ + "anneal_k_distance" + ] + self.alignment_k_theta = self.protocol.getAnnealOptions()["anneal_k_theta"] + self.alignment_k_psi = self.protocol.getAnnealOptions()["anneal_k_psi"] + else: + self.alignment_k_distance = self.protocol.getAlignKfSep() + self.alignment_k_theta = self.protocol.getAlignKTheta() + self.alignment_k_psi = self.protocol.getAlignKPsi() def findAbsoluteCoreIndices(self): import numpy as np @@ -266,4 +273,10 @@ def createAnnealingProtocol(self): output += " state = simulation.context.getState(getPositions=True, getVelocities=True)\n" output += " for key in values_start.keys():\n" output += " simulation.context.setParameter(key, simulation.context.getParameter(key) + increments[key])\n" + # Now add post-annealing equilibration if set + if options["post_anneal_eq_time"] is not None: + output += "simulation.context.setParameter('lambda1', 0.5)" + output += "simulation.context.setParameter('lambda2', 0.5)" + output += f"simulation.step({int(options['post_anneal_eq_time']/self.protocol.getTimeStep())})\n" + output += "simulation.saveState('openmm.xml')" return output From 9023a482dd63d3ef484ff1f48efc54d46a5ac02a Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 26 Feb 2024 16:56:12 +0000 Subject: [PATCH 011/123] Adds constants for COM restraint to atom protocol --- python/BioSimSpace/Protocol/_AToM.py | 154 ++++++++++++++++++++++++++- 1 file changed, 150 insertions(+), 4 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index e7cb7ede9..b8a54d488 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -14,7 +14,7 @@ def __init__( self, data, timestep=_Types.Time(2.0, "femtosecond"), - runtime=_Types.Time(1, "picosecond"), + runtime=_Types.Time(1, "nanosecond"), temperature=_Types.Temperature(300, "kelvin"), pressure=_Types.Pressure(1, "atmosphere"), thermostat_time_constant=_Types.Time(1.0, "picosecond"), @@ -37,6 +37,8 @@ def __init__( SC_umax=100.0, SC_u0=50.0, sc_a=0.0625, + cm_kf=25.0, + cm_tol=5.0, anneal_values=None, anneal_options=None, ): @@ -144,6 +146,12 @@ def __init__( sc_a : float The a value for the ATM softcore potential. + cm_kf : float + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : float + The tolerance for the center of mass distance restraint (A). + anneal_values : dict, None, "default" If None, then no annealing will be performed. If "default", then lambda values will be annealed from 0 to 0.5. @@ -181,9 +189,26 @@ def __init__( The time for each annealing cycle. Default 20ps. "use_core_alignment": bool Whether to use core alignment restraints. Default True. + "anneal_k_distance" : float + The force constant for the distance portion of the alignment restraint (kcal/mol/A^2). + Default 25.0. + If use_core_alignment is False, then this value is ignored. + If use_core_alignment is True, and this value is not set, use the value defined in the align_k_distance parameter. + "anneal_k_theta" : float + The force constant for the angular portion of the alignment restaint (kcal/mol). + Default 10.0. + If use_core_alignment is False, then this value is ignored. + If use_core_alignment is True, and this value is not set, use the value defined in the align_k_theta parameter. + "anneal_k_psi" : float + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + If use_core_alignment is False, then this value is ignored. + If use_core_alignment is True, and this value is not set, use the value defined in the align_k_psi parameter. "save_state" : bool Whether to save the state for each annealing cycle. Default False. + "post_anneal_eq_time" : :class:`Time ` + The time to run the system after the annealing protocol. + Default 25ps. "output_dir" : str The directory to save the output files to. Default "anneal_out". @@ -266,6 +291,12 @@ def __init__( # Store the sc_a value. self.setSCa(sc_a) + # Store cm_kf value. + self.setCMKf(cm_kf) + + # Store cm_tol value. + self.setCMTol(cm_tol) + # Store the anneal values. self.setAnnealValues(anneal_values) @@ -1025,6 +1056,60 @@ def setSCa(self, sc_a): else: raise TypeError("'sc_a' must be of type 'float'") + def getCMKf(self): + """ + Return the cm_kf value. + + Returns + ------- + + cm_kf : float + The cm_kf value. + """ + return self._cm_kf + + def setCMKf(self, cm_kf): + """ + Set the cm_kf value. + + Parameters + ---------- + + cm_kf : float + The cm_kf value. + """ + if isinstance(cm_kf, float): + self._cm_kf = cm_kf + else: + raise TypeError("'cm_kf' must be of type 'float'") + + def getCMTol(self): + """ + Return the cm_tol value. + + Returns + ------- + + cm_tol : float + The cm_tol value. + """ + return self._cm_tol + + def setCMTol(self, cm_tol): + """ + Set the cm_tol value. + + Parameters + ---------- + + cm_tol : float + The cm_tol value. + """ + if isinstance(cm_tol, float): + self._cm_tol = cm_tol + else: + raise TypeError("'cm_tol' must be of type 'float'") + def getAnnealValues(self): """ Return the anneal protocol. @@ -1156,6 +1241,10 @@ def setAnnealOptions(self, anneal_options): "runtime": _Types.Time("1ns"), "cycle_time": _Types.Time("20ps"), "use_core_alignment": True, + "anneal_k_distance": self._align_kf_sep, + "anneal_k_theta": self._align_k_theta, + "anneal_k_psi": self._align_k_psi, + "post_anneal_eq_time": _Types.Time("25ps"), "save_state": False, "output_dir": "anneal_out", } @@ -1163,7 +1252,7 @@ def setAnnealOptions(self, anneal_options): raise ValueError( "Anneal options can only be set if anneal values are given" ) - if isinstance(anneal_options, dict): + elif isinstance(anneal_options, dict): final_options = {} # find all options that arn't given and set them to the default for key in default_options.keys(): @@ -1172,7 +1261,7 @@ def setAnnealOptions(self, anneal_options): if all(key in default_options for key in anneal_options.keys()): # check that the values are of the correct type if all( - isinstance(anneal_options[key], (str, int, bool)) + isinstance(anneal_options[key], (str, int, float, bool)) for key in anneal_options.keys() ): # check that the values are in the correct range @@ -1219,6 +1308,61 @@ def setAnnealOptions(self, anneal_options): raise ValueError( "The values in the anneal options must be of type 'bool' for 'use_core_alignment'" ) + if "anneal_k_distance" in anneal_options: + if isinstance( + anneal_options["anneal_k_distance"], (float, int) + ): + final_options["anneal_k_distance"] = float( + anneal_options["anneal_k_distance"] + ) + else: + raise ValueError( + "The values in the anneal options must be of type 'float' for 'Anneal_k_distance'" + ) + if "anneal_k_theta" in anneal_options: + if isinstance(anneal_options["anneal_k_theta"], (float, int)): + final_options["anneal_k_theta"] = float( + anneal_options["anneal_k_theta"] + ) + else: + raise ValueError( + "The values in the anneal options must be of type 'float' for 'Anneal_k_theta'" + ) + if "anneal_k_psi" in anneal_options: + if isinstance(anneal_options["anneal_k_psi"], (float, int)): + final_options["anneal_k_psi"] = float( + anneal_options["anneal_k_psi"] + ) + else: + raise ValueError( + "The values in the anneal options must be of type 'float' for 'Anneal_k_psi'" + ) + if "post_anneal_eq_time" in anneal_options: + if isinstance(anneal_options["post_anneal_eq_time"], str): + try: + _Types.Time(anneal_options["post_anneal_eq_time"]) + final_options["post_anneal_eq_time"] = _Types.Time( + anneal_options["post_anneal_eq_time"] + ) + except: + raise ValueError( + "Unable to parse 'post_anneal_eq_time' string." + ) from None + elif isinstance( + anneal_options["post_anneal_eq_time"], _Types.Time + ): + final_options["post_anneal_eq_time"] = anneal_options[ + "post_anneal_eq_time" + ] + elif anneal_options["post_anneal_eq_time"] is None: + final_options["post_anneal_eq_time"] = None + else: + raise ValueError( + "The values in the anneal options must be of type 'str', 'BioSimSpace.Types.Time' or None for 'post_anneal_eq_time'" + ) + # If a value of 0 is given, then set the value to None + if final_options["post_anneal_eq_time"].value() == 0: + final_options["post_anneal_eq_time"] = None if "save_state" in anneal_options: if isinstance(anneal_options["save_state"], bool): final_options["save_state"] = anneal_options["save_state"] @@ -1235,7 +1379,7 @@ def setAnnealOptions(self, anneal_options): ) else: raise TypeError( - "The values in the anneal options must be of type 'str' or 'bool'" + "The values in the anneal options must be of type 'str', 'bool', 'int' or 'float'" ) else: # Find the keys that are not present so that they can be given in the error @@ -1249,6 +1393,8 @@ def setAnnealOptions(self, anneal_options): self._anneal_options = final_options elif anneal_options is None and self._anneal_values is not None: self._anneal_options = default_options + elif self._anneal_values is None and anneal_options is None: + self._anneal_options = None else: raise TypeError("'anneal_options' must be of type 'dict' or None") From 9ed41786a7c95d400061ebf110d20c7fecff965d Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 27 Feb 2024 13:40:03 +0000 Subject: [PATCH 012/123] Adds CM restraint to atom utils and openmm processes --- .../FreeEnergy/AToM/_AToM_system.py | 15 ++++- python/BioSimSpace/Process/_atom_utils.py | 62 ++++++++++++++++++- python/BioSimSpace/Process/_openmm.py | 5 ++ python/BioSimSpace/Protocol/_AToM.py | 40 ++++++++++-- 4 files changed, 113 insertions(+), 9 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index a01efda08..4d71fb8c7 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -56,6 +56,9 @@ def __init__( ligand2_index=2, ligand1_rigid_core=None, ligand2_rigid_core=None, + prot_com_atoms=None, + lig1_com_atoms=None, + lig2_com_atoms=None, ): """ Constructor for AToMSystem class @@ -120,6 +123,9 @@ def __init__( self.protein_index = protein_index self.ligand1_index = ligand1_index self.ligand2_index = ligand2_index + self._set_mol1_com_atoms(prot_com_atoms) + self._set_lig1_com_atoms(lig1_com_atoms) + self._set_lig2_com_atoms(lig2_com_atoms) def getProteinIndex(self): """ @@ -514,7 +520,7 @@ def _findTranslationVector( out_of_protein = com.toVector() + displacement.value() * initial_normal_vector return out_of_protein - def _get_prot_com_atoms(self): + def get_prot_com_atoms(self): """ Get the atoms that define the center of mass of the protein as a list of ints @@ -550,7 +556,7 @@ def _set_mol1_com_atoms(self, mol1_com_atoms): for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] ] - def _get_lig1_com_atoms(self): + def get_lig1_com_atoms(self): """ Get the atoms that define the center of mass of the bound ligand as a list of ints @@ -587,7 +593,7 @@ def _set_lig1_com_atoms(self, lig1_com_atoms): for a in ligand1._sire_object[f"atoms within 11 angstrom of {com}"] ] - def _get_lig2_com_atoms(self): + def get_lig2_com_atoms(self): """ Get the atoms that define the center of mass of the free ligand as a list of ints @@ -655,6 +661,9 @@ def _makeData(self): self.data["last_ligand1_atom_index"] = self.last_ligand1_atom_index self.data["first_ligand2_atom_index"] = self.first_ligand2_atom_index self.data["last_ligand2_atom_index"] = self.last_ligand2_atom_index + self.data["protein_com_atoms"] = self._mol1_com_atoms + self.data["ligand1_com_atoms"] = self._lig1_com_atoms + self.data["ligand2_com_atoms"] = self._lig2_com_atoms class relativeATM: diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 455d1693a..8046103b5 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -238,6 +238,63 @@ def createATMForce( output += "system.addForce(atm_force)\n" return output + def createCOMRestraint(self): + """ + Create a string containing the CM-CM restriants for two groups of atoms. + In most cases these will be some combination of protein and ligand atoms. + Constants for the force are set in the protocol.""" + # Groups contained within the constraint + protein_com = self.data["protein_com_atoms"] + lig1_com = self.data["ligand1_com_atoms"] + lig2_com = self.data["ligand2_com_atoms"] + # Constants for the force + kf_cm = self.protocol.getCMKf() + tol_cm = self.protocol.getCMTol() + output = "" + output += "protein_com = {}\n".format(protein_com) + output += "lig1_com = {}\n".format(lig1_com) + output += "lig2_com = {}\n".format(lig2_com) + output += "# Constants for the CM-CM force in their input units\n" + output += "kfcm = {} * kilocalorie_per_mole / angstrom**2\n".format(kf_cm) + output += "tolcm = {} * angstrom \n".format(tol_cm) + + # Add expression for cm restraint + output += """ + expr = "(kfcm/2)*step(d12-tolcm)*(d12-tolcm)^2 " + expr += " ; d12 = sqrt((x1 - offx - x2)^2 + (y1 - offy - y2)^2 + (z1 - offz - z2)^2 ) ; " + """ + output += "force_CMCM = CustomCentroidBondForce(2, expr)\n" + output += "force_CMCM.addPerBondParameter('kfcm')\n" + output += "force_CMCM.addPerBondParameter('tolcm')\n" + output += "force_CMCM.addPerBondParameter('offx')\n" + output += "force_CMCM.addPerBondParameter('offy')\n" + output += "force_CMCM.addPerBondParameter('offz')\n" + output += "system.addForce(force_CMCM)\n" + output += "force_CMCM.addGroup(protein_com)\n" + output += "force_CMCM.addGroup(lig1_com)\n" + output += "force_CMCM.addGroup(lig2_com)\n" + + output += """parameters_free = ( + kfcm.value_unit(openmm.unit.kilojoules_per_mole / openmm.unit.nanometer**2), + tolcm.value_in_unit(openmm.unit.nanometer), + displacement[0], + displacement[1], + displacement[2], + )""" + + output += """parameters_bound = ( + kfcm.value_unit(openmm.unit.kilojoules_per_mole / openmm.unit.nanometer**2), + tolcm.value_in_unit(openmm.unit.nanometer), + 0.0, + 0.0, + 0.0, + )""" + + output += "force_CMCM.addBond((0,1), parameters_bound)\n" + output += "force_CMCM.addBond((0,2), parameters_free)\n" + + return output + def createAnnealingProtocol(self): """ Create a string which can be added directly to an openmm script to add an annealing protocol to the system. @@ -275,8 +332,9 @@ def createAnnealingProtocol(self): output += " simulation.context.setParameter(key, simulation.context.getParameter(key) + increments[key])\n" # Now add post-annealing equilibration if set if options["post_anneal_eq_time"] is not None: - output += "simulation.context.setParameter('lambda1', 0.5)" - output += "simulation.context.setParameter('lambda2', 0.5)" + output += "#post-annealing equilibration\n" + output += "simulation.context.setParameter('lambda1', 0.5)\n" + output += "simulation.context.setParameter('lambda2', 0.5)\n" output += f"simulation.step({int(options['post_anneal_eq_time']/self.protocol.getTimeStep())})\n" output += "simulation.saveState('openmm.xml')" return output diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 401842939..26593088e 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1241,6 +1241,11 @@ def _generate_config(self): self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) + if self._protocol.getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + self.addToConfig("\n# Initialise and configure the simulation object.") self.addToConfig("simulation = Simulation(prm.topology,") self.addToConfig(" system,") diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index b8a54d488..1ead4e515 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -22,6 +22,7 @@ def __init__( restart_interval=100, restart=False, core_alignment=True, + CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, num_lambda=22, @@ -75,9 +76,12 @@ def __init__( restart : bool Whether this is a continuation of a previous simulation. - use_core_alignment : bool + core_alignment : bool Whether to use rigid core restraints to align the two ligands. + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + restraint : str, [int] The type of restraint to perform. This should be one of the following options: @@ -215,9 +219,6 @@ def __init__( """ - # TODO Make the master num_lambda functional - # i.e use it to set other arrays of values to some sensible numbers - # more complex than it may appear due to the spread of values # Call the base class constructor. super().__init__() @@ -250,6 +251,9 @@ def __init__( # Whether or not to use alignment restraints. self.setCoreAlignment(core_alignment) + # Whether or not to use the CMCM restraint. + self.setCMCMRestraint(CMCM_restraint) + # Set the number of lambda values. # If other window-dependent parameters are not set, then set them to # sensible defaults. @@ -633,6 +637,34 @@ def setCoreAlignment(self, core_alignment): print("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True + def getCMCMRestraint(self): + """ + Return CMCM restraint boolean. + + Returns + ------- + + CMCM_restraint : bool + Whether to use the CMCM restraint. + """ + return self._CMCM_restraint + + def setCMCMRestraint(self, CMCM_restraint): + """ + Set the CMCM restraint flag. + + Parameters + ---------- + + CMCM_restraint : bool + Whether to use the CMCM restraint. + """ + if isinstance(CMCM_restraint, bool): + self._CMCM_restraint = CMCM_restraint + else: + print("Non-boolean CMCM restraint flag. Defaulting to True!") + self._CMCM_restraint = True + def getNumLambda(self): """ Return the number of lambda values. From 5c87109e3aeacc3062b3e4f35d70062da91a25f9 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 5 Mar 2024 16:58:27 +0000 Subject: [PATCH 013/123] Re-factoring of annealing, removed the need for the anneal_options dictionary --- .../FreeEnergy/AToM/_AToM_system.py | 2 +- python/BioSimSpace/Process/_atom_utils.py | 119 +++++---- python/BioSimSpace/Process/_openmm.py | 26 +- python/BioSimSpace/Protocol/_AToM.py | 232 ++---------------- 4 files changed, 96 insertions(+), 283 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 4d71fb8c7..27dd46b9c 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1019,6 +1019,7 @@ def __init__( exe=None, platform="CPU", seed=None, + work_dir="anneal", property_map={}, ): """ @@ -1056,7 +1057,6 @@ def __init__( self._protocol._set_is_annealing_step(True) # Use values from lambda=0 for annealing protocol._set_current_index(0) - work_dir = protocol.getAnnealOptions()["output_dir"] super().__init__( system=system, protocol=protocol, diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 8046103b5..545e48895 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -20,6 +20,7 @@ ##################################################################### __all__ = ["_AToMUtils"] from .. import Protocol as _Protocol +from ..Types import Vector as _Vector class _AToMUtils: @@ -32,16 +33,13 @@ def __init__(self, protocol): self.data = self.protocol.getData() def getAlignmentConstants(self): - if self.protocol._get_is_annealing_step(): - self.alignment_k_distance = self.protocol.getAnnealOptions()[ - "anneal_k_distance" - ] - self.alignment_k_theta = self.protocol.getAnnealOptions()["anneal_k_theta"] - self.alignment_k_psi = self.protocol.getAnnealOptions()["anneal_k_psi"] - else: - self.alignment_k_distance = self.protocol.getAlignKfSep() - self.alignment_k_theta = self.protocol.getAlignKTheta() - self.alignment_k_psi = self.protocol.getAlignKPsi() + self.alignment_k_distance = self.protocol.getAlignKfSep() + self.alignment_k_theta = self.protocol.getAlignKTheta() + self.alignment_k_psi = self.protocol.getAlignKPsi() + + def getCMConstants(self): + self.cm_kf = self.protocol.getCMKf() + self.cm_tol = self.protocol.getCMTol() def findAbsoluteCoreIndices(self): import numpy as np @@ -55,12 +53,35 @@ def findAbsoluteCoreIndices(self): np.add(self.lig2_first_atomnum, self.data["ligand2_rigid_core"]) ) + def findAbsoluteCOMAtoms(self): + import numpy as np + + self.protein_first_atomnum = self.data["first_protein_atom_index"] + self.protein_com_atoms = list( + np.add(self.protein_first_atomnum, self.data["protein_com_atoms"]) + ) + + self.lig1_first_atomnum = self.data["first_ligand1_atom_index"] + self.lig1_com_atoms = list( + np.add(self.lig1_first_atomnum, self.data["ligand1_com_atoms"]) + ) + + self.lig2_first_atomnum = self.data["first_ligand2_atom_index"] + self.lig2_com_atoms = list( + np.add(self.lig2_first_atomnum, self.data["ligand2_com_atoms"]) + ) + def findDisplacement(self): - if not isinstance(self.data["displacement"], list): - raise TypeError("Displacement must be a list") - elif not all(isinstance(x, float) for x in self.data["displacement"]): - raise TypeError("Displacement must be a list of floats") - self.displacement = self.data["displacement"] + d = self.data["displacement"] + if isinstance(d, (list)): + if not all(isinstance(x, float) for x in d): + raise TypeError("Displacement must be a list of floats") + self.displacement = d + elif isinstance(d, _Vector): + disp = [d.x(), d.y(), d.z()] + self.displacement = disp + else: + raise TypeError("Displacement must be a list or BioSimSpace vector") def createAlignmentForce(self): # This force is the same in every lambda window @@ -68,9 +89,11 @@ def createAlignmentForce(self): self.findAbsoluteCoreIndices() output = "\n\n" - output += "k_distance = {}\n".format(self.alignment_k_distance) - output += "k_theta = {}\n".format(self.alignment_k_theta) - output += "k_psi = {}\n".format(self.alignment_k_psi) + output += "k_distance = {} * kilocalorie_per_mole / angstrom**2\n".format( + self.alignment_k_distance + ) + output += "k_theta = {} * kilocalorie_per_mole\n".format(self.alignment_k_theta) + output += "k_psi = {} * kilocalorie_per_mole\n".format(self.alignment_k_psi) output += "idxs_a = {}\n".format(self.lig1_rigid_atoms) output += "idxs_b = {}\n".format(self.lig2_rigid_atoms) output += "\n\n" @@ -83,9 +106,7 @@ def createAlignmentForce(self): output += "distance_force.addPerBondParameter('dz')\n" output += """distance_parameters = [ - k_distance*( - kilojoules_per_mole / nanometer**2 - ), + k_distance.value_in_unit(kilojoules_per_mole / nanometer**2), displacement[0]*nanometer, displacement[1]*nanometer, displacement[2]*nanometer, @@ -112,7 +133,7 @@ def createAlignmentForce(self): output += 'angle_force.addPerBondParameter("k")\n' output += """angle_force.addBond( (idxs_b[0], idxs_b[1], idxs_a[0], idxs_a[1]), - [k_theta*kilojoules_per_mole], + [k_theta.value_in_unit(kilojoules_per_mole)], )\n""" output += "system.addForce(angle_force)\n\n" @@ -145,11 +166,11 @@ def createAlignmentForce(self): output += 'dihedral_force.addPerBondParameter("k")\n' output += """dihedral_force.addBond( (idxs_b[0], idxs_b[1], idxs_b[2], idxs_a[0], idxs_a[2]), - [0.5 * k_psi * kilojoules_per_mole], + [0.5 * k_psi.value_in_unit(kilojoules_per_mole)], )\n""" output += """dihedral_force.addBond( (idxs_a[0], idxs_a[1], idxs_a[2], idxs_b[0], idxs_b[2]), - [0.5 * k_psi*kilojoules_per_mole], + [0.5 * k_psi.value_in_unit(kilojoules_per_mole)], )\n""" output += "system.addForce(dihedral_force)\n\n" return output @@ -243,13 +264,15 @@ def createCOMRestraint(self): Create a string containing the CM-CM restriants for two groups of atoms. In most cases these will be some combination of protein and ligand atoms. Constants for the force are set in the protocol.""" + self.findAbsoluteCOMAtoms() # Groups contained within the constraint - protein_com = self.data["protein_com_atoms"] - lig1_com = self.data["ligand1_com_atoms"] - lig2_com = self.data["ligand2_com_atoms"] + protein_com = self.protein_com_atoms + lig1_com = self.lig1_com_atoms + lig2_com = self.lig2_com_atoms + self.getCMConstants() # Constants for the force - kf_cm = self.protocol.getCMKf() - tol_cm = self.protocol.getCMTol() + kf_cm = self.cm_kf + tol_cm = self.cm_tol output = "" output += "protein_com = {}\n".format(protein_com) output += "lig1_com = {}\n".format(lig1_com) @@ -259,10 +282,8 @@ def createCOMRestraint(self): output += "tolcm = {} * angstrom \n".format(tol_cm) # Add expression for cm restraint - output += """ - expr = "(kfcm/2)*step(d12-tolcm)*(d12-tolcm)^2 " - expr += " ; d12 = sqrt((x1 - offx - x2)^2 + (y1 - offy - y2)^2 + (z1 - offz - z2)^2 ) ; " - """ + output += 'expr = "(kfcm/2)*step(d12-tolcm)*(d12-tolcm)^2 "\n' + output += 'expr += " ; d12 = sqrt((x1 - offx - x2)^2 + (y1 - offy - y2)^2 + (z1 - offz - z2)^2 ) ; "\n' output += "force_CMCM = CustomCentroidBondForce(2, expr)\n" output += "force_CMCM.addPerBondParameter('kfcm')\n" output += "force_CMCM.addPerBondParameter('tolcm')\n" @@ -275,23 +296,24 @@ def createCOMRestraint(self): output += "force_CMCM.addGroup(lig2_com)\n" output += """parameters_free = ( - kfcm.value_unit(openmm.unit.kilojoules_per_mole / openmm.unit.nanometer**2), - tolcm.value_in_unit(openmm.unit.nanometer), + kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), + tolcm.value_in_unit(nanometer), displacement[0], displacement[1], displacement[2], - )""" + )\n""" output += """parameters_bound = ( - kfcm.value_unit(openmm.unit.kilojoules_per_mole / openmm.unit.nanometer**2), - tolcm.value_in_unit(openmm.unit.nanometer), + kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), + tolcm.value_in_unit(nanometer), 0.0, 0.0, 0.0, - )""" + )\n""" output += "force_CMCM.addBond((0,1), parameters_bound)\n" output += "force_CMCM.addBond((0,2), parameters_free)\n" + output += "#End of CM-CM force\n\n" return output @@ -299,11 +321,11 @@ def createAnnealingProtocol(self): """ Create a string which can be added directly to an openmm script to add an annealing protocol to the system. """ - options = self.protocol.getAnnealOptions().copy() - anneal_runtime = options["runtime"] - anneal_cycle_time = options["cycle_time"] - num_cycles = anneal_runtime / anneal_cycle_time - cycle_numsteps = anneal_cycle_time / self.protocol.getTimeStep() + anneal_runtime = self.protocol.getRunTime() + num_cycles = self.protocol.getAnnealNumCycles() + cycle_numsteps = int( + (anneal_runtime / num_cycles) / self.protocol.getTimeStep() + ) prot = self.protocol.getAnnealValues() # Find all entries whose keys contain "start" and create a dictionary of these entries @@ -326,15 +348,8 @@ def createAnnealingProtocol(self): output += f"for i in range({int(num_cycles)}):\n" output += f" simulation.step({cycle_numsteps})\n" output += " print(f'Cycle {i+1}')\n" - if options["save_state"]: - output += " state = simulation.context.getState(getPositions=True, getVelocities=True)\n" + output += " state = simulation.context.getState(getPositions=True, getVelocities=True)\n" output += " for key in values_start.keys():\n" output += " simulation.context.setParameter(key, simulation.context.getParameter(key) + increments[key])\n" - # Now add post-annealing equilibration if set - if options["post_anneal_eq_time"] is not None: - output += "#post-annealing equilibration\n" - output += "simulation.context.setParameter('lambda1', 0.5)\n" - output += "simulation.context.setParameter('lambda2', 0.5)\n" - output += f"simulation.step({int(options['post_anneal_eq_time']/self.protocol.getTimeStep())})\n" output += "simulation.saveState('openmm.xml')" return output diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 26593088e..ed0ffaa94 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1642,27 +1642,13 @@ def getFrame(self, index): if not type(index) is int: raise TypeError("'index' must be of type 'int'") - - if ( - isinstance(self._protocol, _Protocol.AToM) - and self._protocol._get_is_annealing_step() - ): - anneal_opts = self._protocol.getAnnealOptions() - max_index = ( - int( - (anneal_opts["runtime"] / self._protocol.getTimeStep()) - / self._protocol.getRestartInterval() - ) - - 1 - ) - else: - max_index = ( - int( - (self._protocol.getRunTime() / self._protocol.getTimeStep()) - / self._protocol.getRestartInterval() - ) - - 1 + max_index = ( + int( + (self._protocol.getRunTime() / self._protocol.getTimeStep()) + / self._protocol.getRestartInterval() ) + - 1 + ) if index < 0 or index > max_index: raise ValueError(f"'index' must be in range [0, {max_index}].") diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 1ead4e515..0724a485c 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -41,9 +41,10 @@ def __init__( cm_kf=25.0, cm_tol=5.0, anneal_values=None, - anneal_options=None, + anneal_numcycles=100, ): """ + TODO: Self-consistency with units - use BSS units and then convert to openmm later Create a protocol object. Parameters @@ -133,13 +134,13 @@ def __init__( The atoms to be restrained. align_kf_sep : float - The force constant for the distance portion of the alignment restraint (kcal/mol/A^2). + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/mol). + The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/mol). + The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). SC_umax : float The Umax value for the ATM softcore potential (kcal/mol). @@ -183,41 +184,8 @@ def __init__( The ending value for W0 Any unspecified values will use their default lambda=0 value. - anneal_options: dict - A dictionary of options for the annealing protocol. - If None, then default values will be used. - Should be a dictionary with the following keys: - "runtime" : :class:`Time ` - The total runtime for the annealing protocol. Default 1ns. - "cycle_time" : :class:`Time ` - The time for each annealing cycle. Default 20ps. - "use_core_alignment": bool - Whether to use core alignment restraints. Default True. - "anneal_k_distance" : float - The force constant for the distance portion of the alignment restraint (kcal/mol/A^2). - Default 25.0. - If use_core_alignment is False, then this value is ignored. - If use_core_alignment is True, and this value is not set, use the value defined in the align_k_distance parameter. - "anneal_k_theta" : float - The force constant for the angular portion of the alignment restaint (kcal/mol). - Default 10.0. - If use_core_alignment is False, then this value is ignored. - If use_core_alignment is True, and this value is not set, use the value defined in the align_k_theta parameter. - "anneal_k_psi" : float - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - If use_core_alignment is False, then this value is ignored. - If use_core_alignment is True, and this value is not set, use the value defined in the align_k_psi parameter. - "save_state" : bool - Whether to save the state for each annealing cycle. - Default False. - "post_anneal_eq_time" : :class:`Time ` - The time to run the system after the annealing protocol. - Default 25ps. - "output_dir" : str - The directory to save the output files to. Default "anneal_out". - - - + anneal_numcycles : int + The number of annealing cycles to perform, defines the rate at which values are incremented. Default 100. """ # Call the base class constructor. super().__init__() @@ -304,8 +272,8 @@ def __init__( # Store the anneal values. self.setAnnealValues(anneal_values) - # Store the anneal options. - self.setAnnealOptions(anneal_options) + # Set the number of annealing cycles. + self.setAnnealNumCycles(anneal_numcycles) # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) @@ -1247,188 +1215,32 @@ def capitalise_keys(input_dict): "'anneal_values' must be of type 'dict', 'None', or 'default'" ) - def getAnnealOptions(self): + def getAnnealNumCycles(self): """ - Return the anneal options. + Return the number of annealing cycles. Returns ------- - anneal_options : dict - The anneal options. + anneal_numcycles : int + The number of annealing cycles. """ - return self._anneal_options + return self._anneal_numcycles - def setAnnealOptions(self, anneal_options): + def setAnnealNumCycles(self, anneal_numcycles): """ - Set the anneal options. + Set the number of annealing cycles. Parameters ---------- - anneal_options : dict - The anneal options. - """ - default_options = { - "runtime": _Types.Time("1ns"), - "cycle_time": _Types.Time("20ps"), - "use_core_alignment": True, - "anneal_k_distance": self._align_kf_sep, - "anneal_k_theta": self._align_k_theta, - "anneal_k_psi": self._align_k_psi, - "post_anneal_eq_time": _Types.Time("25ps"), - "save_state": False, - "output_dir": "anneal_out", - } - if self._anneal_values is None and anneal_options is not None: - raise ValueError( - "Anneal options can only be set if anneal values are given" - ) - elif isinstance(anneal_options, dict): - final_options = {} - # find all options that arn't given and set them to the default - for key in default_options.keys(): - if key not in anneal_options: - final_options[key] = default_options[key] - if all(key in default_options for key in anneal_options.keys()): - # check that the values are of the correct type - if all( - isinstance(anneal_options[key], (str, int, float, bool)) - for key in anneal_options.keys() - ): - # check that the values are in the correct range - if "runtime" in anneal_options: - if isinstance(anneal_options["runtime"], str): - try: - _Types.Time(anneal_options["runtime"]) - final_options["runtime"] = _Types.Time( - anneal_options["runtime"] - ) - except: - raise ValueError( - "Unable to parse 'runtime' string." - ) from None - elif isinstance(anneal_options["runtime"], _Types.Time): - final_options["runtime"] = anneal_options["runtime"] - else: - raise ValueError( - "The values in the anneal options must be of type 'str' or 'BioSimSpace.Types.Time' for 'runtime'" - ) - if "cycle_time" in anneal_options: - if isinstance(anneal_options["cycle_time"], str): - try: - _Types.Time(anneal_options["cycle_time"]) - final_options["cycle_time"] = _Types.Time( - anneal_options["cycle_time"] - ) - except: - raise ValueError( - "Unable to parse 'cycle_time' string." - ) from None - elif isinstance(anneal_options["cycle_time"], _Types.Time): - final_options["cycle_time"] = anneal_options["cycle_time"] - else: - raise ValueError( - "The values in the anneal options must be of type 'str' or 'BioSimSpace.Types.Time' for 'cycle_time'" - ) - if "use_core_alignment" in anneal_options: - if isinstance(anneal_options["use_core_alignment"], bool): - final_options["use_core_alignment"] = anneal_options[ - "use_core_alignment" - ] - else: - raise ValueError( - "The values in the anneal options must be of type 'bool' for 'use_core_alignment'" - ) - if "anneal_k_distance" in anneal_options: - if isinstance( - anneal_options["anneal_k_distance"], (float, int) - ): - final_options["anneal_k_distance"] = float( - anneal_options["anneal_k_distance"] - ) - else: - raise ValueError( - "The values in the anneal options must be of type 'float' for 'Anneal_k_distance'" - ) - if "anneal_k_theta" in anneal_options: - if isinstance(anneal_options["anneal_k_theta"], (float, int)): - final_options["anneal_k_theta"] = float( - anneal_options["anneal_k_theta"] - ) - else: - raise ValueError( - "The values in the anneal options must be of type 'float' for 'Anneal_k_theta'" - ) - if "anneal_k_psi" in anneal_options: - if isinstance(anneal_options["anneal_k_psi"], (float, int)): - final_options["anneal_k_psi"] = float( - anneal_options["anneal_k_psi"] - ) - else: - raise ValueError( - "The values in the anneal options must be of type 'float' for 'Anneal_k_psi'" - ) - if "post_anneal_eq_time" in anneal_options: - if isinstance(anneal_options["post_anneal_eq_time"], str): - try: - _Types.Time(anneal_options["post_anneal_eq_time"]) - final_options["post_anneal_eq_time"] = _Types.Time( - anneal_options["post_anneal_eq_time"] - ) - except: - raise ValueError( - "Unable to parse 'post_anneal_eq_time' string." - ) from None - elif isinstance( - anneal_options["post_anneal_eq_time"], _Types.Time - ): - final_options["post_anneal_eq_time"] = anneal_options[ - "post_anneal_eq_time" - ] - elif anneal_options["post_anneal_eq_time"] is None: - final_options["post_anneal_eq_time"] = None - else: - raise ValueError( - "The values in the anneal options must be of type 'str', 'BioSimSpace.Types.Time' or None for 'post_anneal_eq_time'" - ) - # If a value of 0 is given, then set the value to None - if final_options["post_anneal_eq_time"].value() == 0: - final_options["post_anneal_eq_time"] = None - if "save_state" in anneal_options: - if isinstance(anneal_options["save_state"], bool): - final_options["save_state"] = anneal_options["save_state"] - else: - raise ValueError( - "The values in the anneal options must be of type 'bool' for 'save_state'" - ) - if "output_dir" in anneal_options: - if isinstance(anneal_options["output_dir"], str): - final_options["output_dir"] = anneal_options["output_dir"] - else: - raise ValueError( - "The values in the anneal options must be of type 'str' for 'output_dir'" - ) - else: - raise TypeError( - "The values in the anneal options must be of type 'str', 'bool', 'int' or 'float'" - ) - else: - # Find the keys that are not present so that they can be given in the error - keys_diff = [] - for key in anneal_options.keys(): - if key not in default_options.keys(): - keys_diff.append(key) - raise ValueError( - f"The following option(s) is not permitted in anneal_options {keys_diff}. Anneal options must contain the following keys: 'runtime', 'cycle_time', 'save_state', 'output_dir'" - ) - self._anneal_options = final_options - elif anneal_options is None and self._anneal_values is not None: - self._anneal_options = default_options - elif self._anneal_values is None and anneal_options is None: - self._anneal_options = None + anneal_numcycles : int + The number of annealing cycles. + """ + if isinstance(anneal_numcycles, int): + self._anneal_numcycles = anneal_numcycles else: - raise TypeError("'anneal_options' must be of type 'dict' or None") + raise TypeError("'anneal_numcycles' must be of type 'int'") def _set_lambda_values(self): # Internal function to set the 'master lambda' From d9224d1a47db69c31af10914b4809ca8c1bc422f Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 7 Mar 2024 16:58:40 +0000 Subject: [PATCH 014/123] Adds bespoke protocols for minimisation, equilibration and annealing of AToM systems. Includes large amounts of re-factoring of ATM code. --- .../FreeEnergy/AToM/_AToM_system.py | 629 +++- python/BioSimSpace/Process/_atom_utils.py | 74 +- python/BioSimSpace/Process/_openmm.py | 64 +- python/BioSimSpace/Protocol/_AToM.py | 2901 +++++++++++++---- 4 files changed, 2903 insertions(+), 765 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 27dd46b9c..4d18f6ab4 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -21,7 +21,15 @@ # Functionality for creating and viewing systems for Atomic transfer. -__all__ = ["makeSystem", "viewRigidCores", "relativeATM", "anneal"] +__all__ = [ + "makeSystem", + "viewRigidCores", + "relativeATM", + "anneal", + "Minimise", + "Equilibrate", + "Anneal", +] from ... import _is_notebook from ..._SireWrappers import Molecule as _Molecule @@ -34,10 +42,12 @@ from ...Align import rmsdAlign as _rmsdAlign from ... import Process as _Process from ...Notebook import View as _View +from ...Process._atom_utils import _AToMUtils as _AtomUtils import os as _os import shutil as _shutil import copy as _copy import warnings as _warnings +import math as _math class makeSystem: @@ -745,9 +755,9 @@ def __init__( # Validate the protocol. if protocol is not None: - from ...Protocol._AToM import AToM as _AToM + from ...Protocol._AToM import AToMProduction as _Production - if not isinstance(protocol, _AToM): + if not isinstance(protocol, _Production): raise TypeError( "'protocol' must be of type 'BioSimSpace.Protocol.AToM'" ) @@ -842,8 +852,6 @@ def _inititalise_runner(self, system): raise RuntimeError("No protocol has been set - cannot run simulations.") # Initialise list to store the processe processes = [] - # Make sure production protocol is used, not annealing - self._protocol._set_is_annealing_step(False) # Get the list of lambda1 values so that the total number of simulations can # be asserted lambda_list = self._protocol._get_lambda_values() @@ -1056,6 +1064,428 @@ def __init__( self._protocol = protocol self._protocol._set_is_annealing_step(True) # Use values from lambda=0 for annealing + + super().__init__( + system=system, + protocol=protocol, + exe=exe, + name="anneal", + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + ) + + +class Minimise(_Process.OpenMM): + """A class for minimising AToM systems. + Includes restraints.""" + + def __init__( + self, + system, + protocol, + exe=None, + platform="CPU", + seed=None, + work_dir="minimise", + property_map={}, + ): + # Validate the protocol. + if protocol is not None: + from ...Protocol._AToM import AToMMinimisation as _Minimisation + + if not isinstance(protocol, _Minimisation): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToM'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + super().__init__( + system=system, + protocol=protocol, + exe=exe, + name="minimise", + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + ) + + def _generate_config(self): + """Custom config generation, mixing in restraints + with minimisation protocol. AToM force is not applied here.""" + + util = _AtomUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + # Get the "space" property from the user mapping. + prop = self._property_map.get("space", "space") + + # Check whether the system contains periodic box information. + if prop in self._system._sire_object.propertyKeys(): + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = self._system._sire_object.property(prop) + has_box = box.isPeriodic() + except: + has_box = False + else: + _warnings.warn("No simulation box found. Assuming gas phase simulation.") + has_box = False + + # Write the OpenMM import statements. + self._add_config_imports() + self._add_config_monkey_patches() + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + self.addToConfig("\n# Initialise the molecular system.") + if not has_box or not self._has_water: + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Set the integrator. (Use zero-temperature as this is just a dummy step.) + self.addToConfig("\n# Define the integrator.") + self.addToConfig("integrator = LangevinMiddleIntegrator(0*kelvin,") + self.addToConfig(" 1/picosecond,") + self.addToConfig(" 0.002*picoseconds)") + + # Add the platform information. + self._add_config_platform() + + # Add the atom-specific restraints. + disp = util.createDisplacement() + self.addToConfig(disp) + if self._protocol.getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + if self._protocol.getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + self._add_config_restraints() + + # Set up the simulation object. + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") + self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") + self.addToConfig( + f"simulation.minimizeEnergy(maxIterations={self._protocol.getSteps()})" + ) + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters(state_interval=1, traj_interval=1) + + # Now run the simulation. + self.addToConfig( + "\n# Run a single simulation step to allow us to get the system and energy." + ) + self.addToConfig(f"simulation.step(1)") + + # Flag that this isn't a custom protocol. + self._protocol._setCustomised(False) + + +class Equilibrate(_Process.OpenMM): + """A class for running a pre-production equilibration step. + Required for most systems to preven atom overlapping issues.""" + + def __init__( + self, + system, + protocol, + exe=None, + platform="CPU", + seed=None, + work_dir="equilibrate", + property_map={}, + ): + # Validate the protocol. + if protocol is not None: + from ...Protocol._AToM import AToMEquilibration as _Equilibration + + if not isinstance(protocol, _Equilibration): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + super().__init__( + system=system, + protocol=protocol, + exe=exe, + name="equilibrate", + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + ) + + def _generate_config(self): + + util = _AtomUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + # Get the "space" property from the user mapping. + prop = self._property_map.get("space", "space") + + # Check whether the system contains periodic box information. + if prop in self._system._sire_object.propertyKeys(): + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = self._system._sire_object.property(prop) + has_box = box.isPeriodic() + except: + has_box = False + else: + _warnings.warn("No simulation box found. Assuming gas phase simulation.") + has_box = False + + # Write the OpenMM import statements and monkey-patches. + self._add_config_imports() + self._add_config_monkey_patches() + + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + is_periodic = True + self.addToConfig("\n# Initialise the molecular system.") + if not has_box or not self._has_water: + is_periodic = False + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Get the starting temperature and system pressure. + temperature = self._protocol.getStartTemperature().kelvin().value() + pressure = self._protocol.getPressure() + + # Add a Monte Carlo barostat if the simulation is at constant pressure. + is_const_pressure = False + if pressure is not None: + # Cannot use a barostat with a non-periodic system. + if not is_periodic: + _warnings.warn( + "Cannot use a barostat for a vacuum or non-periodic simulation" + ) + else: + is_const_pressure = True + + # Convert to bar and get the value. + pressure = pressure.bar().value() + + # Create the barostat and add its force to the system. + self.addToConfig("\n# Add a barostat to run at constant pressure.") + self.addToConfig( + f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" + ) + if self._is_seeded: + self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") + self.addToConfig("system.addForce(barostat)") + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + self._add_config_restraints() + + # Add the atom-specific restraints. + disp = util.createDisplacement() + self.addToConfig(disp) + if self._protocol.getUseATMForce(): + atm = util.createATMForce(index=None) + self.addToConfig(atm) + + if self._protocol.getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + if self._protocol.getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + # Set up the simulation object. + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") + self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Work out the number of integration steps. + steps = _math.ceil(self._protocol.getRunTime() / self._protocol.getTimeStep()) + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=False, + ) + + # Now run the simulation. + self.addToConfig("\n# Run the simulation.") + + # Constant temperature equilibration. + if self._protocol.isConstantTemp(): + self.addToConfig(f"simulation.step({steps})") + + # Heating / cooling cycle. + else: + # Adjust temperature every 100 cycles, assuming that there at + # least that many cycles. + if steps > 100: + # Work out the number of temperature cycles. + temp_cycles = _math.ceil(steps / 100) + + # Work out the temperature change per cycle. + delta_temp = ( + self._protocol.getEndTemperature().kelvin().value() + - self._protocol.getStartTemperature().kelvin().value() + ) / temp_cycles + + self.addToConfig(f"start_temperature = {temperature}") + self.addToConfig(f"for x in range(0, {temp_cycles}):") + self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") + self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") + if is_const_pressure: + self.addToConfig( + f" barostat.setDefaultTemperature(temperature*kelvin)" + ) + self.addToConfig(" simulation.step(100)") + else: + # Work out the temperature change per step. + delta_temp = ( + self._protocol.getEndTemperature().kelvin().value() + - self._protocol.getStartTemperature().kelvin().value() + ) / steps + + self.addToConfig(f"start_temperature = {temperature}") + self.addToConfig(f"for x in range(0, {steps}):") + self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") + self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") + if is_const_pressure: + self.addToConfig( + f" barostat.setDefaultTemperature(temperature*kelvin)" + ) + self.addToConfig(" simulation.step(1)") + + +class Anneal(_Process.OpenMM): + """A class for pre-production annealing of AToM systems.""" + + def __init__( + self, + system, + protocol, + exe=None, + platform="CUDA", + seed=None, + work_dir="anneal", + property_map={}, + ): + # Validate the protocol. + if protocol is not None: + from ...Protocol._AToM import AToMAnnealing as _Annealing + + if not isinstance(protocol, _Annealing): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + + if protocol.getAnnealValues() is None or protocol.getAnnealNumCycles is None: + raise ValueError("Anneal values and cycles must be specified") + + # Use this to set default values for the protocol protocol._set_current_index(0) super().__init__( system=system, @@ -1067,3 +1497,192 @@ def __init__( seed=seed, property_map=property_map, ) + + def _generate_config(self): + util = _AtomUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + # Get the "space" property from the user mapping. + prop = self._property_map.get("space", "space") + + # Check whether the system contains periodic box information. + if prop in self._system._sire_object.propertyKeys(): + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = self._system._sire_object.property(prop) + has_box = box.isPeriodic() + except: + has_box = False + else: + _warnings.warn("No simulation box found. Assuming gas phase simulation.") + has_box = False + + # Write the OpenMM import statements. + self._add_config_imports() + self._add_config_monkey_patches() + + # Add standard openMM config + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + is_periodic = True + self.addToConfig("\n# Initialise the molecular system.") + if not has_box or not self._has_water: + is_periodic = False + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Get the starting temperature and system pressure. + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() + + # Add a Monte Carlo barostat if the simulation is at constant pressure. + is_const_pressure = False + if pressure is not None: + # Cannot use a barostat with a non-periodic system. + if not is_periodic: + _warnings.warn( + "Cannot use a barostat for a vacuum or non-periodic simulation" + ) + else: + is_const_pressure = True + + # Convert to bar and get the value. + pressure = pressure.bar().value() + + # Create the barostat and add its force to the system. + self.addToConfig("\n# Add a barostat to run at constant pressure.") + self.addToConfig( + f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" + ) + if self._is_seeded: + self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") + self.addToConfig("system.addForce(barostat)") + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + self._add_config_restraints() + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + disp = util.createDisplacement() + self.addToConfig(disp) + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + if self._protocol.getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + + if self._protocol.getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") + self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / 100) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + # get annealing protocol from atom utils + annealing_protocol = util.createAnnealingProtocol() + self.addToConfig(annealing_protocol) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 545e48895..9f4bbd536 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -27,8 +27,16 @@ class _AToMUtils: # Internal class for creating openmm forces within an AToM process. def __init__(self, protocol): # Check for proper typing - if not isinstance(protocol, _Protocol.AToM): - raise TypeError("Protocol must be a BioSimSpace.Protocol object") + if not isinstance( + protocol, + ( + _Protocol.AToMMinimisation, + _Protocol.AToMEquilibration, + _Protocol.AToMAnnealing, + _Protocol.AToMProduction, + ), + ): + raise TypeError("Protocol must be an AToM protocol") self.protocol = protocol self.data = self.protocol.getData() @@ -71,6 +79,31 @@ def findAbsoluteCOMAtoms(self): np.add(self.lig2_first_atomnum, self.data["ligand2_com_atoms"]) ) + def getATMForceConstants(self, index=None): + self.lig1_atoms = self.getLigand1AtomsAsList() + self.lig2_atoms = self.getLigand2AtomsAsList() + self.SCUmax = self.protocol.getSCUmax() + self.SCU0 = self.protocol.getSCU0() + self.SCa = self.protocol.getSCa() + if isinstance(self.protocol, _Protocol.AToMProduction): + if index is None: + raise ValueError("Index must be set for AToMProduction protocol") + self.lambda1 = self.protocol.getLambda1()[index] + self.lambda2 = self.protocol.getLambda2()[index] + self.alpha = self.protocol.getAlpha()[index] + self.uh = self.protocol.getUh()[index] + self.w0 = self.protocol.getW0()[index] + self.direction = self.protocol.getDirections()[index] + elif isinstance( + self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) + ): + self.lambda1 = self.protocol.getLambda1() + self.lambda2 = self.protocol.getLambda2() + self.alpha = self.protocol.getAlpha() + self.uh = self.protocol.getUh() + self.w0 = self.protocol.getW0() + self.direction = self.protocol.getDirection() + def findDisplacement(self): d = self.data["displacement"] if isinstance(d, (list)): @@ -83,6 +116,15 @@ def findDisplacement(self): else: raise TypeError("Displacement must be a list or BioSimSpace vector") + def createDisplacement(self): + self.findDisplacement() + d = [round(x, 3) for x in self.displacement] + output = "" + output += "displacement = {}\n".format(self.displacement) + output += "#BioSimSpace output is in angstrom, divide by 10 to convert to the expected units of nm\n" + output += "displacement = [i/10.0 for i in displacement]\n" + return output + def createAlignmentForce(self): # This force is the same in every lambda window self.getAlignmentConstants() @@ -208,24 +250,20 @@ def createATMForce( Index of current window - used to set window-dependent variables. """ self.findDisplacement() + self.getATMForceConstants(index) output = "" output += "#Parameters for ATM force\n" - output += "lig1_atoms = {}\n".format(self.getLigand1AtomsAsList()) - output += "lig2_atoms = {}\n".format(self.getLigand2AtomsAsList()) - # Divide by 10 to convert to nm - d = [round(x, 3) for x in self.displacement] - output += "displacement = {}\n".format(d) - output += "#BioSimSpace output is in angstrom, divide by 10 to convert to the expected units of nm\n" - output += "displacement = [i/10.0 for i in displacement]\n" - output += "lambda1 = {}\n".format(self.protocol.getLambda1()[index]) - output += "lambda2 = {}\n".format(self.protocol.getLambda2()[index]) - output += "alpha = {}\n".format(self.protocol.getAlpha()[index]) - output += "uh = {}\n".format(self.protocol.getuh()[index]) - output += "w0 = {}\n".format(self.protocol.getW0()[index]) - output += "direction = {}\n".format(self.protocol.getDirections()[index]) - output += "sc_Umax = {}\n".format(self.protocol.getSCUmax()) - output += "sc_U0 = {}\n".format(self.protocol.getSCU0()) - output += "sc_a = {}\n".format(self.protocol.getSCa()) + output += "lig1_atoms = {}\n".format(self.lig1_atoms) + output += "lig2_atoms = {}\n".format(self.lig2_atoms) + output += "lambda1 = {}\n".format(self.lambda1) + output += "lambda2 = {}\n".format(self.lambda2) + output += "alpha = {}\n".format(self.alpha) + output += "uh = {}\n".format(self.uh) + output += "w0 = {}\n".format(self.w0) + output += "direction = {}\n".format(self.direction) + output += "sc_Umax = {}\n".format(self.SCUmax) + output += "sc_U0 = {}\n".format(self.SCU0) + output += "sc_a = {}\n".format(self.SCa) output += "\n\n #Define ATM force\n" output += """atm_force = ATMForce( diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index ed0ffaa94..353cee5cf 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1138,10 +1138,7 @@ def _generate_config(self): # TODO: check extra_options, extra_lines and property_map from ._atom_utils import _AToMUtils as _AToMUtils - if ( - self._protocol._get_window_index() is None - and not self._protocol._get_is_annealing_step() - ): + if self._protocol._get_window_index() is None: raise _IncompatibleError( "AToM protocol requires the current window index to be set." ) @@ -1235,7 +1232,6 @@ def _generate_config(self): # Atom force is the only window-dependent force self.addToConfig("\n# Add AToM Force.") self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - util = _AToMUtils(self._protocol) if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") @@ -1323,17 +1319,11 @@ def _generate_config(self): # Work out the number of steps per cycle. steps_per_cycle = int(steps / cycles) - if not self._protocol._get_is_annealing_step(): - # Now run the simulation. - self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") - self.addToConfig(f"for x in range(0, {cycles}):") - self.addToConfig(f" simulation.step({steps_per_cycle})") - self.addToConfig(f" simulation.saveState('{self._name}.xml')") - # Need a separate run protocol for annealing steps - else: - # get annealing protocol from atom utils - annealing_protocol = util.createAnnealingProtocol() - self.addToConfig(annealing_protocol) + # Now run the simulation. + self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") + self.addToConfig(f"for x in range(0, {cycles}):") + self.addToConfig(f" simulation.step({steps_per_cycle})") + self.addToConfig(f" simulation.saveState('{self._name}.xml')") else: raise _IncompatibleError( @@ -1479,7 +1469,9 @@ def getSystem(self, block="AUTO"): # Try to get the most recent trajectory frame. try: # Handle minimisation protocols separately. - if isinstance(self._protocol, _Protocol.Minimisation): + if isinstance( + self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + ): # Do we need to get coordinates for the lambda=1 state. if "is_lambda1" in self._property_map: is_lambda1 = True @@ -1527,29 +1519,13 @@ def getSystem(self, block="AUTO"): return old_system else: - # If this is an AToM annealing step then the runtime is different - if ( - isinstance(self._protocol, _Protocol.AToM) - and self._protocol._get_is_annealing_step() - ): - num_frames = int( - ( - self._protocol.getAnnealOptions()["runtime"] - / self._protocol.getTimeStep() - ) - / self._protocol.getRestartInterval() - ) - frac_complete = ( - self._protocol.getAnnealOptions()["runtime"] / self.getTime() - ) - else: - # Work out the total number of trajectory frames. - num_frames = int( - (self._protocol.getRunTime() / self._protocol.getTimeStep()) - / self._protocol.getRestartInterval() - ) - # Work out the fraction of the simulation that has been completed. - frac_complete = self._protocol.getRunTime() / self.getTime() + # Work out the total number of trajectory frames. + num_frames = int( + (self._protocol.getRunTime() / self._protocol.getTimeStep()) + / self._protocol.getRestartInterval() + ) + # Work out the fraction of the simulation that has been completed. + frac_complete = self._protocol.getRunTime() / self.getTime() # Make sure the fraction doesn't exceed one. OpenMM can report # time values that are larger than the number of integration steps # multiplied by the time step. @@ -2289,7 +2265,9 @@ def _add_config_reporters( ) # Disable specific state information for minimisation protocols. - if isinstance(self._protocol, _Protocol.Minimisation): + if isinstance( + self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + ): is_step = False is_time = False is_temperature = False @@ -2299,7 +2277,9 @@ def _add_config_reporters( is_temperature = True # Work out the total number of steps. - if isinstance(self._protocol, _Protocol.Minimisation): + if isinstance( + self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + ): total_steps = 1 else: total_steps = _math.ceil( diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 0724a485c..a9bec6954 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1,3 +1,5 @@ +from BioSimSpace.Units.Area import angstrom2 +from BioSimSpace.Units.Energy import kcal_per_mol from .. import Types as _Types from ._protocol import Protocol as _Protocol from ._position_restraint_mixin import _PositionRestraintMixin @@ -5,33 +7,18 @@ import math as _math import numpy as _np -__all__ = ["AToM"] +__all__ = ["AToMMinimisation", "AToMEquilibration", "AToMAnnealing", "AToMProduction"] # When placed in to BSS this needs to be AToM_protocol(protocol): -class AToM(_Protocol, _PositionRestraintMixin): +class _AToM(_Protocol, _PositionRestraintMixin): def __init__( self, data, - timestep=_Types.Time(2.0, "femtosecond"), - runtime=_Types.Time(1, "nanosecond"), - temperature=_Types.Temperature(300, "kelvin"), - pressure=_Types.Pressure(1, "atmosphere"), - thermostat_time_constant=_Types.Time(1.0, "picosecond"), - report_interval=100, - restart_interval=100, - restart=False, core_alignment=True, CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - num_lambda=22, - directions=None, - lambda1=None, - lambda2=None, - alpha=None, - uh=None, - W0=None, align_kf_sep=25.0, align_k_theta=10.0, align_k_psi=10.0, @@ -40,8 +27,6 @@ def __init__( sc_a=0.0625, cm_kf=25.0, cm_tol=5.0, - anneal_values=None, - anneal_numcycles=100, ): """ TODO: Self-consistency with units - use BSS units and then convert to openmm later @@ -53,30 +38,6 @@ def __init__( data : dict The AToM data dictionary. - timestep : :class:`Time ` - The integration timestep. - - runtime : :class:`Time ` - The running time. - - temperature : :class:`Temperature ` - The temperature. - - pressure : :class:`Pressure ` - The pressure. Pass pressure=None to use the NVT ensemble. - - thermostat_time_constant : :class:`Time ` - Time constant for thermostat coupling. - - report_interval : int - The frequency at which statistics are recorded. (In integration steps.) - - restart_interval : int - The frequency at which restart configurations and trajectory - - restart : bool - Whether this is a continuation of a previous simulation. - core_alignment : bool Whether to use rigid core restraints to align the two ligands. @@ -102,33 +63,7 @@ def __init__( force_constant : :class:`GeneralUnit `, float The force constant for the restraint potential. If a 'float' is passed, then default units of 'kcal_per_mol / angstrom**2' will - be used.Restraint ` - The restraint. - - num_lambda : int - The number of lambda values. This will be used to set the window-dependent - AToM parameters, unless they are explicitly set by the user. - - lambdas : list of float - The lambda values. - - direction : list of int - The direction values. Must be either 1 (forwards) or -1 (backwards). - - lambda1 : list of float - The lambda1 values. - - lambda2 : list of float - The lambda2 values. - - alpha : list of float - The alpha values. - - uh : list of float - The uh values. - - W0 : list of float - The W0 values. + be used. pos_restrained_atoms : list of int The atoms to be restrained. @@ -156,36 +91,6 @@ def __init__( cm_tol : float The tolerance for the center of mass distance restraint (A). - - anneal_values : dict, None, "default" - If None, then no annealing will be performed. - If "default", then lambda values will be annealed from 0 to 0.5. - If more complex annealing is required, then - a dictionary with some or all of the following keys should be given: - "lambda1_start" : float - The starting value for lambda1. - "lambda1_end" : float - The ending value for lambda1. - "lambda2_start" : float - The starting value for lambda2. - "lambda2_end" : float - The ending value for lambda2. - "alpha_start" : float - The starting value for alpha. - "alpha_end" : float - The ending value for alpha. - "uh_start" : float - The starting value for uh. - "uh_end" : float - The ending value for uh. - "W0_start" : float - The starting value for W0. - "W0_end" : float - The ending value for W0 - Any unspecified values will use their default lambda=0 value. - - anneal_numcycles : int - The number of annealing cycles to perform, defines the rate at which values are incremented. Default 100. """ # Call the base class constructor. super().__init__() @@ -196,55 +101,12 @@ def __init__( else: raise TypeError("'data' must be of type 'dict'") - self.setTimeStep(timestep) - - self.setRunTime(runtime) - - self.setTemperature(temperature) - - # Set the system pressure. - if pressure is not None: - self.setPressure(pressure) - else: - self._pressure = None - - self.setThermostatTimeConstant(thermostat_time_constant) - - self.setReportInterval(report_interval) - - self.setRestartInterval(restart_interval) - - self.setRestart(restart) - # Whether or not to use alignment restraints. self.setCoreAlignment(core_alignment) # Whether or not to use the CMCM restraint. self.setCMCMRestraint(CMCM_restraint) - # Set the number of lambda values. - # If other window-dependent parameters are not set, then set them to - # sensible defaults. - self.setNumLambda(num_lambda) - - # Store the direction values. - self.setDirections(directions) - - # Store the lambda1 values. - self.setLambda1(lambda1) - - # Store the lambda2 values. - self.setLambda2(lambda2) - - # Store the alpha values. - self.setAlpha(alpha) - - # Store the uh values. - self.setuh(uh) - - # Store the W0 values. - self.setW0(W0) - # Store the align_kf_sep value. self.setAlignKfSep(align_kf_sep) @@ -269,12 +131,6 @@ def __init__( # Store cm_tol value. self.setCMTol(cm_tol) - # Store the anneal values. - self.setAnnealValues(anneal_values) - - # Set the number of annealing cycles. - self.setAnnealNumCycles(anneal_numcycles) - # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) @@ -313,934 +169,2592 @@ def getData(self): """ return self._system_data - def getTimeStep(self): + def getCoreAlignment(self): """ - Return the time step. + Return core alignment boolean. Returns ------- - time : :class:`Time ` - The integration time step. + core_alignment : bool + Whether to use core alignment. """ - return self._timestep + return self._core_alignment - def setTimeStep(self, timestep): + def setCoreAlignment(self, core_alignment): """ - Set the time step. + Set the core alignment flag. Parameters ---------- - time : str, :class:`Time ` - The integration time step. + core_alignment : bool + Whether to use core alignment. """ - if isinstance(timestep, str): - try: - self._timestep = _Types.Time(timestep) - except: - raise ValueError("Unable to parse 'timestep' string.") from None - elif isinstance(timestep, _Types.Time): - self._timestep = timestep + if isinstance(core_alignment, bool): + self._core_alignment = core_alignment else: - raise TypeError( - "'timestep' must be of type 'str' or 'BioSimSpace.Types.Time'" - ) + print("Non-boolean core alignment flag. Defaulting to True!") + self._core_alignment = True - def getRunTime(self): + def getCMCMRestraint(self): """ - Return the running time. + Return CMCM restraint boolean. Returns ------- - runtime : :class:`Time ` - The simulation run time. + CMCM_restraint : bool + Whether to use the CMCM restraint. """ - return self._runtime + return self._CMCM_restraint - def setRunTime(self, runtime): + def setCMCMRestraint(self, CMCM_restraint): """ - Set the running time. + Set the CMCM restraint flag. Parameters ---------- - runtime : str, :class:`Time ` - The simulation run time. + CMCM_restraint : bool + Whether to use the CMCM restraint. """ - if isinstance(runtime, str): - try: - self._runtime = _Types.Time(runtime) - except: - raise ValueError("Unable to parse 'runtime' string.") from None - elif isinstance(runtime, _Types.Time): - self._runtime = runtime + if isinstance(CMCM_restraint, bool): + self._CMCM_restraint = CMCM_restraint else: - raise TypeError( - "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" - ) + print("Non-boolean CMCM restraint flag. Defaulting to True!") + self._CMCM_restraint = True - def getTemperature(self): + def getAlignKfSep(self): """ - Return temperature. + Return the align_kf_sep value. Returns ------- - temperature : :class:`Temperature ` - The simulation temperature. + align_kf_sep : str, BSS.Types.Length + The align_kf_sep value. """ - return self._temperature + return self._align_kf_sep - def setTemperature(self, temperature): + def setAlignKfSep(self, align_kf_sep): """ - Set the temperature. + Set the align_kf_sep value. Parameters ---------- - temperature : str, :class:`Temperature ` - The simulation temperature. + align_kf_sep : str, BSS.Types.Length + Length value for the alignment restraint. """ - if isinstance(temperature, str): - try: - self._temperature = _Types.Temperature(temperature) - except: - raise ValueError("Unable to parse 'temperature' string.") from None - elif isinstance(temperature, _Types.Temperature): - self._temperature = temperature + if isinstance(align_kf_sep, (int, float)): + self._align_kf_sep = float(align_kf_sep) else: - raise TypeError( - "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" - ) + raise TypeError("'align_kf_sep' must be of type 'float'") - def getPressure(self): + def getAlignKTheta(self): """ - Return the pressure. + Return the align_k_theta value. Returns ------- - pressure : :class:`Pressure ` - The pressure. + align_k_theta : str, BSS.Types.Angle + The align_k_theta value. """ - return self._pressure + return self._align_k_theta - def setPressure(self, pressure): + def setAlignKTheta(self, align_k_theta): """ - Set the pressure. + Set the align_k_theta value. Parameters ---------- - pressure : str, :class:`Pressure ` - The pressure. + align_k_theta : str, BSS.Types.Angle + Angle value for the alignment angular constraint. """ - if isinstance(pressure, str): - try: - self._pressure = _Types.Pressure(pressure) - except: - raise ValueError("Unable to parse 'pressure' string.") from None - elif isinstance(pressure, _Types.Pressure): - self._pressure = pressure + if isinstance(align_k_theta, (int, float)): + self._align_k_theta = float(align_k_theta) else: - raise TypeError( - "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" - ) + raise TypeError("'align_k_theta' must be of type 'float'") - def getThermostatTimeConstant(self): + def getAlignKPsi(self): """ - Return the time constant for the thermostat. + Return the align_k_psi value. Returns ------- - runtime : :class:`Time ` - The time constant for the thermostat. + align_k_psi : str, BSS.Types.Angle + The align_k_psi value. """ - return self._thermostat_time_constant + return self._align_k_psi - def setThermostatTimeConstant(self, thermostat_time_constant): + def setAlignKPsi(self, align_k_psi): """ - Set the time constant for the thermostat. + Set the align_k_psi value. Parameters ---------- - thermostat_time_constant : str, :class:`Time ` - The time constant for the thermostat. + align_k_psi : float + Angle value for the alignment dihedral constraint. """ - if isinstance(thermostat_time_constant, str): - try: - self._thermostat_time_constant = _Types.Time(thermostat_time_constant) - except: - raise ValueError( - "Unable to parse 'thermostat_time_constant' string." - ) from None - elif isinstance(thermostat_time_constant, _Types.Time): - self._thermostat_time_constant = thermostat_time_constant + if isinstance(align_k_psi, (int, float)): + self._align_k_psi = float(align_k_psi) else: - raise TypeError( - "'thermostat_time_constant' must be of type 'BioSimSpace.Types.Time'" - ) + raise TypeError("'align_k_psi' must be of type 'float'") - def getReportInterval(self): + def getSCUmax(self): """ - Return the interval between reporting statistics. (In integration steps.). + Return the SC_umax value. + Returns ------- - report_interval : int - The number of integration steps between reporting statistics. + + SC_umax : float + The SC_umax value. """ - return self._report_interval + return self._SC_umax - def setReportInterval(self, report_interval): + def setSCUmax(self, SC_umax): """ - Set the interval at which statistics are reported. (In integration steps.). + Set the SC_umax value. Parameters ---------- - report_interval : int - The number of integration steps between reporting statistics. + SC_umax : float + The SC_umax value. """ - if not type(report_interval) is int: - raise TypeError("'report_interval' must be of type 'int'") - - if report_interval <= 0: - print("'report_interval' must be positive. Using default (100).") - report_interval = 100 - - self._report_interval = report_interval + if isinstance(SC_umax, (int, float)): + self._SC_umax = float(SC_umax) + else: + raise TypeError("'SC_umax' must be of type 'float'") - def getRestartInterval(self): + def getSCU0(self): """ - Return the interval between saving restart confiugrations, and/or - trajectory frames. (In integration steps.). + Return the SC_u0 value. Returns ------- - restart_interval : int - The number of integration steps between saving restart - configurations and/or trajectory frames. + SC_u0 : float + The SC_u0 value. """ - return self._restart_interval + return self._SC_u0 - def setRestartInterval(self, restart_interval): + def setSCU0(self, SC_u0): """ - Set the interval between saving restart confiugrations, and/or - trajectory frames. (In integration steps.). + Set the SC_u0 value. Parameters ---------- - restart_interval : int - The number of integration steps between saving restart - configurations and/or trajectory frames. + SC_u0 : float + The SC_u0 value. """ - if not type(restart_interval) is int: - raise TypeError("'restart_interval' must be of type 'int'") - - if restart_interval <= 0: - print("'restart_interval' must be positive. Using default (500).") - restart_interval = 500 - - self._restart_interval = restart_interval + if isinstance(SC_u0, (int, float)): + self._SC_u0 = float(SC_u0) + else: + raise TypeError("'SC_u0' must be of type 'float'") - def isRestart(self): + def getSCa(self): """ - Return whether this restart simulation. + Return the sc_a value. Returns ------- - is_restart : bool - Whether this is a restart simulation. + sc_a : float + The sc_a value. """ - return self._restart + return self._sc_a - def setRestart(self, restart): + def setSCa(self, sc_a): """ - Set the restart flag. + Set the sc_a value. Parameters ---------- - restart : bool - Whether this is a restart simulation. + sc_a : float + The sc_a value. """ - if isinstance(restart, bool): - self._restart = restart + if isinstance(sc_a, (int, float)): + self._sc_a = float(sc_a) else: - print("Non-boolean restart flag. Defaulting to False!") - self._restart = False + raise TypeError("'sc_a' must be of type 'float'") - def getCoreAlignment(self): + def getCMKf(self): """ - Return core alignment boolean. + Return the cm_kf value. Returns ------- - core_alignment : bool - Whether to use core alignment. + cm_kf : float + The cm_kf value. """ - return self._core_alignment + return self._cm_kf - def setCoreAlignment(self, core_alignment): + def setCMKf(self, cm_kf): """ - Set the core alignment flag. + Set the cm_kf value. Parameters ---------- - core_alignment : bool - Whether to use core alignment. + cm_kf : float + The cm_kf value. """ - if isinstance(core_alignment, bool): - self._core_alignment = core_alignment + if isinstance(cm_kf, (int, float)): + self._cm_kf = float(cm_kf) else: - print("Non-boolean core alignment flag. Defaulting to True!") - self._core_alignment = True + raise TypeError("'cm_kf' must be of type 'float'") - def getCMCMRestraint(self): + def getCMTol(self): """ - Return CMCM restraint boolean. + Return the cm_tol value. Returns ------- - CMCM_restraint : bool - Whether to use the CMCM restraint. + cm_tol : float + The cm_tol value. """ - return self._CMCM_restraint + return self._cm_tol - def setCMCMRestraint(self, CMCM_restraint): + def setCMTol(self, cm_tol): """ - Set the CMCM restraint flag. + Set the cm_tol value. Parameters ---------- - CMCM_restraint : bool - Whether to use the CMCM restraint. + cm_tol : float + The cm_tol value. """ - if isinstance(CMCM_restraint, bool): - self._CMCM_restraint = CMCM_restraint + if isinstance(cm_tol, (int, float)): + self._cm_tol = float(cm_tol) else: - print("Non-boolean CMCM restraint flag. Defaulting to True!") - self._CMCM_restraint = True + raise TypeError("'cm_tol' must be of type 'float'") - def getNumLambda(self): - """ - Return the number of lambda values. + def _set_lambda_values(self): + # Internal function to set the 'master lambda' + # This lambda value serves as the master for all other window-dependent parameters + self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() - Returns - ------- + def _get_lambda_values(self): + # Internal function to get the 'master lambda' + # This lambda value serves as the master for all other window-dependent parameters + try: + return self._lambda_values + except: + return None - num_lambda : int - The number of lambda values. - """ - return self._num_lambda + def _set_current_index(self, index): + # Internal function to set index of the current simulation window + # set using the master lambda list + if index < 0: + raise ValueError("index must be positive") + if not isinstance(index, int): + raise TypeError("index must be an integer") + self._current_index = index - def setNumLambda(self, num_lambda): - """ - Set the number of lambda values. + def _get_window_index(self): + # Internal function to get the current window index + try: + return self._current_index + except: + return None - Parameters - ---------- - num_lambda : int - The number of lambda values. - """ - if isinstance(num_lambda, int) and num_lambda > 0: - if num_lambda % 2 != 0: - # Swap this print statement with a warning - print( - "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." - ) - self._num_lambda = num_lambda - self._set_lambda_values() - else: - raise TypeError("'num_lambda' must be of type 'int'") +class AToMMinimisation(_AToM): + """ + Minimisation protocol for AToM simulations. - def getDirections(self): - """ - Return the direction values. + Parameters + ---------- + data : dict + The AToM data dictionary. + + core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used. + + pos_restrained_atoms : list of int + The atoms to be restrained. + + align_kf_sep : float + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : float + The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + + align_k_psi : float + The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + + SC_umax : float + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : float + The uh value for the ATM softcore potential (kcal/mol). + + sc_a : float + The a value for the ATM softcore potential. + + cm_kf : float + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : float + The tolerance for the center of mass distance restraint (A). + """ + + def __init__( + self, + data, + steps=10000, + core_alignment=True, + CMCM_restraint=True, + restraint=None, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_kf_sep=25, + align_k_theta=10, + align_k_psi=10, + SC_umax=100, + SC_u0=50, + sc_a=0.0625, + cm_kf=25, + cm_tol=5, + ): + super().__init__( + data, + core_alignment, + CMCM_restraint, + restraint, + force_constant, + align_kf_sep, + align_k_theta, + align_k_psi, + SC_umax, + SC_u0, + sc_a, + cm_kf, + cm_tol, + ) + # Store the number of minimisation steps. + self.setSteps(steps) + + def getSteps(self): + """ + Return the number of minimisation steps. Returns ------- - lambdas : list of float - The directions. + steps : int + The number of minimisation steps. """ - return self._directions + return self._steps - def setDirections(self, directions): + def setSteps(self, steps): """ - Set the direction values. + Set the number of minimisation steps. Parameters ---------- - directions : list of int - The directions. + steps : int + The number of minimisation steps. """ - if isinstance(directions, list): - if len(directions) != self._num_lambda: - raise ValueError( - "'directions' must have the same length as 'num_lambda'" - ) - if all(item == 1 or item == -1 for item in directions): - self._directions = directions - else: - raise ValueError("all entries in 'directions' must be either 1 or -1") - elif directions is None: - self._directions = [1] * _math.floor(self._num_lambda / 2) + [ - -1 - ] * _math.ceil(self._num_lambda / 2) + if isinstance(steps, int): + self._steps = steps else: - raise TypeError("'directions' must be of type 'list' or 'None'") + raise TypeError("'steps' must be of type 'int'") - def getLambda1(self): + +class AToMEquilibration(_AToM): + """Equilibration protocol for AToM simulations.""" + + def __init__( + self, + data, + timestep=_Types.Time(2, "femtosecond"), + runtime=_Types.Time(0.2, "nanosecond"), + temperature_start=_Types.Temperature(300, "kelvin"), + temperature_end=_Types.Temperature(300, "kelvin"), + temperature=None, + pressure=_Types.Pressure(1, "atmosphere"), + thermostat_time_constant=_Types.Time(1, "picosecond"), + report_interval=100, + restart_interval=100, + core_alignment=True, + CMCM_restraint=True, + restraint=None, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_kf_sep=25, + align_k_theta=10, + align_k_psi=10, + SC_umax=100, + SC_u0=50, + sc_a=0.0625, + cm_kf=25, + cm_tol=5, + use_atm_force=False, + direction=1, + lambda1=0.0, + lambda2=0.0, + alpha=0.0, + uh=0.0, + W0=0.0, + ): """ - Return the lambda1 values. + Create a new equilibration protocol. + + Parameters + ---------- + + data : dict + The AToM data dictionary. + + timestep : :class:`Time ` + The integration timestep. + + runtime : :class:`Time ` + The running time. + + temperature_start : :class:`Temperature ` + The starting temperature. + + temperature_end : :class:`Temperature ` + The ending temperature. + + temperature : :class:`Temperature ` + The equilibration temperature. This takes precedence of over the other temperatures, i.e. to run at fixed temperature. + + pressure : :class:`Pressure ` + The pressure. Pass pressure=None to use the NVT ensemble. + + thermostat_time_constant : :class:`Time ` + Time constant for thermostat coupling. + + report_interval : int + The frequency at which statistics are recorded. (In integration steps.) + + restart_interval : int + The frequency at which restart configurations and trajectory + + core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used. + + pos_restrained_atoms : list of int + The atoms to be restrained. + + align_kf_sep : float + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : float + The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + + align_k_psi : float + The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + + SC_umax : float + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : float + The uh value for the ATM softcore potential (kcal/mol). + + sc_a : float + The a value for the ATM softcore potential. + + cm_kf : float + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : float + The tolerance for the center of mass distance restraint (A). + + use_atm_force : bool + Whether to apply the ATM force within the equilibration protocol. + + direction : str + The direction of the equilibration. Ignored if use_atm_force is False. + + lambda1 : float + The lambda1 value for the ATM force. Ignored if use_atm_force is False. + + lambda2 : float + The lambda2 value for the ATM force. Ignored if use_atm_force is False. + + alpha : float + The alpha value for the ATM force. Ignored if use_atm_force is False. + + uh : float + The uh value for the ATM force. Ignored if use_atm_force is False. + + W0 : float + The W0 value for the ATM force. Ignored if use_atm_force is False. + """ + super().__init__( + data, + core_alignment, + CMCM_restraint, + restraint, + force_constant, + align_kf_sep, + align_k_theta, + align_k_psi, + SC_umax, + SC_u0, + sc_a, + cm_kf, + cm_tol, + ) + # Store + self.setTimeStep(timestep) + + self.setRunTime(runtime) + # Constant temperature equilibration. + if temperature is not None: + self.setStartTemperature(temperature) + self.setEndTemperature(temperature) + self._is_const_temp = True + + # Heating / cooling simulation. + else: + self._is_const_temp = False + + # Set the start temperature. + self.setStartTemperature(temperature_start) + + # Set the final temperature. + self.setEndTemperature(temperature_end) + + # Constant temperature simulation. + if self._temperature_start == self._temperature_end: + self._is_const_temp = True + + # Set the system pressure. + if pressure is not None: + self.setPressure(pressure) + else: + self._pressure = None + + self.setThermostatTimeConstant(thermostat_time_constant) + + self.setReportInterval(report_interval) + + self.setRestartInterval(restart_interval) + + self.setUseATMForce(use_atm_force) + + self.setDirection(direction) + + self.setLambda1(lambda1) + + self.setLambda2(lambda2) + + self.setAlpha(alpha) + + self.setUh(uh) + + self.setW0(W0) + + def getTimeStep(self): + """ + Return the time step. Returns ------- - lambda1 : list of float - The lambda1 values. + time : :class:`Time ` + The integration time step. """ - return self._lambda1 + return self._timestep - def setLambda1(self, lambda1): + def setTimeStep(self, timestep): """ - Set the lambda1 values. + Set the time step. Parameters ---------- - lambda1 : list of float - The lambda1 values. + time : str, :class:`Time ` + The integration time step. """ - if isinstance(lambda1, list): - if len(lambda1) != self._num_lambda: - raise ValueError("'lambda1' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in lambda1): - self._lambda1 = lambda1 - else: - raise ValueError("all entries in 'lambda1' must be floats") - elif lambda1 is None: - # use numpy to create a list of floats - self._lambda1 = _np.concatenate( - [ - _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), - _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), - ] - ).tolist() - # Round the floats to 5 decimal places - self._lambda1 = [round(num, 5) for num in self._lambda1] + if isinstance(timestep, str): + try: + self._timestep = _Types.Time(timestep) + except: + raise ValueError("Unable to parse 'timestep' string.") from None + elif isinstance(timestep, _Types.Time): + self._timestep = timestep else: - raise TypeError("'lambda1' must be of type 'list'") + raise TypeError( + "'timestep' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) - def getLambda2(self): + def getRunTime(self): """ - Return the lambda2 values. + Return the running time. Returns ------- - lambda2 : list of float - The lambda2 values. + runtime : :class:`Time ` + The simulation run time. """ - return self._lambda2 + return self._runtime - def setLambda2(self, lambda2): + def setRunTime(self, runtime): """ - Set the lambda2 values. + Set the running time. Parameters ---------- - lambda2 : list of float - The lambda2 values. + runtime : str, :class:`Time ` + The simulation run time. """ - if isinstance(lambda2, list): - if len(lambda2) != self._num_lambda: - raise ValueError("'lambda2' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in lambda2): - if len(lambda2) != len(self._lambda1): - raise ValueError( - "'lambda2' and 'lambda1' must have the same length" - ) - self._lambda2 = lambda2 - else: - raise ValueError("all entries in 'lambda2' must be floats") - elif lambda2 is None: - # use numpy to create a list of floats - self._lambda2 = _np.concatenate( - [ - _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), - _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), - ] - ).tolist() - # Round the floats to 5 decimal places - self._lambda2 = [round(num, 5) for num in self._lambda2] + if isinstance(runtime, str): + try: + self._runtime = _Types.Time(runtime) + except: + raise ValueError("Unable to parse 'runtime' string.") from None + elif isinstance(runtime, _Types.Time): + self._runtime = runtime else: - raise TypeError("'lambda2' must be of type 'list'") + raise TypeError( + "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) - def getAlpha(self): + def getStartTemperature(self): + """ + Return the starting temperature. + + Returns + ------- + + temperature : :class:`Temperature ` + The starting temperature. + """ + return self._temperature_start + + def setStartTemperature(self, temperature): + """ + Set the starting temperature. + + Parameters + ---------- + + temperature : str, :class:`Temperature ` + The starting temperature. + """ + + if isinstance(temperature, str): + try: + temperature = _Types.Temperature(temperature) + except: + raise ValueError("Unable to parse 'temperature' string.") from None + elif not isinstance(temperature, _Types.Temperature): + raise TypeError( + "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" + ) + + if _math.isclose(temperature.kelvin().value(), 0, rel_tol=1e-6): + temperature._value = 0.01 + self._temperature_start = temperature + + def getEndTemperature(self): + """ + Return the final temperature. + + Returns + ------- + + temperature : :class:`Temperature ` + The final temperature. + """ + return self._temperature_end + + def setEndTemperature(self, temperature): + """ + Set the final temperature. + + Parameters + ---------- + + temperature : str, :class:`Temperature ` + The final temperature. + """ + if isinstance(temperature, str): + try: + temperature = _Types.Temperature(temperature) + except: + raise ValueError("Unable to parse 'temperature' string.") from None + elif not isinstance(temperature, _Types.Temperature): + raise TypeError( + "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" + ) + + if _math.isclose(temperature.kelvin().value(), 0, rel_tol=1e-6): + temperature._value = 0.01 + self._temperature_end = temperature + + def getPressure(self): + """ + Return the pressure. + + Returns + ------- + + pressure : :class:`Pressure ` + The pressure. + """ + return self._pressure + + def setPressure(self, pressure): + """ + Set the pressure. + + Parameters + ---------- + + pressure : str, :class:`Pressure ` + The pressure. + """ + if isinstance(pressure, str): + try: + self._pressure = _Types.Pressure(pressure) + except: + raise ValueError("Unable to parse 'pressure' string.") from None + elif isinstance(pressure, _Types.Pressure): + self._pressure = pressure + else: + raise TypeError( + "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" + ) + + def getThermostatTimeConstant(self): + """ + Return the time constant for the thermostat. + + Returns + ------- + + runtime : :class:`Time ` + The time constant for the thermostat. + """ + return self._thermostat_time_constant + + def setThermostatTimeConstant(self, thermostat_time_constant): + """ + Set the time constant for the thermostat. + + Parameters + ---------- + + thermostat_time_constant : str, :class:`Time ` + The time constant for the thermostat. + """ + if isinstance(thermostat_time_constant, str): + try: + self._thermostat_time_constant = _Types.Time(thermostat_time_constant) + except: + raise ValueError( + "Unable to parse 'thermostat_time_constant' string." + ) from None + elif isinstance(thermostat_time_constant, _Types.Time): + self._thermostat_time_constant = thermostat_time_constant + else: + raise TypeError( + "'thermostat_time_constant' must be of type 'BioSimSpace.Types.Time'" + ) + + def getReportInterval(self): + """ + Return the interval between reporting statistics. (In integration steps.). + Returns + ------- + report_interval : int + The number of integration steps between reporting statistics. + """ + return self._report_interval + + def setReportInterval(self, report_interval): + """ + Set the interval at which statistics are reported. (In integration steps.). + + Parameters + ---------- + + report_interval : int + The number of integration steps between reporting statistics. + """ + if not type(report_interval) is int: + raise TypeError("'report_interval' must be of type 'int'") + + if report_interval <= 0: + print("'report_interval' must be positive. Using default (100).") + report_interval = 100 + + self._report_interval = report_interval + + def getRestartInterval(self): + """ + Return the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Returns + ------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + return self._restart_interval + + def setRestartInterval(self, restart_interval): + """ + Set the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Parameters + ---------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + if not type(restart_interval) is int: + raise TypeError("'restart_interval' must be of type 'int'") + + if restart_interval <= 0: + print("'restart_interval' must be positive. Using default (500).") + restart_interval = 500 + + self._restart_interval = restart_interval + + def getUseATMForce(self): + """ + Return the use_atm_force flag. + + Returns + ------- + + use_atm_force : bool + Whether to apply the ATM force within the equilibration protocol. + """ + return self._use_atm_force + + def setUseATMForce(self, use_atm_force): + """ + Set the use_atm_force flag. + + Parameters + ---------- + + use_atm_force : bool + Whether to apply the ATM force within the equilibration protocol. + """ + if not isinstance(use_atm_force, bool): + raise TypeError("'use_atm_force' must be of type 'bool'") + self._use_atm_force = use_atm_force + + def getDirection(self): + """ + Return the direction of the equilibration. + + Returns + ------- + + direction : str + The direction of the equilibration. Ignored if use_atm_force is False. + """ + return self._direction + + def setDirection(self, direction): + """ + Set the direction of the equilibration. + + Parameters + ---------- + + direction : str + The direction of the equilibration. Ignored if use_atm_force is False. + """ + if int(direction) != 1 and int(direction) != -1: + raise TypeError("'direction' must have a value of 1 or -1") + self._direction = int(direction) + + def getLambda1(self): + """ + Return the lambda1 value for the ATM force. + + Returns + ------- + + lambda1 : float + The lambda1 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._lambda1 + + def setLambda1(self, lambda1): + """ + Set the lambda1 value for the ATM force. + + Parameters + ---------- + + lambda1 : float + The lambda1 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(lambda1, (float, int)): + raise TypeError("'lambda1' must be of type 'float'") + if not 0 <= float(lambda1) <= 0.5: + raise ValueError("lambda1 must be between 0 and 0.5") + self._lambda1 = float(lambda1) + + def getLambda2(self): + """ + Return the lambda2 value for the ATM force. + + Returns + ------- + + lambda2 : float + The lambda2 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._lambda2 + + def setLambda2(self, lambda2): + """ + Set the lambda2 value for the ATM force. + + Parameters + ---------- + + lambda2 : float + The lambda2 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(lambda2, (float, int)): + raise TypeError("'lambda2' must be of type 'float'") + if not 0 <= float(lambda2) <= 0.5: + raise ValueError("lambda2 must be between 0 and 0.5") + self._lambda2 = float(lambda2) + + def getAlpha(self): + """ + Return the alpha value for the ATM force. + + Returns + ------- + + alpha : float + The alpha value for the ATM force. Ignored if use_atm_force is False. + """ + return self._alpha + + def setAlpha(self, alpha): + """ + Set the alpha value for the ATM force. + + Parameters + ---------- + + alpha : float + The alpha value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(alpha, (float, int)): + raise TypeError("'alpha' must be of type 'float'") + self._alpha = float(alpha) + + def getUh(self): + """ + Return the uh value for the ATM force. + + Returns + ------- + + uh : float + The uh value for the ATM force. Ignored if use_atm_force is False. + """ + return self._uh + + def setUh(self, uh): + """ + Set the uh value for the ATM force. + + Parameters + ---------- + + uh : float + The uh value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(uh, (float, int)): + raise TypeError("'uh' must be of type 'float'") + self._uh = float(uh) + + def getW0(self): + """ + Return the W0 value for the ATM force. + + Returns + ------- + + W0 : float + The W0 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._W0 + + def setW0(self, W0): + """ + Set the W0 value for the ATM force. + + Parameters + ---------- + + W0 : float + The W0 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(W0, (float, int)): + raise TypeError("'W0' must be of type 'float'") + self._W0 = float(W0) + + def isConstantTemp(self): + """ + Return whether the protocol has a constant temperature. + + Returns + ------- + + is_const_temp : bool + Whether the temperature is fixed. + """ + return self._temperature_start == self._temperature_end + + @classmethod + def restraints(cls): + """ + Return a list of the supported restraint keywords. + + Returns + ------- + + restraints : [str] + A list of the supported restraint keywords. + """ + return cls._restraints.copy() + + +class AToMAnnealing(_AToM): + def __init__( + self, + data, + timestep=_Types.Time(2, "femtosecond"), + runtime=_Types.Time(1, "nanosecond"), + temperature=_Types.Temperature(300, "kelvin"), + pressure=_Types.Pressure(1, "atmosphere"), + thermostat_time_constant=_Types.Time(1, "picosecond"), + report_interval=100, + restart_interval=100, + core_alignment=True, + CMCM_restraint=True, + restraint=None, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_kf_sep=25, + align_k_theta=10, + align_k_psi=10, + SC_umax=100, + SC_u0=50, + sc_a=0.0625, + cm_kf=25, + cm_tol=5, + direction=1, + lambda1=0.0, + lambda2=0.0, + alpha=0.0, + uh=0.0, + W0=0.0, + anneal_values="default", + anneal_numcycles=100, + ): + """ + + data : dict + The AToM data dictionary. + + timestep : :class:`Time ` + The integration timestep. + + runtime : :class:`Time ` + The running time. + + temperature : :class:`Temperature ` + The temperature. + + pressure : :class:`Pressure ` + The pressure. Pass pressure=None to use the NVT ensemble. + + thermostat_time_constant : :class:`Time ` + Time constant for thermostat coupling. + + report_interval : int + The frequency at which statistics are recorded. (In integration steps.) + + restart_interval : int + The frequency at which restart configurations and trajectory + + core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used. + + pos_restrained_atoms : list of int + The atoms to be restrained. + + align_kf_sep : float + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : float + The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + + align_k_psi : float + The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + + SC_umax : float + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : float + The uh value for the ATM softcore potential (kcal/mol). + + sc_a : float + The a value for the ATM softcore potential. + + cm_kf : float + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : float + The tolerance for the center of mass distance restraint (A). + + direction : str + The direction of Annealing. + + lambda1 : float + The lambda1 value for the ATM force. Overwritten if values are given in anneal_values. + + lambda2 : float + The lambda2 value for the ATM force. Overwritten if values are given in anneal_values. + + alpha : float + The alpha value for the ATM force. Overwritten if values are given in anneal_values. + + uh : float + The uh value for the ATM force. Overwritten if values are given in anneal_values. + + W0 : float + The W0 value for the ATM force. Overwritten if values are given in anneal_values. + + anneal_values : dict, None, "default" + If None, then no annealing will be performed. + If "default", then lambda values will be annealed from 0 to 0.5. + If more complex annealing is required, then + a dictionary with some or all of the following keys should be given: + "lambda1_start" : float + The starting value for lambda1. + "lambda1_end" : float + The ending value for lambda1. + "lambda2_start" : float + The starting value for lambda2. + "lambda2_end" : float + The ending value for lambda2. + "alpha_start" : float + The starting value for alpha. + "alpha_end" : float + The ending value for alpha. + "uh_start" : float + The starting value for uh. + "uh_end" : float + The ending value for uh. + "W0_start" : float + The starting value for W0. + "W0_end" : float + The ending value for W0 + Any unspecified values will use their default lambda=0 value. + + anneal_numcycles : int + The number of annealing cycles to perform, defines the rate at which values are incremented. Default 100. + """ + super().__init__( + data, + core_alignment, + CMCM_restraint, + restraint, + force_constant, + align_kf_sep, + align_k_theta, + align_k_psi, + SC_umax, + SC_u0, + sc_a, + cm_kf, + cm_tol, + ) + + self.setTimeStep(timestep) + + self.setRunTime(runtime) + + self.setTemperature(temperature) + + # Set the system pressure. + if pressure is not None: + self.setPressure(pressure) + else: + self._pressure = None + + self.setThermostatTimeConstant(thermostat_time_constant) + + self.setReportInterval(report_interval) + + self.setRestartInterval(restart_interval) + + self.setDirection(direction) + + self.setLambda1(lambda1) + + self.setLambda2(lambda2) + + self.setAlpha(alpha) + + self.setUh(uh) + + self.setW0(W0) + + # Store the anneal values. + self.setAnnealValues(anneal_values) + + # Set the number of annealing cycles. + self.setAnnealNumCycles(anneal_numcycles) + + def getTimeStep(self): + """ + Return the time step. + + Returns + ------- + + time : :class:`Time ` + The integration time step. + """ + return self._timestep + + def setTimeStep(self, timestep): + """ + Set the time step. + + Parameters + ---------- + + time : str, :class:`Time ` + The integration time step. + """ + if isinstance(timestep, str): + try: + self._timestep = _Types.Time(timestep) + except: + raise ValueError("Unable to parse 'timestep' string.") from None + elif isinstance(timestep, _Types.Time): + self._timestep = timestep + else: + raise TypeError( + "'timestep' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) + + def getRunTime(self): + """ + Return the running time. + + Returns + ------- + + runtime : :class:`Time ` + The simulation run time. + """ + return self._runtime + + def setRunTime(self, runtime): + """ + Set the running time. + + Parameters + ---------- + + runtime : str, :class:`Time ` + The simulation run time. + """ + if isinstance(runtime, str): + try: + self._runtime = _Types.Time(runtime) + except: + raise ValueError("Unable to parse 'runtime' string.") from None + elif isinstance(runtime, _Types.Time): + self._runtime = runtime + else: + raise TypeError( + "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) + + def getTemperature(self): + """ + Return temperature. + + Returns + ------- + + temperature : :class:`Temperature ` + The simulation temperature. + """ + return self._temperature + + def setTemperature(self, temperature): + """ + Set the temperature. + + Parameters + ---------- + + temperature : str, :class:`Temperature ` + The simulation temperature. + """ + if isinstance(temperature, str): + try: + self._temperature = _Types.Temperature(temperature) + except: + raise ValueError("Unable to parse 'temperature' string.") from None + elif isinstance(temperature, _Types.Temperature): + self._temperature = temperature + else: + raise TypeError( + "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" + ) + + def getPressure(self): + """ + Return the pressure. + + Returns + ------- + + pressure : :class:`Pressure ` + The pressure. + """ + return self._pressure + + def setPressure(self, pressure): + """ + Set the pressure. + + Parameters + ---------- + + pressure : str, :class:`Pressure ` + The pressure. + """ + if isinstance(pressure, str): + try: + self._pressure = _Types.Pressure(pressure) + except: + raise ValueError("Unable to parse 'pressure' string.") from None + elif isinstance(pressure, _Types.Pressure): + self._pressure = pressure + else: + raise TypeError( + "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" + ) + + def getThermostatTimeConstant(self): + """ + Return the time constant for the thermostat. + + Returns + ------- + + runtime : :class:`Time ` + The time constant for the thermostat. + """ + return self._thermostat_time_constant + + def setThermostatTimeConstant(self, thermostat_time_constant): + """ + Set the time constant for the thermostat. + + Parameters + ---------- + + thermostat_time_constant : str, :class:`Time ` + The time constant for the thermostat. + """ + if isinstance(thermostat_time_constant, str): + try: + self._thermostat_time_constant = _Types.Time(thermostat_time_constant) + except: + raise ValueError( + "Unable to parse 'thermostat_time_constant' string." + ) from None + elif isinstance(thermostat_time_constant, _Types.Time): + self._thermostat_time_constant = thermostat_time_constant + else: + raise TypeError( + "'thermostat_time_constant' must be of type 'BioSimSpace.Types.Time'" + ) + + def getReportInterval(self): + """ + Return the interval between reporting statistics. (In integration steps.). + Returns + ------- + report_interval : int + The number of integration steps between reporting statistics. + """ + return self._report_interval + + def setReportInterval(self, report_interval): + """ + Set the interval at which statistics are reported. (In integration steps.). + + Parameters + ---------- + + report_interval : int + The number of integration steps between reporting statistics. + """ + if not type(report_interval) is int: + raise TypeError("'report_interval' must be of type 'int'") + + if report_interval <= 0: + print("'report_interval' must be positive. Using default (100).") + report_interval = 100 + + self._report_interval = report_interval + + def getRestartInterval(self): + """ + Return the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Returns + ------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + return self._restart_interval + + def setRestartInterval(self, restart_interval): + """ + Set the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). + + Parameters + ---------- + + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. + """ + if not type(restart_interval) is int: + raise TypeError("'restart_interval' must be of type 'int'") + + if restart_interval <= 0: + print("'restart_interval' must be positive. Using default (500).") + restart_interval = 500 + + self._restart_interval = restart_interval + + def getDirection(self): + """ + Return the direction of the equilibration. + + Returns + ------- + + direction : str + The direction of the equilibration. Ignored if use_atm_force is False. + """ + return self._direction + + def setDirection(self, direction): + """ + Set the direction of the equilibration. + + Parameters + ---------- + + direction : str + The direction of the equilibration. Ignored if use_atm_force is False. + """ + if int(direction) != 1 and int(direction) != -1: + raise TypeError("'direction' must have a value of 1 or -1") + self._direction = int(direction) + + def getLambda1(self): + """ + Return the lambda1 value for the ATM force. + + Returns + ------- + + lambda1 : float + The lambda1 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._lambda1 + + def setLambda1(self, lambda1): + """ + Set the lambda1 value for the ATM force. + + Parameters + ---------- + + lambda1 : float + The lambda1 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(lambda1, (float, int)): + raise TypeError("'lambda1' must be of type 'float'") + if not 0 <= float(lambda1) <= 0.5: + raise ValueError("lambda1 must be between 0 and 0.5") + self._lambda1 = float(lambda1) + + def getLambda2(self): + """ + Return the lambda2 value for the ATM force. + + Returns + ------- + + lambda2 : float + The lambda2 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._lambda2 + + def setLambda2(self, lambda2): + """ + Set the lambda2 value for the ATM force. + + Parameters + ---------- + + lambda2 : float + The lambda2 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(lambda2, (float, int)): + raise TypeError("'lambda2' must be of type 'float'") + if not 0 <= float(lambda2) <= 0.5: + raise ValueError("lambda2 must be between 0 and 0.5") + self._lambda2 = float(lambda2) + + def getAlpha(self): + """ + Return the alpha value for the ATM force. + + Returns + ------- + + alpha : float + The alpha value for the ATM force. Ignored if use_atm_force is False. + """ + return self._alpha + + def setAlpha(self, alpha): + """ + Set the alpha value for the ATM force. + + Parameters + ---------- + + alpha : float + The alpha value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(alpha, (float, int)): + raise TypeError("'alpha' must be of type 'float'") + self._alpha = float(alpha) + + def getUh(self): + """ + Return the uh value for the ATM force. + + Returns + ------- + + uh : float + The uh value for the ATM force. Ignored if use_atm_force is False. + """ + return self._uh + + def setUh(self, uh): + """ + Set the uh value for the ATM force. + + Parameters + ---------- + + uh : float + The uh value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(uh, (float, int)): + raise TypeError("'uh' must be of type 'float'") + self._uh = float(uh) + + def getW0(self): + """ + Return the W0 value for the ATM force. + + Returns + ------- + + W0 : float + The W0 value for the ATM force. Ignored if use_atm_force is False. + """ + return self._W0 + + def setW0(self, W0): + """ + Set the W0 value for the ATM force. + + Parameters + ---------- + + W0 : float + The W0 value for the ATM force. Ignored if use_atm_force is False. + """ + if not isinstance(W0, (float, int)): + raise TypeError("'W0' must be of type 'float'") + self._W0 = float(W0) + + def getAnnealValues(self): + """ + Return the anneal protocol. + + Returns + ------- + + anneal_protocol : dict + The anneal protocol. + """ + return self._anneal_values + + def setAnnealValues(self, anneal_values): + """ + Set the anneal protocol. + + Parameters + ---------- + + anneal_values : dict + The anneal values. + """ + + def capitalise_keys(input_dict): + # The first letter of each key needs to be captilised + # so that it can be properly passed to openMM later + capitalized_dict = {} + for key, value in input_dict.items(): + capitalized_key = key.capitalize() + capitalized_dict[capitalized_key] = value + return capitalized_dict + + if anneal_values == "default": + self._anneal_values = capitalise_keys( + { + "lambda1_start": 0, + "lambda1_end": 0.5, + "lambda2_start": 0, + "lambda2_end": 0.5, + } + ) + elif isinstance(anneal_values, dict): + # check that the given keys are valid + keys = [ + "lambda1_start", + "lambda1_end", + "lambda2_start", + "lambda2_end", + "alpha_start", + "alpha_end", + "uh_start", + "uh_end", + "W0_start", + "W0_end", + ] + if all(key in keys for key in anneal_values.keys()): + # check that the values are of the correct type + if all( + isinstance(anneal_values[key], (float, int)) + for key in anneal_values.keys() + ): + # check that the values are in the correct range + if all(0 <= value <= 1 for value in anneal_values.values()): + # check that, if {x}_start is given, then {x}_end is also given + # if this check passes, then the values should be valid + keys_start = [ + key for key in anneal_values if key.endswith("start") + ] + end = [key.split("_")[0] + "_end" for key in keys_start] + if all(key in anneal_values for key in end): + pass + else: + raise ValueError( + "If a start value is given, then an end value must also be given" + ) + else: + raise ValueError( + "The values in the anneal values must be in the range 0 to 1" + ) + else: + raise TypeError( + "The values in the anneal values must be of type 'float' or 'int' for all keys except 'runtime', which must be of type 'BioSimSpace.Types.Time'" + ) + else: + # find the keys that are not valid + invalid_keys = [key for key in anneal_values if key not in keys] + raise ValueError( + f"The anneal values can only contain the following keys: 'lambda1_start', 'lambda1_end', 'lambda2_start', 'lambda2_end', 'alpha_start', 'alpha_end', 'uh_start', 'uh_end', 'W0_start', 'W0_end', 'runtime'. The following keys are invalid: {invalid_keys}" + ) + self._anneal_values = capitalise_keys(anneal_values) + elif anneal_values is None: + self._anneal_values = None + + else: + raise TypeError( + "'anneal_values' must be of type 'dict', 'None', or 'default'" + ) + + def getAnnealNumCycles(self): + """ + Return the number of annealing cycles. + + Returns + ------- + + anneal_numcycles : int + The number of annealing cycles. + """ + return self._anneal_numcycles + + def setAnnealNumCycles(self, anneal_numcycles): + """ + Set the number of annealing cycles. + + Parameters + ---------- + + anneal_numcycles : int + The number of annealing cycles. + """ + if isinstance(anneal_numcycles, int): + self._anneal_numcycles = anneal_numcycles + else: + raise TypeError("'anneal_numcycles' must be of type 'int'") + + +class AToMProduction(_AToM): + def __init__( + self, + data, + timestep=_Types.Time(2, "femtosecond"), + runtime=_Types.Time(1, "nanosecond"), + temperature=_Types.Temperature(300, "kelvin"), + pressure=_Types.Pressure(1, "atmosphere"), + thermostat_time_constant=_Types.Time(1, "picosecond"), + report_interval=100, + restart_interval=100, + restart=False, + core_alignment=True, + CMCM_restraint=True, + restraint=None, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + num_lambda=22, + directions=None, + lambda1=None, + lambda2=None, + alpha=None, + uh=None, + W0=None, + align_kf_sep=25, + align_k_theta=10, + align_k_psi=10, + SC_umax=100, + SC_u0=50, + sc_a=0.0625, + cm_kf=25, + cm_tol=5, + ): + """ + data : dict + The AToM data dictionary. + + timestep : :class:`Time ` + The integration timestep. + + runtime : :class:`Time ` + The running time. + + temperature : :class:`Temperature ` + The temperature. + + pressure : :class:`Pressure ` + The pressure. Pass pressure=None to use the NVT ensemble. + + thermostat_time_constant : :class:`Time ` + Time constant for thermostat coupling. + + report_interval : int + The frequency at which statistics are recorded. (In integration steps.) + + restart_interval : int + The frequency at which restart configurations and trajectory + + core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used. + + pos_restrained_atoms : list of int + The atoms to be restrained. + + align_kf_sep : float + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : float + The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + + align_k_psi : float + The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + + SC_umax : float + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : float + The uh value for the ATM softcore potential (kcal/mol). + + sc_a : float + The a value for the ATM softcore potential. + + cm_kf : float + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : float + The tolerance for the center of mass distance restraint (A). + + restart : bool + Whether this is a continuation of a previous simulation. + + num_lambda : int + The number of lambda values. This will be used to set the window-dependent + AToM parameters, unless they are explicitly set by the user. + + lambdas : list of float + The lambda values. + + direction : list of int + The direction values. Must be either 1 (forwards) or -1 (backwards). + + lambda1 : list of float + The lambda1 values. + + lambda2 : list of float + The lambda2 values. + + alpha : list of float + The alpha values. + + uh : list of float + The uh values. + + W0 : list of float + The W0 values. + + """ + super().__init__( + data, + core_alignment, + CMCM_restraint, + restraint, + force_constant, + align_kf_sep, + align_k_theta, + align_k_psi, + SC_umax, + SC_u0, + sc_a, + cm_kf, + cm_tol, + ) + + self.setTimeStep(timestep) + + self.setRunTime(runtime) + + self.setTemperature(temperature) + + # Set the system pressure. + if pressure is not None: + self.setPressure(pressure) + else: + self._pressure = None + + self.setThermostatTimeConstant(thermostat_time_constant) + + self.setReportInterval(report_interval) + + self.setRestartInterval(restart_interval) + + # Set the restart flag. + self.setRestart(restart) + # Set the number of lambda values. + # If other window-dependent parameters are not set, then set them to + # sensible defaults. + self.setNumLambda(num_lambda) + + # Store the direction values. + self.setDirections(directions) + + # Store the lambda1 values. + self.setLambda1(lambda1) + + # Store the lambda2 values. + self.setLambda2(lambda2) + + # Store the alpha values. + self.setAlpha(alpha) + + # Store the uh values. + self.setuh(uh) + + # Store the W0 values. + self.setW0(W0) + + self._set_lambda_values() + + def getTimeStep(self): + """ + Return the time step. + + Returns + ------- + + time : :class:`Time ` + The integration time step. + """ + return self._timestep + + def setTimeStep(self, timestep): + """ + Set the time step. + + Parameters + ---------- + + time : str, :class:`Time ` + The integration time step. + """ + if isinstance(timestep, str): + try: + self._timestep = _Types.Time(timestep) + except: + raise ValueError("Unable to parse 'timestep' string.") from None + elif isinstance(timestep, _Types.Time): + self._timestep = timestep + else: + raise TypeError( + "'timestep' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) + + def getRunTime(self): """ - Return the alpha values. + Return the running time. Returns ------- - alpha : list of float - The alpha values. + runtime : :class:`Time ` + The simulation run time. """ - return self._alpha + return self._runtime - def setAlpha(self, alpha): + def setRunTime(self, runtime): """ - Set the alpha values. + Set the running time. Parameters ---------- - alpha : list of float - The alpha values. + runtime : str, :class:`Time ` + The simulation run time. """ - if isinstance(alpha, list): - if len(alpha) != self._num_lambda: - raise ValueError("'alpha' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in alpha): - self._alpha = alpha - else: - raise ValueError("all entries in 'alpha' must be floats") - elif alpha is None: - self._alpha = [0.00] * self._num_lambda + if isinstance(runtime, str): + try: + self._runtime = _Types.Time(runtime) + except: + raise ValueError("Unable to parse 'runtime' string.") from None + elif isinstance(runtime, _Types.Time): + self._runtime = runtime else: - raise TypeError("'alpha' must be of type 'list'") + raise TypeError( + "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" + ) - def getuh(self): + def getTemperature(self): """ - Return the uh values. + Return temperature. Returns ------- - uh : list of float - The uh values. + temperature : :class:`Temperature ` + The simulation temperature. """ - return self._uh + return self._temperature - def setuh(self, uh): + def setTemperature(self, temperature): """ - Set the uh values. + Set the temperature. Parameters ---------- - uh : list of float - The uh values. + temperature : str, :class:`Temperature ` + The simulation temperature. """ - if isinstance(uh, list): - if len(uh) != self._num_lambda: - raise ValueError("'uh' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in uh): - self._uh = uh - else: - raise ValueError("all entries in 'uh' must be floats") - elif uh is None: - self._uh = [0.00] * self._num_lambda + if isinstance(temperature, str): + try: + self._temperature = _Types.Temperature(temperature) + except: + raise ValueError("Unable to parse 'temperature' string.") from None + elif isinstance(temperature, _Types.Temperature): + self._temperature = temperature else: - raise TypeError("'uh' must be of type 'list'") + raise TypeError( + "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" + ) - def getW0(self): + def getPressure(self): """ - Return the W0 values. + Return the pressure. Returns ------- - W0 : list of float - The W0 values. + pressure : :class:`Pressure ` + The pressure. """ - return self._W0 + return self._pressure - def setW0(self, W0): + def setPressure(self, pressure): """ - Set the W0 values. + Set the pressure. Parameters ---------- - W0 : list of float - The W0 values. + pressure : str, :class:`Pressure ` + The pressure. """ - if isinstance(W0, list): - if len(W0) != self._num_lambda: - raise ValueError("'W0' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in W0): - self._W0 = W0 - else: - raise ValueError("all entries in 'W0' must be floats") - elif W0 is None: - self._W0 = [0.00] * self._num_lambda + if isinstance(pressure, str): + try: + self._pressure = _Types.Pressure(pressure) + except: + raise ValueError("Unable to parse 'pressure' string.") from None + elif isinstance(pressure, _Types.Pressure): + self._pressure = pressure else: - raise TypeError("'W0' must be of type 'list'") + raise TypeError( + "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" + ) - def getAlignKfSep(self): + def getThermostatTimeConstant(self): """ - Return the align_kf_sep value. + Return the time constant for the thermostat. Returns ------- - align_kf_sep : str, BSS.Types.Length - The align_kf_sep value. + runtime : :class:`Time ` + The time constant for the thermostat. """ - return self._align_kf_sep + return self._thermostat_time_constant - def setAlignKfSep(self, align_kf_sep): + def setThermostatTimeConstant(self, thermostat_time_constant): """ - Set the align_kf_sep value. + Set the time constant for the thermostat. Parameters ---------- - align_kf_sep : str, BSS.Types.Length - Length value for the alignment restraint. + thermostat_time_constant : str, :class:`Time ` + The time constant for the thermostat. """ - if isinstance(align_kf_sep, float): - self._align_kf_sep = align_kf_sep + if isinstance(thermostat_time_constant, str): + try: + self._thermostat_time_constant = _Types.Time(thermostat_time_constant) + except: + raise ValueError( + "Unable to parse 'thermostat_time_constant' string." + ) from None + elif isinstance(thermostat_time_constant, _Types.Time): + self._thermostat_time_constant = thermostat_time_constant else: - raise TypeError("'align_kf_sep' must be of type 'float'") + raise TypeError( + "'thermostat_time_constant' must be of type 'BioSimSpace.Types.Time'" + ) - def getAlignKTheta(self): + def getReportInterval(self): """ - Return the align_k_theta value. + Return the interval between reporting statistics. (In integration steps.). + Returns + ------- + report_interval : int + The number of integration steps between reporting statistics. + """ + return self._report_interval + + def setReportInterval(self, report_interval): + """ + Set the interval at which statistics are reported. (In integration steps.). + + Parameters + ---------- + + report_interval : int + The number of integration steps between reporting statistics. + """ + if not type(report_interval) is int: + raise TypeError("'report_interval' must be of type 'int'") + + if report_interval <= 0: + print("'report_interval' must be positive. Using default (100).") + report_interval = 100 + + self._report_interval = report_interval + + def getRestartInterval(self): + """ + Return the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). Returns ------- - align_k_theta : str, BSS.Types.Angle - The align_k_theta value. + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. """ - return self._align_k_theta + return self._restart_interval - def setAlignKTheta(self, align_k_theta): + def setRestartInterval(self, restart_interval): """ - Set the align_k_theta value. + Set the interval between saving restart confiugrations, and/or + trajectory frames. (In integration steps.). Parameters ---------- - align_k_theta : str, BSS.Types.Angle - Angle value for the alignment angular constraint. + restart_interval : int + The number of integration steps between saving restart + configurations and/or trajectory frames. """ - if isinstance(align_k_theta, float): - self._align_k_theta = align_k_theta - else: - raise TypeError("'align_k_theta' must be of type 'float'") + if not type(restart_interval) is int: + raise TypeError("'restart_interval' must be of type 'int'") - def getAlignKPsi(self): + if restart_interval <= 0: + print("'restart_interval' must be positive. Using default (500).") + restart_interval = 500 + + self._restart_interval = restart_interval + + def isRestart(self): """ - Return the align_k_psi value. + Return whether this restart simulation. Returns ------- - align_k_psi : str, BSS.Types.Angle - The align_k_psi value. + is_restart : bool + Whether this is a restart simulation. """ - return self._align_k_psi + return self._restart - def setAlignKPsi(self, align_k_psi): + def setRestart(self, restart): """ - Set the align_k_psi value. + Set the restart flag. Parameters ---------- - align_k_psi : float - Angle value for the alignment dihedral constraint. + restart : bool + Whether this is a restart simulation. """ - if isinstance(align_k_psi, float): - self._align_k_psi = align_k_psi + if isinstance(restart, bool): + self._restart = restart else: - raise TypeError("'align_k_psi' must be of type 'float'") + print("Non-boolean restart flag. Defaulting to False!") + self._restart = False - def getSCUmax(self): + def getNumLambda(self): """ - Return the SC_umax value. + Return the number of lambda values. Returns ------- - SC_umax : float - The SC_umax value. + num_lambda : int + The number of lambda values. """ - return self._SC_umax + return self._num_lambda - def setSCUmax(self, SC_umax): + def setNumLambda(self, num_lambda): """ - Set the SC_umax value. + Set the number of lambda values. Parameters ---------- - SC_umax : float - The SC_umax value. + num_lambda : int + The number of lambda values. """ - if isinstance(SC_umax, float): - self._SC_umax = SC_umax + if isinstance(num_lambda, int) and num_lambda > 0: + if num_lambda % 2 != 0: + # Swap this print statement with a warning + print( + "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." + ) + self._num_lambda = num_lambda + self._set_lambda_values() else: - raise TypeError("'SC_umax' must be of type 'float'") + raise TypeError("'num_lambda' must be of type 'int'") - def getSCU0(self): + def getDirections(self): """ - Return the SC_u0 value. + Return the direction values. Returns ------- - SC_u0 : float - The SC_u0 value. + lambdas : list of float + The directions. """ - return self._SC_u0 + return self._directions - def setSCU0(self, SC_u0): + def setDirections(self, directions): """ - Set the SC_u0 value. + Set the direction values. Parameters ---------- - SC_u0 : float - The SC_u0 value. + directions : list of int + The directions. """ - if isinstance(SC_u0, float): - self._SC_u0 = SC_u0 + if isinstance(directions, list): + if len(directions) != self._num_lambda: + raise ValueError( + "'directions' must have the same length as 'num_lambda'" + ) + if all(item == 1 or item == -1 for item in directions): + self._directions = directions + else: + raise ValueError("all entries in 'directions' must be either 1 or -1") + elif directions is None: + self._directions = [1] * _math.floor(self._num_lambda / 2) + [ + -1 + ] * _math.ceil(self._num_lambda / 2) else: - raise TypeError("'SC_u0' must be of type 'float'") + raise TypeError("'directions' must be of type 'list' or 'None'") - def getSCa(self): + def getLambda1(self): """ - Return the sc_a value. + Return the lambda1 values. Returns ------- - sc_a : float - The sc_a value. + lambda1 : list of float + The lambda1 values. """ - return self._sc_a + return self._lambda1 - def setSCa(self, sc_a): + def setLambda1(self, lambda1): """ - Set the sc_a value. + Set the lambda1 values. Parameters ---------- - sc_a : float - The sc_a value. + lambda1 : list of float + The lambda1 values. """ - if isinstance(sc_a, float): - self._sc_a = sc_a + if isinstance(lambda1, list): + if len(lambda1) != self._num_lambda: + raise ValueError("'lambda1' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in lambda1): + self._lambda1 = lambda1 + else: + raise ValueError("all entries in 'lambda1' must be floats") + elif lambda1 is None: + # use numpy to create a list of floats + self._lambda1 = _np.concatenate( + [ + _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), + _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), + ] + ).tolist() + # Round the floats to 5 decimal places + self._lambda1 = [round(num, 5) for num in self._lambda1] else: - raise TypeError("'sc_a' must be of type 'float'") + raise TypeError("'lambda1' must be of type 'list'") - def getCMKf(self): + def getLambda2(self): """ - Return the cm_kf value. + Return the lambda2 values. Returns ------- - cm_kf : float - The cm_kf value. + lambda2 : list of float + The lambda2 values. """ - return self._cm_kf + return self._lambda2 - def setCMKf(self, cm_kf): + def setLambda2(self, lambda2): """ - Set the cm_kf value. + Set the lambda2 values. Parameters ---------- - cm_kf : float - The cm_kf value. + lambda2 : list of float + The lambda2 values. """ - if isinstance(cm_kf, float): - self._cm_kf = cm_kf + if isinstance(lambda2, list): + if len(lambda2) != self._num_lambda: + raise ValueError("'lambda2' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in lambda2): + if len(lambda2) != len(self._lambda1): + raise ValueError( + "'lambda2' and 'lambda1' must have the same length" + ) + self._lambda2 = lambda2 + else: + raise ValueError("all entries in 'lambda2' must be floats") + elif lambda2 is None: + # use numpy to create a list of floats + self._lambda2 = _np.concatenate( + [ + _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), + _np.linspace(0.5, 0, _math.ceil(self._num_lambda / 2)), + ] + ).tolist() + # Round the floats to 5 decimal places + self._lambda2 = [round(num, 5) for num in self._lambda2] else: - raise TypeError("'cm_kf' must be of type 'float'") + raise TypeError("'lambda2' must be of type 'list'") - def getCMTol(self): + def getAlpha(self): """ - Return the cm_tol value. + Return the alpha values. Returns ------- - cm_tol : float - The cm_tol value. + alpha : list of float + The alpha values. """ - return self._cm_tol + return self._alpha - def setCMTol(self, cm_tol): + def setAlpha(self, alpha): """ - Set the cm_tol value. + Set the alpha values. Parameters ---------- - cm_tol : float - The cm_tol value. + alpha : list of float + The alpha values. """ - if isinstance(cm_tol, float): - self._cm_tol = cm_tol + if isinstance(alpha, list): + if len(alpha) != self._num_lambda: + raise ValueError("'alpha' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in alpha): + self._alpha = alpha + else: + raise ValueError("all entries in 'alpha' must be floats") + elif alpha is None: + self._alpha = [0.00] * self._num_lambda else: - raise TypeError("'cm_tol' must be of type 'float'") + raise TypeError("'alpha' must be of type 'list'") - def getAnnealValues(self): + def getUh(self): """ - Return the anneal protocol. + Return the uh values. Returns ------- - anneal_protocol : dict - The anneal protocol. + uh : list of float + The uh values. """ - return self._anneal_values + return self._uh - def setAnnealValues(self, anneal_values): + def setuh(self, uh): """ - Set the anneal protocol. + Set the uh values. Parameters ---------- - anneal_values : dict - The anneal values. + uh : list of float + The uh values. """ - - def capitalise_keys(input_dict): - # The first letter of each key needs to be captilised - # so that it can be properly passed to openMM later - capitalized_dict = {} - for key, value in input_dict.items(): - capitalized_key = key.capitalize() - capitalized_dict[capitalized_key] = value - return capitalized_dict - - if anneal_values == "default": - self._anneal_values = capitalise_keys( - { - "lambda1_start": 0, - "lambda1_end": 0.5, - "lambda2_start": 0, - "lambda2_end": 0.5, - } - ) - elif isinstance(anneal_values, dict): - # check that the given keys are valid - keys = [ - "lambda1_start", - "lambda1_end", - "lambda2_start", - "lambda2_end", - "alpha_start", - "alpha_end", - "uh_start", - "uh_end", - "W0_start", - "W0_end", - ] - if all(key in anneal_values for key in keys): - # check that the values are of the correct type - if all(isinstance(anneal_values[key], (float, int)) for key in keys): - # check that the values are in the correct range - if ( - 0 <= anneal_values["lambda1_start"] <= 1 - and 0 <= anneal_values["lambda1_end"] <= 1 - and 0 <= anneal_values["lambda2_start"] <= 1 - and 0 <= anneal_values["lambda2_end"] <= 1 - and 0 <= anneal_values["alpha_start"] <= 1 - and 0 <= anneal_values["alpha_end"] <= 1 - and 0 <= anneal_values["uh_start"] <= 1 - and 0 <= anneal_values["uh_end"] <= 1 - and 0 <= anneal_values["W0_start"] <= 1 - and 0 <= anneal_values["W0_end"] <= 1 - ): - # check that, if {x}_start is given, then {x}_end is also given - # if this check passes, then the values should be valid - if all(key.endswith("_start") for key in anneal_values): - if all( - key.replace("_start", "_end") in anneal_values - for key in anneal_values - ): - pass - else: - raise ValueError( - "If a value is given for {x}_start, then a value must also be given for {x}_end" - ) - - else: - raise ValueError( - "The values in the anneal values must be in the range 0 to 1" - ) - else: - raise TypeError( - "The values in the anneal values must be of type 'float' or 'int' for all keys except 'runtime', which must be of type 'BioSimSpace.Types.Time'" - ) + if isinstance(uh, list): + if len(uh) != self._num_lambda: + raise ValueError("'uh' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in uh): + self._uh = uh else: - raise ValueError( - "The anneal values can only contain the following keys: 'lambda1_start', 'lambda1_end', 'lambda2_start', 'lambda2_end', 'alpha_start', 'alpha_end', 'uh_start', 'uh_end', 'W0_start', 'W0_end', 'runtime'" - ) - self._anneal_values = capitalise_keys(anneal_values) - elif anneal_values is None: - self._anneal_values = None - + raise ValueError("all entries in 'uh' must be floats") + elif uh is None: + self._uh = [0.00] * self._num_lambda else: - raise TypeError( - "'anneal_values' must be of type 'dict', 'None', or 'default'" - ) + raise TypeError("'uh' must be of type 'list'") - def getAnnealNumCycles(self): + def getW0(self): """ - Return the number of annealing cycles. + Return the W0 values. Returns ------- - anneal_numcycles : int - The number of annealing cycles. + W0 : list of float + The W0 values. """ - return self._anneal_numcycles + return self._W0 - def setAnnealNumCycles(self, anneal_numcycles): + def setW0(self, W0): """ - Set the number of annealing cycles. + Set the W0 values. Parameters ---------- - anneal_numcycles : int - The number of annealing cycles. + W0 : list of float + The W0 values. """ - if isinstance(anneal_numcycles, int): - self._anneal_numcycles = anneal_numcycles + if isinstance(W0, list): + if len(W0) != self._num_lambda: + raise ValueError("'W0' must have the same length as 'num_lambda'") + if all(isinstance(item, float) for item in W0): + self._W0 = W0 + else: + raise ValueError("all entries in 'W0' must be floats") + elif W0 is None: + self._W0 = [0.00] * self._num_lambda else: - raise TypeError("'anneal_numcycles' must be of type 'int'") + raise TypeError("'W0' must be of type 'list'") def _set_lambda_values(self): # Internal function to set the 'master lambda' @@ -1274,16 +2788,3 @@ def _get_window_index(self): return self._current_index except: return None - - def _set_is_annealing_step(self, is_annealing_step=False): - # Internal function to set whether the current step is an annealing step - if not isinstance(is_annealing_step, bool): - raise TypeError("is_annealing_step must be a boolean") - self._is_annealing_step = is_annealing_step - - def _get_is_annealing_step(self): - # Internal function to get whether the current step is an annealing step - try: - return self._is_annealing_step - except: - return None From 6dacf1dfc4784384ee3db4105f95a2273c479a4c Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 8 Mar 2024 17:10:53 +0000 Subject: [PATCH 015/123] Refactoring of AToM production, removing it from openmm process to its own process --- .../FreeEnergy/AToM/_AToM_system.py | 303 ++++++++++++++---- python/BioSimSpace/Process/_openmm.py | 191 ----------- python/BioSimSpace/Protocol/_AToM.py | 4 +- 3 files changed, 240 insertions(+), 258 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 4d18f6ab4..0b52808f9 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -25,7 +25,6 @@ "makeSystem", "viewRigidCores", "relativeATM", - "anneal", "Minimise", "Equilibrate", "Anneal", @@ -759,7 +758,7 @@ def __init__( if not isinstance(protocol, _Production): raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToM'" + "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" ) else: self._protocol = protocol @@ -862,7 +861,7 @@ def _inititalise_runner(self, system): first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) # Create the first simulation, which will be copied and used for future simulations. - first_process = _Process.OpenMM( + first_process = _Production( system=system, protocol=self._protocol, platform=self._platform, @@ -902,7 +901,7 @@ def _inititalise_runner(self, system): new_lam_1 = self._protocol.getLambda1()[index] new_lam_2 = self._protocol.getLambda2()[index] new_alpha = self._protocol.getAlpha()[index] - new_uh = self._protocol.getuh()[index] + new_uh = self._protocol.getUh()[index] new_w0 = self._protocol.getW0()[index] new_direction = self._protocol.getDirections()[index] with open(new_dir + "/openmm_script.py", "r") as f: @@ -1016,67 +1015,6 @@ def move_to_origin(lig): return ngl -class anneal(_Process.OpenMM): - """A class for running a pre-production annealing step. - Required for most systems to preven atom overlapping issues.""" - - def __init__( - self, - system, - protocol, - exe=None, - platform="CPU", - seed=None, - work_dir="anneal", - property_map={}, - ): - """ - Constructor. - - Parameters - ---------- - system : BioSimSpace._SireWrappers.System - A prepared AToM system containing a protein and two ligands, one bound and one - - protocol : BioSimSpace.Protocol.AToM - A protocol object that defines the RBFE protocol and includes an annealing step. - - exe : str - The full path to the Python interpreter used to run OpenMM. - - platform : str - The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. - For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, - e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. - For OPENCL, instead use OPENCL_VISIBLE_DEVICES. - - work_dir : str - The working directory for the simulation. - - seed : int - A random number seed. - - property_map : dict - A dictionary that maps system "properties" to their user defined - values. This allows the user to refer to properties with their - own naming scheme, e.g. { "charge" : "my-charge" } - """ - self._protocol = protocol - self._protocol._set_is_annealing_step(True) - # Use values from lambda=0 for annealing - - super().__init__( - system=system, - protocol=protocol, - exe=exe, - name="anneal", - platform=platform, - work_dir=work_dir, - seed=seed, - property_map=property_map, - ) - - class Minimise(_Process.OpenMM): """A class for minimising AToM systems. Includes restraints.""" @@ -1686,3 +1624,238 @@ def _generate_config(self): # get annealing protocol from atom utils annealing_protocol = util.createAnnealingProtocol() self.addToConfig(annealing_protocol) + + +class _Production(_Process.OpenMM): + """An internal class for running a single production AToM simulation.""" + + def __init__( + self, + system, + protocol, + exe=None, + platform="CUDA", + seed=None, + work_dir="anneal", + property_map={}, + ): + # Validate the protocol. + if protocol is not None: + from ...Protocol._AToM import AToMProduction as _Production + + if not isinstance(protocol, _Production): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + + # Use this to set default values for the protocol + protocol._set_current_index(0) + super().__init__( + system=system, + protocol=protocol, + exe=exe, + name="openmm", + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + ) + + def _generate_config(self): + # Clear the existing configuration list. + self._config = [] + + # Get the "space" property from the user mapping. + prop = self._property_map.get("space", "space") + + # Check whether the system contains periodic box information. + if prop in self._system._sire_object.propertyKeys(): + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = self._system._sire_object.property(prop) + has_box = box.isPeriodic() + except: + has_box = False + else: + _warnings.warn("No simulation box found. Assuming gas phase simulation.") + has_box = False + # TODO: check extra_options, extra_lines and property_map + util = _AtomUtils(self._protocol) + if self._protocol._get_window_index() is None: + raise _IncompatibleError( + "AToM protocol requires the current window index to be set." + ) + + # Write the OpenMM import statements. + self._add_config_imports() + self._add_config_monkey_patches() + + # Add standard openMM config + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + is_periodic = True + self.addToConfig("\n# Initialise the molecular system.") + if not has_box or not self._has_water: + is_periodic = False + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Get the starting temperature and system pressure. + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() + + # Add a Monte Carlo barostat if the simulation is at constant pressure. + is_const_pressure = False + if pressure is not None: + # Cannot use a barostat with a non-periodic system. + if not is_periodic: + _warnings.warn( + "Cannot use a barostat for a vacuum or non-periodic simulation" + ) + else: + is_const_pressure = True + + # Convert to bar and get the value. + pressure = pressure.bar().value() + + # Create the barostat and add its force to the system. + self.addToConfig("\n# Add a barostat to run at constant pressure.") + self.addToConfig( + f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" + ) + if self._is_seeded: + self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") + self.addToConfig("system.addForce(barostat)") + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + self._add_config_restraints() + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + if self._protocol.getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + + if self._protocol.getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") + self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / 100) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + # Now run the simulation. + self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") + self.addToConfig(f"for x in range(0, {cycles}):") + self.addToConfig(f" simulation.step({steps_per_cycle})") + self.addToConfig(f" simulation.saveState('{self._name}.xml')") diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 353cee5cf..6876262af 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1134,197 +1134,6 @@ def _generate_config(self): setattr(self, "sampleConfigurations", self._sampleConfigurations) setattr(self, "getTime", self._getTime) - elif isinstance(self._protocol, _Protocol.AToM): - # TODO: check extra_options, extra_lines and property_map - from ._atom_utils import _AToMUtils as _AToMUtils - - if self._protocol._get_window_index() is None: - raise _IncompatibleError( - "AToM protocol requires the current window index to be set." - ) - - util = _AToMUtils(self._protocol) - - # Write the OpenMM import statements. - self._add_config_imports() - self._add_config_monkey_patches() - - # Add standard openMM config - self.addToConfig("from glob import glob") - self.addToConfig("import math") - self.addToConfig("import os") - self.addToConfig("import shutil") - - # Load the input files. - self.addToConfig("\n# Load the topology and coordinate files.") - self.addToConfig( - "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." - ) - self.addToConfig( - f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" - ) - - # Don't use a cut-off if this is a vacuum simulation or if box information - # is missing. - is_periodic = True - self.addToConfig("\n# Initialise the molecular system.") - if not has_box or not self._has_water: - is_periodic = False - self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") - else: - self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") - self.addToConfig(" nonbondedCutoff=1*nanometer,") - self.addToConfig(" constraints=HBonds)") - - # Get the starting temperature and system pressure. - temperature = self._protocol.getTemperature().kelvin().value() - pressure = self._protocol.getPressure() - - # Add a Monte Carlo barostat if the simulation is at constant pressure. - is_const_pressure = False - if pressure is not None: - # Cannot use a barostat with a non-periodic system. - if not is_periodic: - _warnings.warn( - "Cannot use a barostat for a vacuum or non-periodic simulation" - ) - else: - is_const_pressure = True - - # Convert to bar and get the value. - pressure = pressure.bar().value() - - # Create the barostat and add its force to the system. - self.addToConfig("\n# Add a barostat to run at constant pressure.") - self.addToConfig( - f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" - ) - if self._is_seeded: - self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") - self.addToConfig("system.addForce(barostat)") - - # Add any position restraints. - if self._protocol.getRestraint() is not None: - self._add_config_restraints() - - # Get the integration time step from the protocol. - timestep = self._protocol.getTimeStep().picoseconds().value() - - # Set the integrator. - self.addToConfig("\n# Define the integrator.") - self.addToConfig( - f"integrator = LangevinMiddleIntegrator({temperature}*kelvin," - ) - friction = ( - 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() - ) - self.addToConfig( - f" {friction:.5f}/picosecond," - ) - self.addToConfig(f" {timestep}*picoseconds)") - if self._is_seeded: - self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") - - # Add the platform information. - self._add_config_platform() - - # Use utils to create AToM-specific forces - # Atom force is the only window-dependent force - self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - if self._protocol.getCoreAlignment(): - alignment = util.createAlignmentForce() - self.addToConfig("\n# Add alignment force.") - self.addToConfig(alignment) - - if self._protocol.getCMCMRestraint(): - CMCM = util.createCOMRestraint() - self.addToConfig("\n# Add COM restraint.") - self.addToConfig(CMCM) - - self.addToConfig("\n# Initialise and configure the simulation object.") - self.addToConfig("simulation = Simulation(prm.topology,") - self.addToConfig(" system,") - self.addToConfig(" integrator,") - self.addToConfig(" platform,") - self.addToConfig(" properties)") - if self._protocol.getRestraint() is not None: - self.addToConfig("simulation.context.setPositions(positions)") - else: - self.addToConfig("simulation.context.setPositions(prm.positions)") - self.addToConfig("if prm.box_vectors is not None:") - self.addToConfig( - " box_vectors = reducePeriodicBoxVectors(prm.box_vectors)" - ) - self.addToConfig( - " simulation.context.setPeriodicBoxVectors(*box_vectors)" - ) - - # Set initial velocities from temperature distribution. - self.addToConfig("\n# Setting initial system velocities.") - self.addToConfig( - f"simulation.context.setVelocitiesToTemperature({temperature})" - ) - - # Check for a restart file and load the simulation state. - is_restart, step = self._add_config_restart() - - # Work out the number of integration steps. - total_steps = _math.ceil( - self._protocol.getRunTime() / self._protocol.getTimeStep() - ) - - # Subtract the current number of steps. - steps = total_steps - step - - # Exit if the simulation has already finished. - if steps <= 0: - print("The simulation has already finished!") - return - - # Inform user that a restart was loaded. - self.addToConfig("\n# Print restart information.") - self.addToConfig("if is_restart:") - self.addToConfig(f" steps = {total_steps}") - self.addToConfig(" percent_complete = 100 * (step / steps)") - self.addToConfig(" print('Loaded state from an existing simulation.')") - self.addToConfig( - " print(f'Simulation is {percent_complete}% complete.')" - ) - - # Get the report and restart intervals. - report_interval = self._protocol.getReportInterval() - restart_interval = self._protocol.getRestartInterval() - - # Cap the intervals at the total number of steps. - if report_interval > steps: - report_interval = steps - if restart_interval > steps: - restart_interval = steps - - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters( - state_interval=report_interval, - traj_interval=restart_interval, - is_restart=is_restart, - ) - - # Work out the total simulation time in picoseconds. - run_time = steps * timestep - - # Work out the number of cycles in 100 picosecond intervals. - cycles = _math.ceil(run_time / 100) - - # Work out the number of steps per cycle. - steps_per_cycle = int(steps / cycles) - - # Now run the simulation. - self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") - self.addToConfig(f"for x in range(0, {cycles}):") - self.addToConfig(f" simulation.step({steps_per_cycle})") - self.addToConfig(f" simulation.saveState('{self._name}.xml')") - else: raise _IncompatibleError( "Unsupported protocol: '%s'" % self._protocol.__class__.__name__ diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index a9bec6954..b1842f915 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -2224,7 +2224,7 @@ def __init__( self.setAlpha(alpha) # Store the uh values. - self.setuh(uh) + self.setUh(uh) # Store the W0 values. self.setW0(W0) @@ -2700,7 +2700,7 @@ def getUh(self): """ return self._uh - def setuh(self, uh): + def setUh(self, uh): """ Set the uh values. From b5c62a6e542722b6c667a77ee1760c1f8fdaf416 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 11 Mar 2024 17:56:10 +0000 Subject: [PATCH 016/123] Standardises units thorughout --- .../FreeEnergy/AToM/_AToM_system.py | 3 + python/BioSimSpace/Process/_atom_utils.py | 62 +- python/BioSimSpace/Protocol/_AToM.py | 846 +++++++++++++----- 3 files changed, 658 insertions(+), 253 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 0b52808f9..ea7a6f3e6 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -86,6 +86,7 @@ def __init__( The diplacement between the bound and free ligands. If a float is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. If a list is given, the vector will be used directly. + Lengths should always be given in angstroms. protein_index : int The index of the protein in the system (only needed if passing in a pre-prepared system). ligand1_index : int @@ -1771,6 +1772,8 @@ def _generate_config(self): # Use utils to create AToM-specific forces # Atom force is the only window-dependent force + disp = util.createDisplacement() + self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") self.addToConfig(util.createATMForce(self._protocol._get_window_index())) if self._protocol.getCoreAlignment(): diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 9f4bbd536..175806b6c 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -41,13 +41,13 @@ def __init__(self, protocol): self.data = self.protocol.getData() def getAlignmentConstants(self): - self.alignment_k_distance = self.protocol.getAlignKfSep() - self.alignment_k_theta = self.protocol.getAlignKTheta() - self.alignment_k_psi = self.protocol.getAlignKPsi() + self.alignment_k_distance = self.protocol.getAlignKfSep().value() + self.alignment_k_theta = self.protocol.getAlignKTheta().value() + self.alignment_k_psi = self.protocol.getAlignKPsi().value() def getCMConstants(self): - self.cm_kf = self.protocol.getCMKf() - self.cm_tol = self.protocol.getCMTol() + self.cm_kf = self.protocol.getCMKf().value() + self.cm_tol = self.protocol.getCMTol().value() def findAbsoluteCoreIndices(self): import numpy as np @@ -82,26 +82,26 @@ def findAbsoluteCOMAtoms(self): def getATMForceConstants(self, index=None): self.lig1_atoms = self.getLigand1AtomsAsList() self.lig2_atoms = self.getLigand2AtomsAsList() - self.SCUmax = self.protocol.getSCUmax() - self.SCU0 = self.protocol.getSCU0() - self.SCa = self.protocol.getSCa() + self.SCUmax = self.protocol.getSCUmax().value() + self.SCU0 = self.protocol.getSCU0().value() + self.SCa = self.protocol.getSCa().value() if isinstance(self.protocol, _Protocol.AToMProduction): if index is None: raise ValueError("Index must be set for AToMProduction protocol") self.lambda1 = self.protocol.getLambda1()[index] self.lambda2 = self.protocol.getLambda2()[index] - self.alpha = self.protocol.getAlpha()[index] - self.uh = self.protocol.getUh()[index] - self.w0 = self.protocol.getW0()[index] + self.alpha = self.protocol.getAlpha()[index].value() + self.uh = self.protocol.getUh()[index].value() + self.w0 = self.protocol.getW0()[index].value() self.direction = self.protocol.getDirections()[index] elif isinstance( self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) ): self.lambda1 = self.protocol.getLambda1() self.lambda2 = self.protocol.getLambda2() - self.alpha = self.protocol.getAlpha() - self.uh = self.protocol.getUh() - self.w0 = self.protocol.getW0() + self.alpha = self.protocol.getAlpha().value() + self.uh = self.protocol.getUh().value() + self.w0 = self.protocol.getW0().value() self.direction = self.protocol.getDirection() def findDisplacement(self): @@ -252,28 +252,28 @@ def createATMForce( self.findDisplacement() self.getATMForceConstants(index) output = "" - output += "#Parameters for ATM force\n" + output += "#Parameters for ATM force in original units\n" output += "lig1_atoms = {}\n".format(self.lig1_atoms) output += "lig2_atoms = {}\n".format(self.lig2_atoms) output += "lambda1 = {}\n".format(self.lambda1) output += "lambda2 = {}\n".format(self.lambda2) - output += "alpha = {}\n".format(self.alpha) - output += "uh = {}\n".format(self.uh) - output += "w0 = {}\n".format(self.w0) + output += "alpha = {} * kilocalories_per_mole\n".format(self.alpha) + output += "uh = {} * kilocalories_per_mole\n".format(self.uh) + output += "w0 = {} kilocalories_per_mole\n".format(self.w0) output += "direction = {}\n".format(self.direction) - output += "sc_Umax = {}\n".format(self.SCUmax) - output += "sc_U0 = {}\n".format(self.SCU0) + output += "sc_Umax = {} kilocalories_per_mole\n".format(self.SCUmax) + output += "sc_U0 = {}kilocalories_per_mole\n".format(self.SCU0) output += "sc_a = {}\n".format(self.SCa) output += "\n\n #Define ATM force\n" output += """atm_force = ATMForce( lambda1, lambda2, - alpha * kilojoules_per_mole, - uh * kilojoules_per_mole, - w0 * kilojoules_per_mole, - sc_Umax * kilojoules_per_mole, - sc_U0 * kilojoules_per_mole, + alpha.value_in_unit(kilojoules_per_mole), + uh.value_in_unit(kilojoules_per_mole), + w0.value_in_unit(kilojoules_per_mole), + sc_Umax.value_in_unit(kilojoules_per_mole), + sc_U0.value_in_unit(kilojoules_per_mole), sc_a, direction, )""" @@ -336,17 +336,17 @@ def createCOMRestraint(self): output += """parameters_free = ( kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), tolcm.value_in_unit(nanometer), - displacement[0], - displacement[1], - displacement[2], + displacement[0] * nanometer, + displacement[1] * nanometer, + displacement[2] * nanometer, )\n""" output += """parameters_bound = ( kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), tolcm.value_in_unit(nanometer), - 0.0, - 0.0, - 0.0, + 0.0 * nanometer, + 0.0 * nanometer, + 0.0 * nanometer, )\n""" output += "force_CMCM.addBond((0,1), parameters_bound)\n" diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index b1842f915..806f499a7 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1,5 +1,6 @@ from BioSimSpace.Units.Area import angstrom2 from BioSimSpace.Units.Energy import kcal_per_mol +from BioSimSpace.Units.Length import angstrom from .. import Types as _Types from ._protocol import Protocol as _Protocol from ._position_restraint_mixin import _PositionRestraintMixin @@ -18,18 +19,17 @@ def __init__( core_alignment=True, CMCM_restraint=True, restraint=None, - force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - align_kf_sep=25.0, - align_k_theta=10.0, - align_k_psi=10.0, - SC_umax=100.0, - SC_u0=50.0, + force_constant=10 * kcal_per_mol / angstrom2, + align_kf_sep=2.5 * kcal_per_mol / angstrom2, + align_k_theta=10.0 * kcal_per_mol, + align_k_psi=10.0 * kcal_per_mol, + SC_umax=1000.0 * kcal_per_mol, + SC_u0=500.0 * kcal_per_mol, sc_a=0.0625, - cm_kf=25.0, - cm_tol=5.0, + cm_kf=25.0 * kcal_per_mol / angstrom2, + cm_tol=5.0 * angstrom, ): """ - TODO: Self-consistency with units - use BSS units and then convert to openmm later Create a protocol object. Parameters @@ -68,28 +68,28 @@ def __init__( pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : float + align_kf_sep : int, float, str, :class:`GeneralUnit The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + align_k_theta : int, float, str, :class:`Energy + The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + align_k_psi : int, float, str, :class:`Energy + The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : float + SC_umax : int, float, str, :class:`Energy The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : float + SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : float + sc_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. - cm_kf : float + cm_kf : int, float, str, :class:`GeneralUnit The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : float + cm_tol : int, float, str, :class:`Length The tolerance for the center of mass distance restraint (A). """ # Call the base class constructor. @@ -232,8 +232,8 @@ def getAlignKfSep(self): Returns ------- - align_kf_sep : str, BSS.Types.Length - The align_kf_sep value. + align_kf_sep : :class:`GeneralUnit ` + The align_kf_sep value in kcal/mol angstrom**2. """ return self._align_kf_sep @@ -244,13 +244,36 @@ def setAlignKfSep(self, align_kf_sep): Parameters ---------- - align_kf_sep : str, BSS.Types.Length - Length value for the alignment restraint. + align_kf_sep : int, float, str, :class:`GeneralUnit `, float + Length value for the alignment restraint kcal/mol angstrom**2. """ - if isinstance(align_kf_sep, (int, float)): - self._align_kf_sep = float(align_kf_sep) + # Convert int to float. + if type(align_kf_sep) is int: + align_kf_sep = float(align_kf_sep) + + if isinstance(align_kf_sep, float): + # Use default units. + align_kf_sep *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 + else: - raise TypeError("'align_kf_sep' must be of type 'float'") + if isinstance(align_kf_sep, str): + try: + align_kf_sep = _Types._GeneralUnit(align_kf_sep) + except Exception: + raise ValueError("Unable to parse 'align_kf_sep' string.") from None + + elif not isinstance(align_kf_sep, _Types._GeneralUnit): + raise TypeError( + "'align_kf_sep' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if align_kf_sep.dimensions() != (0, 0, 0, 1, -1, 0, -2): + raise ValueError( + "'align_kf_sep' has invalid dimensions! " + f"Expected dimensions are 'M Q-1 T-2', found '{align_kf_sep.unit()}'" + ) + self._align_kf_sep = align_kf_sep def getAlignKTheta(self): """ @@ -259,8 +282,8 @@ def getAlignKTheta(self): Returns ------- - align_k_theta : str, BSS.Types.Angle - The align_k_theta value. + align_k_theta : :class:`Energy ` + The align_k_theta value in kcal/mol. """ return self._align_k_theta @@ -271,13 +294,39 @@ def setAlignKTheta(self, align_k_theta): Parameters ---------- - align_k_theta : str, BSS.Types.Angle - Angle value for the alignment angular constraint. + align_k_theta : int, float, str, :class:`Energy ` + Force constant for the alignment angular constraint in kcal/mol. + """ - if isinstance(align_k_theta, (int, float)): - self._align_k_theta = float(align_k_theta) + # Convert int to float. + if type(align_k_theta) is int: + align_k_theta = float(align_k_theta) + + if isinstance(align_k_theta, float): + # Use default units. + align_k_theta *= _Units.Energy.kcal_per_mol + else: - raise TypeError("'align_k_theta' must be of type 'float'") + if isinstance(align_k_theta, str): + try: + align_k_theta = _Types.Energy(align_k_theta) + except Exception: + raise ValueError( + "Unable to parse 'align_k_theta' string." + ) from None + + elif not isinstance(align_k_theta, _Types.Energy): + raise TypeError( + "'align_k_theta' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if align_k_theta.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{align_k_theta.unit()}'" + ) + self._align_k_theta = align_k_theta def getAlignKPsi(self): """ @@ -286,8 +335,8 @@ def getAlignKPsi(self): Returns ------- - align_k_psi : str, BSS.Types.Angle - The align_k_psi value. + align_k_psi: :class:`Energy ` + The align_k_psi value in kcal/mol. """ return self._align_k_psi @@ -298,13 +347,36 @@ def setAlignKPsi(self, align_k_psi): Parameters ---------- - align_k_psi : float - Angle value for the alignment dihedral constraint. + align_k_psi : int, float, str, :class:`Energy ` + Force constant for the alignment dihedral constraint in kcal/mol. """ - if isinstance(align_k_psi, (int, float)): - self._align_k_psi = float(align_k_psi) + # Convert int to float. + if type(align_k_psi) is int: + align_k_psi = float(align_k_psi) + + if isinstance(align_k_psi, float): + # Use default units. + align_k_psi *= _Units.Energy.kcal_per_mol + else: - raise TypeError("'align_k_psi' must be of type 'float'") + if isinstance(align_k_psi, str): + try: + align_k_psi = _Types.Energy(align_k_psi) + except Exception: + raise ValueError("Unable to parse 'align_k_psi' string.") from None + + elif not isinstance(align_k_psi, _Types.Energy): + raise TypeError( + "'align_k_psi' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if align_k_psi.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{align_k_psi.unit()}'" + ) + self._align_k_psi = align_k_psi def getSCUmax(self): """ @@ -313,8 +385,8 @@ def getSCUmax(self): Returns ------- - SC_umax : float - The SC_umax value. + SC_umax : :class:`Energy ` + The SC_umax value in kcal/mol. """ return self._SC_umax @@ -325,13 +397,36 @@ def setSCUmax(self, SC_umax): Parameters ---------- - SC_umax : float - The SC_umax value. + SC_umax : int, float, str, :class:`Energy ` + The softcore Umax value in kcal/mol. """ - if isinstance(SC_umax, (int, float)): - self._SC_umax = float(SC_umax) + # Convert int to float. + if type(SC_umax) is int: + SC_umax = float(SC_umax) + + if isinstance(SC_umax, float): + # Use default units. + SC_umax *= _Units.Energy.kcal_per_mol + else: - raise TypeError("'SC_umax' must be of type 'float'") + if isinstance(SC_umax, str): + try: + SC_umax = _Types.Energy(SC_umax) + except Exception: + raise ValueError("Unable to parse 'SC_umax' string.") from None + + elif not isinstance(SC_umax, _Types.Energy): + raise TypeError( + "'SC_umax' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if SC_umax.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{SC_umax.unit()}'" + ) + self._SC_umax = SC_umax def getSCU0(self): """ @@ -340,8 +435,8 @@ def getSCU0(self): Returns ------- - SC_u0 : float - The SC_u0 value. + SC_u0 : :class:`Energy ` + The SC_u0 value in kcal/mol. """ return self._SC_u0 @@ -352,13 +447,36 @@ def setSCU0(self, SC_u0): Parameters ---------- - SC_u0 : float - The SC_u0 value. + SC_u0 : int, float, str, :class:`Energy ` + The softcore u0 value in kcal/mol. """ - if isinstance(SC_u0, (int, float)): - self._SC_u0 = float(SC_u0) + # Convert int to float. + if type(SC_u0) is int: + SC_u0 = float(SC_u0) + + if isinstance(SC_u0, float): + # Use default units. + SC_u0 *= _Units.Energy.kcal_per_mol + else: - raise TypeError("'SC_u0' must be of type 'float'") + if isinstance(SC_u0, str): + try: + SC_u0 = _Types.Energy(SC_u0) + except Exception: + raise ValueError("Unable to parse 'SC_u0' string.") from None + + elif not isinstance(SC_u0, _Types.Energy): + raise TypeError( + "'SC_u0' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if SC_u0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{SC_u0.unit()}'" + ) + self._SC_u0 = SC_u0 def getSCa(self): """ @@ -380,7 +498,7 @@ def setSCa(self, sc_a): ---------- sc_a : float - The sc_a value. + The softcore a value. """ if isinstance(sc_a, (int, float)): self._sc_a = float(sc_a) @@ -394,8 +512,8 @@ def getCMKf(self): Returns ------- - cm_kf : float - The cm_kf value. + cm_kf : :class:`GeneralUnit ` + The cm_kf value in kcal/mol A**2. """ return self._cm_kf @@ -406,13 +524,36 @@ def setCMKf(self, cm_kf): Parameters ---------- - cm_kf : float - The cm_kf value. + cm_kf : int, float, str, :class:`GeneralUnit + The force constant for the CM-CM force in kcal/mol A**2. """ - if isinstance(cm_kf, (int, float)): - self._cm_kf = float(cm_kf) + # Convert int to float. + if type(cm_kf) is int: + cm_kf = float(cm_kf) + + if isinstance(cm_kf, float): + # Use default units. + cm_kf *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 + else: - raise TypeError("'cm_kf' must be of type 'float'") + if isinstance(cm_kf, str): + try: + cm_kf = _Types._GeneralUnit(cm_kf) + except Exception: + raise ValueError("Unable to parse 'cm_kf' string.") from None + + elif not isinstance(cm_kf, _Types._GeneralUnit): + raise TypeError( + "'cm_kf' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if cm_kf.dimensions() != (0, 0, 0, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'M Q-1 T-2', found '{cm_kf.unit()}'" + ) + self._cm_kf = cm_kf def getCMTol(self): """ @@ -421,8 +562,8 @@ def getCMTol(self): Returns ------- - cm_tol : float - The cm_tol value. + cm_tol : :class:`Length ` + The cm_tol value in angstroms. """ return self._cm_tol @@ -433,13 +574,36 @@ def setCMTol(self, cm_tol): Parameters ---------- - cm_tol : float - The cm_tol value. + cm_tol : int, float, str, :class:`Length + The cm_tol value in angstroms. """ - if isinstance(cm_tol, (int, float)): - self._cm_tol = float(cm_tol) + # Convert int to float. + if type(cm_tol) is int: + cm_tol = float(cm_tol) + + if isinstance(cm_tol, float): + # Use default units. + cm_tol *= _Units.Length.angstrom + else: - raise TypeError("'cm_tol' must be of type 'float'") + if isinstance(cm_tol, str): + try: + cm_tol = _Types.Length(cm_tol) + except Exception: + raise ValueError("Unable to parse 'cm_tol' string.") from None + + elif not isinstance(cm_tol, _Types.Length): + raise TypeError( + "'cm_tol' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if cm_tol.dimensions() != (0, 0, 1, 0, 0, 0, 0): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L', found '{cm_tol.unit()}'" + ) + self._cm_tol = cm_tol def _set_lambda_values(self): # Internal function to set the 'master lambda' @@ -510,28 +674,28 @@ class AToMMinimisation(_AToM): pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : float + align_kf_sep : int, float, str, :class:`GeneralUnit The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + align_k_theta : int, float, str, :class:`Energy + The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + align_k_psi : int, float, str, :class:`Energy + The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : float + SC_umax : int, float, str, :class:`Energy The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : float + SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : float + sc_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. - cm_kf : float + cm_kf : int, float, str, :class:`GeneralUnit The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : float + cm_tol : int, float, str, :class:`Length The tolerance for the center of mass distance restraint (A). """ @@ -543,14 +707,14 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - align_kf_sep=25, - align_k_theta=10, - align_k_psi=10, - SC_umax=100, - SC_u0=50, + align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_theta=10 * _Units.Energy.kcal_per_mol, + align_k_psi=10 * _Units.Energy.kcal_per_mol, + SC_umax=1000 * _Units.Energy.kcal_per_mol, + SC_u0=500 * _Units.Energy.kcal_per_mol, sc_a=0.0625, - cm_kf=25, - cm_tol=5, + cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + cm_tol=5 * _Units.Length.angstrom, ): super().__init__( data, @@ -617,14 +781,14 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - align_kf_sep=25, - align_k_theta=10, - align_k_psi=10, - SC_umax=100, - SC_u0=50, + align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_theta=10 * _Units.Energy.kcal_per_mol, + align_k_psi=10 * _Units.Energy.kcal_per_mol, + SC_umax=1000 * _Units.Energy.kcal_per_mol, + SC_u0=500 * _Units.Energy.kcal_per_mol, sc_a=0.0625, - cm_kf=25, - cm_tol=5, + cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + cm_tol=5 * _Units.Length.angstrom, use_atm_force=False, direction=1, lambda1=0.0, @@ -699,28 +863,28 @@ def __init__( pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : float + align_kf_sep : int, float, str, :class:`GeneralUnit The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + align_k_theta : int, float, str, :class:`Energy + The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + align_k_psi : int, float, str, :class:`Energy + The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : float + SC_umax : int, float, str, :class:`Energy The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : float + SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : float + sc_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. - cm_kf : float + cm_kf : int, float, str, :class:`GeneralUnit The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : float + cm_tol : int, float, str, :class:`Length The tolerance for the center of mass distance restraint (A). use_atm_force : bool @@ -735,14 +899,17 @@ def __init__( lambda2 : float The lambda2 value for the ATM force. Ignored if use_atm_force is False. - alpha : float + alpha : int, float, str, :class:`Energy ` The alpha value for the ATM force. Ignored if use_atm_force is False. + Value in kcal/mol. - uh : float + uh : int, float, str, :class:`Energy ` The uh value for the ATM force. Ignored if use_atm_force is False. + Value in kcal/mol. - W0 : float + W0 : int, float, str, :class:`Energy ` The W0 value for the ATM force. Ignored if use_atm_force is False. + Value in kcal/mol. """ super().__init__( data, @@ -1199,8 +1366,8 @@ def getAlpha(self): Returns ------- - alpha : float - The alpha value for the ATM force. Ignored if use_atm_force is False. + alpha : :class:`Energy ` + The alpha value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._alpha @@ -1211,12 +1378,36 @@ def setAlpha(self, alpha): Parameters ---------- - alpha : float - The alpha value for the ATM force. Ignored if use_atm_force is False. + alpha : int, float, str, :class:`Energy ` + The alpha value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(alpha, (float, int)): - raise TypeError("'alpha' must be of type 'float'") - self._alpha = float(alpha) + # Convert int to float. + if type(alpha) is int: + alpha = float(alpha) + + if isinstance(alpha, float): + # Use default units. + alpha *= _Units.Energy.kcal_per_mol + + else: + if isinstance(alpha, str): + try: + alpha = _Types.Energy(alpha) + except Exception: + raise ValueError("Unable to parse 'alpha' string.") from None + + elif not isinstance(alpha, _Types.Energy): + raise TypeError( + "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if alpha.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{alpha.unit()}'" + ) + self._alpha = alpha def getUh(self): """ @@ -1225,8 +1416,8 @@ def getUh(self): Returns ------- - uh : float - The uh value for the ATM force. Ignored if use_atm_force is False. + uh : :class:`Energy ` + The uh value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._uh @@ -1237,12 +1428,36 @@ def setUh(self, uh): Parameters ---------- - uh : float - The uh value for the ATM force. Ignored if use_atm_force is False. + uh : int, float, str, :class:`Energy ` + The uh value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(uh, (float, int)): - raise TypeError("'uh' must be of type 'float'") - self._uh = float(uh) + # Convert int to float. + if type(uh) is int: + uh = float(uh) + + if isinstance(uh, float): + # Use default units. + uh *= _Units.Energy.kcal_per_mol + + else: + if isinstance(uh, str): + try: + uh = _Types.Energy(uh) + except Exception: + raise ValueError("Unable to parse 'uh' string.") from None + + elif not isinstance(uh, _Types.Energy): + raise TypeError( + "'uh' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if uh.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{uh.unit()}'" + ) + self._uh = uh def getW0(self): """ @@ -1251,8 +1466,8 @@ def getW0(self): Returns ------- - W0 : float - The W0 value for the ATM force. Ignored if use_atm_force is False. + W0 : :class:`Energy ` + The W0 value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._W0 @@ -1263,12 +1478,36 @@ def setW0(self, W0): Parameters ---------- - W0 : float - The W0 value for the ATM force. Ignored if use_atm_force is False. + W0 :int, float, str, :class:`Energy ` + The W0 value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(W0, (float, int)): - raise TypeError("'W0' must be of type 'float'") - self._W0 = float(W0) + # Convert int to float. + if type(W0) is int: + W0 = float(W0) + + if isinstance(W0, float): + # Use default units. + W0 *= _Units.Energy.kcal_per_mol + + else: + if isinstance(W0, str): + try: + W0 = _Types.Energy(W0) + except Exception: + raise ValueError("Unable to parse 'W0' string.") from None + + elif not isinstance(W0, _Types.Energy): + raise TypeError( + "'W0' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if W0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{W0.unit()}'" + ) + self._W0 = W0 def isConstantTemp(self): """ @@ -1311,14 +1550,14 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - align_kf_sep=25, - align_k_theta=10, - align_k_psi=10, - SC_umax=100, - SC_u0=50, + align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_theta=10 * _Units.Energy.kcal_per_mol, + align_k_psi=10 * _Units.Energy.kcal_per_mol, + SC_umax=1000 * _Units.Energy.kcal_per_mol, + SC_u0=500 * _Units.Energy.kcal_per_mol, sc_a=0.0625, - cm_kf=25, - cm_tol=5, + cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + cm_tol=5 * _Units.Length.angstrom, direction=1, lambda1=0.0, lambda2=0.0, @@ -1384,47 +1623,55 @@ def __init__( pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : float + align_kf_sep : int, float, str, :class:`GeneralUnit The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + align_k_theta : int, float, str, :class:`Energy + The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + align_k_psi : int, float, str, :class:`Energy + The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : float + SC_umax : int, float, str, :class:`Energy The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : float + SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : float + sc_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. - cm_kf : float + cm_kf : int, float, str, :class:`GeneralUnit The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : float + cm_tol : int, float, str, :class:`Length The tolerance for the center of mass distance restraint (A). direction : str - The direction of Annealing. + The direction of the Annealing. lambda1 : float - The lambda1 value for the ATM force. Overwritten if values are given in anneal_values. + The lambda1 value for the ATM force. + Superceded by any values defined in anneal_values. lambda2 : float - The lambda2 value for the ATM force. Overwritten if values are given in anneal_values. + The lambda2 value for the ATM force. + Superceded by any values defined in anneal_values. - alpha : float - The alpha value for the ATM force. Overwritten if values are given in anneal_values. + alpha : int, float, str, :class:`Energy ` + The alpha value for the ATM force. + Value in kcal/mol. + Superceded by any values defined in anneal_values. - uh : float - The uh value for the ATM force. Overwritten if values are given in anneal_values. + uh : int, float, str, :class:`Energy ` + The uh value for the ATM force. + Value in kcal/mol. + Superceded by any values defined in anneal_values. - W0 : float - The W0 value for the ATM force. Overwritten if values are given in anneal_values. + W0 : int, float, str, :class:`Energy ` + The W0 value for the ATM force. + Value in kcal/mol. + Superceded by any values defined in anneal_values. anneal_values : dict, None, "default" If None, then no annealing will be performed. @@ -1833,8 +2080,8 @@ def getAlpha(self): Returns ------- - alpha : float - The alpha value for the ATM force. Ignored if use_atm_force is False. + alpha : :class:`Energy ` + The alpha value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._alpha @@ -1845,12 +2092,36 @@ def setAlpha(self, alpha): Parameters ---------- - alpha : float - The alpha value for the ATM force. Ignored if use_atm_force is False. + alpha : int, float, str, :class:`Energy ` + The alpha value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(alpha, (float, int)): - raise TypeError("'alpha' must be of type 'float'") - self._alpha = float(alpha) + # Convert int to float. + if type(alpha) is int: + alpha = float(alpha) + + if isinstance(alpha, float): + # Use default units. + alpha *= _Units.Energy.kcal_per_mol + + else: + if isinstance(alpha, str): + try: + alpha = _Types.Energy(alpha) + except Exception: + raise ValueError("Unable to parse 'alpha' string.") from None + + elif not isinstance(alpha, _Types.Energy): + raise TypeError( + "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if alpha.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{alpha.unit()}'" + ) + self._alpha = alpha def getUh(self): """ @@ -1859,8 +2130,8 @@ def getUh(self): Returns ------- - uh : float - The uh value for the ATM force. Ignored if use_atm_force is False. + uh : :class:`Energy ` + The uh value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._uh @@ -1871,12 +2142,36 @@ def setUh(self, uh): Parameters ---------- - uh : float - The uh value for the ATM force. Ignored if use_atm_force is False. + uh : int, float, str, :class:`Energy ` + The uh value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(uh, (float, int)): - raise TypeError("'uh' must be of type 'float'") - self._uh = float(uh) + # Convert int to float. + if type(uh) is int: + uh = float(uh) + + if isinstance(uh, float): + # Use default units. + uh *= _Units.Energy.kcal_per_mol + + else: + if isinstance(uh, str): + try: + uh = _Types.Energy(uh) + except Exception: + raise ValueError("Unable to parse 'uh' string.") from None + + elif not isinstance(uh, _Types.Energy): + raise TypeError( + "'uh' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if uh.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{uh.unit()}'" + ) + self._uh = uh def getW0(self): """ @@ -1885,8 +2180,8 @@ def getW0(self): Returns ------- - W0 : float - The W0 value for the ATM force. Ignored if use_atm_force is False. + W0 : :class:`Energy ` + The W0 value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ return self._W0 @@ -1897,12 +2192,36 @@ def setW0(self, W0): Parameters ---------- - W0 : float - The W0 value for the ATM force. Ignored if use_atm_force is False. + W0 :int, float, str, :class:`Energy ` + The W0 value for the ATM force in kcal/mol. Ignored if use_atm_force is False. """ - if not isinstance(W0, (float, int)): - raise TypeError("'W0' must be of type 'float'") - self._W0 = float(W0) + # Convert int to float. + if type(W0) is int: + W0 = float(W0) + + if isinstance(W0, float): + # Use default units. + W0 *= _Units.Energy.kcal_per_mol + + else: + if isinstance(W0, str): + try: + W0 = _Types.Energy(W0) + except Exception: + raise ValueError("Unable to parse 'W0' string.") from None + + elif not isinstance(W0, _Types.Energy): + raise TypeError( + "'W0' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if W0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'align_k_theta' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{W0.unit()}'" + ) + self._W0 = W0 def getAnnealValues(self): """ @@ -2053,14 +2372,14 @@ def __init__( alpha=None, uh=None, W0=None, - align_kf_sep=25, - align_k_theta=10, - align_k_psi=10, - SC_umax=100, - SC_u0=50, + align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_theta=10 * _Units.Energy.kcal_per_mol, + align_k_psi=10 * _Units.Energy.kcal_per_mol, + SC_umax=1000 * _Units.Energy.kcal_per_mol, + SC_u0=500 * _Units.Energy.kcal_per_mol, sc_a=0.0625, - cm_kf=25, - cm_tol=5, + cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + cm_tol=5 * _Units.Length.angstrom, ): """ data : dict @@ -2117,28 +2436,29 @@ def __init__( pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : float + + align_kf_sep : int, float, str, :class:`GeneralUnit The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : float - The force constant for the angular portion of the alignment restaint (kcal/(mol deg^2)). + align_k_theta : int, float, str, :class:`Energy + The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : float - The force constant for the dihedral portion of the alignment restraint (kcal/(mol deg^2)). + align_k_psi : int, float, str, :class:`Energy + The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : float + SC_umax : int, float, str, :class:`Energy The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : float + SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : float + sc_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. - cm_kf : float + cm_kf : int, float, str, :class:`GeneralUnit The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : float + cm_tol : int, float, str, :class:`Length The tolerance for the center of mass distance restraint (A). restart : bool @@ -2160,13 +2480,13 @@ def __init__( lambda2 : list of float The lambda2 values. - alpha : list of float + alpha : list of int, float, str, :class:`Energy The alpha values. - uh : list of float + uh : list of int, float, str, :class:`Energy The uh values. - W0 : list of float + W0 : list of int, float, str, :class:`Energy The W0 values. """ @@ -2661,8 +2981,8 @@ def getAlpha(self): Returns ------- - alpha : list of float - The alpha values. + alpha : list of :class:`Energy + The alpha values in kcal/mol. """ return self._alpha @@ -2673,20 +2993,48 @@ def setAlpha(self, alpha): Parameters ---------- - alpha : list of float - The alpha values. + alpha : list of :class:`Energy + The alpha values in kcal/mol. """ if isinstance(alpha, list): if len(alpha) != self._num_lambda: raise ValueError("'alpha' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in alpha): - self._alpha = alpha - else: - raise ValueError("all entries in 'alpha' must be floats") + alpha_fin = [] + for a in alpha: + # Convert int to float. + if type(a) is int: + a = float(a) + + if isinstance(a, float): + # Use default units. + a *= _Units.Energy.kcal_per_mol + + else: + if isinstance(a, str): + try: + a = _Types.Energy(a) + except Exception: + raise ValueError( + "Unable to parse 'alpha' string." + ) from None + + elif not isinstance(a, _Types.Energy): + raise TypeError( + "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if a.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'alpha' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{a.unit()}'" + ) + alpha.append(a) + self._alpha = alpha_fin elif alpha is None: - self._alpha = [0.00] * self._num_lambda + self._alpha = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda else: - raise TypeError("'alpha' must be of type 'list'") + raise TypeError("'alpha' must be of type 'list' or None") def getUh(self): """ @@ -2695,8 +3043,8 @@ def getUh(self): Returns ------- - uh : list of float - The uh values. + uh : list of :class:`Energy + The uh values in kcal/mol. """ return self._uh @@ -2707,18 +3055,45 @@ def setUh(self, uh): Parameters ---------- - uh : list of float - The uh values. + uh : list of :class:`Energy + The uh values in kcal/mol. """ if isinstance(uh, list): if len(uh) != self._num_lambda: raise ValueError("'uh' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in uh): - self._uh = uh - else: - raise ValueError("all entries in 'uh' must be floats") + uh_fin = [] + for u in uh: + # Convert int to float. + if type(u) is int: + u = float(u) + + if isinstance(u, float): + # Use default units. + u *= _Units.Energy.kcal_per_mol + + else: + if isinstance(u, str): + try: + u = _Types.Energy(u) + except Exception: + raise ValueError( + "Unable to parse 'alpha' string." + ) from None + + elif not isinstance(u, _Types.Energy): + raise TypeError( + "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if u.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'alpha' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{u.unit()}'" + ) + uh_fin.append(u) elif uh is None: - self._uh = [0.00] * self._num_lambda + self._uh = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda else: raise TypeError("'uh' must be of type 'list'") @@ -2729,8 +3104,8 @@ def getW0(self): Returns ------- - W0 : list of float - The W0 values. + W0 : list of :class:`Energy + The W0 values in kcal/mol. """ return self._W0 @@ -2741,18 +3116,45 @@ def setW0(self, W0): Parameters ---------- - W0 : list of float - The W0 values. + W0 : list of :class:`Energy + The W0 values in kcal/mol. """ if isinstance(W0, list): if len(W0) != self._num_lambda: raise ValueError("'W0' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in W0): - self._W0 = W0 - else: - raise ValueError("all entries in 'W0' must be floats") + W0_fin = [] + for w in W0: + # Convert int to float. + if type(w) is int: + w = float(w) + + if isinstance(w, float): + # Use default units. + w *= _Units.Energy.kcal_per_mol + + else: + if isinstance(w, str): + try: + w = _Types.Energy(w) + except Exception: + raise ValueError( + "Unable to parse 'alpha' string." + ) from None + + elif not isinstance(w, _Types.Energy): + raise TypeError( + "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if w.dimensions() != (0, 0, 2, 1, -1, 0, -2): + raise ValueError( + "'alpha' has invalid dimensions! " + f"Expected dimensions are 'L2 M Q-1 T-2', found '{w.unit()}'" + ) + W0_fin.append(w) elif W0 is None: - self._W0 = [0.00] * self._num_lambda + self._W0 = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda else: raise TypeError("'W0' must be of type 'list'") From 72ff6d88303ce34166e789437b5c15fb063ce59d Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 12 Mar 2024 16:43:21 +0000 Subject: [PATCH 017/123] Bugfixes for production scripts --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 14 ++++++++------ python/BioSimSpace/Process/_atom_utils.py | 10 +++++----- python/BioSimSpace/Protocol/_AToM.py | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index ea7a6f3e6..63406c95d 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -901,9 +901,9 @@ def _inititalise_runner(self, system): # All variables that need to change new_lam_1 = self._protocol.getLambda1()[index] new_lam_2 = self._protocol.getLambda2()[index] - new_alpha = self._protocol.getAlpha()[index] - new_uh = self._protocol.getUh()[index] - new_w0 = self._protocol.getW0()[index] + new_alpha = self._protocol.getAlpha()[index].value() + new_uh = self._protocol.getUh()[index].value() + new_w0 = self._protocol.getW0()[index].value() new_direction = self._protocol.getDirections()[index] with open(new_dir + "/openmm_script.py", "r") as f: for line in f: @@ -912,11 +912,13 @@ def _inititalise_runner(self, system): elif line.startswith("lambda2"): new_config.append(f"lambda2 = {new_lam_2}\n") elif line.startswith("alpha"): - new_config.append(f"alpha = {new_alpha}\n") + new_config.append( + f"alpha = {new_alpha} * kilocalories_per_mole\n" + ) elif line.startswith("uh"): - new_config.append(f"uh = {new_uh}\n") + new_config.append(f"uh = {new_uh} * kilocalories_per_mole\n") elif line.startswith("w0"): - new_config.append(f"w0 = {new_w0}\n") + new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") elif line.startswith("direction"): new_config.append(f"direction = {new_direction}\n") else: diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 175806b6c..a105087ba 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -84,7 +84,7 @@ def getATMForceConstants(self, index=None): self.lig2_atoms = self.getLigand2AtomsAsList() self.SCUmax = self.protocol.getSCUmax().value() self.SCU0 = self.protocol.getSCU0().value() - self.SCa = self.protocol.getSCa().value() + self.SCa = self.protocol.getSCa() if isinstance(self.protocol, _Protocol.AToMProduction): if index is None: raise ValueError("Index must be set for AToMProduction protocol") @@ -252,17 +252,17 @@ def createATMForce( self.findDisplacement() self.getATMForceConstants(index) output = "" - output += "#Parameters for ATM force in original units\n" + output += "#Parameters for ATM force in original units\n" output += "lig1_atoms = {}\n".format(self.lig1_atoms) output += "lig2_atoms = {}\n".format(self.lig2_atoms) output += "lambda1 = {}\n".format(self.lambda1) output += "lambda2 = {}\n".format(self.lambda2) output += "alpha = {} * kilocalories_per_mole\n".format(self.alpha) output += "uh = {} * kilocalories_per_mole\n".format(self.uh) - output += "w0 = {} kilocalories_per_mole\n".format(self.w0) + output += "w0 = {} * kilocalories_per_mole\n".format(self.w0) output += "direction = {}\n".format(self.direction) - output += "sc_Umax = {} kilocalories_per_mole\n".format(self.SCUmax) - output += "sc_U0 = {}kilocalories_per_mole\n".format(self.SCU0) + output += "sc_Umax = {} * kilocalories_per_mole\n".format(self.SCUmax) + output += "sc_U0 = {} * kilocalories_per_mole\n".format(self.SCU0) output += "sc_a = {}\n".format(self.SCa) output += "\n\n #Define ATM force\n" diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 806f499a7..6d0c71a3d 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -3020,7 +3020,7 @@ def setAlpha(self, alpha): elif not isinstance(a, _Types.Energy): raise TypeError( - "'alpha' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'alpha' must be of type 'BioSimSpace.Types.Energy', 'str', or 'float'." ) # Validate the dimensions. From ea33d2d5e2bbe86a7c519a241523a7c3e2db8213 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 18 Mar 2024 17:03:28 +0000 Subject: [PATCH 018/123] Switches positional restraints in AToM processes to flat-bottom restraints in line with other methods --- .../FreeEnergy/AToM/_AToM_system.py | 50 ++++++++++++--- python/BioSimSpace/Process/_atom_utils.py | 63 ++++++++++++++----- 2 files changed, 92 insertions(+), 21 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 63406c95d..17b6e89f1 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1111,6 +1111,19 @@ def _generate_config(self): # Add the platform information. self._add_config_platform() + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + # Add the atom-specific restraints. disp = util.createDisplacement() self.addToConfig(disp) @@ -1123,10 +1136,6 @@ def _generate_config(self): self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) - # Add any position restraints. - if self._protocol.getRestraint() is not None: - self._add_config_restraints() - # Set up the simulation object. self.addToConfig("\n# Initialise and configure the simulation object.") self.addToConfig("simulation = Simulation(prm.topology,") @@ -1273,7 +1282,16 @@ def _generate_config(self): # Add any position restraints. if self._protocol.getRestraint() is not None: - self._add_config_restraints() + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) # Add the atom-specific restraints. disp = util.createDisplacement() @@ -1520,7 +1538,16 @@ def _generate_config(self): # Add any position restraints. if self._protocol.getRestraint() is not None: - self._add_config_restraints() + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) # Get the integration time step from the protocol. timestep = self._protocol.getTimeStep().picoseconds().value() @@ -1755,7 +1782,16 @@ def _generate_config(self): # Add any position restraints. if self._protocol.getRestraint() is not None: - self._add_config_restraints() + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) # Get the integration time step from the protocol. timestep = self._protocol.getTimeStep().picoseconds().value() diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index a105087ba..d4e26db09 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -320,26 +320,15 @@ def createCOMRestraint(self): output += "tolcm = {} * angstrom \n".format(tol_cm) # Add expression for cm restraint - output += 'expr = "(kfcm/2)*step(d12-tolcm)*(d12-tolcm)^2 "\n' - output += 'expr += " ; d12 = sqrt((x1 - offx - x2)^2 + (y1 - offy - y2)^2 + (z1 - offz - z2)^2 ) ; "\n' + output += 'expr = "0.5 * kfcm * step(dist - tolcm) * (dist - tolcm)^2;""dist = sqrt((x1 - x2 - offx)^2 + (y1 - y2 - offy)^2 + (z1 - z2 - offz)^2);"\n' output += "force_CMCM = CustomCentroidBondForce(2, expr)\n" output += "force_CMCM.addPerBondParameter('kfcm')\n" output += "force_CMCM.addPerBondParameter('tolcm')\n" output += "force_CMCM.addPerBondParameter('offx')\n" output += "force_CMCM.addPerBondParameter('offy')\n" output += "force_CMCM.addPerBondParameter('offz')\n" - output += "system.addForce(force_CMCM)\n" output += "force_CMCM.addGroup(protein_com)\n" output += "force_CMCM.addGroup(lig1_com)\n" - output += "force_CMCM.addGroup(lig2_com)\n" - - output += """parameters_free = ( - kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), - tolcm.value_in_unit(nanometer), - displacement[0] * nanometer, - displacement[1] * nanometer, - displacement[2] * nanometer, - )\n""" output += """parameters_bound = ( kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), @@ -348,13 +337,59 @@ def createCOMRestraint(self): 0.0 * nanometer, 0.0 * nanometer, )\n""" + output += "force_CMCM.addBond((1,0), parameters_bound)\n" + output += "numgroups = force_CMCM.getNumGroups()\n" + + output += "force_CMCM.addGroup(protein_com)\n" + output += "force_CMCM.addGroup(lig2_com)\n" + output += """parameters_free = ( + kfcm.value_in_unit(kilojoules_per_mole / nanometer**2), + tolcm.value_in_unit(nanometer), + displacement[0] * nanometer, + displacement[1] * nanometer, + displacement[2] * nanometer, + )\n""" - output += "force_CMCM.addBond((0,1), parameters_bound)\n" - output += "force_CMCM.addBond((0,2), parameters_free)\n" + output += "force_CMCM.addBond((numgroups+1,numgroups+0), parameters_free)\n" + output += "system.addForce(force_CMCM)\n" output += "#End of CM-CM force\n\n" return output + def create_flat_bottom_restraint(self, restrained_atoms): + """Flat bottom restraint for atom-compatible position restraints + + Parameters + ---------- + restrained_atoms : list + List of atom indices to be restrained. Need to be explicitly given due to the ability to parse strings in the protocol. + """ + # Still using the position restraint mixin, get the values of the relevant constants + pos_const = self.protocol.getForceConstant().value() + output = "" + output += "fc = {} * kilocalorie_per_mole / angstrom**2\n".format(pos_const) + output += "tol = 5.0 * angstrom\n" + output += "restrained_atoms = {}\n".format(restrained_atoms) + output += "positions = prm.positions\n" + output += 'posrestforce = CustomExternalForce("0.5*fc*select(step(dist-tol), (dist-tol)^2, 0); dist = periodicdistance(x,y,z,x0,y0,z0)")\n' + + output += 'posrestforce.addPerParticleParameter("x0")\n' + output += 'posrestforce.addPerParticleParameter("y0")\n' + output += 'posrestforce.addPerParticleParameter("z0")\n' + output += 'posrestforce.addPerParticleParameter("fc")\n' + output += 'posrestforce.addPerParticleParameter("tol")\n' + + output += "for i in restrained_atoms:\n" + output += " x1 = positions[i][0].value_in_unit_system(openmm.unit.md_unit_system)\n" + output += " y1 = positions[i][1].value_in_unit_system(openmm.unit.md_unit_system)\n" + output += " z1 = positions[i][2].value_in_unit_system(openmm.unit.md_unit_system)\n" + output += " fc1 = fc.value_in_unit(kilojoules_per_mole / nanometer**2)\n" + output += " tol1 = tol.value_in_unit(nanometer)\n" + output += " posrestforce.addParticle(i, [x1, y1, z1, fc1, tol1])\n" + + output += "system.addForce(posrestforce)\n" + return output + def createAnnealingProtocol(self): """ Create a string which can be added directly to an openmm script to add an annealing protocol to the system. From 0937c591d8b6cae5c379bcca21047f88b6f563f4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 19 Mar 2024 17:33:25 +0000 Subject: [PATCH 019/123] Added position restraint width argument that sets the width of the potential well used to positonally restrain atoms --- python/BioSimSpace/Process/_atom_utils.py | 3 +- python/BioSimSpace/Protocol/_AToM.py | 79 +++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index d4e26db09..90a00fb94 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -366,9 +366,10 @@ def create_flat_bottom_restraint(self, restrained_atoms): """ # Still using the position restraint mixin, get the values of the relevant constants pos_const = self.protocol.getForceConstant().value() + pos_width = self.protocol.getPosRestWidth().value() output = "" output += "fc = {} * kilocalorie_per_mole / angstrom**2\n".format(pos_const) - output += "tol = 5.0 * angstrom\n" + output += "tol = {} * angstrom\n".format(pos_width) output += "restrained_atoms = {}\n".format(restrained_atoms) output += "positions = prm.positions\n" output += 'posrestforce = CustomExternalForce("0.5*fc*select(step(dist-tol), (dist-tol)^2, 0); dist = periodicdistance(x,y,z,x0,y0,z0)")\n' diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 6d0c71a3d..8422b2db4 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -20,6 +20,7 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * kcal_per_mol / angstrom2, + pos_rest_width=0.5 * angstrom, align_kf_sep=2.5 * kcal_per_mol / angstrom2, align_k_theta=10.0 * kcal_per_mol, align_k_psi=10.0 * kcal_per_mol, @@ -65,6 +66,9 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + pos_restrained_atoms : list of int The atoms to be restrained. @@ -107,6 +111,9 @@ def __init__( # Whether or not to use the CMCM restraint. self.setCMCMRestraint(CMCM_restraint) + # Store the width of the coordinate retraint. + self.setPosRestWidth(pos_rest_width) + # Store the align_kf_sep value. self.setAlignKfSep(align_kf_sep) @@ -225,6 +232,58 @@ def setCMCMRestraint(self, CMCM_restraint): print("Non-boolean CMCM restraint flag. Defaulting to True!") self._CMCM_restraint = True + def getPosRestWidth(self): + """ + Return the width of the position restraint. + + Returns + ------- + + pos_rest_width : :class:`Length ` + The width of the position restraint. + """ + return self._pos_rest_width + + def setPosRestWidth(self, pos_rest_width): + """ + Set the width of the position restraint. + + Parameters + ---------- + + pos_rest_width : int, float, str, :class:`Length ` + The width of the position restraint. + """ + # Convert int to float. + if type(pos_rest_width) is int: + pos_rest_width = float(pos_rest_width) + + if isinstance(pos_rest_width, float): + # Use default units. + pos_rest_width *= _Units.Length.angstrom + + else: + if isinstance(pos_rest_width, str): + try: + pos_rest_width = _Types.Length(pos_rest_width) + except Exception: + raise ValueError( + "Unable to parse 'pos_rest_width' string." + ) from None + + elif not isinstance(pos_rest_width, _Types.Length): + raise TypeError( + "'pos_rest_width' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + ) + + # Validate the dimensions. + if pos_rest_width.dimensions() != (0, 0, 1, 0, 0, 0, 0): + raise ValueError( + "'pos_rest_width' has invalid dimensions! " + f"Expected dimensions are 'L', found '{pos_rest_width.unit()}'" + ) + self._pos_rest_width = pos_rest_width + def getAlignKfSep(self): """ Return the align_kf_sep value. @@ -671,6 +730,9 @@ class AToMMinimisation(_AToM): passed, then default units of 'kcal_per_mol / angstrom**2' will be used. + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + pos_restrained_atoms : list of int The atoms to be restrained. @@ -707,6 +769,7 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + pos_rest_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -722,6 +785,7 @@ def __init__( CMCM_restraint, restraint, force_constant, + pos_rest_width, align_kf_sep, align_k_theta, align_k_psi, @@ -781,6 +845,7 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + pos_rest_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -860,6 +925,9 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + pos_restrained_atoms : list of int The atoms to be restrained. @@ -917,6 +985,7 @@ def __init__( CMCM_restraint, restraint, force_constant, + pos_rest_width, align_kf_sep, align_k_theta, align_k_psi, @@ -1550,6 +1619,7 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + pos_rest_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -1620,6 +1690,9 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + pos_restrained_atoms : list of int The atoms to be restrained. @@ -1709,6 +1782,7 @@ def __init__( CMCM_restraint, restraint, force_constant, + pos_rest_width, align_kf_sep, align_k_theta, align_k_psi, @@ -2365,6 +2439,7 @@ def __init__( CMCM_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + pos_rest_width=0.5 * angstrom, num_lambda=22, directions=None, lambda1=None, @@ -2433,6 +2508,9 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + pos_restrained_atoms : list of int The atoms to be restrained. @@ -2496,6 +2574,7 @@ def __init__( CMCM_restraint, restraint, force_constant, + pos_rest_width, align_kf_sep, align_k_theta, align_k_psi, From 973fee5ff03341c6ebccc192bf2c71e06b08d710 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 26 Apr 2024 09:54:44 +0100 Subject: [PATCH 020/123] A few bugfixes --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 17b6e89f1..fce2c4edd 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -127,7 +127,7 @@ def __init__( self.setLigand1RigidCore(ligand1_rigid_core) self.setLigand2RigidCore(ligand2_rigid_core) self._setDisplacement(displacement) - if isinstance(self.mol1, _Molecule): + if isinstance(mol1, _Molecule): self._makeSystemFromThree() # These will be updated if/when needed self.protein_index = protein_index @@ -355,7 +355,7 @@ def _setDisplacement(self, displacement): elif isinstance(displacement, list): if len(displacement) != 3: raise ValueError("displacement must have length 3") - if all(isinstance(x, float) for x in displacement): + if all(isinstance(x, (float, int)) for x in displacement): self.displacement = _Vector(*displacement) elif all(isinstance(x, _Length) for x in displacement): self.displacement = _Vector([x.value() for x in displacement]) @@ -527,7 +527,7 @@ def _findTranslationVector( initial_normal_vector = (non_protein_coords - com).toVector().normalise() - out_of_protein = com.toVector() + displacement.value() * initial_normal_vector + out_of_protein = com.toVector() + (displacement.value() * initial_normal_vector) return out_of_protein def get_prot_com_atoms(self): @@ -657,6 +657,13 @@ def _makeData(self): Make the data dictionary for the AToM system """ self._findAtomIndices() + if self._is_pre_prepared: + if not isinstance(self.displacement, _Vector): + raise ValueError( + "Displacement must be a vector or list if a pre-prepared system is given" + ) + else: + self.data["displacement"] = self.displacement self.data["protein_index"] = self.protein_index self.data["ligand1_index"] = self.ligand1_index self.data["ligand2_index"] = self.ligand2_index From eeee0f02cb2440bc47342fb1693c29be38f79e05 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 29 Apr 2024 16:51:49 +0100 Subject: [PATCH 021/123] Adds energy trajectory reporting, achieved through the report_interval option --- .../FreeEnergy/AToM/_AToM_system.py | 18 ++-- python/BioSimSpace/Process/_atom_utils.py | 88 +++++++++++++++++++ 2 files changed, 100 insertions(+), 6 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index fce2c4edd..ad4bcd4c6 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1731,6 +1731,7 @@ def _generate_config(self): # Write the OpenMM import statements. self._add_config_imports() + self.addToConfig("import pandas as pd") self._add_config_monkey_patches() # Add standard openMM config @@ -1897,13 +1898,18 @@ def _generate_config(self): run_time = steps * timestep # Work out the number of cycles in 100 picosecond intervals. - cycles = _math.ceil(run_time / 100) + cycles = _math.ceil(run_time / (report_interval * timestep)) # Work out the number of steps per cycle. steps_per_cycle = int(steps / cycles) - # Now run the simulation. - self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") - self.addToConfig(f"for x in range(0, {cycles}):") - self.addToConfig(f" simulation.step({steps_per_cycle})") - self.addToConfig(f" simulation.saveState('{self._name}.xml')") + self.addToConfig( + util.createLoopWithReporting( + self._name, cycles, steps_per_cycle, report_interval, timestep, step + ) + ) + # Now run the simulation. + # self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") + # self.addToConfig(f"for x in range(0, {cycles}):") + # self.addToConfig(f" simulation.step({steps_per_cycle})") + # self.addToConfig(f" simulation.saveState('{self._name}.xml')") diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 90a00fb94..cd79b2276 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -21,6 +21,7 @@ __all__ = ["_AToMUtils"] from .. import Protocol as _Protocol from ..Types import Vector as _Vector +import math as _math class _AToMUtils: @@ -94,6 +95,7 @@ def getATMForceConstants(self, index=None): self.uh = self.protocol.getUh()[index].value() self.w0 = self.protocol.getW0()[index].value() self.direction = self.protocol.getDirections()[index] + self.master_lambda = self.protocol._get_lambda_values()[index] elif isinstance( self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) ): @@ -104,6 +106,27 @@ def getATMForceConstants(self, index=None): self.w0 = self.protocol.getW0().value() self.direction = self.protocol.getDirection() + def _dump_atm_constants_to_dict(self): + """Internal function to write all ATM window-dependent constants to a dictionary (string) + to be used in sampling for analysis.""" + output = "" + output += "atm_constants = {\n" + output += " 'Lambda1': {},\n".format(self.protocol.getLambda1()) + output += " 'Lambda2': {},\n".format(self.protocol.getLambda2()) + output += " 'Alpha': {},\n".format( + [i.value() for i in self.protocol.getAlpha()] + ) + output += " 'Uh': {},\n".format([i.value() for i in self.protocol.getUh()]) + output += " 'W0': {},\n".format([i.value() for i in self.protocol.getW0()]) + output += " 'Direction': {}\n".format(self.protocol.getDirections()) + output += "}\n" + + output += "for key in atm_constants.keys():\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " atm_constants[key] = [i for i in atm_constants[key] * kilocalories_per_mole]\n" + + return output + def findDisplacement(self): d = self.data["displacement"] if isinstance(d, (list)): @@ -255,6 +278,8 @@ def createATMForce( output += "#Parameters for ATM force in original units\n" output += "lig1_atoms = {}\n".format(self.lig1_atoms) output += "lig2_atoms = {}\n".format(self.lig2_atoms) + if isinstance(self.protocol, _Protocol.AToMProduction): + output += "master_lambda = {}\n".format(self.master_lambda) output += "lambda1 = {}\n".format(self.lambda1) output += "lambda2 = {}\n".format(self.lambda2) output += "alpha = {} * kilocalories_per_mole\n".format(self.alpha) @@ -265,6 +290,9 @@ def createATMForce( output += "sc_U0 = {} * kilocalories_per_mole\n".format(self.SCU0) output += "sc_a = {}\n".format(self.SCa) + if isinstance(self.protocol, _Protocol.AToMProduction): + output += self._dump_atm_constants_to_dict() + output += "\n\n #Define ATM force\n" output += """atm_force = ATMForce( lambda1, @@ -427,3 +455,63 @@ def createAnnealingProtocol(self): output += " simulation.context.setParameter(key, simulation.context.getParameter(key) + increments[key])\n" output += "simulation.saveState('openmm.xml')" return output + + def createLoopWithReporting( + self, name, cycles, steps_per_cycle, report_interval, timestep, steps=0 + ): + """Creates the loop in which simulations are run, stopping each cycle + to report the potential energies required for MBAR analysis. + + Parameters + ---------- + cycles : int + Number of cycles to run the simulation for. + steps_per_cycle : int + Number of steps to run the simulation for in each cycle. + report_interval : int (in ps) + Interval at which to report the potential energies. + timestep : float (in ps) + Timestep used in the simulation. + steps : int + Total number of steps that have been performed so far (Default 0). + """ + output = "" + output += "# Create the dictionary which will hold the energies\n" + output += f"master_lambda_list = {self.protocol._get_lambda_values()}\n" + output += "energies = {}\n" + output += "energies['time'] = []\n" + output += "energies['fep-lambda'] = []\n" + output += "for i in master_lambda_list:\n" + output += " energies[i] = []\n" + output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" + output += f"steps_so_far = {steps}\n" + output += "# Timestep in ps\n" + output += f"timestep = {timestep}\n" + # TODO: REMEMBER TO RESET VALUES BACK TO THE ORIGINAL VALUES AFTER EACH CYCLE + output += f"for x in range(0, {cycles}):\n" + output += f" simulation.step({steps_per_cycle})\n" + output += f" steps_so_far += {steps_per_cycle}\n" + output += " time = steps_so_far * timestep\n" + output += " energies['time'].append(time)\n" + output += " energies['fep-lambda'].append(master_lambda)\n" + output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" + output += " for ind, lam in enumerate(master_lambda_list):\n" + output += " for key in atm_constants.keys():\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind])\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += ( + " #Now reset lambda-dependent values back to their original state\n" + ) + output += " simulation.context.setParameter('Lambda1',lambda1)\n" + output += " simulation.context.setParameter('Lambda2',lambda2)\n" + output += " simulation.context.setParameter('Alpha',alpha)\n" + output += " simulation.context.setParameter('Uh',uh)\n" + output += " simulation.context.setParameter('W0',w0)\n" + output += " simulation.context.setParameter('Direction',direction)\n" + output += f" simulation.saveState('{name}.xml')\n" + output += "#now convert the dictionary to a pandas dataframe, with both time and fep-lambda as index columns\n" + output += "df = pd.DataFrame(energies)\n" + output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" + output += "df.to_csv(f'energies_{master_lambda}.csv')\n" + return output From 97e41369aed81e250da03732f92a03172b858022 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 30 Apr 2024 12:11:28 +0100 Subject: [PATCH 022/123] Changed default work directories to None --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index ad4bcd4c6..ae12a12a7 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1036,7 +1036,7 @@ def __init__( exe=None, platform="CPU", seed=None, - work_dir="minimise", + work_dir=None, property_map={}, ): # Validate the protocol. @@ -1184,9 +1184,9 @@ def __init__( system, protocol, exe=None, - platform="CPU", + platform="CUDA", seed=None, - work_dir="equilibrate", + work_dir=None, property_map={}, ): # Validate the protocol. @@ -1431,7 +1431,7 @@ def __init__( exe=None, platform="CUDA", seed=None, - work_dir="anneal", + work_dir=None, property_map={}, ): # Validate the protocol. @@ -1673,7 +1673,7 @@ def __init__( exe=None, platform="CUDA", seed=None, - work_dir="anneal", + work_dir=None, property_map={}, ): # Validate the protocol. From 3b35a86ad64c8d7e98f76f93da49ca0c657880f7 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 30 Apr 2024 14:21:23 +0100 Subject: [PATCH 023/123] Fixed bug with automatic ligand translation --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index ae12a12a7..72d58e630 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -527,7 +527,7 @@ def _findTranslationVector( initial_normal_vector = (non_protein_coords - com).toVector().normalise() - out_of_protein = com.toVector() + (displacement.value() * initial_normal_vector) + out_of_protein = displacement.value() * initial_normal_vector return out_of_protein def get_prot_com_atoms(self): From a0781cc470ec9994d4c51d79a9ccb17b2e229a55 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 1 May 2024 14:49:02 +0100 Subject: [PATCH 024/123] Bugfixes for setting window-dependent variables from list --- python/BioSimSpace/Protocol/_AToM.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 8422b2db4..3dd2df867 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -3084,9 +3084,11 @@ def setAlpha(self, alpha): if type(a) is int: a = float(a) - if isinstance(a, float): + elif isinstance(a, float): # Use default units. a *= _Units.Energy.kcal_per_mol + print("HERE") + print(a) else: if isinstance(a, str): @@ -3108,7 +3110,7 @@ def setAlpha(self, alpha): "'alpha' has invalid dimensions! " f"Expected dimensions are 'L2 M Q-1 T-2', found '{a.unit()}'" ) - alpha.append(a) + alpha_fin.append(a) self._alpha = alpha_fin elif alpha is None: self._alpha = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda @@ -3171,6 +3173,7 @@ def setUh(self, uh): f"Expected dimensions are 'L2 M Q-1 T-2', found '{u.unit()}'" ) uh_fin.append(u) + self._uh = uh_fin elif uh is None: self._uh = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda else: @@ -3232,6 +3235,7 @@ def setW0(self, W0): f"Expected dimensions are 'L2 M Q-1 T-2', found '{w.unit()}'" ) W0_fin.append(w) + self._W0 = W0_fin elif W0 is None: self._W0 = [0.00 * _Units.Energy.kcal_per_mol] * self._num_lambda else: From 4413b9ef460e80abdc8bf98f7a29bfcf6a0521ba Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 10 May 2024 17:12:32 +0100 Subject: [PATCH 025/123] Switched to gallachio lab repo (wip) --- .../FreeEnergy/AToM/_AToM_system.py | 8 +- python/BioSimSpace/Process/_atom_utils.py | 88 ++++++++++++++++++- 2 files changed, 91 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 72d58e630..20471cef6 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1732,8 +1732,10 @@ def _generate_config(self): # Write the OpenMM import statements. self._add_config_imports() self.addToConfig("import pandas as pd") + self.addToConfig("import numpy as np") self._add_config_monkey_patches() - + self.addToConfig("\n") + self.addToConfig(util.createSoftcorePertE()) # Add standard openMM config self.addToConfig("from glob import glob") self.addToConfig("import math") @@ -1902,9 +1904,11 @@ def _generate_config(self): # Work out the number of steps per cycle. steps_per_cycle = int(steps / cycles) + + self.addToConfig(f"\ntemperature = {temperature}") # Now run the simulation. self.addToConfig( - util.createLoopWithReporting( + util.createSoftcorePertELoop( self._name, cycles, steps_per_cycle, report_interval, timestep, step ) ) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index cd79b2276..bcbcc2a9c 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -22,6 +22,7 @@ from .. import Protocol as _Protocol from ..Types import Vector as _Vector import math as _math +import warnings as _warnings class _AToMUtils: @@ -143,11 +144,24 @@ def createDisplacement(self): self.findDisplacement() d = [round(x, 3) for x in self.displacement] output = "" - output += "displacement = {}\n".format(self.displacement) + output += "displacement = {}\n".format(d) output += "#BioSimSpace output is in angstrom, divide by 10 to convert to the expected units of nm\n" output += "displacement = [i/10.0 for i in displacement]\n" return output + def createSoftcorePertE(self): + """Create the softcorePertE function for the Gallachio lab analysis""" + output = "" + output += "def softCorePertE(u, umax, ub, a):\n" + output += " usc = u\n" + output += " if u > ub:\n" + output += " gu = (u-ub)/(a*(umax-ub))\n" + output += " zeta = 1. + 2.*gu*(gu + 1.)\n" + output += " zetap = np.power( zeta, a)\n" + output += " usc = (umax-ub)*(zetap - 1.)/(zetap + 1.) + ub\n" + output += " return usc\n" + return output + def createAlignmentForce(self): # This force is the same in every lambda window self.getAlignmentConstants() @@ -279,7 +293,7 @@ def createATMForce( output += "lig1_atoms = {}\n".format(self.lig1_atoms) output += "lig2_atoms = {}\n".format(self.lig2_atoms) if isinstance(self.protocol, _Protocol.AToMProduction): - output += "master_lambda = {}\n".format(self.master_lambda) + output += "window_index = {}\n".format(index) output += "lambda1 = {}\n".format(self.lambda1) output += "lambda2 = {}\n".format(self.lambda2) output += "alpha = {} * kilocalories_per_mole\n".format(self.alpha) @@ -475,6 +489,9 @@ def createLoopWithReporting( steps : int Total number of steps that have been performed so far (Default 0). """ + _warnings.warn( + "MBAR analysis functionality is not fully implemented and WILL NOT WORK" + ) output = "" output += "# Create the dictionary which will hold the energies\n" output += f"master_lambda_list = {self.protocol._get_lambda_values()}\n" @@ -497,7 +514,7 @@ def createLoopWithReporting( output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" output += " for ind, lam in enumerate(master_lambda_list):\n" output += " for key in atm_constants.keys():\n" - output += " simulation.context.setParameter(key, atm_constants[key][ind])\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" output += " state = simulation.context.getState(getEnergy=True)\n" output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" output += ( @@ -515,3 +532,68 @@ def createLoopWithReporting( output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" output += "df.to_csv(f'energies_{master_lambda}.csv')\n" return output + + def createSoftcorePertELoop( + self, name, cycles, steps_per_cycle, report_interval, timestep, steps=0 + ): + """Recreation of Gallachio lab analysis - currently uses {cycles} to define sampling frequency""" + output = "" + output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" + output += f"steps_so_far = {steps}\n" + output += "# Timestep in ps\n" + output += f"timestep = {timestep}\n" + output += "\n" + output += "#Create dictionary for storing results in the same manner as the Gallachio lab code\n" + output += "result = {}\n" + output += "result['window'] = []\n" + output += "result['temperature'] = []\n" + output += "result['direction'] = []\n" + output += "result['lambda1'] = []\n" + output += "result['lambda2'] = []\n" + output += "result['alpha'] = []\n" + output += "result['uh'] = []\n" + output += "result['w0'] = []\n" + output += "result['pot_en'] = []\n" + output += "result['pert_en'] = []\n" + output += "result['metad_offset'] = []\n" + output += f"for x in range(0, {cycles}):\n" + output += f" simulation.step({steps_per_cycle})\n" + output += ( + " state = simulation.context.getState(getEnergy = True, groups = -1)\n" + ) + output += " pot_energy = state.getPotentialEnergy()\n" + output += " (u1, u0, alchemicalEBias) = atm_force.getPerturbationEnergy(simulation.context)\n" + output += " umcore = simulation.context.getParameter(atm_force.Umax())* kilojoules_per_mole\n" + output += " ubcore = simulation.context.getParameter(atm_force.Ubcore())* kilojoules_per_mole\n" + output += " acore = simulation.context.getParameter(atm_force.Acore())\n" + output += " uoffset = 0.0 * kilojoules_per_mole\n" + output += ( + " direction = simulation.context.getParameter(atm_force.Direction())\n" + ) + output += " if direction > 0:\n" + output += ( + " pert_e = softCorePertE(u1-(u0+uoffset), umcore, ubcore, acore)\n" + ) + output += " else:\n" + output += ( + " pert_e = softCorePertE(u0-(u1+uoffset), umcore, ubcore, acore)\n" + ) + output += " result['window'].append(window_index)\n" + output += " result['temperature'].append(temperature)\n" + output += " result['direction'].append(direction)\n" + output += " result['lambda1'].append(lambda1)\n" + output += " result['lambda2'].append(lambda2)\n" + output += " result['alpha'].append(alpha)\n" + output += " result['uh'].append(uh)\n" + output += " result['w0'].append(w0)\n" + output += " result['pot_en'].append(pot_energy)\n" + output += " result['pert_en'].append(pert_e)\n" + output += " result['metad_offset'].append(0.0)\n" + output += " #save the state of the simulation\n" + output += f" simulation.saveState('{name}.xml')\n" + + output += "#now convert the dictionary to a pandas dataframe\n" + output += "df = pd.DataFrame(result)\n" + output += "df.set_index('window', inplace= True)\n" + output += f"df.to_csv('{name}.csv')\n" + return output From 4397c5d4b34cedbdcce5d5a31709539833fa37b4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 20 May 2024 16:18:31 +0100 Subject: [PATCH 026/123] adds support for pre-prepared systems with multiple molecules in the protein. this is acheived by adding the ability to parse 'protein_index' as a list of ints. Required for the eralpha test system as it is truncated --- .../FreeEnergy/AToM/_AToM_system.py | 52 ++++++++++++------- python/BioSimSpace/Process/_atom_utils.py | 12 +++-- 2 files changed, 41 insertions(+), 23 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 20471cef6..13932cad2 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -87,7 +87,7 @@ def __init__( If a float is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. If a list is given, the vector will be used directly. Lengths should always be given in angstroms. - protein_index : int + protein_index : int, list of int The index of the protein in the system (only needed if passing in a pre-prepared system). ligand1_index : int The index of the bound ligand in the system (only needed if passing in a pre-prepared system). @@ -157,10 +157,15 @@ def _setProteinIndex(self, protein_index): protein_index : int The index of the protein in the system. """ - if not isinstance(protein_index, int): - raise TypeError("protein_index must be an int") - else: + if isinstance(protein_index, list): + # check that all elements are ints + if not all(isinstance(x, int) for x in protein_index): + raise TypeError("protein_index must be a list of ints or a single int") self.protein_index = protein_index + elif isinstance(protein_index, int): + self.protein_index = [protein_index] + else: + raise TypeError("protein_index must be an int or a list of ints") def getLigand1Index(self): """ @@ -302,11 +307,12 @@ def _systemInfo(self): dict A dictionary containing information on the AToM system """ - if self.system[self.protein_index].isWater(): - print( - f"The molecule at index {self.protein_index} appears to be a water molecule." - " This should be a protein." - ) + for p in self.protein_index: + if self.system[p].isWater(): + print( + f"The molecule at index {self.protein_index} appears to be a water molecule." + " This should be a protein." + ) if self.system[self.ligand1_index].isWater(): print( f"The molecule at index {self.ligand1_index} appears to be a water molecule." @@ -317,7 +323,7 @@ def _systemInfo(self): f"The molecule at index {self.ligand2_index} appears to be a water molecule." " This should be the free ligand." ) - self.mol1_atomcount = self.system[self.protein_index].nAtoms() + self.mol1_atomcount = sum(self.system[i].nAtoms() for i in self.protein_index) self.ligand1_atomcount = self.system[self.ligand1_index].nAtoms() self.ligand2_atomcount = self.system[self.ligand2_index].nAtoms() @@ -407,8 +413,8 @@ def _findAtomIndices(self): dict A dictionary containing the indices of the protein and ligand atoms in the system """ - protein_atom_start = self.system[self.protein_index].getAtoms()[0] - protein_atom_end = self.system[self.protein_index].getAtoms()[-1] + protein_atom_start = self.system[self.protein_index[0]].getAtoms()[0] + protein_atom_end = self.system[self.protein_index[-1]].getAtoms()[-1] self.first_protein_atom_index = self.system.getIndex(protein_atom_start) self.last_protein_atom_index = self.system.getIndex(protein_atom_end) @@ -557,14 +563,24 @@ def _set_mol1_com_atoms(self, mol1_com_atoms): else: # Find com of the protein if self._is_pre_prepared: - protein = self.system[self.protein_index] + temp_system = self.system._sire_object + protein = temp_system[self.protein_index[0]] + for i in self.protein_index[1:]: + protein += temp_system[i] + com = protein.coordinates() + self._mol1_com_atoms = [ + a.index().value() + for a in protein[f"atoms within 11 angstrom of {com}"] + ] + del temp_system + del protein else: protein = self.mol1 - com = protein._sire_object.coordinates() - self._mol1_com_atoms = [ - a.index().value() - for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] - ] + com = protein._sire_object.coordinates() + self._mol1_com_atoms = [ + a.index().value() + for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] + ] def get_lig1_com_atoms(self): """ diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index bcbcc2a9c..c5d5b4b5b 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -583,11 +583,13 @@ def createSoftcorePertELoop( output += " result['direction'].append(direction)\n" output += " result['lambda1'].append(lambda1)\n" output += " result['lambda2'].append(lambda2)\n" - output += " result['alpha'].append(alpha)\n" - output += " result['uh'].append(uh)\n" - output += " result['w0'].append(w0)\n" - output += " result['pot_en'].append(pot_energy)\n" - output += " result['pert_en'].append(pert_e)\n" + output += ( + " result['alpha'].append(alpha.value_in_unit(kilocalories_per_mole))\n" + ) + output += " result['uh'].append(uh.value_in_unit(kilocalories_per_mole))\n" + output += " result['w0'].append(w0.value_in_unit(kilocalories_per_mole))\n" + output += " result['pot_en'].append(pot_energy.value_in_unit(kilocalories_per_mole))\n" + output += " result['pert_en'].append(pert_e.value_in_unit(kilocalories_per_mole))\n" output += " result['metad_offset'].append(0.0)\n" output += " #save the state of the simulation\n" output += f" simulation.saveState('{name}.xml')\n" From e28f10b727f7512440391426430264e7db8a335e Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 21 May 2024 09:56:57 +0100 Subject: [PATCH 027/123] Brings softcore constants of production in line with values used in Gallachio lab repo --- python/BioSimSpace/Protocol/_AToM.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 3dd2df867..ece3f98fa 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -2450,8 +2450,8 @@ def __init__( align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, - SC_umax=1000 * _Units.Energy.kcal_per_mol, - SC_u0=500 * _Units.Energy.kcal_per_mol, + SC_umax=100 * _Units.Energy.kcal_per_mol, + SC_u0=50 * _Units.Energy.kcal_per_mol, sc_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, From ddc56b154c7f1c451daa0c1f663247c8b7072df7 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 21 May 2024 14:40:46 +0100 Subject: [PATCH 028/123] Updated and clarified unit checking for various parameters. --- python/BioSimSpace/Protocol/_AToM.py | 70 ++++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index ece3f98fa..bbd8e4d84 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -277,10 +277,10 @@ def setPosRestWidth(self, pos_rest_width): ) # Validate the dimensions. - if pos_rest_width.dimensions() != (0, 0, 1, 0, 0, 0, 0): + if pos_rest_width.dimensions() != (0, 1, 0, 0, 0, 0, 0): raise ValueError( "'pos_rest_width' has invalid dimensions! " - f"Expected dimensions are 'L', found '{pos_rest_width.unit()}'" + f"Expected dimensions of Length, found '{pos_rest_width.unit()}'" ) self._pos_rest_width = pos_rest_width @@ -327,10 +327,10 @@ def setAlignKfSep(self, align_kf_sep): ) # Validate the dimensions. - if align_kf_sep.dimensions() != (0, 0, 0, 1, -1, 0, -2): + if align_kf_sep.dimensions() != (1, 0, -2, 0, 0, -1, 0): raise ValueError( "'align_kf_sep' has invalid dimensions! " - f"Expected dimensions are 'M Q-1 T-2', found '{align_kf_sep.unit()}'" + f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{align_kf_sep.unit()}'" ) self._align_kf_sep = align_kf_sep @@ -380,10 +380,10 @@ def setAlignKTheta(self, align_k_theta): ) # Validate the dimensions. - if align_k_theta.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if align_k_theta.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{align_k_theta.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{align_k_theta.unit()}'" ) self._align_k_theta = align_k_theta @@ -430,10 +430,10 @@ def setAlignKPsi(self, align_k_psi): ) # Validate the dimensions. - if align_k_psi.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if align_k_psi.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( - "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{align_k_psi.unit()}'" + "'align_k_psi' has invalid dimensions! " + f"Expected dimensions of energy density (e.g. kcal/mol), found '{align_k_psi.unit()}'" ) self._align_k_psi = align_k_psi @@ -480,10 +480,10 @@ def setSCUmax(self, SC_umax): ) # Validate the dimensions. - if SC_umax.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if SC_umax.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{SC_umax.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{SC_umax.unit()}'" ) self._SC_umax = SC_umax @@ -530,10 +530,10 @@ def setSCU0(self, SC_u0): ) # Validate the dimensions. - if SC_u0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if SC_u0.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{SC_u0.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{SC_u0.unit()}'" ) self._SC_u0 = SC_u0 @@ -607,10 +607,10 @@ def setCMKf(self, cm_kf): ) # Validate the dimensions. - if cm_kf.dimensions() != (0, 0, 0, 1, -1, 0, -2): + if cm_kf.dimensions() != (1, 0, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'M Q-1 T-2', found '{cm_kf.unit()}'" + f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{cm_kf.unit()}'" ) self._cm_kf = cm_kf @@ -657,10 +657,10 @@ def setCMTol(self, cm_tol): ) # Validate the dimensions. - if cm_tol.dimensions() != (0, 0, 1, 0, 0, 0, 0): + if cm_tol.dimensions() != (0, 1, 0, 0, 0, 0, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L', found '{cm_tol.unit()}'" + f"Expected dimensions of Length, found '{cm_tol.unit()}'" ) self._cm_tol = cm_tol @@ -1471,10 +1471,10 @@ def setAlpha(self, alpha): ) # Validate the dimensions. - if alpha.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if alpha.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{alpha.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{alpha.unit()}'" ) self._alpha = alpha @@ -1521,10 +1521,10 @@ def setUh(self, uh): ) # Validate the dimensions. - if uh.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if uh.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{uh.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{uh.unit()}'" ) self._uh = uh @@ -1571,10 +1571,10 @@ def setW0(self, W0): ) # Validate the dimensions. - if W0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if W0.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{W0.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{W0.unit()}'" ) self._W0 = W0 @@ -2190,10 +2190,10 @@ def setAlpha(self, alpha): ) # Validate the dimensions. - if alpha.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if alpha.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{alpha.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{alpha.unit()}'" ) self._alpha = alpha @@ -2240,10 +2240,10 @@ def setUh(self, uh): ) # Validate the dimensions. - if uh.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if uh.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{uh.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{uh.unit()}'" ) self._uh = uh @@ -2290,10 +2290,10 @@ def setW0(self, W0): ) # Validate the dimensions. - if W0.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if W0.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{W0.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{W0.unit()}'" ) self._W0 = W0 @@ -3105,10 +3105,10 @@ def setAlpha(self, alpha): ) # Validate the dimensions. - if a.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if a.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'alpha' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{a.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{a.unit()}'" ) alpha_fin.append(a) self._alpha = alpha_fin @@ -3167,10 +3167,10 @@ def setUh(self, uh): ) # Validate the dimensions. - if u.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if u.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'alpha' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{u.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{u.unit()}'" ) uh_fin.append(u) self._uh = uh_fin @@ -3229,10 +3229,10 @@ def setW0(self, W0): ) # Validate the dimensions. - if w.dimensions() != (0, 0, 2, 1, -1, 0, -2): + if w.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'alpha' has invalid dimensions! " - f"Expected dimensions are 'L2 M Q-1 T-2', found '{w.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{w.unit()}'" ) W0_fin.append(w) self._W0 = W0_fin From 209df7e53a0128ea616bfc29f0728020640a7dba Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 24 May 2024 09:26:12 +0100 Subject: [PATCH 029/123] Fixed issue with incorrect window index in python scripts --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 13932cad2..bf0ce3007 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -944,6 +944,8 @@ def _inititalise_runner(self, system): new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") elif line.startswith("direction"): new_config.append(f"direction = {new_direction}\n") + elif line.startswith("window_index"): + new_config.append(f"window_index = {index}\n") else: new_config.append(line) with open(new_dir + "/openmm_script.py", "w") as f: From fcda8edc140cdd036607600c3cac45ab19db93c3 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 28 May 2024 14:13:59 +0100 Subject: [PATCH 030/123] Added in-house analysis based on code from both the Gallachio lab repo and femto. --- .../FreeEnergy/AToM/_AToM_system.py | 2 +- .../BioSimSpace/FreeEnergy/AToM/__init__.py | 1 + .../BioSimSpace/FreeEnergy/AToM/_analysis.py | 309 ++++++++++++++++++ 3 files changed, 311 insertions(+), 1 deletion(-) create mode 100644 python/BioSimSpace/FreeEnergy/AToM/_analysis.py diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index bf0ce3007..0aeec5809 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -3,7 +3,7 @@ # # Copyright: 2017-2023 # -# Authors: Lester Hedges +# Authors: Lester Hedges , Matthew Burman # # BioSimSpace is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/python/BioSimSpace/FreeEnergy/AToM/__init__.py b/python/BioSimSpace/FreeEnergy/AToM/__init__.py index abca426c3..ea8ce9182 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/__init__.py +++ b/python/BioSimSpace/FreeEnergy/AToM/__init__.py @@ -19,3 +19,4 @@ # along with BioSimSpace. If not, see . ##################################################################### from ._AToM_system import * +from ._analysis import * diff --git a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py new file mode 100644 index 000000000..94e02f3ea --- /dev/null +++ b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py @@ -0,0 +1,309 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges , Matthew Burman +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +###################################################################### + +__all__ = ["analyse"] + +import pandas as pd + +import numpy +import scipy.optimize +import scipy.special +import pathlib +import pandas as pd +import functools +import pymbar.timeseries + + +def _compute_weights(ln_z, ln_q, factor): + q_ij = numpy.exp(ln_q - ln_z) + return q_ij / (factor * q_ij).sum(axis=-1, keepdims=True) + + +def _compute_kappa_hessian(ln_z, ln_q, factor, n): + ln_z = numpy.insert(ln_z, 0, 0.0) + + w = (factor * _compute_weights(ln_z, ln_q, factor))[:, 1:] + return -w.T @ w / n + numpy.diag(w.sum(axis=0) / n) + + +def _compute_kappa(ln_z, ln_q, factor, n): + ln_z = numpy.insert(ln_z, 0, 0.0) + + ln_q_ij_sum = scipy.special.logsumexp(a=ln_q - ln_z, b=factor, axis=1) + kappa = ln_q_ij_sum.sum() / n + (factor * ln_z).sum() + + w = factor * _compute_weights(ln_z, ln_q, factor) + grad = -w[:, 1:].sum(axis=0) / n + factor[1:] + + return kappa, grad + + +def _compute_variance(ln_z, w, factor, n): + o = w.T @ w / n + + b = o * factor - numpy.eye(len(ln_z)) + b = b[1:, 1:] + + b_inv_a = -o + o[0, :] + b_inv_a = b_inv_a[1:, 1:] + + var_matrix = (b_inv_a @ numpy.linalg.inv(b.T)) / n + return numpy.insert(numpy.diag(var_matrix), 0, 0.0) + + +def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): + """ + This is for the bias ilogistic potential + (lambda2-lambda1) ln[1+exp(-alpha (u-u0))]/alpha + lambda2 u + w0 + """ + ebias1 = numpy.zeros_like(epert) + if alpha > 0: + ee = 1 + numpy.exp(-alpha * (epert - u0)) + ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha + return ebias1 + lam2 * epert + w0 + + +def npot_fcn(e0, epert, bet, lam1, lam2, alpha, u0, w0): + # This is the negative reduced energy + # -beta*(U0+bias) + return -bet * (e0 + _bias_fcn(epert, lam1, lam2, alpha, u0, w0)) + + +def _estimate_f_i(ln_q, n_k): + """Estimates the free energies of a set of *sampled* states. + + + Args: + n_k: The number of samples at state ``k``. + ln_q: array of netgative potentials with ``shape=(n_states,n_samples)``. + + Returns: + The estimated reduced free energies and their estimated variance. + """ + n_k = numpy.array(n_k) + + ln_q = numpy.array(ln_q).T + + n_samples, n_states = ln_q.shape + + if n_states != len(n_k): + raise RuntimeError( + "The number of states do not match: %d != %d" % (n_states, len(n_k)) + ) + if n_samples != n_k.sum(): + raise RuntimeError( + "The number of samples do not match: %d != %d" % (n_samples, n_k.sum()) + ) + + ln_z = numpy.zeros(len(n_k) - 1) # ln_z_0 is always fixed at 0.0 + ln_q -= ln_q[:, :1] + + n = n_k.sum() + factor = n_k / n + + result = scipy.optimize.minimize( + functools.partial(_compute_kappa, ln_q=ln_q, n=n, factor=factor), + ln_z, + method="trust-ncg", + jac=True, + hess=functools.partial(_compute_kappa_hessian, ln_q=ln_q, n=n, factor=factor), + ) + + if not result.success: + raise RuntimeError("The UWHAM minimization failed to converge.") + + f_i = numpy.insert(-result.x, 0, 0.0) + ln_z = numpy.insert(result.x, 0, 0.0) + + weights = _compute_weights(ln_z, ln_q, factor) + + if not numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): + raise RuntimeError("The UWHAM weights do not sum to 1.0") + + df_i = _compute_variance(ln_z, weights, factor, n) + + return f_i, df_i, weights / n + + +def _sort_folders(work_dir): + """Sorts folder names by lambda value, ensuring they are read correctly. + + Parameters + ---------- + work_dir : str + The directory containing the simulation data. + + Returns + ------- + folders : dict + A dictionary of folder names and their corresponding lambda values. + """ + folders = {} + for folder in pathlib.Path(work_dir).iterdir(): + if folder.is_dir() and folder.name.startswith("lambda_"): + try: + lambda_val = float(folder.name.split("_")[-1]) + except ValueError: + continue + folders[lambda_val] = folder + return {k: v for k, v in sorted(folders.items())} + + +def _get_inflection_indices(folders): + # Find folders at which 'direction' goes from 1 to -1 + # This is the point at which the direction of the lambda windows changes + # NOTE: this assumes that the folders are correctly sorted + + # check that the keys are sorted + keys = list(folders.keys()) + if keys != sorted(keys): + raise ValueError(f"Folders are not sorted correctly. {keys} != {sorted(keys)}") + + directions = [] + for folder in folders.values(): + df = pd.read_csv(folder / "openmm.csv") + direction = df["direction"].values[0] + directions.append(direction) + + # get the indices at which the direction changes + for i in range(len(directions) - 1): + if directions[i] != directions[i + 1]: + inflection_indices = (i, i + 1) + break + + return inflection_indices + + +def analyse(work_dir, inflection_indices=None): + """ + Analyse the output of BioSimSpace AToM simulations. + + Parameters + ---------- + work_dir : str + The directory containing the simulation data. + inflection_indices : tuple, optional + The point at which 'direction' changes. + Should be (last index of direction 1, first index of direction 2). + If not provided not provided, will be implied from files. + + """ + dataframes = [] + slices = {} + total_states = 0 + total_samples = 0 + folders = _sort_folders(work_dir) + if inflection_indices is None: + inflection_indices = _get_inflection_indices(folders) + for folder in folders.values(): + df = pd.read_csv(folder / "openmm.csv") + df["beta"] = 1 / (0.001986209 * df["temperature"]) + total_states += 1 + total_samples += len(df) + for sub_df in df.groupby("window"): + # get value of window + window = sub_df[0] + # check if window is in slices + if window not in slices: + slices[window] = [] + # append the dataframe to the list of dataframes for that window + # now get the tuple 'sub_df' and convert it to a dataframe + s = sub_df[1] + slices[window].append(s) + + # now combine all dataframes in each slice + for window in slices: + # get the dataframes for the current window + dfs = slices[window] + # combine the dataframes + combined_df = pd.concat(dfs) + dataframes.append(combined_df) + + # sort 'dataframes' based on 'window' + dataframes = sorted(dataframes, key=lambda x: x["window"].values[0]) + + pots = [] + pert_es = [] + n_samples = [] + # check that all dataframes are the same length, throw a warning if they are not + for df in dataframes: + n_samples.append(len(df)) + e0 = df["pot_en"].values + pert_e = df["pert_en"].values + pots.append(e0) + pert_es.append(pert_e) + + # We will assume that the point at which leg1 and leg2 are split is halfway through + n_samples_first_half = n_samples[: inflection_indices[0] + 1] + pots_first_half = numpy.concatenate(pots[: inflection_indices[0] + 1]) + pert_es_first_half = numpy.concatenate(pert_es[: inflection_indices[0] + 1]) + ln_q = numpy.zeros((inflection_indices[0] + 1, len(pots_first_half))) + sid = 0 + + for be in range(len(n_samples_first_half)): + lnq = npot_fcn( + e0=pots_first_half, + epert=pert_es_first_half, + bet=dataframes[be]["beta"].values[0], + lam1=dataframes[be]["lambda1"].values[0], + lam2=dataframes[be]["lambda2"].values[0], + alpha=dataframes[be]["alpha"].values[0], + u0=dataframes[be]["uh"].values[0], + w0=dataframes[be]["w0"].values[0], + ) + ln_q[sid] = lnq + sid += 1 + + print(ln_q) + f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) + ddg = f_i[-1] - f_i[0] + ddg1 = ddg / dataframes[0]["beta"].values[0] + ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + + n_samples_second_half = n_samples[inflection_indices[1] :] + pots_second_half = numpy.concatenate(pots[inflection_indices[1] :]) + pert_es_second_half = numpy.concatenate(pert_es[inflection_indices[1] :]) + ln_q = numpy.zeros((total_states - inflection_indices[1], len(pots_second_half))) + sid = 0 + + # note the order of (be, te) + for be in range(len(n_samples_second_half)): + lnq = npot_fcn( + e0=pots_second_half, + epert=pert_es_second_half, + bet=dataframes[be]["beta"].values[0], + lam1=dataframes[be]["lambda1"].values[0], + lam2=dataframes[be]["lambda2"].values[0], + alpha=dataframes[be]["alpha"].values[0], + u0=dataframes[be]["uh"].values[0], + w0=dataframes[be]["w0"].values[0], + ) + ln_q[sid] = lnq + sid += 1 + + f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) + ddg = f_i[-1] - f_i[0] + ddg2 = ddg / dataframes[0]["beta"].values[0] + ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + + ddg_total = ddg1 - ddg2 + ddg_total_error = numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) + return ddg_total, ddg_total_error From 5d31596379d8a4c8c27c3dfb5af3781255764a4d Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 28 May 2024 14:16:21 +0100 Subject: [PATCH 031/123] remove redundant print statement --- python/BioSimSpace/FreeEnergy/AToM/_analysis.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py index 94e02f3ea..e0aa2aa4f 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py @@ -272,7 +272,6 @@ def analyse(work_dir, inflection_indices=None): ln_q[sid] = lnq sid += 1 - print(ln_q) f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) ddg = f_i[-1] - f_i[0] ddg1 = ddg / dataframes[0]["beta"].values[0] From d05337d907561dcbdd055a50f519be3c9555b000 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 28 May 2024 15:38:55 +0100 Subject: [PATCH 032/123] fixed issue with setting protein index --- .../BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 0aeec5809..245249f05 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -128,11 +128,13 @@ def __init__( self.setLigand2RigidCore(ligand2_rigid_core) self._setDisplacement(displacement) if isinstance(mol1, _Molecule): + print("Making from three") self._makeSystemFromThree() - # These will be updated if/when needed - self.protein_index = protein_index - self.ligand1_index = ligand1_index - self.ligand2_index = ligand2_index + else: + # These will be updated if/when needed + self._setProteinIndex(protein_index) + self._setLigand1Index(ligand1_index) + self._setLigand2Index(ligand2_index) self._set_mol1_com_atoms(prot_com_atoms) self._set_lig1_com_atoms(lig1_com_atoms) self._set_lig2_com_atoms(lig2_com_atoms) @@ -400,9 +402,9 @@ def _makeSystemFromThree(self): self.data["displacement"] = [vec.x(), vec.y(), vec.z()] self.system = (self.mol1 + self.ligand1 + self.ligand2).toSystem() - self.protein_index = self.system.getIndex(self.mol1) - self.ligand1_index = self.system.getIndex(self.ligand1) - self.ligand2_index = self.system.getIndex(self.ligand2) + self._setProteinIndex(self.system.getIndex(self.mol1)) + self._setLigand1Index(self.system.getIndex(self.ligand1)) + self._setLigand2Index(self.system.getIndex(self.ligand2)) def _findAtomIndices(self): """ @@ -413,6 +415,7 @@ def _findAtomIndices(self): dict A dictionary containing the indices of the protein and ligand atoms in the system """ + print(f"CURRENT INDEX: {self.protein_index}") protein_atom_start = self.system[self.protein_index[0]].getAtoms()[0] protein_atom_end = self.system[self.protein_index[-1]].getAtoms()[-1] self.first_protein_atom_index = self.system.getIndex(protein_atom_start) From eb022e39aae31ba4ffffd60e1c2a558ff5c1a163 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 28 May 2024 15:42:47 +0100 Subject: [PATCH 033/123] Removes redundant print statement --- python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 245249f05..75847d093 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -415,7 +415,6 @@ def _findAtomIndices(self): dict A dictionary containing the indices of the protein and ligand atoms in the system """ - print(f"CURRENT INDEX: {self.protein_index}") protein_atom_start = self.system[self.protein_index[0]].getAtoms()[0] protein_atom_end = self.system[self.protein_index[-1]].getAtoms()[-1] self.first_protein_atom_index = self.system.getIndex(protein_atom_start) From d56b67686783f2f61da96db026242f42589bf845 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 28 May 2024 16:00:47 +0100 Subject: [PATCH 034/123] Switched print statements to proper warnings --- python/BioSimSpace/Protocol/_AToM.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index bbd8e4d84..2486d0715 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -7,6 +7,7 @@ from .. import Units as _Units import math as _math import numpy as _np +import warnings as _warnings __all__ = ["AToMMinimisation", "AToMEquilibration", "AToMAnnealing", "AToMProduction"] @@ -201,7 +202,7 @@ def setCoreAlignment(self, core_alignment): if isinstance(core_alignment, bool): self._core_alignment = core_alignment else: - print("Non-boolean core alignment flag. Defaulting to True!") + _warnings.warn("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True def getCMCMRestraint(self): @@ -229,7 +230,7 @@ def setCMCMRestraint(self, CMCM_restraint): if isinstance(CMCM_restraint, bool): self._CMCM_restraint = CMCM_restraint else: - print("Non-boolean CMCM restraint flag. Defaulting to True!") + _warnings.warn("Non-boolean CMCM restraint flag. Defaulting to True!") self._CMCM_restraint = True def getPosRestWidth(self): @@ -1280,7 +1281,7 @@ def setReportInterval(self, report_interval): raise TypeError("'report_interval' must be of type 'int'") if report_interval <= 0: - print("'report_interval' must be positive. Using default (100).") + _warnings.warn("'report_interval' must be positive. Using default (100).") report_interval = 100 self._report_interval = report_interval @@ -1315,7 +1316,7 @@ def setRestartInterval(self, restart_interval): raise TypeError("'restart_interval' must be of type 'int'") if restart_interval <= 0: - print("'restart_interval' must be positive. Using default (500).") + _warnings.warn("'restart_interval' must be positive. Using default (500).") restart_interval = 500 self._restart_interval = restart_interval @@ -2025,7 +2026,7 @@ def setReportInterval(self, report_interval): raise TypeError("'report_interval' must be of type 'int'") if report_interval <= 0: - print("'report_interval' must be positive. Using default (100).") + _warnings.warn("'report_interval' must be positive. Using default (100).") report_interval = 100 self._report_interval = report_interval @@ -2060,7 +2061,7 @@ def setRestartInterval(self, restart_interval): raise TypeError("'restart_interval' must be of type 'int'") if restart_interval <= 0: - print("'restart_interval' must be positive. Using default (500).") + _warnings.warn("'restart_interval' must be positive. Using default (500).") restart_interval = 500 self._restart_interval = restart_interval @@ -2826,7 +2827,7 @@ def setReportInterval(self, report_interval): raise TypeError("'report_interval' must be of type 'int'") if report_interval <= 0: - print("'report_interval' must be positive. Using default (100).") + _warnings.warn("'report_interval' must be positive. Using default (100).") report_interval = 100 self._report_interval = report_interval @@ -2861,7 +2862,7 @@ def setRestartInterval(self, restart_interval): raise TypeError("'restart_interval' must be of type 'int'") if restart_interval <= 0: - print("'restart_interval' must be positive. Using default (500).") + _warnings.warn("'restart_interval' must be positive. Using default (500).") restart_interval = 500 self._restart_interval = restart_interval @@ -2891,7 +2892,7 @@ def setRestart(self, restart): if isinstance(restart, bool): self._restart = restart else: - print("Non-boolean restart flag. Defaulting to False!") + _warnings.warn("Non-boolean restart flag. Defaulting to False!") self._restart = False def getNumLambda(self): @@ -2918,8 +2919,7 @@ def setNumLambda(self, num_lambda): """ if isinstance(num_lambda, int) and num_lambda > 0: if num_lambda % 2 != 0: - # Swap this print statement with a warning - print( + _warnings.warn( "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." ) self._num_lambda = num_lambda @@ -3087,8 +3087,6 @@ def setAlpha(self, alpha): elif isinstance(a, float): # Use default units. a *= _Units.Energy.kcal_per_mol - print("HERE") - print(a) else: if isinstance(a, str): From a409e176e36c3b21d408b17208616b21bf52d43b Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 3 Jun 2024 10:26:08 +0100 Subject: [PATCH 035/123] Remove redundant imports --- python/BioSimSpace/FreeEnergy/AToM/_analysis.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py index e0aa2aa4f..5653fc10f 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py @@ -27,9 +27,7 @@ import scipy.optimize import scipy.special import pathlib -import pandas as pd import functools -import pymbar.timeseries def _compute_weights(ln_z, ln_q, factor): From f8c77620c2b398e5785ccdbef94fc85d5fc9e877 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 12 Jun 2024 10:12:07 +0100 Subject: [PATCH 036/123] WIP First stage of refactor, moves AToM make functionality to a new AToM class. Also adds test for makesystem. --- python/BioSimSpace/FreeEnergy/__init__.py | 1 + python/BioSimSpace/FreeEnergy/_atm.py | 987 ++++++++++++++++++++++ tests/FreeEnergy/test_atm.py | 98 +++ 3 files changed, 1086 insertions(+) create mode 100644 python/BioSimSpace/FreeEnergy/_atm.py create mode 100644 tests/FreeEnergy/test_atm.py diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 785427414..77d85222e 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -43,3 +43,4 @@ from ._relative import * from ._utils import * from . import AToM +from ._atm import * diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py new file mode 100644 index 000000000..377fdeb68 --- /dev/null +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -0,0 +1,987 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges , Matthew Burman +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +###################################################################### + +# Functionality for creating and viewing systems for Atomic transfer. +__all__ = ["AToM"] + + +from .. import _is_notebook +from .._SireWrappers import Molecule as _Molecule +from .._SireWrappers import System as _System +from .. import _Utils +from ..Types import Length as _Length +from ..Types import Vector as _Vector +from ..Types import Coordinate as _Coordinate +from ..Align import matchAtoms as _matchAtoms +from ..Align import rmsdAlign as _rmsdAlign +from ..Notebook import View as _View +from ..Process._atom_utils import _AToMUtils as _AtomUtils +import warnings as _warnings +import json as _json +import copy as _copy + + +class AToM: + """A class for creating, setting up, running and analysing AToM + simulations.""" + + def __init__( + self, + system=None, + protein=None, + ligand1=None, + ligand2=None, + protein_index=0, + ligand1_index=1, + ligand2_index=2, + ): + """Constructor for the AToM class. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + A pre-prepared AToM system containing protein and ligands placed in their correct positions. + If provided takes precedence over protein, ligand1 and ligand2. + protein : BioSimSpace._SireWrappers.Molecule + A protein molecule. Will be used along with ligand1 and ligand2 to create a system. + ligand1 : BioSimSpace._SireWrappers.Molecule + The bound ligand. Will be used along with protein and ligand2 to create a system. + ligand2 : BioSimSpace._SireWrappers.Molecule + The free ligand. Will be used along with protein and ligand1 to create a system. + protein_index: int, list + If passing a pre-prepared system, the index (or indices) of the protein molecule in the system (Default 0). + ligand1_index: int + If passing a pre-prepared system, the index of the bound ligand molecule in the system (Default 1). + ligand2_index: int + If passing a pre-prepared system, the index of the free ligand molecule in the system (Default 2). + """ + # make sure that either system or protein, ligand1 and ligand2 are given + if system is None and not all( + x is not None for x in [protein, ligand1, ligand2] + ): + raise ValueError( + "Either a pre-prepared system or protein, bound ligand and free ligand must be given." + ) + # check that the system is a BioSimSpace system + # or the other inputs are BioSimSpace molecules + if system is not None and not isinstance(system, _System): + raise ValueError("The system must be a BioSimSpace System object.") + elif not all( + isinstance(x, _Molecule) + for x in [protein, ligand1, ligand2] + if x is not None + ): + raise ValueError( + "The protein, bound ligand and free ligand must be BioSimSpace Molecule objects." + ) + self._is_prepared = False + self._setSystem(system) + if not self._is_prepared: + self._setProtein(protein) + self._setLigand1(ligand1) + self._setLigand2(ligand2) + else: + self._setProteinIndex(protein_index) + self._setLigand1Index(ligand1_index) + self._setLigand2Index(ligand2_index) + + def _setSystem(self, system, is_prepped=True): + """Set the system for the AToM simulation. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + The system for the AToM simulation. + """ + if system is not None: + if not isinstance(system, _System): + raise ValueError( + f"The system must be a BioSimSpace System object. It is currently {type(system)}." + ) + elif len(system.getMolecules()) < 3: + raise ValueError( + "The system must contain at least three molecules (a protein and two ligands)." + ) + else: + self._system = system + self._is_prepared = is_prepped + else: + self._system = None + self._is_prepared = False + + def _getSystem(self): + """Get the system for the AToM simulation. + + Returns + ------- + BioSimSpace._SireWrappers.System + The system for the AToM simulation. + """ + return self._system + + def _setProtein(self, protein): + """Set the protein for the AToM simulation. + + Parameters + ---------- + protein : BioSimSpace._SireWrappers.Molecule + The protein for the AToM simulation. + """ + if protein is not None: + if not isinstance(protein, _Molecule): + raise ValueError("The protein must be a BioSimSpace Molecule object.") + else: + self._protein = protein + else: + self._protein = None + + def _getProtein(self): + """Get the protein for the AToM simulation. + + Returns + ------- + BioSimSpace._SireWrappers.Molecule + The protein for the AToM simulation. + """ + return self._protein + + def _setLigand1(self, ligand1): + """Set the bound ligand for the AToM simulation. + + Parameters + ---------- + ligand1 : BioSimSpace._SireWrappers.Molecule + The bound ligand for the AToM simulation. + """ + if ligand1 is not None: + if not isinstance(ligand1, _Molecule): + raise ValueError( + "The bound ligand must be a BioSimSpace Molecule object." + ) + else: + self._ligand1 = ligand1 + else: + self._ligand1 = None + + def _getLigand1(self): + """Get the bound ligand for the AToM simulation. + + Returns + ------- + BioSimSpace._SireWrappers.Molecule + The bound ligand for the AToM simulation. + """ + return self._ligand1 + + def _setLigand2(self, ligand2): + """Set the free ligand for the AToM simulation. + + Parameters + ---------- + ligand2 : BioSimSpace._SireWrappers.Molecule + The free ligand for the AToM simulation. + """ + if ligand2 is not None: + if not isinstance(ligand2, _Molecule): + raise ValueError( + "The free ligand must be a BioSimSpace Molecule object." + ) + else: + self._ligand2 = ligand2 + else: + self._ligand2 = None + + def _getLigand2(self): + """Get the free ligand for the AToM simulation. + + Returns + ------- + BioSimSpace._SireWrappers.Molecule + The free ligand for the AToM simulation. + """ + return self._ligand2 + + def _setDisplacement(self, displacement): + """Set the displacement of the free ligand along the normal vector.""" + if isinstance(displacement, str): + try: + self.displacement = _Length(displacement) + except Exception as e: + raise ValueError( + f"Could not convert {displacement} to a BSS length, due to the following error: {e}" + ) + elif isinstance(displacement, _Length): + self.displacement = displacement + elif isinstance(displacement, list): + if len(displacement) != 3: + raise ValueError("displacement must have length 3") + if all(isinstance(x, (float, int)) for x in displacement): + self.displacement = _Vector(*displacement) + elif all(isinstance(x, _Length) for x in displacement): + self.displacement = _Vector([x.value() for x in displacement]) + else: + raise TypeError("displacement must be a list of floats or BSS lengths") + elif isinstance(displacement, _Vector): + self.displacement = displacement + else: + raise TypeError( + f"displacement must be a string, BSS length or list. It is currently {type(displacement)}." + ) + if self._is_prepared: + if not isinstance(self.displacement, _Vector): + raise ValueError( + "Displacement must be a vector or list if a pre-prepared system is given" + ) + + def _getDisplacement(self): + """Get the displacement of the free ligand along the normal vector. + + Returns + ------- + BioSimSpace.Types.Length + The displacement of the free ligand along the normal vector. + """ + return self.displacement + + def _setLigand1RigidCore(self, ligand1_rigid_core): + """Set the indices for the rigid core atoms of ligand 1. + + Parameters + ---------- + ligand1_rigid_core : BioSimSpace._SireWrappers.Molecule + The rigid core of the bound ligand for the AToM simulation. + """ + if ligand1_rigid_core is None: + self.ligand1_rigid_core = None + else: + if not isinstance(ligand1_rigid_core, list): + raise TypeError("ligand1_rigid_core must be a list") + if len(ligand1_rigid_core) != 3: + raise ValueError("ligand1_rigid_core must have length 3") + # make sure all indices are ints + if not all(isinstance(x, int) for x in ligand1_rigid_core): + raise TypeError("ligand1_rigid_core must contain only integers") + if any(x >= self.ligand1_atomcount for x in ligand1_rigid_core): + raise ValueError( + "ligand1_rigid_core contains an index that is greater than the number of atoms in the ligand" + ) + self.ligand1_rigid_core = ligand1_rigid_core + + def _getLigand1RigidCore(self): + """Get the indices for the rigid core atoms of ligand 1. + + Returns + ------- + list + The indices for the rigid core atoms of ligand 1. + """ + return self.ligand1_rigid_core + + def _setLigand2RigidCore(self, ligand2_rigid_core): + """Set the indices for the rigid core atoms of ligand 2. + + Parameters + ---------- + ligand2_rigid_core : BioSimSpace._SireWrappers.Molecule + The rigid core of the free ligand for the AToM simulation. + """ + if ligand2_rigid_core is None: + self.ligand2_rigid_core = None + else: + if not isinstance(ligand2_rigid_core, list): + raise TypeError("ligand2_rigid_core must be a list") + if len(ligand2_rigid_core) != 3: + raise ValueError("ligand2_rigid_core must have length 3") + # make sure all indices are ints + if not all(isinstance(x, int) for x in ligand2_rigid_core): + raise TypeError("ligand2_rigid_core must contain only integers") + if any(x >= self.ligand2_atomcount for x in ligand2_rigid_core): + raise ValueError( + "ligand2_rigid_core contains an index that is greater than the number of atoms in the ligand" + ) + self.ligand2_rigid_core = ligand2_rigid_core + + def _getLigand2RigidCore(self): + """Get the indices for the rigid core atoms of ligand 2. + + Returns + ------- + list + The indices for the rigid core atoms of ligand 2. + """ + return self.ligand2_rigid_core + + def _setProteinIndex(self, protein_index): + """ + Set the index of the protein in the system + + Parameters + ---------- + protein_index : list + The index or indices of the protein in the system. + """ + if isinstance(protein_index, list): + # check that all elements are ints + if not all(isinstance(x, int) for x in protein_index): + raise TypeError("protein_index must be a list of ints or a single int") + for p in protein_index: + if p < 0: + raise ValueError("protein_index must be a positive integer") + if self._system[p].isWater(): + _warnings.warn( + f"The molecule at index {p} is a water molecule, check your protein_index list." + ) + self.protein_index = protein_index + elif isinstance(protein_index, int): + self.protein_index = [protein_index] + else: + raise TypeError("protein_index must be an int or a list of ints") + + def _getProteinIndex(self): + """Get the index of the protein molecule in the system. + + Returns + ------- + int + The index of the protein molecule in the system. + """ + return self.protein_index + + def _setLigand1Index(self, ligand1_index): + """Set the index of the bound ligand molecule in the system. + + Parameters + ---------- + ligand1_index : int + The index of the bound ligand molecule in the system. + """ + if not isinstance(ligand1_index, int): + raise ValueError("ligand1_index must be an integer.") + else: + if ligand1_index < 0: + raise ValueError("ligand1_index must be a positive integer") + if self._system[ligand1_index].isWater(): + _warnings.warn( + f"The molecule at index {ligand1_index} is a water molecule, check your ligand1_index." + ) + self.ligand1_index = ligand1_index + + def _getLigand1Index(self): + """Get the index of the bound ligand molecule in the system. + + Returns + ------- + int + The index of the bound ligand molecule in the system. + """ + return self.ligand1_index + + def _setLigand2Index(self, ligand2_index): + """Set the index of the free ligand molecule in the system. + + Parameters + ---------- + ligand2_index : int + The index of the free ligand molecule in the system. + """ + if not isinstance(ligand2_index, int): + raise ValueError("ligand2_index must be an integer.") + else: + if ligand2_index < 0: + raise ValueError("ligand2_index must be a positive integer") + if self._system[ligand2_index].isWater(): + _warnings.warn( + f"The molecule at index {ligand2_index} is a water molecule, check your ligand2_index." + ) + self.ligand2_index = ligand2_index + + def _getLigand2Index(self): + """Get the index of the free ligand molecule in the system. + + Returns + ------- + int + The index of the free ligand molecule in the system. + """ + return self.ligand2_index + + def prepare( + self, + ligand1_rigid_core, + ligand2_rigid_core, + displacement="20A", + protein_com_atoms=None, + ligand1_com_atoms=None, + ligand2_com_atoms=None, + ): + """Prepare the system for the AToM simulation. + + Parameters + ---------- + ligand1_rigid_core : list + A list of three atom indices that define the rigid core of the bound ligand. + Indices are set relative to the ligand, not the system and are 0-indexed. + ligand2_rigid_core : list + A list of three atom indices that define the rigid core of the free ligand. + Indices are set relative to the ligand, not the system and are 0-indexed. + displacement : float, string, list + The diplacement between the bound and free ligands. + If a float or string is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. + If a list is given, the vector will be used directly. + Lengths should always be given in angstroms. + Default is 20A. + protein_com_atoms : list + A list of atom indices that define the center of mass of the protein. + If None, the center of mass of the protein will be found automatically. + ligand1_com_atoms : list + A list of atom indices that define the center of mass of the bound ligand. + If None, the center of mass of the bound ligand will be found automatically. + ligand2_com_atoms : list + A list of atom indices that define the center of mass of the free ligand. + If None, the center of mass of the free ligand will be found automatically. + """ + if self._is_prepared: + self._systemInfo() + self._setLigand1RigidCore(ligand1_rigid_core) + self._setLigand2RigidCore(ligand2_rigid_core) + self._setDisplacement(displacement) + self._setProtComAtoms(protein_com_atoms) + self._setLig1ComAtoms(ligand1_com_atoms) + self._setLig2ComAtoms(ligand2_com_atoms) + + self._findAtomIndices() + self._makeData() + serialisable_disp = [ + self.displacement.x(), + self.displacement.y(), + self.displacement.z(), + ] + temp_data = self.data.copy() + temp_data["displacement"] = serialisable_disp + self._system._sire_object.setProperty("atom_data", _json.dumps(temp_data)) + return self._system, self.data + + else: + # A bit clunky, but setDisplacement needs to be called twice - before and after _makeSystemFromThree + # the final value will be set after the system is made, but the initial value is needed to make the system + self._setDisplacement(displacement) + system, prot_ind, lig1_ind, lig2_ind, dis_vec = self._makeSystemFromThree( + self._protein, self._ligand1, self._ligand2, self.displacement + ) + self._setSystem(system, is_prepped=False) + self._setDisplacement(dis_vec) + self._setProteinIndex(prot_ind) + self._setLigand1Index(lig1_ind) + self._setLigand2Index(lig2_ind) + self._systemInfo() + self._setLigand1RigidCore(ligand1_rigid_core) + self._setLigand2RigidCore(ligand2_rigid_core) + self._setProtComAtoms(protein_com_atoms) + self._setLig1ComAtoms(ligand1_com_atoms) + self._setLig2ComAtoms(ligand2_com_atoms) + self._findAtomIndices() + self._makeData() + serialisable_disp = [ + self.displacement.x(), + self.displacement.y(), + self.displacement.z(), + ] + temp_data = self.data.copy() + temp_data["displacement"] = serialisable_disp + # encode data in system for consistency + self._system._sire_object.setProperty("atom_data", _json.dumps(temp_data)) + return self._system, self.data + + @staticmethod + def _makeSystemFromThree(protein, ligand1, ligand2, displacement): + """Create a system for AToM simulations. + + Parameters + ---------- + protein : BioSimSpace._SireWrappers.Molecule + The protein for the AToM simulation. + ligand1 : BioSimSpace._SireWrappers.Molecule + The bound ligand for the AToM simulation. + ligand2 : BioSimSpace._SireWrappers.Molecule + The free ligand for the AToM simulation. + displacement : BioSimSpace.Types.Length + The displacement of the ligand along the normal vector. + + Returns + ------- + BioSimSpace._SireWrappers.System + The system for the AToM simulation. + """ + + def _findTranslationVector(system, displacement, protein, ligand): + + from sire.legacy.Maths import Vector + + if not isinstance(system, _System): + raise TypeError("system must be a BioSimSpace system") + if not isinstance(protein, (_Molecule, type(None))): + raise TypeError("protein must be a BioSimSpace molecule") + if not isinstance(ligand, (_Molecule, type(None))): + raise TypeError("ligand must be a BioSimSpace molecule") + + # Assume that binding sire is the center of mass of the ligand + binding = _Coordinate(*ligand._getCenterOfMass()) + + # Create grid around the binding site + # This will act as the search region + grid_length = _Length(20.0, "angstroms") + + num_edges = 5 + search_radius = (grid_length / num_edges) / 2 + grid_min = binding - 0.5 * grid_length + grid_max = binding + 0.5 * grid_length + + non_protein_coords = Vector() + # Count grid squares that contain no protein atoms + num_non_prot = 0 + + import numpy as np + + # Loop over the grid + for x in np.linspace(grid_min.x().value(), grid_max.x().value(), num_edges): + for y in np.linspace( + grid_min.y().value(), grid_max.y().value(), num_edges + ): + for z in np.linspace( + grid_min.z().value(), grid_max.z().value(), num_edges + ): + search = ( + f"atoms within {search_radius.value()} of ({x}, {y}, {z})" + ) + + try: + protein.search(search) + except: + non_protein_coords += Vector(x, y, z) + num_non_prot += 1 + + non_protein_coords /= num_non_prot + non_protein_coords = _Coordinate._from_sire_vector(non_protein_coords) + + # Now search out alpha carbons in system + x = binding.x().angstroms().value() + y = binding.y().angstroms().value() + z = binding.z().angstroms().value() + string = f"(atoms within 10 of {x},{y},{z}) and atomname CA" + + try: + search = system.search(string) + except: + _warnings.warn( + "No alpha carbons found in system, falling back on any carbon atoms." + ) + try: + string = f"(atoms within 10 of {x},{y},{z}) and element C" + search = system.search(string) + except: + raise ValueError("No carbon atoms found in system") + + com = _Coordinate(_Length(0, "A"), _Length(0, "A"), _Length(0, "A")) + atoms1 = [] + for atom in search: + com += atom.coordinates() + atoms1.append(system.getIndex(atom)) + com /= search.nResults() + + initial_normal_vector = (non_protein_coords - com).toVector().normalise() + + out_of_protein = displacement.value() * initial_normal_vector + return out_of_protein + + mapping = _matchAtoms(ligand2, ligand1) + ligand2_aligned = _rmsdAlign(ligand2, ligand1, mapping) + prot_lig1 = (protein + ligand1).toSystem() + + if isinstance(displacement, _Vector): + ligand2_aligned.translate( + [displacement.x(), displacement.y(), displacement.z()] + ) + vec = displacement + else: + vec = _findTranslationVector(prot_lig1, displacement, protein, ligand1) + ligand2_aligned.translate([vec.x(), vec.y(), vec.z()]) + + system = (protein + ligand1 + ligand2_aligned).toSystem() + prot_ind = system.getIndex(protein) + lig1_ind = system.getIndex(ligand1) + lig2_ind = system.getIndex(ligand2_aligned) + return system, prot_ind, lig1_ind, lig2_ind, vec + + def _systemInfo(self): + """ + If the user gives a pre-prepared AToM system, extract the needed information. + """ + for p in self.protein_index: + if self._system[p].isWater(): + _warnings.warn( + f"The molecule at index {self.protein_index} appears to be a water molecule." + " This should be a protein." + ) + if self._system[self.ligand1_index].isWater(): + _warnings.warn( + f"The molecule at index {self.ligand1_index} appears to be a water molecule." + " This should be the bound ligand." + ) + if self._system[self.ligand2_index].isWater(): + _warnings.warn( + f"The molecule at index {self.ligand2_index} appears to be a water molecule." + " This should be the free ligand." + ) + self._protein_atomcount = sum( + self._system[i].nAtoms() for i in self.protein_index + ) + self.ligand1_atomcount = self._system[self.ligand1_index].nAtoms() + self.ligand2_atomcount = self._system[self.ligand2_index].nAtoms() + + def _findAtomIndices(self): + """ + Find the indices of the protein and ligand atoms in the system + + Returns + ------- + dict + A dictionary containing the indices of the protein and ligand atoms in the system + """ + protein_atom_start = self._system[self.protein_index[0]].getAtoms()[0] + protein_atom_end = self._system[self.protein_index[-1]].getAtoms()[-1] + self.first_protein_atom_index = self._system.getIndex(protein_atom_start) + self.last_protein_atom_index = self._system.getIndex(protein_atom_end) + + ligand1_atom_start = self._system[self.ligand1_index].getAtoms()[0] + ligand1_atom_end = self._system[self.ligand1_index].getAtoms()[-1] + self.first_ligand1_atom_index = self._system.getIndex(ligand1_atom_start) + self.last_ligand1_atom_index = self._system.getIndex(ligand1_atom_end) + + ligand2_atom_start = self._system[self.ligand2_index].getAtoms()[0] + ligand2_atom_end = self._system[self.ligand2_index].getAtoms()[-1] + self.first_ligand2_atom_index = self._system.getIndex(ligand2_atom_start) + self.last_ligand2_atom_index = self._system.getIndex(ligand2_atom_end) + + def _getProtComAtoms(self): + """ + Get the atoms that define the center of mass of the protein as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the protein. + """ + return self._mol1_com_atoms + + def _setProtComAtoms(self, prot_com_atoms): + """ + Set the atoms that define the center of mass of the protein + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the protein. + """ + if prot_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(prot_com_atoms, list): + raise TypeError("mol1_com_atoms must be a list") + if not all(isinstance(x, int) for x in prot_com_atoms): + raise TypeError("mol1_com_atoms must be a list of ints") + self._mol1_com_atoms = prot_com_atoms + else: + # Find com of the protein + if self._is_prepared: + temp_system = self._system._sire_object + protein = temp_system[self.protein_index[0]] + for i in self.protein_index[1:]: + protein += temp_system[i] + com = protein.coordinates() + self._mol1_com_atoms = [ + a.index().value() + for a in protein[f"atoms within 11 angstrom of {com}"] + ] + del temp_system + del protein + else: + protein = self._protein + com = protein._sire_object.coordinates() + self._mol1_com_atoms = [ + a.index().value() + for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] + ] + + def _getLig1ComAtoms(self): + """ + Get the atoms that define the center of mass of the bound ligand as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the bound ligand. + """ + return self._lig1_com_atoms + + def _setLig1ComAtoms(self, lig1_com_atoms): + """ + Set the atoms that define the center of mass of the bound ligand + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the bound ligand. + In most cases this will be all atoms within the ligand + """ + if lig1_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(lig1_com_atoms, list): + raise TypeError("lig1_com_atoms must be a list") + if not all(isinstance(x, int) for x in lig1_com_atoms): + raise TypeError("lig1_com_atoms must be a list of ints") + self._lig1_com_atoms = lig1_com_atoms + else: + # Find com of the ligand + if self._is_prepared: + ligand1 = self._system[self._ligand1_index] + else: + ligand1 = self._ligand1 + com = ligand1._sire_object.coordinates() + self._lig1_com_atoms = [ + a.index().value() + for a in ligand1._sire_object[f"atoms within 11 angstrom of {com}"] + ] + + def _getLig2ComAtoms(self): + """ + Get the atoms that define the center of mass of the free ligand as a list of ints + + Returns + ------- + list + A list of atom indices that define the center of mass of the free ligand. + """ + return self._lig2_com_atoms + + def _setLig2ComAtoms(self, lig2_com_atoms): + """ + Set the atoms that define the center of mass of the free ligand + If a list is given, simply set them according to the list. + If None, find them based on the center of mass of the free ligand. + In most cases this will be all atoms within the ligand + """ + if lig2_com_atoms is not None: + # Make sure its a list of ints + if not isinstance(lig2_com_atoms, list): + raise TypeError("lig2_com_atoms must be a list") + if not all(isinstance(x, int) for x in lig2_com_atoms): + raise TypeError("lig2_com_atoms must be a list of ints") + self._lig2_com_atoms = lig2_com_atoms + else: + # Find com of the ligand + if self._is_prepared: + ligand2 = self._system[self._ligand2_index] + else: + ligand2 = self._ligand2 + com = ligand2._sire_object.coordinates() + self._lig2_com_atoms = [ + a.index().value() + for a in ligand2._sire_object[f"atoms within 11 angstrom of {com}"] + ] + + def _makeData(self): + """ + Make the data dictionary for the AToM system + """ + self.data = {} + self.data["displacement"] = self._getDisplacement() + self.data["protein_index"] = self._getProteinIndex() + self.data["ligand1_index"] = self._getLigand1Index() + self.data["ligand2_index"] = self._getLigand2Index() + self.data["ligand1_rigid_core"] = self._getLigand1RigidCore() + self.data["ligand2_rigid_core"] = self._getLigand2RigidCore() + self.data["mol1_atomcount"] = self._protein_atomcount + self.data["ligand1_atomcount"] = self.ligand1_atomcount + self.data["ligand2_atomcount"] = self.ligand2_atomcount + self.data["first_protein_atom_index"] = self.first_protein_atom_index + self.data["last_protein_atom_index"] = self.last_protein_atom_index + self.data["first_ligand1_atom_index"] = self.first_ligand1_atom_index + self.data["last_ligand1_atom_index"] = self.last_ligand1_atom_index + self.data["first_ligand2_atom_index"] = self.first_ligand2_atom_index + self.data["last_ligand2_atom_index"] = self.last_ligand2_atom_index + self.data["protein_com_atoms"] = self._mol1_com_atoms + self.data["ligand1_com_atoms"] = self._lig1_com_atoms + self.data["ligand2_com_atoms"] = self._lig2_com_atoms + + @staticmethod + def viewRigidCores( + system=None, + ligand1=None, + ligand2=None, + ligand1_rigid_core=None, + ligand2_rigid_core=None, + ): + """View the rigid cores of the ligands. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + The system for the AToM simulation that has been prepared AToM.prepare(). + All other parameters are ignored if this is provided. + ligand1 : BioSimSpace._SireWrappers.Molecule + The bound ligand. + ligand2 : BioSimSpace._SireWrappers.Molecule + The free ligand. + ligand1_rigid_core : list + The indices for the rigid core atoms of the bound ligand. + ligand2_rigid_core : list + The indices for the rigid core atoms of the free ligand. + """ + import math as _math + + def move_to_origin(lig): + com = _Coordinate(*lig._getCenterOfMass()) + lig.translate([-com.x().value(), -com.y().value(), -com.z().value()]) + + def euclidean_distance(point1, point2): + return _math.sqrt( + (point1[0] - point2[0]) ** 2 + + (point1[1] - point2[1]) ** 2 + + (point1[2] - point2[2]) ** 2 + ) + + def furthest_points(points): + max_distance = 0 + furthest_pair = None + n = len(points) + + if n < 2: + return None, None, 0 # Not enough points to compare + + for i in range(n): + for j in range(i + 1, n): + distance = euclidean_distance(points[i], points[j]) + if distance > max_distance: + max_distance = distance + furthest_pair = (points[i], points[j]) + + return furthest_pair[0], furthest_pair[1], max_distance + + def vector_from_points(point1, point2): + return (point2[0] - point1[0], point2[1] - point1[1], point2[2] - point1[2]) + + # if a system is provided, check that it has the "atom_data" property + if system is not None: + sdata = _json.loads(system._sire_object.property("atom_data").value()) + local_s = system.copy() + ligand1 = local_s[sdata["ligand1_index"]] + move_to_origin(ligand1) + ligand2 = local_s[sdata["ligand2_index"]] + move_to_origin(ligand2) + ligand1_rigid_core = sdata["ligand1_rigid_core"] + ligand2_rigid_core = sdata["ligand2_rigid_core"] + + # if not system provided, ALL other parameters must be provided + else: + if ligand1 is None: + raise ValueError("ligand1 must be provided") + if ligand2 is None: + raise ValueError("ligand2 must be provided") + if ligand1_rigid_core is None: + raise ValueError("ligand1_rigid_core must be provided") + if ligand2_rigid_core is None: + raise ValueError("ligand2_rigid_core must be provided") + + if not isinstance(ligand1, _Molecule): + raise TypeError("ligand1 must be a BioSimSpace molecule") + if not isinstance(ligand2, _Molecule): + raise TypeError("ligand2 must be a BioSimSpace molecule") + if not isinstance(ligand1_rigid_core, list): + raise TypeError("ligand1_rigid_core must be a list") + elif not len(ligand1_rigid_core) == 3: + raise ValueError("ligand1_rigid_core must have length 3") + if not isinstance(ligand2_rigid_core, list): + raise TypeError("ligand2_rigid_core must be a list") + elif not len(ligand2_rigid_core) == 3: + raise ValueError("ligand2_rigid_core must have length 3") + + # copy the ligands + ligand1 = ligand1.copy() + move_to_origin(ligand1) + ligand2 = ligand2.copy() + move_to_origin(ligand2) + + pre_translation_lig1_core_coords = [] + + for i in ligand1_rigid_core: + x = ligand1.getAtoms()[i].coordinates().x().value() + y = ligand1.getAtoms()[i].coordinates().y().value() + z = ligand1.getAtoms()[i].coordinates().z().value() + pre_translation_lig1_core_coords.append((x, y, z)) + + point1, point2, distance = furthest_points(pre_translation_lig1_core_coords) + vector = vector_from_points(point1, point2) + + # need to know the size of ligand1 + lig1_coords = [] + for i in ligand1.getAtoms(): + x = i.coordinates().x().value() + y = i.coordinates().y().value() + z = i.coordinates().z().value() + lig1_coords.append((x, y, z)) + + lig1_point1, lig1_point2, lig1_distance = furthest_points(lig1_coords) + + # Translate ligand2 so they don't overlap + ligand2.translate( + [ + lig1_distance * vector[0], + lig1_distance * vector[1], + lig1_distance * vector[2], + ] + ) + # Get coords of rigid core atoms + ligand1_core_coords = [] + ligand2_core_coords = [] + for i in ligand1_rigid_core: + ligand1_core_coords.append(ligand1.getAtoms()[i].coordinates()) + for i in ligand2_rigid_core: + ligand2_core_coords.append(ligand2.getAtoms()[i].coordinates()) + + # Create molecule containing both ligands + mol = ligand1 + ligand2 + + # Create view + view = _View(mol) + + # Create nglview object + ngl = view.system(mol) + colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] + # Add spheres to rigid core locations + for coord1, coord2, colour in zip( + ligand1_core_coords, ligand2_core_coords, colours + ): + ngl.shape.add_sphere( + [coord1.x().value(), coord1.y().value(), coord1.z().value()], + colour, + 0.7, + ) + ngl.shape.add_sphere( + [coord2.x().value(), coord2.y().value(), coord2.z().value()], + colour, + 0.7, + ) + if system is not None: + del local_s + return ngl diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py new file mode 100644 index 000000000..1dbe39d30 --- /dev/null +++ b/tests/FreeEnergy/test_atm.py @@ -0,0 +1,98 @@ +import math +import pytest +import requests +import tarfile +import tempfile +import json + +import BioSimSpace as BSS + + +@pytest.fixture() +def TEMOA_host(): + # This will be replaced by the relevant URL when the test is run. + host = BSS.Stream.load("temoa_host.bss") + return host + + +@pytest.fixture() +def TEMOA_lig1(): + # This will be replaced by the relevant URL when the test is run. + lig1 = BSS.Stream.load("temoa_ligG1.bss") + return lig1 + + +@pytest.fixture() +def TEMOA_lig2(): + # This will be replaced by the relevant URL when the test is run. + lig2 = BSS.Stream.load("temoa_ligG4.bss") + return lig2 + + +def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): + + atm_generator = BSS.FreeEnergy.AToM( + protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + ) + # check that an error is thrown in the rigid core atoms are not given to prepare + with pytest.raises(TypeError): + atm_system, atm_data = atm_generator.prepare() + + rigid_core = [1, 2, 3] + + atm_system, atm_data = atm_generator.prepare( + ligand1_rigid_core=rigid_core, ligand2_rigid_core=rigid_core + ) + + # Check that the system contains an atm data property + data_from_system = json.loads(atm_system._sire_object.property("atom_data").value()) + to_ignore = ["displacement"] + # check that atm_data and data_from_system are the same, ignoring anything in to_ignore + assert all( + [ + data_from_system[key] == atm_data[key] + for key in atm_data + if key not in to_ignore + ] + ) + + # check that data[ligand1_rigid_core] and data[ligand2_rigid_core] are the same as the input + assert data_from_system["ligand1_rigid_core"] == rigid_core + assert data_from_system["ligand2_rigid_core"] == rigid_core + + # get the coordinates of the ligands + lig1_coords = atm_system[atm_data["ligand1_index"]]._sire_object.coordinates() + lig2_coords = atm_system[atm_data["ligand2_index"]]._sire_object.coordinates() + # make sure the displacement is correct for the default value of 20A + assert pytest.approx((lig2_coords - lig1_coords).length().value(), rel=1) == 20.0 + + vector = BSS.Types.Vector(10.0, 10.0, 10.0) + + system_withvec, data_withvec = atm_generator.prepare( + ligand1_rigid_core=rigid_core, + ligand2_rigid_core=rigid_core, + displacement=vector, + ) + + data_from_system = json.loads( + system_withvec._sire_object.property("atom_data").value() + ) + assert pytest.approx(data_from_system["displacement"], rel=1e-3) == [ + vector.x(), + vector.y(), + vector.z(), + ] + lig1_coords = system_withvec[ + data_withvec["ligand1_index"] + ]._sire_object.coordinates() + lig2_coords = system_withvec[ + data_withvec["ligand2_index"] + ]._sire_object.coordinates() + + d = lig2_coords - lig1_coords + assert pytest.approx(d.x().value(), 1) == vector.x() + assert pytest.approx(d.y().value(), 1) == vector.y() + assert pytest.approx(d.z().value(), 1) == vector.z() + + # make a new atm_generator and check the parsing of a full system + atm_generator = BSS.FreeEnergy.AToM(system=atm_system) From e4a42f7304ea650d2761d4a1ffa1b9863b1b5ec8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 17 Jun 2024 16:31:17 +0100 Subject: [PATCH 037/123] WIP AToM refactoring and testing --- .../FreeEnergy/AToM/_AToM_system.py | 2 +- python/BioSimSpace/FreeEnergy/_atm.py | 26 +- python/BioSimSpace/Process/_atm.py | 635 ++++++++++++++++++ python/BioSimSpace/Process/_atom_utils.py | 62 +- python/BioSimSpace/Process/_openmm.py | 34 +- python/BioSimSpace/Protocol/_AToM.py | 592 ++++++++-------- tests/FreeEnergy/test_atm.py | 21 - tests/Process/test_atm.py | 91 +++ tests/Protocol/test_atm_protocol.py | 270 ++++++++ tests/conftest.py | 36 + 10 files changed, 1435 insertions(+), 334 deletions(-) create mode 100644 python/BioSimSpace/Process/_atm.py create mode 100644 tests/Process/test_atm.py create mode 100644 tests/Protocol/test_atm_protocol.py diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 75847d093..6c17ad3dc 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -709,7 +709,7 @@ class relativeATM: def __init__( self, system, - protocol=None, + protocol, platform="CPU", work_dir=None, setup_only=False, diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 377fdeb68..b5fa61fbc 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -624,11 +624,11 @@ def _findTranslationVector(system, displacement, protein, ligand): vec = _findTranslationVector(prot_lig1, displacement, protein, ligand1) ligand2_aligned.translate([vec.x(), vec.y(), vec.z()]) - system = (protein + ligand1 + ligand2_aligned).toSystem() - prot_ind = system.getIndex(protein) - lig1_ind = system.getIndex(ligand1) - lig2_ind = system.getIndex(ligand2_aligned) - return system, prot_ind, lig1_ind, lig2_ind, vec + sys = (protein + ligand1 + ligand2_aligned).toSystem() + prot_ind = sys.getIndex(protein) + lig1_ind = sys.getIndex(ligand1) + lig2_ind = sys.getIndex(ligand2_aligned) + return sys, prot_ind, lig1_ind, lig2_ind, vec def _systemInfo(self): """ @@ -879,7 +879,15 @@ def furthest_points(points): return furthest_pair[0], furthest_pair[1], max_distance def vector_from_points(point1, point2): - return (point2[0] - point1[0], point2[1] - point1[1], point2[2] - point1[2]) + dx = point2[0] - point1[0] + dy = point2[1] - point1[1] + dz = point2[2] - point1[2] + + magnitude = _math.sqrt(dx**2 + dy**2 + dz**2) + if magnitude == 0: + return (0, 0, 0) + + return (dx / magnitude, dy / magnitude, dz / magnitude) # if a system is provided, check that it has the "atom_data" property if system is not None: @@ -946,9 +954,9 @@ def vector_from_points(point1, point2): # Translate ligand2 so they don't overlap ligand2.translate( [ - lig1_distance * vector[0], - lig1_distance * vector[1], - lig1_distance * vector[2], + lig1_distance * 2 * vector[0], + lig1_distance * 2 * vector[1], + lig1_distance * 2 * vector[2], ] ) # Get coords of rigid core atoms diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py new file mode 100644 index 000000000..9bea6d8b0 --- /dev/null +++ b/python/BioSimSpace/Process/_atm.py @@ -0,0 +1,635 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges , Matthew Burman +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +###################################################################### + +from ._atom_utils import _AToMUtils +import warnings as _warnings +import math as _math +from .._Exceptions import IncompatibleError as _IncompatibleError +from .. import Protocol as _Protocol +from ._openmm import OpenMM as _OpenMM + + +class OpenMMAToM(_OpenMM): + """config generator functions for AToM simulations using OpenMM. + Designed to overload the _generate_config() method of the OpenMM class + to introduce AToM-specific methods.""" + + def __init__( + self, + system, + protocol, + reference_system=None, + exe=None, + name="openmm", + platform="CPU", + work_dir=None, + seed=None, + property_map={}, + **kwargs, + ): + super().__init__( + system, + protocol, + reference_system=reference_system, + exe=exe, + name=name, + platform=platform, + work_dir=work_dir, + seed=seed, + property_map=property_map, + **kwargs, + ) + + def _generate_config(self): + if isinstance(self._protocol, _Protocol.AToMMinimisation): + self._generate_config_minimisation() + elif isinstance(self._protocol, _Protocol.AToMEquilibration): + self._generate_config_equilibration() + elif isinstance(self._protocol, _Protocol.AToMAnnealing): + self._generate_config_annealing() + elif isinstance(self._protocol, _Protocol.AToMProduction): + self._generate_config_production() + + def _check_space(self): + # Get the "space" property from the user mapping. + prop = self._property_map.get("space", "space") + + # Check whether the system contains periodic box information. + if prop in self._system._sire_object.propertyKeys(): + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = self._system._sire_object.property(prop) + has_box = box.isPeriodic() + except: + has_box = False + else: + _warnings.warn("No simulation box found. Assuming gas phase simulation.") + has_box = False + + return has_box + + def _add_initialisation(self, has_box): + # Write the OpenMM import statements. + # Load the input files. + self.addToConfig("\n# Load the topology and coordinate files.") + self.addToConfig( + "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." + ) + self.addToConfig( + f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" + ) + + # Don't use a cut-off if this is a vacuum simulation or if box information + # is missing. + self.addToConfig("\n# Initialise the molecular system.") + is_periodic = True + if not has_box or not self._has_water: + is_periodic = False + self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") + else: + self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") + self.addToConfig(" nonbondedCutoff=1*nanometer,") + self.addToConfig(" constraints=HBonds)") + + # Set the integrator. (Use zero-temperature as this is just a dummy step.) + self.addToConfig("\n# Define the integrator.") + self.addToConfig("integrator = LangevinMiddleIntegrator(0*kelvin,") + self.addToConfig(" 1/picosecond,") + self.addToConfig(" 0.002*picoseconds)") + + return is_periodic + + def _add_pressure_check(self, pressure, temperature, is_periodic): + # Add a Monte Carlo barostat if the simulation is at constant pressure. + is_constant_pressure = False + if pressure is not None: + # Cannot use a barostat with a non-periodic system. + if not is_periodic: + _warnings.warn( + "Cannot use a barostat for a vacuum or non-periodic simulation" + ) + else: + is_constant_pressure = True + + # Convert to bar and get the value. + pressure = pressure.bar().value() + + # Create the barostat and add its force to the system. + self.addToConfig("\n# Add a barostat to run at constant pressure.") + self.addToConfig( + f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" + ) + if self._is_seeded: + self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") + self.addToConfig("system.addForce(barostat)") + + return is_constant_pressure + + def _add_simulation_instantiation(self): + # Set up the simulation object. + self.addToConfig("\n# Initialise and configure the simulation object.") + self.addToConfig("simulation = Simulation(prm.topology,") + self.addToConfig(" system,") + self.addToConfig(" integrator,") + self.addToConfig(" platform,") + self.addToConfig(" properties)") + if self._protocol.getRestraint() is not None: + self.addToConfig("simulation.context.setPositions(positions)") + else: + self.addToConfig("simulation.context.setPositions(prm.positions)") + self.addToConfig("if prm.box_vectors is not None:") + self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") + self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") + + def _generate_config_minimisation(self): + util = _AToMUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + has_box = self._check_space() + self._add_config_imports() + self._add_config_monkey_patches() + self._add_initialisation(has_box) + + # Add the platform information. + self._add_config_platform() + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + + # Add the atom-specific restraints. + disp = util.createDisplacement() + self.addToConfig(disp) + if self._protocol._getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + if self._protocol._getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + self._add_simulation_instantiation() + + self.addToConfig( + f"simulation.minimizeEnergy(maxIterations={self._protocol._getSteps()})" + ) + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters(state_interval=1, traj_interval=1) + + # Now run the simulation. + self.addToConfig( + "\n# Run a single simulation step to allow us to get the system and energy." + ) + self.addToConfig(f"simulation.step(1)") + + # Flag that this isn't a custom protocol. + self._protocol._setCustomised(False) + + def _generate_config_equilibration(self): + util = _AToMUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + has_box = self._check_space() + self._add_config_imports() + self._add_config_monkey_patches() + is_periodic = self._add_initialisation(has_box) + + # Get the starting temperature and system pressure. + temperature = self._protocol._getStartTemperature().kelvin().value() + pressure = self._protocol._getPressure() + + is_constant_pressure = self._add_pressure_check( + pressure, temperature, is_periodic + ) + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + + # Add the atom-specific restraints. + disp = util.createDisplacement() + self.addToConfig(disp) + if self._protocol._getUseATMForce(): + atm = util.createATMForce(index=None) + self.addToConfig(atm) + + if self._protocol._getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + if self._protocol._getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + self._add_simulation_instantiation() + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Work out the number of integration steps. + steps = _math.ceil(self._protocol.getRunTime() / self._protocol.getTimeStep()) + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=False, + ) + + # Now run the simulation. + self.addToConfig("\n# Run the simulation.") + + # Constant temperature equilibration. + if self._protocol.isConstantTemp(): + self.addToConfig(f"simulation.step({steps})") + + # Heating / cooling cycle. + else: + # Adjust temperature every 100 cycles, assuming that there at + # least that many cycles. + if steps > 100: + # Work out the number of temperature cycles. + temp_cycles = _math.ceil(steps / 100) + + # Work out the temperature change per cycle. + delta_temp = ( + self._protocol._getEndTemperature().kelvin().value() + - self._protocol._getStartTemperature().kelvin().value() + ) / temp_cycles + + self.addToConfig(f"start_temperature = {temperature}") + self.addToConfig(f"for x in range(0, {temp_cycles}):") + self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") + self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") + if is_constant_pressure: + self.addToConfig( + f" barostat.setDefaultTemperature(temperature*kelvin)" + ) + self.addToConfig(" simulation.step(100)") + else: + # Work out the temperature change per step. + delta_temp = ( + self._protocol._getEndTemperature().kelvin().value() + - self._protocol._getStartTemperature().kelvin().value() + ) / steps + + self.addToConfig(f"start_temperature = {temperature}") + self.addToConfig(f"for x in range(0, {steps}):") + self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") + self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") + if is_constant_pressure: + self.addToConfig( + f" barostat.setDefaultTemperature(temperature*kelvin)" + ) + self.addToConfig(" simulation.step(1)") + + def _generate_config_annealing(self): + self._protocol._set_current_index(0) + util = _AToMUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + has_box = self._check_space() + + # Add standard openMM config + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + self._add_config_imports() + self._add_config_monkey_patches() + + is_periodic = self._add_initialisation(has_box) + + # Get the starting temperature and system pressure. + temperature = self._protocol._getTemperature().kelvin().value() + pressure = self._protocol._getPressure() + + is_constant_pressure = self._add_pressure_check( + pressure, temperature, is_periodic + ) + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + + # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + disp = util.createDisplacement() + self.addToConfig(disp) + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + if self._protocol._getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + + if self._protocol._getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + self._add_simulation_instantiation() + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / 100) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + # get annealing protocol from atom utils + annealing_protocol = util.createAnnealingProtocol() + self.addToConfig(annealing_protocol) + + def _generate_config_production(self): + self._protocol._set_current_index(0) + util = _AToMUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + has_box = self._check_space() + + # TODO: check extra_options, extra_lines and property_map + if self._protocol._get_window_index() is None: + raise _IncompatibleError( + "AToM protocol requires the current window index to be set." + ) + + # Write the OpenMM import statements. + + self.addToConfig("import pandas as pd") + self.addToConfig("import numpy as np") + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + self._add_config_imports() + self._add_config_monkey_patches() + self.addToConfig("\n") + self.addToConfig(util.createSoftcorePertE()) + # Add standard openMM config + + is_periodic = self._add_initialisation(has_box) + # Get the starting temperature and system pressure. + temperature = self._protocol._getTemperature().kelvin().value() + pressure = self._protocol._getPressure() + + is_constant_pressure = self._add_pressure_check( + pressure, temperature, is_periodic + ) + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + + # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + disp = util.createDisplacement() + self.addToConfig(disp) + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + if self._protocol._getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + + if self._protocol._getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + self._add_simulation_instantiation() + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / (report_interval * timestep)) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + self.addToConfig(f"\ntemperature = {temperature}") + # Now run the simulation. + self.addToConfig( + util.createSoftcorePertELoop( + self._name, cycles, steps_per_cycle, report_interval, timestep, step + ) + ) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index c5d5b4b5b..5180698e4 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -40,16 +40,16 @@ def __init__(self, protocol): ): raise TypeError("Protocol must be an AToM protocol") self.protocol = protocol - self.data = self.protocol.getData() + self.data = self.protocol._getData() def getAlignmentConstants(self): - self.alignment_k_distance = self.protocol.getAlignKfSep().value() - self.alignment_k_theta = self.protocol.getAlignKTheta().value() - self.alignment_k_psi = self.protocol.getAlignKPsi().value() + self.alignment_k_distance = self.protocol._getAlignKfSep().value() + self.alignment_k_theta = self.protocol._getAlignKTheta().value() + self.alignment_k_psi = self.protocol._getAlignKPsi().value() def getCMConstants(self): - self.cm_kf = self.protocol.getCMKf().value() - self.cm_tol = self.protocol.getCMTol().value() + self.cm_kf = self.protocol._getCMKf().value() + self.cm_tol = self.protocol._getCMTol().value() def findAbsoluteCoreIndices(self): import numpy as np @@ -84,42 +84,42 @@ def findAbsoluteCOMAtoms(self): def getATMForceConstants(self, index=None): self.lig1_atoms = self.getLigand1AtomsAsList() self.lig2_atoms = self.getLigand2AtomsAsList() - self.SCUmax = self.protocol.getSCUmax().value() - self.SCU0 = self.protocol.getSCU0().value() - self.SCa = self.protocol.getSCa() + self.SCUmax = self.protocol._getSCUmax().value() + self.SCU0 = self.protocol._getSCU0().value() + self.SCa = self.protocol._getSCa() if isinstance(self.protocol, _Protocol.AToMProduction): if index is None: raise ValueError("Index must be set for AToMProduction protocol") - self.lambda1 = self.protocol.getLambda1()[index] - self.lambda2 = self.protocol.getLambda2()[index] - self.alpha = self.protocol.getAlpha()[index].value() - self.uh = self.protocol.getUh()[index].value() - self.w0 = self.protocol.getW0()[index].value() - self.direction = self.protocol.getDirections()[index] + self.lambda1 = self.protocol._getLambda1()[index] + self.lambda2 = self.protocol._getLambda2()[index] + self.alpha = self.protocol._getAlpha()[index].value() + self.uh = self.protocol._getUh()[index].value() + self.w0 = self.protocol._getW0()[index].value() + self.direction = self.protocol._getDirection()[index] self.master_lambda = self.protocol._get_lambda_values()[index] elif isinstance( self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) ): - self.lambda1 = self.protocol.getLambda1() - self.lambda2 = self.protocol.getLambda2() - self.alpha = self.protocol.getAlpha().value() - self.uh = self.protocol.getUh().value() - self.w0 = self.protocol.getW0().value() - self.direction = self.protocol.getDirection() + self.lambda1 = self.protocol._getLambda1() + self.lambda2 = self.protocol._getLambda2() + self.alpha = self.protocol._getAlpha().value() + self.uh = self.protocol._getUh().value() + self.w0 = self.protocol._getW0().value() + self.direction = self.protocol._getDirection() def _dump_atm_constants_to_dict(self): """Internal function to write all ATM window-dependent constants to a dictionary (string) to be used in sampling for analysis.""" output = "" output += "atm_constants = {\n" - output += " 'Lambda1': {},\n".format(self.protocol.getLambda1()) - output += " 'Lambda2': {},\n".format(self.protocol.getLambda2()) + output += " 'Lambda1': {},\n".format(self.protocol._getLambda1()) + output += " 'Lambda2': {},\n".format(self.protocol._getLambda2()) output += " 'Alpha': {},\n".format( - [i.value() for i in self.protocol.getAlpha()] + [i.value() for i in self.protocol._getAlpha()] ) - output += " 'Uh': {},\n".format([i.value() for i in self.protocol.getUh()]) - output += " 'W0': {},\n".format([i.value() for i in self.protocol.getW0()]) - output += " 'Direction': {}\n".format(self.protocol.getDirections()) + output += " 'Uh': {},\n".format([i.value() for i in self.protocol._getUh()]) + output += " 'W0': {},\n".format([i.value() for i in self.protocol._getW0()]) + output += " 'Direction': {}\n".format(self.protocol._getDirection()) output += "}\n" output += "for key in atm_constants.keys():\n" @@ -407,8 +407,8 @@ def create_flat_bottom_restraint(self, restrained_atoms): List of atom indices to be restrained. Need to be explicitly given due to the ability to parse strings in the protocol. """ # Still using the position restraint mixin, get the values of the relevant constants - pos_const = self.protocol.getForceConstant().value() - pos_width = self.protocol.getPosRestWidth().value() + pos_const = self.protocol._getForceConstant().value() + pos_width = self.protocol._getPosRestWidth().value() output = "" output += "fc = {} * kilocalorie_per_mole / angstrom**2\n".format(pos_const) output += "tol = {} * angstrom\n".format(pos_width) @@ -438,12 +438,12 @@ def createAnnealingProtocol(self): Create a string which can be added directly to an openmm script to add an annealing protocol to the system. """ anneal_runtime = self.protocol.getRunTime() - num_cycles = self.protocol.getAnnealNumCycles() + num_cycles = self.protocol._getAnnealNumCycles() cycle_numsteps = int( (anneal_runtime / num_cycles) / self.protocol.getTimeStep() ) - prot = self.protocol.getAnnealValues() + prot = self.protocol._getAnnealValues() # Find all entries whose keys contain "start" and create a dictionary of these entries # Also remove the word "start" from the key start = {k.replace("_start", ""): v for k, v in prot.items() if "start" in k} diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index e0f8f9576..09e3dd01b 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -49,7 +49,6 @@ from ..Metadynamics import CollectiveVariable as _CollectiveVariable from ..Protocol._position_restraint_mixin import _PositionRestraintMixin from ..Types._type import Type as _Type - from .. import IO as _IO from .. import Protocol as _Protocol from .. import Trajectory as _Trajectory @@ -68,6 +67,34 @@ class OpenMM(_process.Process): # Dictionary of platforms and their OpenMM keyword. _platforms = {"CPU": "CPU", "CUDA": "CUDA", "OPENCL": "OpenCL"} + # Special cases for generate config when using ATM protocols. + def __new__( + cls, + system, + protocol, + reference_system=None, + exe=None, + name="openmm", + platform="CPU", + work_dir=None, + seed=None, + property_map={}, + **kwargs, + ): + from ._atm import OpenMMAToM + + # would like to use issubclass but _Protocol._AToM is not exposed + if ( + isinstance(protocol, _Protocol.AToMMinimisation) + or isinstance(protocol, _Protocol.AToMEquilibration) + or isinstance(protocol, _Protocol.AToMAnnealing) + or isinstance(protocol, _Protocol.AToMProduction) + ): + + return super().__new__(OpenMMAToM) + else: + return super().__new__(cls) + def __init__( self, system, @@ -1380,17 +1407,16 @@ def getSystem(self, block="AUTO"): # multiplied by the time step. if frac_complete > 1: frac_complete = 1 - # Work out the trajectory frame index, rounding down. # Remember that frames in MDTraj are zero indexed, like Python. index = int(frac_complete * num_frames) if index > 0: index -= 1 - # Return the most recent frame. return self.getFrame(index) - except: + except Exception as e: + _warnings.warn(f"The following error was raised when getting system: {e}") return None def getCurrentSystem(self): diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 2486d0715..1f5bdc3c6 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1,6 +1,7 @@ from BioSimSpace.Units.Area import angstrom2 from BioSimSpace.Units.Energy import kcal_per_mol from BioSimSpace.Units.Length import angstrom +from .._SireWrappers import System as _System from .. import Types as _Types from ._protocol import Protocol as _Protocol from ._position_restraint_mixin import _PositionRestraintMixin @@ -8,6 +9,8 @@ import math as _math import numpy as _np import warnings as _warnings +import json as _json +from ..Types import Vector as _Vector __all__ = ["AToMMinimisation", "AToMEquilibration", "AToMAnnealing", "AToMProduction"] @@ -16,7 +19,8 @@ class _AToM(_Protocol, _PositionRestraintMixin): def __init__( self, - data, + system=None, + data=None, core_alignment=True, CMCM_restraint=True, restraint=None, @@ -27,7 +31,7 @@ def __init__( align_k_psi=10.0 * kcal_per_mol, SC_umax=1000.0 * kcal_per_mol, SC_u0=500.0 * kcal_per_mol, - sc_a=0.0625, + SC_a=0.0625, cm_kf=25.0 * kcal_per_mol / angstrom2, cm_tol=5.0 * angstrom, ): @@ -37,6 +41,9 @@ def __init__( Parameters ---------- + system : :class:`System ` + A system generated by BioSimSpace.FreeEnergy.AToM. + data : dict The AToM data dictionary. @@ -88,7 +95,7 @@ def __init__( SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. cm_kf : int, float, str, :class:`GeneralUnit @@ -100,59 +107,83 @@ def __init__( # Call the base class constructor. super().__init__() + # first check that EITHER system or data is passed + if system is None and data is None: + raise ValueError( + "Either 'system' or 'data' must be passed to the AToM protocol." + ) + + if isinstance(system, _System) and data is None: + try: + sdata = _json.loads(system._sire_object.property("atom_data").value()) + except Exception as e: + raise ValueError( + f"Unable to extract AToM data from the system object. The following error was raised: {e}." + ) + # convert the "displacement" key back to a vector + d = sdata["displacement"] + displacement = _Vector(*d) + sdata["displacement"] = displacement + self._system_data = sdata + + elif system is not None and data is not None: + _warnings.warn( + "Both 'system' and 'data' were passed. Using 'data' and ignoring data from 'system'." + ) + # Store the AToM system. if isinstance(data, dict): self._system_data = data - else: + elif data is not None: raise TypeError("'data' must be of type 'dict'") # Whether or not to use alignment restraints. - self.setCoreAlignment(core_alignment) + self._setCoreAlignment(core_alignment) # Whether or not to use the CMCM restraint. - self.setCMCMRestraint(CMCM_restraint) + self._setCMCMRestraint(CMCM_restraint) # Store the width of the coordinate retraint. - self.setPosRestWidth(pos_rest_width) + self._setPosRestWidth(pos_rest_width) # Store the align_kf_sep value. - self.setAlignKfSep(align_kf_sep) + self._setAlignKfSep(align_kf_sep) # Store the align_k_theta value. - self.setAlignKTheta(align_k_theta) + self._setAlignKTheta(align_k_theta) # Store the align_k_psi value. - self.setAlignKPsi(align_k_psi) + self._setAlignKPsi(align_k_psi) # Store the SC_umax value. - self.setSCUmax(SC_umax) + self._setSCUmax(SC_umax) # Store the SC_u0 value. - self.setSCU0(SC_u0) + self._setSCU0(SC_u0) - # Store the sc_a value. - self.setSCa(sc_a) + # Store the SC_a value. + self._setSCa(SC_a) # Store cm_kf value. - self.setCMKf(cm_kf) + self._setCMKf(cm_kf) # Store cm_tol value. - self.setCMTol(cm_tol) + self._setCMTol(cm_tol) # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) def __str__(self): - d = self.getData() + d = self._getData() """Return a string representation of the protocol.""" string = ": " string += "timestep=%s " % self.getTimeStep() string += ", runtime=%s " % self.getRunTime() - string += ", temperature=%s " % self.getTemperature() + string += ", temperature=%s " % self._getTemperature() if self._pressure is not None: - string += ", pressure=%s, " % self.getPressure() - string += ", lambda1=%s " % self.getLambda1() - string += ", lambda2=%s " % self.getLambda2() + string += ", pressure=%s, " % self._getPressure() + string += ", lambda1=%s " % self._getLambda1() + string += ", lambda2=%s " % self._getLambda2() string += ", ligand1 core atoms=%s" % d["ligand1_rigid_core"] string += ", ligand2 core atoms=%s" % d["ligand2_rigid_core"] string += ", report_interval=%s " % self.getReportInterval() @@ -165,7 +196,7 @@ def __repr__(self): """Return a string showing how to instantiate the object.""" return self.__str__() - def getData(self): + def _getData(self): """ Return the AToM data dictionary. @@ -177,7 +208,7 @@ def getData(self): """ return self._system_data - def getCoreAlignment(self): + def _getCoreAlignment(self): """ Return core alignment boolean. @@ -189,7 +220,7 @@ def getCoreAlignment(self): """ return self._core_alignment - def setCoreAlignment(self, core_alignment): + def _setCoreAlignment(self, core_alignment): """ Set the core alignment flag. @@ -205,7 +236,7 @@ def setCoreAlignment(self, core_alignment): _warnings.warn("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True - def getCMCMRestraint(self): + def _getCMCMRestraint(self): """ Return CMCM restraint boolean. @@ -217,7 +248,7 @@ def getCMCMRestraint(self): """ return self._CMCM_restraint - def setCMCMRestraint(self, CMCM_restraint): + def _setCMCMRestraint(self, CMCM_restraint): """ Set the CMCM restraint flag. @@ -233,7 +264,7 @@ def setCMCMRestraint(self, CMCM_restraint): _warnings.warn("Non-boolean CMCM restraint flag. Defaulting to True!") self._CMCM_restraint = True - def getPosRestWidth(self): + def _getPosRestWidth(self): """ Return the width of the position restraint. @@ -245,7 +276,7 @@ def getPosRestWidth(self): """ return self._pos_rest_width - def setPosRestWidth(self, pos_rest_width): + def _setPosRestWidth(self, pos_rest_width): """ Set the width of the position restraint. @@ -285,7 +316,7 @@ def setPosRestWidth(self, pos_rest_width): ) self._pos_rest_width = pos_rest_width - def getAlignKfSep(self): + def _getAlignKfSep(self): """ Return the align_kf_sep value. @@ -297,7 +328,7 @@ def getAlignKfSep(self): """ return self._align_kf_sep - def setAlignKfSep(self, align_kf_sep): + def _setAlignKfSep(self, align_kf_sep): """ Set the align_kf_sep value. @@ -335,7 +366,7 @@ def setAlignKfSep(self, align_kf_sep): ) self._align_kf_sep = align_kf_sep - def getAlignKTheta(self): + def _getAlignKTheta(self): """ Return the align_k_theta value. @@ -347,7 +378,7 @@ def getAlignKTheta(self): """ return self._align_k_theta - def setAlignKTheta(self, align_k_theta): + def _setAlignKTheta(self, align_k_theta): """ Set the align_k_theta value. @@ -369,7 +400,7 @@ def setAlignKTheta(self, align_k_theta): else: if isinstance(align_k_theta, str): try: - align_k_theta = _Types.Energy(align_k_theta) + align_k_theta = _Types._GeneralUnit(align_k_theta) except Exception: raise ValueError( "Unable to parse 'align_k_theta' string." @@ -388,7 +419,7 @@ def setAlignKTheta(self, align_k_theta): ) self._align_k_theta = align_k_theta - def getAlignKPsi(self): + def _getAlignKPsi(self): """ Return the align_k_psi value. @@ -400,7 +431,7 @@ def getAlignKPsi(self): """ return self._align_k_psi - def setAlignKPsi(self, align_k_psi): + def _setAlignKPsi(self, align_k_psi): """ Set the align_k_psi value. @@ -421,7 +452,7 @@ def setAlignKPsi(self, align_k_psi): else: if isinstance(align_k_psi, str): try: - align_k_psi = _Types.Energy(align_k_psi) + align_k_psi = _Types._GeneralUnit(align_k_psi) except Exception: raise ValueError("Unable to parse 'align_k_psi' string.") from None @@ -438,7 +469,7 @@ def setAlignKPsi(self, align_k_psi): ) self._align_k_psi = align_k_psi - def getSCUmax(self): + def _getSCUmax(self): """ Return the SC_umax value. @@ -450,7 +481,7 @@ def getSCUmax(self): """ return self._SC_umax - def setSCUmax(self, SC_umax): + def _setSCUmax(self, SC_umax): """ Set the SC_umax value. @@ -471,7 +502,7 @@ def setSCUmax(self, SC_umax): else: if isinstance(SC_umax, str): try: - SC_umax = _Types.Energy(SC_umax) + SC_umax = _Types._GeneralUnit(SC_umax) except Exception: raise ValueError("Unable to parse 'SC_umax' string.") from None @@ -488,7 +519,7 @@ def setSCUmax(self, SC_umax): ) self._SC_umax = SC_umax - def getSCU0(self): + def _getSCU0(self): """ Return the SC_u0 value. @@ -500,7 +531,7 @@ def getSCU0(self): """ return self._SC_u0 - def setSCU0(self, SC_u0): + def _setSCU0(self, SC_u0): """ Set the SC_u0 value. @@ -521,7 +552,7 @@ def setSCU0(self, SC_u0): else: if isinstance(SC_u0, str): try: - SC_u0 = _Types.Energy(SC_u0) + SC_u0 = _Types._GeneralUnit(SC_u0) except Exception: raise ValueError("Unable to parse 'SC_u0' string.") from None @@ -538,34 +569,34 @@ def setSCU0(self, SC_u0): ) self._SC_u0 = SC_u0 - def getSCa(self): + def _getSCa(self): """ - Return the sc_a value. + Return the SC_a value. Returns ------- - sc_a : float - The sc_a value. + SC_a : float + The SC_a value. """ - return self._sc_a + return self._SC_a - def setSCa(self, sc_a): + def _setSCa(self, SC_a): """ - Set the sc_a value. + Set the SC_a value. Parameters ---------- - sc_a : float + SC_a : float The softcore a value. """ - if isinstance(sc_a, (int, float)): - self._sc_a = float(sc_a) + if isinstance(SC_a, (int, float)): + self._SC_a = float(SC_a) else: - raise TypeError("'sc_a' must be of type 'float'") + raise TypeError("'SC_a' must be of type 'float'") - def getCMKf(self): + def _getCMKf(self): """ Return the cm_kf value. @@ -577,7 +608,7 @@ def getCMKf(self): """ return self._cm_kf - def setCMKf(self, cm_kf): + def _setCMKf(self, cm_kf): """ Set the cm_kf value. @@ -615,7 +646,7 @@ def setCMKf(self, cm_kf): ) self._cm_kf = cm_kf - def getCMTol(self): + def _getCMTol(self): """ Return the cm_tol value. @@ -627,7 +658,7 @@ def getCMTol(self): """ return self._cm_tol - def setCMTol(self, cm_tol): + def _setCMTol(self, cm_tol): """ Set the cm_tol value. @@ -701,6 +732,9 @@ class AToMMinimisation(_AToM): Parameters ---------- + + system : :class:`System ` + A system generated by BioSimSpace.FreeEnergy.AToM. data : dict The AToM data dictionary. @@ -752,7 +786,7 @@ class AToMMinimisation(_AToM): SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. cm_kf : int, float, str, :class:`GeneralUnit @@ -764,7 +798,8 @@ class AToMMinimisation(_AToM): def __init__( self, - data, + system=None, + data=None, steps=10000, core_alignment=True, CMCM_restraint=True, @@ -776,11 +811,12 @@ def __init__( align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, - sc_a=0.0625, + SC_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, ): super().__init__( + system, data, core_alignment, CMCM_restraint, @@ -792,14 +828,14 @@ def __init__( align_k_psi, SC_umax, SC_u0, - sc_a, + SC_a, cm_kf, cm_tol, ) # Store the number of minimisation steps. - self.setSteps(steps) + self._setSteps(steps) - def getSteps(self): + def _getSteps(self): """ Return the number of minimisation steps. @@ -811,7 +847,7 @@ def getSteps(self): """ return self._steps - def setSteps(self, steps): + def _setSteps(self, steps): """ Set the number of minimisation steps. @@ -832,14 +868,15 @@ class AToMEquilibration(_AToM): def __init__( self, - data, - timestep=_Types.Time(2, "femtosecond"), - runtime=_Types.Time(0.2, "nanosecond"), - temperature_start=_Types.Temperature(300, "kelvin"), - temperature_end=_Types.Temperature(300, "kelvin"), + system=None, + data=None, + timestep=2 * _Units.Time.femtosecond, + runtime=0.2 * _Units.Time.nanosecond, + temperature_start=300 * _Units.Temperature.kelvin, + temperature_end=300 * _Units.Temperature.kelvin, temperature=None, - pressure=_Types.Pressure(1, "atmosphere"), - thermostat_time_constant=_Types.Time(1, "picosecond"), + pressure=1 * _Units.Pressure.atm, + thermostat_time_constant=1 * _Units.Time.picosecond, report_interval=100, restart_interval=100, core_alignment=True, @@ -852,16 +889,16 @@ def __init__( align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, - sc_a=0.0625, + SC_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, use_atm_force=False, direction=1, lambda1=0.0, lambda2=0.0, - alpha=0.0, - uh=0.0, - W0=0.0, + alpha=0.0 * _Units.Energy.kcal_per_mol, + uh=0.0 * _Units.Energy.kcal_per_mol, + W0=0.0 * _Units.Energy.kcal_per_mol, ): """ Create a new equilibration protocol. @@ -869,6 +906,9 @@ def __init__( Parameters ---------- + system : :class:`System ` + A system generated by BioSimSpace.FreeEnergy.AToM. + data : dict The AToM data dictionary. @@ -947,7 +987,7 @@ def __init__( SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. cm_kf : int, float, str, :class:`GeneralUnit @@ -981,6 +1021,7 @@ def __init__( Value in kcal/mol. """ super().__init__( + system, data, core_alignment, CMCM_restraint, @@ -992,18 +1033,18 @@ def __init__( align_k_psi, SC_umax, SC_u0, - sc_a, + SC_a, cm_kf, cm_tol, ) # Store - self.setTimeStep(timestep) + self._setTimestep(timestep) - self.setRunTime(runtime) + self._setRuntime(runtime) # Constant temperature equilibration. if temperature is not None: - self.setStartTemperature(temperature) - self.setEndTemperature(temperature) + self._setStartTemperature(temperature) + self._setEndTemperature(temperature) self._is_const_temp = True # Heating / cooling simulation. @@ -1011,10 +1052,10 @@ def __init__( self._is_const_temp = False # Set the start temperature. - self.setStartTemperature(temperature_start) + self._setStartTemperature(temperature_start) # Set the final temperature. - self.setEndTemperature(temperature_end) + self._setEndTemperature(temperature_end) # Constant temperature simulation. if self._temperature_start == self._temperature_end: @@ -1022,29 +1063,29 @@ def __init__( # Set the system pressure. if pressure is not None: - self.setPressure(pressure) + self._setPressure(pressure) else: self._pressure = None - self.setThermostatTimeConstant(thermostat_time_constant) + self._setThermostatTimeConstant(thermostat_time_constant) - self.setReportInterval(report_interval) + self._setReportInterval(report_interval) - self.setRestartInterval(restart_interval) + self._setRestartInterval(restart_interval) - self.setUseATMForce(use_atm_force) + self._setUseATMForce(use_atm_force) - self.setDirection(direction) + self._setDirection(direction) - self.setLambda1(lambda1) + self._setLambda1(lambda1) - self.setLambda2(lambda2) + self._setLambda2(lambda2) - self.setAlpha(alpha) + self._setAlpha(alpha) - self.setUh(uh) + self._setUh(uh) - self.setW0(W0) + self._setW0(W0) def getTimeStep(self): """ @@ -1058,7 +1099,7 @@ def getTimeStep(self): """ return self._timestep - def setTimeStep(self, timestep): + def _setTimestep(self, timestep): """ Set the time step. @@ -1092,7 +1133,7 @@ def getRunTime(self): """ return self._runtime - def setRunTime(self, runtime): + def _setRuntime(self, runtime): """ Set the running time. @@ -1114,7 +1155,7 @@ def setRunTime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def getStartTemperature(self): + def _getStartTemperature(self): """ Return the starting temperature. @@ -1126,7 +1167,7 @@ def getStartTemperature(self): """ return self._temperature_start - def setStartTemperature(self, temperature): + def _setStartTemperature(self, temperature): """ Set the starting temperature. @@ -1151,7 +1192,7 @@ def setStartTemperature(self, temperature): temperature._value = 0.01 self._temperature_start = temperature - def getEndTemperature(self): + def _getEndTemperature(self): """ Return the final temperature. @@ -1163,7 +1204,7 @@ def getEndTemperature(self): """ return self._temperature_end - def setEndTemperature(self, temperature): + def _setEndTemperature(self, temperature): """ Set the final temperature. @@ -1187,7 +1228,7 @@ def setEndTemperature(self, temperature): temperature._value = 0.01 self._temperature_end = temperature - def getPressure(self): + def _getPressure(self): """ Return the pressure. @@ -1199,7 +1240,7 @@ def getPressure(self): """ return self._pressure - def setPressure(self, pressure): + def _setPressure(self, pressure): """ Set the pressure. @@ -1221,7 +1262,7 @@ def setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def getThermostatTimeConstant(self): + def _getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -1233,7 +1274,7 @@ def getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def setThermostatTimeConstant(self, thermostat_time_constant): + def _setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -1267,7 +1308,7 @@ def getReportInterval(self): """ return self._report_interval - def setReportInterval(self, report_interval): + def _setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -1300,7 +1341,7 @@ def getRestartInterval(self): """ return self._restart_interval - def setRestartInterval(self, restart_interval): + def _setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -1321,7 +1362,7 @@ def setRestartInterval(self, restart_interval): self._restart_interval = restart_interval - def getUseATMForce(self): + def _getUseATMForce(self): """ Return the use_atm_force flag. @@ -1333,7 +1374,7 @@ def getUseATMForce(self): """ return self._use_atm_force - def setUseATMForce(self, use_atm_force): + def _setUseATMForce(self, use_atm_force): """ Set the use_atm_force flag. @@ -1347,7 +1388,7 @@ def setUseATMForce(self, use_atm_force): raise TypeError("'use_atm_force' must be of type 'bool'") self._use_atm_force = use_atm_force - def getDirection(self): + def _getDirection(self): """ Return the direction of the equilibration. @@ -1359,7 +1400,7 @@ def getDirection(self): """ return self._direction - def setDirection(self, direction): + def _setDirection(self, direction): """ Set the direction of the equilibration. @@ -1373,7 +1414,7 @@ def setDirection(self, direction): raise TypeError("'direction' must have a value of 1 or -1") self._direction = int(direction) - def getLambda1(self): + def _getLambda1(self): """ Return the lambda1 value for the ATM force. @@ -1385,7 +1426,7 @@ def getLambda1(self): """ return self._lambda1 - def setLambda1(self, lambda1): + def _setLambda1(self, lambda1): """ Set the lambda1 value for the ATM force. @@ -1401,7 +1442,7 @@ def setLambda1(self, lambda1): raise ValueError("lambda1 must be between 0 and 0.5") self._lambda1 = float(lambda1) - def getLambda2(self): + def _getLambda2(self): """ Return the lambda2 value for the ATM force. @@ -1413,7 +1454,7 @@ def getLambda2(self): """ return self._lambda2 - def setLambda2(self, lambda2): + def _setLambda2(self, lambda2): """ Set the lambda2 value for the ATM force. @@ -1429,7 +1470,7 @@ def setLambda2(self, lambda2): raise ValueError("lambda2 must be between 0 and 0.5") self._lambda2 = float(lambda2) - def getAlpha(self): + def _getAlpha(self): """ Return the alpha value for the ATM force. @@ -1441,7 +1482,7 @@ def getAlpha(self): """ return self._alpha - def setAlpha(self, alpha): + def _setAlpha(self, alpha): """ Set the alpha value for the ATM force. @@ -1462,7 +1503,7 @@ def setAlpha(self, alpha): else: if isinstance(alpha, str): try: - alpha = _Types.Energy(alpha) + alpha = _Types._GeneralUnit(alpha) except Exception: raise ValueError("Unable to parse 'alpha' string.") from None @@ -1479,7 +1520,7 @@ def setAlpha(self, alpha): ) self._alpha = alpha - def getUh(self): + def _getUh(self): """ Return the uh value for the ATM force. @@ -1491,7 +1532,7 @@ def getUh(self): """ return self._uh - def setUh(self, uh): + def _setUh(self, uh): """ Set the uh value for the ATM force. @@ -1512,7 +1553,7 @@ def setUh(self, uh): else: if isinstance(uh, str): try: - uh = _Types.Energy(uh) + uh = _Types._GeneralUnit(uh) except Exception: raise ValueError("Unable to parse 'uh' string.") from None @@ -1529,7 +1570,7 @@ def setUh(self, uh): ) self._uh = uh - def getW0(self): + def _getW0(self): """ Return the W0 value for the ATM force. @@ -1541,7 +1582,7 @@ def getW0(self): """ return self._W0 - def setW0(self, W0): + def _setW0(self, W0): """ Set the W0 value for the ATM force. @@ -1562,7 +1603,7 @@ def setW0(self, W0): else: if isinstance(W0, str): try: - W0 = _Types.Energy(W0) + W0 = _Types._GeneralUnit(W0) except Exception: raise ValueError("Unable to parse 'W0' string.") from None @@ -1608,12 +1649,13 @@ def restraints(cls): class AToMAnnealing(_AToM): def __init__( self, - data, - timestep=_Types.Time(2, "femtosecond"), - runtime=_Types.Time(1, "nanosecond"), - temperature=_Types.Temperature(300, "kelvin"), - pressure=_Types.Pressure(1, "atmosphere"), - thermostat_time_constant=_Types.Time(1, "picosecond"), + system=None, + data=None, + timestep=2 * _Units.Time.femtosecond, + runtime=0.2 * _Units.Time.nanosecond, + temperature=300 * _Units.Temperature.kelvin, + pressure=1 * _Units.Pressure.atm, + thermostat_time_constant=1 * _Units.Time.picosecond, report_interval=100, restart_interval=100, core_alignment=True, @@ -1626,7 +1668,7 @@ def __init__( align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, - sc_a=0.0625, + SC_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, direction=1, @@ -1639,6 +1681,12 @@ def __init__( anneal_numcycles=100, ): """ + Create a new annealing protocol. + + Parameters + ---------- + system : :class:`System ` + A system generated by BioSimSpace.FreeEnergy.AToM. data : dict The AToM data dictionary. @@ -1712,7 +1760,7 @@ def __init__( SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. cm_kf : int, float, str, :class:`GeneralUnit @@ -1778,6 +1826,7 @@ def __init__( The number of annealing cycles to perform, defines the rate at which values are incremented. Default 100. """ super().__init__( + system, data, core_alignment, CMCM_restraint, @@ -1789,46 +1838,46 @@ def __init__( align_k_psi, SC_umax, SC_u0, - sc_a, + SC_a, cm_kf, cm_tol, ) - self.setTimeStep(timestep) + self._setTimestep(timestep) - self.setRunTime(runtime) + self._setRuntime(runtime) - self.setTemperature(temperature) + self._setTemperature(temperature) # Set the system pressure. if pressure is not None: - self.setPressure(pressure) + self._setPressure(pressure) else: self._pressure = None - self.setThermostatTimeConstant(thermostat_time_constant) + self._setThermostatTimeConstant(thermostat_time_constant) - self.setReportInterval(report_interval) + self._setReportInterval(report_interval) - self.setRestartInterval(restart_interval) + self._setRestartInterval(restart_interval) - self.setDirection(direction) + self._setDirection(direction) - self.setLambda1(lambda1) + self._setLambda1(lambda1) - self.setLambda2(lambda2) + self._setLambda2(lambda2) - self.setAlpha(alpha) + self._setAlpha(alpha) - self.setUh(uh) + self._setUh(uh) - self.setW0(W0) + self._setW0(W0) # Store the anneal values. - self.setAnnealValues(anneal_values) + self._setAnnealValues(anneal_values) # Set the number of annealing cycles. - self.setAnnealNumCycles(anneal_numcycles) + self._setAnnealNumCycles(anneal_numcycles) def getTimeStep(self): """ @@ -1842,7 +1891,7 @@ def getTimeStep(self): """ return self._timestep - def setTimeStep(self, timestep): + def _setTimestep(self, timestep): """ Set the time step. @@ -1876,7 +1925,7 @@ def getRunTime(self): """ return self._runtime - def setRunTime(self, runtime): + def _setRuntime(self, runtime): """ Set the running time. @@ -1898,7 +1947,7 @@ def setRunTime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def getTemperature(self): + def _getTemperature(self): """ Return temperature. @@ -1910,7 +1959,7 @@ def getTemperature(self): """ return self._temperature - def setTemperature(self, temperature): + def _setTemperature(self, temperature): """ Set the temperature. @@ -1932,7 +1981,7 @@ def setTemperature(self, temperature): "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" ) - def getPressure(self): + def _getPressure(self): """ Return the pressure. @@ -1944,7 +1993,7 @@ def getPressure(self): """ return self._pressure - def setPressure(self, pressure): + def _setPressure(self, pressure): """ Set the pressure. @@ -1966,7 +2015,7 @@ def setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def getThermostatTimeConstant(self): + def _getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -1978,7 +2027,7 @@ def getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def setThermostatTimeConstant(self, thermostat_time_constant): + def _setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -2012,7 +2061,7 @@ def getReportInterval(self): """ return self._report_interval - def setReportInterval(self, report_interval): + def _setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -2045,7 +2094,7 @@ def getRestartInterval(self): """ return self._restart_interval - def setRestartInterval(self, restart_interval): + def _setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -2066,7 +2115,7 @@ def setRestartInterval(self, restart_interval): self._restart_interval = restart_interval - def getDirection(self): + def _getDirection(self): """ Return the direction of the equilibration. @@ -2078,7 +2127,7 @@ def getDirection(self): """ return self._direction - def setDirection(self, direction): + def _setDirection(self, direction): """ Set the direction of the equilibration. @@ -2092,7 +2141,7 @@ def setDirection(self, direction): raise TypeError("'direction' must have a value of 1 or -1") self._direction = int(direction) - def getLambda1(self): + def _getLambda1(self): """ Return the lambda1 value for the ATM force. @@ -2104,7 +2153,7 @@ def getLambda1(self): """ return self._lambda1 - def setLambda1(self, lambda1): + def _setLambda1(self, lambda1): """ Set the lambda1 value for the ATM force. @@ -2120,7 +2169,7 @@ def setLambda1(self, lambda1): raise ValueError("lambda1 must be between 0 and 0.5") self._lambda1 = float(lambda1) - def getLambda2(self): + def _getLambda2(self): """ Return the lambda2 value for the ATM force. @@ -2132,7 +2181,7 @@ def getLambda2(self): """ return self._lambda2 - def setLambda2(self, lambda2): + def _setLambda2(self, lambda2): """ Set the lambda2 value for the ATM force. @@ -2148,7 +2197,7 @@ def setLambda2(self, lambda2): raise ValueError("lambda2 must be between 0 and 0.5") self._lambda2 = float(lambda2) - def getAlpha(self): + def _getAlpha(self): """ Return the alpha value for the ATM force. @@ -2160,7 +2209,7 @@ def getAlpha(self): """ return self._alpha - def setAlpha(self, alpha): + def _setAlpha(self, alpha): """ Set the alpha value for the ATM force. @@ -2181,7 +2230,7 @@ def setAlpha(self, alpha): else: if isinstance(alpha, str): try: - alpha = _Types.Energy(alpha) + alpha = _Types._GeneralUnit(alpha) except Exception: raise ValueError("Unable to parse 'alpha' string.") from None @@ -2198,7 +2247,7 @@ def setAlpha(self, alpha): ) self._alpha = alpha - def getUh(self): + def _getUh(self): """ Return the uh value for the ATM force. @@ -2210,7 +2259,7 @@ def getUh(self): """ return self._uh - def setUh(self, uh): + def _setUh(self, uh): """ Set the uh value for the ATM force. @@ -2231,7 +2280,7 @@ def setUh(self, uh): else: if isinstance(uh, str): try: - uh = _Types.Energy(uh) + uh = _Types._GeneralUnit(uh) except Exception: raise ValueError("Unable to parse 'uh' string.") from None @@ -2248,7 +2297,7 @@ def setUh(self, uh): ) self._uh = uh - def getW0(self): + def _getW0(self): """ Return the W0 value for the ATM force. @@ -2260,7 +2309,7 @@ def getW0(self): """ return self._W0 - def setW0(self, W0): + def _setW0(self, W0): """ Set the W0 value for the ATM force. @@ -2281,7 +2330,7 @@ def setW0(self, W0): else: if isinstance(W0, str): try: - W0 = _Types.Energy(W0) + W0 = _Types._GeneralUnit(W0) except Exception: raise ValueError("Unable to parse 'W0' string.") from None @@ -2298,7 +2347,7 @@ def setW0(self, W0): ) self._W0 = W0 - def getAnnealValues(self): + def _getAnnealValues(self): """ Return the anneal protocol. @@ -2310,7 +2359,7 @@ def getAnnealValues(self): """ return self._anneal_values - def setAnnealValues(self, anneal_values): + def _setAnnealValues(self, anneal_values): """ Set the anneal protocol. @@ -2353,40 +2402,29 @@ def capitalise_keys(input_dict): "W0_start", "W0_end", ] - if all(key in keys for key in anneal_values.keys()): - # check that the values are of the correct type - if all( - isinstance(anneal_values[key], (float, int)) - for key in anneal_values.keys() - ): - # check that the values are in the correct range - if all(0 <= value <= 1 for value in anneal_values.values()): - # check that, if {x}_start is given, then {x}_end is also given - # if this check passes, then the values should be valid - keys_start = [ - key for key in anneal_values if key.endswith("start") - ] - end = [key.split("_")[0] + "_end" for key in keys_start] - if all(key in anneal_values for key in end): - pass - else: - raise ValueError( - "If a start value is given, then an end value must also be given" - ) - else: - raise ValueError( - "The values in the anneal values must be in the range 0 to 1" - ) - else: - raise TypeError( - "The values in the anneal values must be of type 'float' or 'int' for all keys except 'runtime', which must be of type 'BioSimSpace.Types.Time'" + for key in anneal_values: + if key not in keys: + raise ValueError( + f"The anneal values can only contain the following keys: 'lambda1_start', 'lambda1_end', 'lambda2_start', 'lambda2_end', 'alpha_start', 'alpha_end', 'uh_start', 'uh_end', 'W0_start', 'W0_end', 'runtime'. The following keys are invalid: {key}" ) - else: - # find the keys that are not valid - invalid_keys = [key for key in anneal_values if key not in keys] - raise ValueError( - f"The anneal values can only contain the following keys: 'lambda1_start', 'lambda1_end', 'lambda2_start', 'lambda2_end', 'alpha_start', 'alpha_end', 'uh_start', 'uh_end', 'W0_start', 'W0_end', 'runtime'. The following keys are invalid: {invalid_keys}" - ) + if key == "lambda1_start" or key == "lambda1_end": + if not 0 <= float(anneal_values[key]) <= 0.5: + raise ValueError("lambda1 must be between 0 and 0.5") + if key == "lambda2_start" or key == "lambda2_end": + if not 0 <= float(anneal_values[key]) <= 0.5: + raise ValueError("lambda2 must be between 0 and 0.5") + # check that none of the other keys are negative + if ( + key != "lambda1_start" + and key != "lambda1_end" + and key != "lambda2_start" + and key != "lambda2_end" + ): + if float(anneal_values[key]) < 0: + raise ValueError(f"{key} must be greater than or equal to 0") + # also check that they are floats + if not isinstance(anneal_values[key], (float, int)): + raise TypeError(f"{key} must be of type 'float'") self._anneal_values = capitalise_keys(anneal_values) elif anneal_values is None: self._anneal_values = None @@ -2396,7 +2434,7 @@ def capitalise_keys(input_dict): "'anneal_values' must be of type 'dict', 'None', or 'default'" ) - def getAnnealNumCycles(self): + def _getAnnealNumCycles(self): """ Return the number of annealing cycles. @@ -2408,7 +2446,7 @@ def getAnnealNumCycles(self): """ return self._anneal_numcycles - def setAnnealNumCycles(self, anneal_numcycles): + def _setAnnealNumCycles(self, anneal_numcycles): """ Set the number of annealing cycles. @@ -2427,12 +2465,13 @@ def setAnnealNumCycles(self, anneal_numcycles): class AToMProduction(_AToM): def __init__( self, - data, - timestep=_Types.Time(2, "femtosecond"), - runtime=_Types.Time(1, "nanosecond"), - temperature=_Types.Temperature(300, "kelvin"), - pressure=_Types.Pressure(1, "atmosphere"), - thermostat_time_constant=_Types.Time(1, "picosecond"), + system=None, + data=None, + timestep=2 * _Units.Time.femtosecond, + runtime=1.0 * _Units.Time.nanosecond, + temperature=300 * _Units.Temperature.kelvin, + pressure=1 * _Units.Pressure.atm, + thermostat_time_constant=1 * _Units.Time.picosecond, report_interval=100, restart_interval=100, restart=False, @@ -2442,7 +2481,7 @@ def __init__( force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, pos_rest_width=0.5 * angstrom, num_lambda=22, - directions=None, + direction=None, lambda1=None, lambda2=None, alpha=None, @@ -2453,12 +2492,19 @@ def __init__( align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=100 * _Units.Energy.kcal_per_mol, SC_u0=50 * _Units.Energy.kcal_per_mol, - sc_a=0.0625, + SC_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, ): """ - data : dict + Create a new production protocol. + + Parameters + ---------- + system : :class:`System ` + A system generated by BioSimSpace.FreeEnergy.AToM. + + data : dict The AToM data dictionary. timestep : :class:`Time ` @@ -2531,7 +2577,7 @@ def __init__( SC_u0 : int, float, str, :class:`Energy The uh value for the ATM softcore potential (kcal/mol). - sc_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy The a value for the ATM softcore potential. cm_kf : int, float, str, :class:`GeneralUnit @@ -2570,6 +2616,7 @@ def __init__( """ super().__init__( + system, data, core_alignment, CMCM_restraint, @@ -2581,53 +2628,53 @@ def __init__( align_k_psi, SC_umax, SC_u0, - sc_a, + SC_a, cm_kf, cm_tol, ) - self.setTimeStep(timestep) + self._setTimestep(timestep) - self.setRunTime(runtime) + self._setRuntime(runtime) - self.setTemperature(temperature) + self._setTemperature(temperature) # Set the system pressure. if pressure is not None: - self.setPressure(pressure) + self._setPressure(pressure) else: self._pressure = None - self.setThermostatTimeConstant(thermostat_time_constant) + self._setThermostatTimeConstant(thermostat_time_constant) - self.setReportInterval(report_interval) + self._setReportInterval(report_interval) - self.setRestartInterval(restart_interval) + self._setRestartInterval(restart_interval) # Set the restart flag. - self.setRestart(restart) + self._setRestart(restart) # Set the number of lambda values. # If other window-dependent parameters are not set, then set them to # sensible defaults. - self.setNumLambda(num_lambda) + self._setNumLambda(num_lambda) # Store the direction values. - self.setDirections(directions) + self._setDirection(direction) # Store the lambda1 values. - self.setLambda1(lambda1) + self._setLambda1(lambda1) # Store the lambda2 values. - self.setLambda2(lambda2) + self._setLambda2(lambda2) # Store the alpha values. - self.setAlpha(alpha) + self._setAlpha(alpha) # Store the uh values. - self.setUh(uh) + self._setUh(uh) # Store the W0 values. - self.setW0(W0) + self._setW0(W0) self._set_lambda_values() @@ -2643,7 +2690,7 @@ def getTimeStep(self): """ return self._timestep - def setTimeStep(self, timestep): + def _setTimestep(self, timestep): """ Set the time step. @@ -2667,7 +2714,7 @@ def setTimeStep(self, timestep): def getRunTime(self): """ - Return the running time. + Return the running time. Set the same as other OpenMM protocols - really should be Runtime not RunTime. Returns ------- @@ -2677,7 +2724,7 @@ def getRunTime(self): """ return self._runtime - def setRunTime(self, runtime): + def _setRuntime(self, runtime): """ Set the running time. @@ -2699,7 +2746,7 @@ def setRunTime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def getTemperature(self): + def _getTemperature(self): """ Return temperature. @@ -2711,7 +2758,7 @@ def getTemperature(self): """ return self._temperature - def setTemperature(self, temperature): + def _setTemperature(self, temperature): """ Set the temperature. @@ -2733,7 +2780,7 @@ def setTemperature(self, temperature): "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" ) - def getPressure(self): + def _getPressure(self): """ Return the pressure. @@ -2745,7 +2792,7 @@ def getPressure(self): """ return self._pressure - def setPressure(self, pressure): + def _setPressure(self, pressure): """ Set the pressure. @@ -2767,7 +2814,7 @@ def setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def getThermostatTimeConstant(self): + def _getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -2779,7 +2826,7 @@ def getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def setThermostatTimeConstant(self, thermostat_time_constant): + def _setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -2813,7 +2860,7 @@ def getReportInterval(self): """ return self._report_interval - def setReportInterval(self, report_interval): + def _setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -2846,7 +2893,7 @@ def getRestartInterval(self): """ return self._restart_interval - def setRestartInterval(self, restart_interval): + def _setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -2879,7 +2926,7 @@ def isRestart(self): """ return self._restart - def setRestart(self, restart): + def _setRestart(self, restart): """ Set the restart flag. @@ -2895,7 +2942,7 @@ def setRestart(self, restart): _warnings.warn("Non-boolean restart flag. Defaulting to False!") self._restart = False - def getNumLambda(self): + def _getNumLambda(self): """ Return the number of lambda values. @@ -2907,7 +2954,7 @@ def getNumLambda(self): """ return self._num_lambda - def setNumLambda(self, num_lambda): + def _setNumLambda(self, num_lambda): """ Set the number of lambda values. @@ -2927,7 +2974,7 @@ def setNumLambda(self, num_lambda): else: raise TypeError("'num_lambda' must be of type 'int'") - def getDirections(self): + def _getDirection(self): """ Return the direction values. @@ -2939,7 +2986,7 @@ def getDirections(self): """ return self._directions - def setDirections(self, directions): + def _setDirection(self, directions): """ Set the direction values. @@ -2965,7 +3012,7 @@ def setDirections(self, directions): else: raise TypeError("'directions' must be of type 'list' or 'None'") - def getLambda1(self): + def _getLambda1(self): """ Return the lambda1 values. @@ -2977,7 +3024,7 @@ def getLambda1(self): """ return self._lambda1 - def setLambda1(self, lambda1): + def _setLambda1(self, lambda1): """ Set the lambda1 values. @@ -2990,10 +3037,14 @@ def setLambda1(self, lambda1): if isinstance(lambda1, list): if len(lambda1) != self._num_lambda: raise ValueError("'lambda1' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in lambda1): + if all(isinstance(item, float) for item in lambda1) and all( + item <= 0.5 for item in lambda1 + ): self._lambda1 = lambda1 else: - raise ValueError("all entries in 'lambda1' must be floats") + raise ValueError( + "all entries in 'lambda1' must be floats with a value less than or equal to 0.5" + ) elif lambda1 is None: # use numpy to create a list of floats self._lambda1 = _np.concatenate( @@ -3007,7 +3058,7 @@ def setLambda1(self, lambda1): else: raise TypeError("'lambda1' must be of type 'list'") - def getLambda2(self): + def _getLambda2(self): """ Return the lambda2 values. @@ -3019,7 +3070,7 @@ def getLambda2(self): """ return self._lambda2 - def setLambda2(self, lambda2): + def _setLambda2(self, lambda2): """ Set the lambda2 values. @@ -3032,7 +3083,9 @@ def setLambda2(self, lambda2): if isinstance(lambda2, list): if len(lambda2) != self._num_lambda: raise ValueError("'lambda2' must have the same length as 'num_lambda'") - if all(isinstance(item, float) for item in lambda2): + if all(isinstance(item, float) for item in lambda2) and all( + item <= 0.5 for item in lambda2 + ): if len(lambda2) != len(self._lambda1): raise ValueError( "'lambda2' and 'lambda1' must have the same length" @@ -3053,7 +3106,7 @@ def setLambda2(self, lambda2): else: raise TypeError("'lambda2' must be of type 'list'") - def getAlpha(self): + def _getAlpha(self): """ Return the alpha values. @@ -3065,14 +3118,14 @@ def getAlpha(self): """ return self._alpha - def setAlpha(self, alpha): + def _setAlpha(self, alpha): """ Set the alpha values. Parameters ---------- - alpha : list of :class:`Energy + alpha : list of :class:`Energy or list of int, float, str The alpha values in kcal/mol. """ if isinstance(alpha, list): @@ -3083,6 +3136,7 @@ def setAlpha(self, alpha): # Convert int to float. if type(a) is int: a = float(a) + a *= _Units.Energy.kcal_per_mol elif isinstance(a, float): # Use default units. @@ -3091,7 +3145,7 @@ def setAlpha(self, alpha): else: if isinstance(a, str): try: - a = _Types.Energy(a) + a = _Types._GeneralUnit(a) except Exception: raise ValueError( "Unable to parse 'alpha' string." @@ -3115,7 +3169,7 @@ def setAlpha(self, alpha): else: raise TypeError("'alpha' must be of type 'list' or None") - def getUh(self): + def _getUh(self): """ Return the uh values. @@ -3127,7 +3181,7 @@ def getUh(self): """ return self._uh - def setUh(self, uh): + def _setUh(self, uh): """ Set the uh values. @@ -3145,6 +3199,7 @@ def setUh(self, uh): # Convert int to float. if type(u) is int: u = float(u) + u *= _Units.Energy.kcal_per_mol if isinstance(u, float): # Use default units. @@ -3153,7 +3208,7 @@ def setUh(self, uh): else: if isinstance(u, str): try: - u = _Types.Energy(u) + u = _Types._GeneralUnit(u) except Exception: raise ValueError( "Unable to parse 'alpha' string." @@ -3177,7 +3232,7 @@ def setUh(self, uh): else: raise TypeError("'uh' must be of type 'list'") - def getW0(self): + def _getW0(self): """ Return the W0 values. @@ -3189,7 +3244,7 @@ def getW0(self): """ return self._W0 - def setW0(self, W0): + def _setW0(self, W0): """ Set the W0 values. @@ -3207,6 +3262,7 @@ def setW0(self, W0): # Convert int to float. if type(w) is int: w = float(w) + w *= _Units.Energy.kcal_per_mol if isinstance(w, float): # Use default units. @@ -3215,7 +3271,7 @@ def setW0(self, W0): else: if isinstance(w, str): try: - w = _Types.Energy(w) + w = _Types._GeneralUnit(w) except Exception: raise ValueError( "Unable to parse 'alpha' string." diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 1dbe39d30..f6a86aab1 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -8,27 +8,6 @@ import BioSimSpace as BSS -@pytest.fixture() -def TEMOA_host(): - # This will be replaced by the relevant URL when the test is run. - host = BSS.Stream.load("temoa_host.bss") - return host - - -@pytest.fixture() -def TEMOA_lig1(): - # This will be replaced by the relevant URL when the test is run. - lig1 = BSS.Stream.load("temoa_ligG1.bss") - return lig1 - - -@pytest.fixture() -def TEMOA_lig2(): - # This will be replaced by the relevant URL when the test is run. - lig2 = BSS.Stream.load("temoa_ligG4.bss") - return lig2 - - def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM( diff --git a/tests/Process/test_atm.py b/tests/Process/test_atm.py new file mode 100644 index 000000000..1a0e06b2d --- /dev/null +++ b/tests/Process/test_atm.py @@ -0,0 +1,91 @@ +import pytest + +import BioSimSpace as BSS + + +def test_ATM_min(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # Generate a minimisation protocol + prot_min = BSS.Protocol.AToMMinimisation(data=data, steps=100) + + run_process(system, prot_min) + del system, data + + +def test_ATM_equil_noATMForce(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # Generate an equilibration protocol + prot_equil = BSS.Protocol.AToMEquilibration( + data=data, runtime="0.2 ps", use_atm_force=False + ) + + run_process(system, prot_equil) + del system, data + + +def test_ATM_equil_withATMForce(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # Generate an equilibration protocol + prot_equil = BSS.Protocol.AToMEquilibration( + data=data, runtime="0.2 ps", use_atm_force=True + ) + + run_process(system, prot_equil) + del system, data + + +def test_ATM_anneal(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # Generate an annealing protocol + prot_anneal = BSS.Protocol.AToMAnnealing(data=data, runtime="0.2 ps") + + run_process(system, prot_anneal) + del system, data + + +def test_custom_ATM_anneal(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # now test passing a valid dictionary + annealing_dict = { + "lambda1_start": 0.0, + "lambda1_end": 0.5, + "lambda2_start": 0.0, + "lambda2_end": 0.5, + "alpha_start": 0.0, + "alpha_end": 0.5, + "uh_start": 0.0, + "uh_end": 0.5, + "W0_start": 0.0, + "W0_end": 0.5, + } + protocol = BSS.Protocol.AToMAnnealing( + data=data, + anneal_values=annealing_dict, + anneal_numcycles=10, + runtime="0.2 ps", + ) + run_process(system, protocol) + + +def run_process(system, protocol): + """Helper function to run various simulation protocols.""" + + # Initialise the OpenMM process. + process = BSS.Process.OpenMM(system, protocol, name="test") + + # Start the OpenMM simulation. + process.start() + + # Wait for the process to end. + process.wait() + + # Make sure the process didn't error. + assert not process.isError() + + # Make sure that we get a molecular system back. + assert process.getSystem() is not None diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py new file mode 100644 index 000000000..71d2091b8 --- /dev/null +++ b/tests/Protocol/test_atm_protocol.py @@ -0,0 +1,270 @@ +import pytest +import BioSimSpace as BSS + + +def test_atm_minimisation(TEMOA_hostguest): + # We will use this as a test for all of the parent class inputs + + # First need to test that both forms of the `data` input work + system, data = TEMOA_hostguest + BSS.Protocol.AToMMinimisation(data=data) + BSS.Protocol.AToMMinimisation(system=system) + # Now test the optional inputs, first using biosimspace Units + protocol_units = BSS.Protocol.AToMMinimisation( + data=data, + core_alignment=False, + CMCM_restraint=False, + restraint="all", + force_constant=1.0 * (BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2), + pos_rest_width=0.1 * BSS.Units.Length.angstrom, + align_kf_sep=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, + align_k_theta=1.0 * BSS.Units.Energy.kcal_per_mol, + align_k_psi=1.0 * BSS.Units.Energy.kcal_per_mol, + SC_umax=10.0 * BSS.Units.Energy.kcal_per_mol, + SC_u0=1.0 * BSS.Units.Energy.kcal_per_mol, + SC_a=0.01, + cm_kf=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, + cm_tol=1.0 * BSS.Units.Length.angstrom, + ) + + # Now test parsing options as floats + protocol_floats = BSS.Protocol.AToMMinimisation( + data=data, + force_constant=1.0, + pos_rest_width=0.1, + align_kf_sep=1.0, + align_k_theta=1.0, + align_k_psi=1.0, + SC_umax=10.0, + SC_u0=1.0, + SC_a=0.01, + cm_kf=1.0, + cm_tol=1.0, + ) + + # Finally try parsing strings + protocol_strings = BSS.Protocol.AToMMinimisation( + data=data, + force_constant="1.0 kcal mol^-1 angstrom^-2", + pos_rest_width="0.1 angstrom", + align_kf_sep="1.0 kcal mol^-1 angstrom^-2", + align_k_theta="1.0 kcal mol^-1", + align_k_psi="1.0 kcal mol^-1", + SC_umax="10.0 kcal mol^-1", + SC_u0="1.0 kcal mol^-1", + SC_a=0.01, + cm_kf="1.0 kcal mol^-1 angstrom^-2", + cm_tol="1.0 angstrom", + ) + # using getters, check that all protocols have the same values + # (skip force constant and as it is not atm exclusive) + assert ( + protocol_units._getPosRestWidth() + == protocol_floats._getPosRestWidth() + == protocol_strings._getPosRestWidth() + ) + assert ( + protocol_units._getAlignKfSep() + == protocol_floats._getAlignKfSep() + == protocol_strings._getAlignKfSep() + ) + assert ( + protocol_units._getAlignKTheta() + == protocol_floats._getAlignKTheta() + == protocol_strings._getAlignKTheta() + ) + assert ( + protocol_units._getAlignKPsi() + == protocol_floats._getAlignKPsi() + == protocol_strings._getAlignKPsi() + ) + assert ( + protocol_units._getSCUmax() + == protocol_floats._getSCUmax() + == protocol_strings._getSCUmax() + ) + assert ( + protocol_units._getSCU0() + == protocol_floats._getSCU0() + == protocol_strings._getSCU0() + ) + assert ( + protocol_units._getSCa() + == protocol_floats._getSCa() + == protocol_strings._getSCa() + ) + assert ( + protocol_units._getCMKf() + == protocol_floats._getCMKf() + == protocol_strings._getCMKf() + ) + assert ( + protocol_units._getCMTol() + == protocol_floats._getCMTol() + == protocol_strings._getCMTol() + ) + + +def test_atm_equilibration(TEMOA_hostguest): + # Testing equilibration-specific inputs + system, data = TEMOA_hostguest + + protocol_units = BSS.Protocol.AToMEquilibration( + data=data, + timestep=1 * BSS.Units.Time.femtosecond, + runtime=0.1 * BSS.Units.Time.nanosecond, + temperature_start=200 * BSS.Units.Temperature.kelvin, + temperature_end=300 * BSS.Units.Temperature.kelvin, + pressure=0.99 * BSS.Units.Pressure.atm, + thermostat_time_constant=1.5 * BSS.Units.Time.picosecond, + report_interval=1000, + restart_interval=1001, + use_atm_force=True, + direction=-1, + lambda1=0.1, + lambda2=0.2, + alpha=0.1 * BSS.Units.Energy.kcal_per_mol, + uh=0.1 * BSS.Units.Energy.kcal_per_mol, + W0=0.1 * BSS.Units.Energy.kcal_per_mol, + ) + + # test setting alpha,uh and w0 as floats + protocol_floats = BSS.Protocol.AToMEquilibration( + data=data, + alpha=0.1, + uh=0.1, + W0=0.1, + ) + + # test setting alpha,uh and w0 as strings + protocol_strings = BSS.Protocol.AToMEquilibration( + data=data, + timestep="1 fs", + runtime="0.1 ns", + temperature_start="200 K", + temperature_end="300 K", + pressure="0.99 atm", + thermostat_time_constant="1.5 ps", + alpha="0.1 kcal mol^-1", + uh="0.1 kcal mol^-1", + W0="0.1 kcal mol^-1", + ) + + # Check that all protocols have the same values + assert protocol_units._getTimestep() == protocol_strings._getTimestep() + assert protocol_units._getRuntime() == protocol_strings._getRuntime() + assert ( + protocol_units._getStartTemperature() == protocol_strings._getStartTemperature() + ) + assert protocol_units._getEndTemperature() == protocol_strings._getEndTemperature() + assert protocol_units._getPressure() == protocol_strings._getPressure() + assert ( + protocol_units._getThermostatTimeConstant() + == protocol_strings._getThermostatTimeConstant() + ) + assert ( + protocol_units._getAlpha() + == protocol_floats._getAlpha() + == protocol_strings._getAlpha() + ) + assert ( + protocol_units._getUh() == protocol_floats._getUh() == protocol_strings._getUh() + ) + assert ( + protocol_units._getW0() == protocol_floats._getW0() == protocol_strings._getW0() + ) + + +def test_atm_annealing(TEMOA_hostguest): + # Testing annealing-specific inputs + system, data = TEMOA_hostguest + + # first test passing an invalid key in the annealing dictionary + annealing_dict = { + "lambda1_start": 0.0, + "lambda1_end": 0.5, + "lambda2_start": 0.0, + "lambda2_end": 0.5, + "invalid_key": 0.0, + } + with pytest.raises(ValueError): + BSS.Protocol.AToMAnnealing(data=data, anneal_values=annealing_dict) + + # now test passing a valid dictionary + annealing_dict = { + "lambda1_start": 0.0, + "lambda1_end": 0.5, + "lambda2_start": 0.0, + "lambda2_end": 0.5, + "alpha_start": 0.0, + "alpha_end": 0.5, + "uh_start": 0.0, + "uh_end": 0.5, + "W0_start": 0.0, + "W0_end": 0.5, + } + protocol = BSS.Protocol.AToMAnnealing( + data=data, + anneal_values=annealing_dict, + anneal_numcycles=10, + alpha="0.1 kcal mol^-1", + uh="0.1 kcal mol^-1", + W0="0.1 kcal mol^-1", + ) + + +def test_atm_production(TEMOA_hostguest): + # Testing production-specific inputs + system, data = TEMOA_hostguest + + # fist create a production protocol with num_lambda=6 + protocol = BSS.Protocol.AToMProduction( + data=data, + num_lambda=6, + ) + # get values for direction, lambda1, lambda2, alpha, uh and W0 + assert len(protocol._getDirection()) == 6 + assert len(protocol._getLambda1()) == 6 + assert len(protocol._getLambda2()) == 6 + assert len(protocol._getAlpha()) == 6 + assert len(protocol._getUh()) == 6 + assert len(protocol._getW0()) == 6 + + # Define custom values for direction that are not valid and check that an error is raised + d = [1, 2, 3, 4, 5, 6] + with pytest.raises(ValueError): + protocol._setDirection(d) + + # Define custom values for lambda1 that are not valid and check that an error is raised + l1 = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] + with pytest.raises(ValueError): + protocol._setLambda1(l1) + + # Define custom values for lambda2 that are not valid and check that an error is raised + l2 = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] + with pytest.raises(ValueError): + protocol._setLambda2(l2) + + # check that a list of strings, ints, floats and BSS units can be parsed for alpha,uh and w0 + list_of_units = [ + "0.1 kcal mol^-1", + 0.1, + 0.1 * BSS.Units.Energy.kcal_per_mol, + 0.1 * BSS.Units.Energy.kcal_per_mol, + 0.1, + 1, + ] + + protocol = BSS.Protocol.AToMProduction( + data=data, + num_lambda=6, + alpha=list_of_units, + uh=list_of_units, + W0=list_of_units, + ) + + end_product = [0.1 * BSS.Units.Energy.kcal_per_mol] * 5 + end_product.append(1 * BSS.Units.Energy.kcal_per_mol) + assert protocol._getAlpha() == end_product + assert protocol._getUh() == end_product + assert protocol._getW0() == end_product diff --git a/tests/conftest.py b/tests/conftest.py index 46be2d10a..5e9cbf4fc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -86,3 +86,39 @@ def solvated_perturbable_system(): f"{url}/solvated_perturbable_system1.prm7", f"{url}/solvated_perturbable_system1.rst7", ) + + +@pytest.fixture(scope="session") +def TEMOA_host(): + host = BSS.IO.readMolecules( + BSS.IO.expand(BSS.tutorialUrl(), ["temoa_host.rst7", "temoa_host.prm7"]) + )[0] + return host + + +@pytest.fixture(scope="session") +def TEMOA_lig1(): + lig1 = BSS.IO.readMolecules( + BSS.IO.expand(BSS.tutorialUrl(), ["temoa_ligG1.rst7", "temoa_ligG1.prm7"]) + )[0] + return lig1 + + +@pytest.fixture(scope="session") +def TEMOA_lig2(): + lig2 = BSS.IO.readMolecules( + BSS.IO.expand(BSS.tutorialUrl(), ["temoa_ligG1.rst7", "temoa_ligG1.prm7"]) + )[0] + return lig2 + + +@pytest.fixture(scope="session") +def TEMOA_hostguest(TEMOA_host, TEMOA_lig1, TEMOA_lig2): + atm_generator = BSS.FreeEnergy.AToM( + protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + ) + rigid_core = [1, 2, 3] + atm_system, atm_data = atm_generator.prepare( + ligand1_rigid_core=rigid_core, ligand2_rigid_core=rigid_core + ) + return atm_system, atm_data From a6eb09061859074133a70471e8b550818ec629d1 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 24 Jun 2024 15:24:38 +0100 Subject: [PATCH 038/123] Continued refactor. Main addition is option to run with both MBAR and UWHAM analysis options --- .../FreeEnergy/AToM/_AToM_system.py | 247 ++++++++++++++ python/BioSimSpace/FreeEnergy/_UWHAM.py | 306 +++++++++++++++++ python/BioSimSpace/FreeEnergy/_atm.py | 308 +++++++++++++++++- python/BioSimSpace/Process/_atm.py | 213 +++++++++++- python/BioSimSpace/Process/_atom_utils.py | 221 ++++++++++++- python/BioSimSpace/Process/_openmm.py | 3 +- python/BioSimSpace/Protocol/_AToM.py | 24 ++ tests/Process/test_atm.py | 21 ++ tests/Protocol/test_atm_protocol.py | 23 +- 9 files changed, 1342 insertions(+), 24 deletions(-) create mode 100644 python/BioSimSpace/FreeEnergy/_UWHAM.py diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py index 6c17ad3dc..ea458c384 100644 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py @@ -1937,3 +1937,250 @@ def _generate_config(self): # self.addToConfig(f"for x in range(0, {cycles}):") # self.addToConfig(f" simulation.step({steps_per_cycle})") # self.addToConfig(f" simulation.saveState('{self._name}.xml')") + + +class _relativeATM: + """ + A class for setting up and performing RBFE calculations using AToM + """ + + def __init__( + self, + system, + protocol, + platform="CPU", + work_dir=None, + setup_only=False, + ignore_warnings=False, + show_errors=True, + property_map={}, + ): + """ + Constructor. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + A prepared AToM system containing a protein and two ligands, one bound and one free. + Assumed to already be equilibrated. + + protocol : BioSimSpace.Protocol.AToM + A protocol object that defines the RBFE protocol. + + platform : str + The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. + For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, + e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. + For OPENCL, instead use OPENCL_VISIBLE_DEVICES. + + work_dir : str + The working directory for the simulation. + + setup_only : bool + Whether to only support simulation setup. If True, then no + simulation processes objects will be created, only the directory + hierarchy and input files to run a simulation externally. This + can be useful when you don't intend to use BioSimSpace to run + the simulation. Note that a 'work_dir' must also be specified. + + ignore_warnings : bool + Whether to ignore warnings when generating the binary run file. + This option is specific to GROMACS and will be ignored when a + different molecular dynamics engine is chosen. + + show_errors : bool + Whether to show warning/error messages when generating the binary + run file. This option is specific to GROMACS and will be ignored + when a different molecular dynamics engine is chosen. + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + + """ + from .. import _Utils + + self._system = system.copy() + + # Validate the protocol. + if protocol is not None: + from ..Protocol._AToM import AToMProduction as _Production + + if not isinstance(protocol, _Production): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + + # Check the platform. + if not isinstance(platform, str): + raise TypeError("'platform' must be of type 'str'.") + else: + self._platform = platform + + if not isinstance(setup_only, bool): + raise TypeError("'setup_only' must be of type 'bool'.") + else: + self._setup_only = setup_only + + if work_dir is None and setup_only: + raise ValueError( + "A 'work_dir' must be specified when 'setup_only' is True!" + ) + + # Create the working directory. + self._work_dir = _Utils.WorkDir(work_dir) + + if not isinstance(ignore_warnings, bool): + raise ValueError("'ignore_warnings' must be of type 'bool.") + self._ignore_warnings = ignore_warnings + + if not isinstance(show_errors, bool): + raise ValueError("'show_errors' must be of type 'bool.") + self._show_errors = show_errors + # Check that the map is valid. + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + self._property_map = property_map + + self._inititalise_runner(system=self._system) + + def run(self, serial=True): + """ + Run the simulations. + Returns + ------- + list of :class:`Process ` + A list of process objects. + """ + # Initialise the runner. + if not isinstance(serial, bool): + raise TypeError("'serial' must be of type 'bool'.") + + if self._setup_only: + _warnings.warn("No processes exist! Object created in 'setup_only' mode.") + + else: + self._runner.startAll(serial=serial) + + def _inititalise_runner(self, system): + """ + Internal helper function to initialise the process runner. + + Parameters + ---------- + + system : :class:`System ` + The molecular system. + """ + from ..Process import OpenMM as OMMprocess + + # This protocol will have to be minimal - cannot guess rigid core atoms + if self._protocol is None: + raise RuntimeError("No protocol has been set - cannot run simulations.") + # Initialise list to store the processe + processes = [] + # Get the list of lambda1 values so that the total number of simulations can + # be asserted + lambda_list = self._protocol._get_lambda_values() + # Set index of current simulation to 0 + self._protocol._set_current_index(0) + lam = lambda_list[0] + + first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) + + # Create the first simulation, which will be copied and used for future simulations. + first_process = OMMprocess( + system=system, + protocol=self._protocol, + platform=self._platform, + work_dir=first_dir, + property_map=self._property_map, + ) + + if self._setup_only: + del first_process + else: + processes.append(first_process) + + # Remove first index as its already been used + lambda_list = lambda_list[1:] + # Enumerate starting at 1 to account for the removal of the first lambda value + for index, lam in enumerate(lambda_list, 1): + # TODO: Support for simulations restarting from a checkpoint. + # Files are named according to index, rather than lambda value + # This is to avoid confusion arising from the fact that there are multiple lambdas + # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 + # and may contain duplicates + new_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) + # Use absolute path. + if not _os.path.isabs(new_dir): + new_dir = _os.path.abspath(new_dir) + + # Delete any existing directories. + if _os.path.isdir(new_dir): + _shutil.rmtree(new_dir, ignore_errors=True) + + # Copy the first directory to that of the current lambda value. + _shutil.copytree(first_dir, new_dir) + # For speed reasons, additional processes need to be created by copying the first process. + # this is more difficult than usual due to the number of window-dependent variables + new_config = [] + # All variables that need to change + new_lam_1 = self._protocol.getLambda1()[index] + new_lam_2 = self._protocol.getLambda2()[index] + new_alpha = self._protocol.getAlpha()[index].value() + new_uh = self._protocol.getUh()[index].value() + new_w0 = self._protocol.getW0()[index].value() + new_direction = self._protocol.getDirections()[index] + with open(new_dir + "/openmm_script.py", "r") as f: + for line in f: + if line.startswith("lambda1"): + new_config.append(f"lambda1 = {new_lam_1}\n") + elif line.startswith("lambda2"): + new_config.append(f"lambda2 = {new_lam_2}\n") + elif line.startswith("alpha"): + new_config.append( + f"alpha = {new_alpha} * kilocalories_per_mole\n" + ) + elif line.startswith("uh"): + new_config.append(f"uh = {new_uh} * kilocalories_per_mole\n") + elif line.startswith("w0"): + new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") + elif line.startswith("direction"): + new_config.append(f"direction = {new_direction}\n") + elif line.startswith("window_index"): + new_config.append(f"window_index = {index}\n") + else: + new_config.append(line) + with open(new_dir + "/openmm_script.py", "w") as f: + for line in new_config: + f.write(line) + + # biosimspace runner functionality + if not self._setup_only: + process = _copy.copy(first_process) + process._system = first_process._system.copy() + process._protocol = self._protocol + process._work_dir = new_dir + process._stdout_file = new_dir + "/AToM.out" + process._stderr_file = new_dir + "/AToM.err" + process._rst_file = new_dir + "/openmm.rst7" + process._top_file = new_dir + "/openmm.prm7" + process._traj_file = new_dir + "/openmm.dcd" + process._config_file = new_dir + "/openmm_script.py" + process._input_files = [ + process._config_file, + process._rst_file, + process._top_file, + ] + processes.append(process) + + if not self._setup_only: + # Initialise process runner. + self._runner = _Process.ProcessRunner(processes) diff --git a/python/BioSimSpace/FreeEnergy/_UWHAM.py b/python/BioSimSpace/FreeEnergy/_UWHAM.py new file mode 100644 index 000000000..5653fc10f --- /dev/null +++ b/python/BioSimSpace/FreeEnergy/_UWHAM.py @@ -0,0 +1,306 @@ +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2023 +# +# Authors: Lester Hedges , Matthew Burman +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +###################################################################### + +__all__ = ["analyse"] + +import pandas as pd + +import numpy +import scipy.optimize +import scipy.special +import pathlib +import functools + + +def _compute_weights(ln_z, ln_q, factor): + q_ij = numpy.exp(ln_q - ln_z) + return q_ij / (factor * q_ij).sum(axis=-1, keepdims=True) + + +def _compute_kappa_hessian(ln_z, ln_q, factor, n): + ln_z = numpy.insert(ln_z, 0, 0.0) + + w = (factor * _compute_weights(ln_z, ln_q, factor))[:, 1:] + return -w.T @ w / n + numpy.diag(w.sum(axis=0) / n) + + +def _compute_kappa(ln_z, ln_q, factor, n): + ln_z = numpy.insert(ln_z, 0, 0.0) + + ln_q_ij_sum = scipy.special.logsumexp(a=ln_q - ln_z, b=factor, axis=1) + kappa = ln_q_ij_sum.sum() / n + (factor * ln_z).sum() + + w = factor * _compute_weights(ln_z, ln_q, factor) + grad = -w[:, 1:].sum(axis=0) / n + factor[1:] + + return kappa, grad + + +def _compute_variance(ln_z, w, factor, n): + o = w.T @ w / n + + b = o * factor - numpy.eye(len(ln_z)) + b = b[1:, 1:] + + b_inv_a = -o + o[0, :] + b_inv_a = b_inv_a[1:, 1:] + + var_matrix = (b_inv_a @ numpy.linalg.inv(b.T)) / n + return numpy.insert(numpy.diag(var_matrix), 0, 0.0) + + +def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): + """ + This is for the bias ilogistic potential + (lambda2-lambda1) ln[1+exp(-alpha (u-u0))]/alpha + lambda2 u + w0 + """ + ebias1 = numpy.zeros_like(epert) + if alpha > 0: + ee = 1 + numpy.exp(-alpha * (epert - u0)) + ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha + return ebias1 + lam2 * epert + w0 + + +def npot_fcn(e0, epert, bet, lam1, lam2, alpha, u0, w0): + # This is the negative reduced energy + # -beta*(U0+bias) + return -bet * (e0 + _bias_fcn(epert, lam1, lam2, alpha, u0, w0)) + + +def _estimate_f_i(ln_q, n_k): + """Estimates the free energies of a set of *sampled* states. + + + Args: + n_k: The number of samples at state ``k``. + ln_q: array of netgative potentials with ``shape=(n_states,n_samples)``. + + Returns: + The estimated reduced free energies and their estimated variance. + """ + n_k = numpy.array(n_k) + + ln_q = numpy.array(ln_q).T + + n_samples, n_states = ln_q.shape + + if n_states != len(n_k): + raise RuntimeError( + "The number of states do not match: %d != %d" % (n_states, len(n_k)) + ) + if n_samples != n_k.sum(): + raise RuntimeError( + "The number of samples do not match: %d != %d" % (n_samples, n_k.sum()) + ) + + ln_z = numpy.zeros(len(n_k) - 1) # ln_z_0 is always fixed at 0.0 + ln_q -= ln_q[:, :1] + + n = n_k.sum() + factor = n_k / n + + result = scipy.optimize.minimize( + functools.partial(_compute_kappa, ln_q=ln_q, n=n, factor=factor), + ln_z, + method="trust-ncg", + jac=True, + hess=functools.partial(_compute_kappa_hessian, ln_q=ln_q, n=n, factor=factor), + ) + + if not result.success: + raise RuntimeError("The UWHAM minimization failed to converge.") + + f_i = numpy.insert(-result.x, 0, 0.0) + ln_z = numpy.insert(result.x, 0, 0.0) + + weights = _compute_weights(ln_z, ln_q, factor) + + if not numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): + raise RuntimeError("The UWHAM weights do not sum to 1.0") + + df_i = _compute_variance(ln_z, weights, factor, n) + + return f_i, df_i, weights / n + + +def _sort_folders(work_dir): + """Sorts folder names by lambda value, ensuring they are read correctly. + + Parameters + ---------- + work_dir : str + The directory containing the simulation data. + + Returns + ------- + folders : dict + A dictionary of folder names and their corresponding lambda values. + """ + folders = {} + for folder in pathlib.Path(work_dir).iterdir(): + if folder.is_dir() and folder.name.startswith("lambda_"): + try: + lambda_val = float(folder.name.split("_")[-1]) + except ValueError: + continue + folders[lambda_val] = folder + return {k: v for k, v in sorted(folders.items())} + + +def _get_inflection_indices(folders): + # Find folders at which 'direction' goes from 1 to -1 + # This is the point at which the direction of the lambda windows changes + # NOTE: this assumes that the folders are correctly sorted + + # check that the keys are sorted + keys = list(folders.keys()) + if keys != sorted(keys): + raise ValueError(f"Folders are not sorted correctly. {keys} != {sorted(keys)}") + + directions = [] + for folder in folders.values(): + df = pd.read_csv(folder / "openmm.csv") + direction = df["direction"].values[0] + directions.append(direction) + + # get the indices at which the direction changes + for i in range(len(directions) - 1): + if directions[i] != directions[i + 1]: + inflection_indices = (i, i + 1) + break + + return inflection_indices + + +def analyse(work_dir, inflection_indices=None): + """ + Analyse the output of BioSimSpace AToM simulations. + + Parameters + ---------- + work_dir : str + The directory containing the simulation data. + inflection_indices : tuple, optional + The point at which 'direction' changes. + Should be (last index of direction 1, first index of direction 2). + If not provided not provided, will be implied from files. + + """ + dataframes = [] + slices = {} + total_states = 0 + total_samples = 0 + folders = _sort_folders(work_dir) + if inflection_indices is None: + inflection_indices = _get_inflection_indices(folders) + for folder in folders.values(): + df = pd.read_csv(folder / "openmm.csv") + df["beta"] = 1 / (0.001986209 * df["temperature"]) + total_states += 1 + total_samples += len(df) + for sub_df in df.groupby("window"): + # get value of window + window = sub_df[0] + # check if window is in slices + if window not in slices: + slices[window] = [] + # append the dataframe to the list of dataframes for that window + # now get the tuple 'sub_df' and convert it to a dataframe + s = sub_df[1] + slices[window].append(s) + + # now combine all dataframes in each slice + for window in slices: + # get the dataframes for the current window + dfs = slices[window] + # combine the dataframes + combined_df = pd.concat(dfs) + dataframes.append(combined_df) + + # sort 'dataframes' based on 'window' + dataframes = sorted(dataframes, key=lambda x: x["window"].values[0]) + + pots = [] + pert_es = [] + n_samples = [] + # check that all dataframes are the same length, throw a warning if they are not + for df in dataframes: + n_samples.append(len(df)) + e0 = df["pot_en"].values + pert_e = df["pert_en"].values + pots.append(e0) + pert_es.append(pert_e) + + # We will assume that the point at which leg1 and leg2 are split is halfway through + n_samples_first_half = n_samples[: inflection_indices[0] + 1] + pots_first_half = numpy.concatenate(pots[: inflection_indices[0] + 1]) + pert_es_first_half = numpy.concatenate(pert_es[: inflection_indices[0] + 1]) + ln_q = numpy.zeros((inflection_indices[0] + 1, len(pots_first_half))) + sid = 0 + + for be in range(len(n_samples_first_half)): + lnq = npot_fcn( + e0=pots_first_half, + epert=pert_es_first_half, + bet=dataframes[be]["beta"].values[0], + lam1=dataframes[be]["lambda1"].values[0], + lam2=dataframes[be]["lambda2"].values[0], + alpha=dataframes[be]["alpha"].values[0], + u0=dataframes[be]["uh"].values[0], + w0=dataframes[be]["w0"].values[0], + ) + ln_q[sid] = lnq + sid += 1 + + f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) + ddg = f_i[-1] - f_i[0] + ddg1 = ddg / dataframes[0]["beta"].values[0] + ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + + n_samples_second_half = n_samples[inflection_indices[1] :] + pots_second_half = numpy.concatenate(pots[inflection_indices[1] :]) + pert_es_second_half = numpy.concatenate(pert_es[inflection_indices[1] :]) + ln_q = numpy.zeros((total_states - inflection_indices[1], len(pots_second_half))) + sid = 0 + + # note the order of (be, te) + for be in range(len(n_samples_second_half)): + lnq = npot_fcn( + e0=pots_second_half, + epert=pert_es_second_half, + bet=dataframes[be]["beta"].values[0], + lam1=dataframes[be]["lambda1"].values[0], + lam2=dataframes[be]["lambda2"].values[0], + alpha=dataframes[be]["alpha"].values[0], + u0=dataframes[be]["uh"].values[0], + w0=dataframes[be]["w0"].values[0], + ) + ln_q[sid] = lnq + sid += 1 + + f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) + ddg = f_i[-1] - f_i[0] + ddg2 = ddg / dataframes[0]["beta"].values[0] + ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + + ddg_total = ddg1 - ddg2 + ddg_total_error = numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) + return ddg_total, ddg_total_error diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index b5fa61fbc..c287f0c1e 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -33,10 +33,14 @@ from ..Align import matchAtoms as _matchAtoms from ..Align import rmsdAlign as _rmsdAlign from ..Notebook import View as _View -from ..Process._atom_utils import _AToMUtils as _AtomUtils +from ..Process import OpenMM as OMMprocess +from ..Process import ProcessRunner as _ProcessRunner + import warnings as _warnings import json as _json import copy as _copy +import os as _os +import shutil as _shutil class AToM: @@ -754,7 +758,7 @@ def _setLig1ComAtoms(self, lig1_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand1 = self._system[self._ligand1_index] + ligand1 = self._system[self.ligand1_index] else: ligand1 = self._ligand1 com = ligand1._sire_object.coordinates() @@ -791,7 +795,7 @@ def _setLig2ComAtoms(self, lig2_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand2 = self._system[self._ligand2_index] + ligand2 = self._system[self.ligand2_index] else: ligand2 = self._ligand2 com = ligand2._sire_object.coordinates() @@ -993,3 +997,301 @@ def vector_from_points(point1, point2): if system is not None: del local_s return ngl + + @staticmethod + def run( + system, + protocol, + platform="CPU", + work_dir=None, + setup_only=False, + ignore_warnings=False, + show_errors=True, + property_map={}, + ): + runner = _relativeATM( + system, + protocol, + platform, + property_map=property_map, + work_dir=work_dir, + setup_only=setup_only, + ignore_warnings=ignore_warnings, + show_errors=show_errors, + ) + runner.run() + + @staticmethod + def analyse(work_dir, method="UWHAM", inflex_point=None): + """Analyse the AToM simulation. + + Parameters + ---------- + work_dir : str + The working directory where the AToM simulation is located. + method : str + The method to use for the analysis. Currently only UWHAM is supported. + inflex_point : float + The inflection point for the UWHAM analysis. + """ + if method == "UWHAM": + _warnings.warn("DOINGUwham") + total_ddg, total_ddg_err = AToM._analyse_UWHAM(work_dir, inflex_point) + return total_ddg, total_ddg_err + else: + raise ValueError(f"Method {method} is not supported for analysis.") + + @staticmethod + def _analyse_UWHAM(work_dir, inflex_point=None): + """ + Analyse the UWHAM results from the AToM simulation. + """ + from ._UWHAM import analyse as _UWHAM + + total_ddg, total_ddg_err = _UWHAM(work_dir, inflex_point) + return total_ddg, total_ddg_err + + +class _relativeATM: + """ + A class for setting up and performing RBFE calculations using AToM + """ + + def __init__( + self, + system, + protocol, + platform="CPU", + work_dir=None, + setup_only=False, + ignore_warnings=False, + show_errors=True, + property_map={}, + ): + """ + Constructor. + + Parameters + ---------- + system : BioSimSpace._SireWrappers.System + A prepared AToM system containing a protein and two ligands, one bound and one free. + Assumed to already be equilibrated. + + protocol : BioSimSpace.Protocol.AToM + A protocol object that defines the RBFE protocol. + + platform : str + The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. + For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, + e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. + For OPENCL, instead use OPENCL_VISIBLE_DEVICES. + + work_dir : str + The working directory for the simulation. + + setup_only : bool + Whether to only support simulation setup. If True, then no + simulation processes objects will be created, only the directory + hierarchy and input files to run a simulation externally. This + can be useful when you don't intend to use BioSimSpace to run + the simulation. Note that a 'work_dir' must also be specified. + + ignore_warnings : bool + Whether to ignore warnings when generating the binary run file. + This option is specific to GROMACS and will be ignored when a + different molecular dynamics engine is chosen. + + show_errors : bool + Whether to show warning/error messages when generating the binary + run file. This option is specific to GROMACS and will be ignored + when a different molecular dynamics engine is chosen. + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + + """ + + self._system = system.copy() + + # Validate the protocol. + if protocol is not None: + from ..Protocol._AToM import AToMProduction as _Production + + if not isinstance(protocol, _Production): + raise TypeError( + "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" + ) + else: + self._protocol = protocol + else: + # No default protocol due to the need for well-defined rigid cores + raise ValueError("A protocol must be specified") + + # Check the platform. + if not isinstance(platform, str): + raise TypeError("'platform' must be of type 'str'.") + else: + self._platform = platform + + if not isinstance(setup_only, bool): + raise TypeError("'setup_only' must be of type 'bool'.") + else: + self._setup_only = setup_only + + if work_dir is None and setup_only: + raise ValueError( + "A 'work_dir' must be specified when 'setup_only' is True!" + ) + + # Create the working directory. + self._work_dir = _Utils.WorkDir(work_dir) + + if not isinstance(ignore_warnings, bool): + raise ValueError("'ignore_warnings' must be of type 'bool.") + self._ignore_warnings = ignore_warnings + + if not isinstance(show_errors, bool): + raise ValueError("'show_errors' must be of type 'bool.") + self._show_errors = show_errors + # Check that the map is valid. + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + self._property_map = property_map + + self._inititalise_runner(system=self._system) + + def run(self, serial=True): + """ + Run the simulations. + Returns + ------- + list of :class:`Process ` + A list of process objects. + """ + # Initialise the runner. + if not isinstance(serial, bool): + raise TypeError("'serial' must be of type 'bool'.") + + if self._setup_only: + _warnings.warn("No processes exist! Object created in 'setup_only' mode.") + + else: + self._runner.startAll(serial=serial) + + def _inititalise_runner(self, system): + """ + Internal helper function to initialise the process runner. + + Parameters + ---------- + + system : :class:`System ` + The molecular system. + """ + + # This protocol will have to be minimal - cannot guess rigid core atoms + if self._protocol is None: + raise RuntimeError("No protocol has been set - cannot run simulations.") + # Initialise list to store the processe + processes = [] + # Get the list of lambda1 values so that the total number of simulations can + # be asserted + lambda_list = self._protocol._get_lambda_values() + # Set index of current simulation to 0 + self._protocol._set_current_index(0) + lam = lambda_list[0] + + first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) + + # Create the first simulation, which will be copied and used for future simulations. + first_process = OMMprocess( + system=system, + protocol=self._protocol, + platform=self._platform, + work_dir=first_dir, + property_map=self._property_map, + ) + + if self._setup_only: + del first_process + else: + processes.append(first_process) + + # Remove first index as its already been used + lambda_list = lambda_list[1:] + # Enumerate starting at 1 to account for the removal of the first lambda value + for index, lam in enumerate(lambda_list, 1): + # TODO: Support for simulations restarting from a checkpoint. + # Files are named according to index, rather than lambda value + # This is to avoid confusion arising from the fact that there are multiple lambdas + # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 + # and may contain duplicates + new_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) + # Use absolute path. + if not _os.path.isabs(new_dir): + new_dir = _os.path.abspath(new_dir) + + # Delete any existing directories. + if _os.path.isdir(new_dir): + _shutil.rmtree(new_dir, ignore_errors=True) + + # Copy the first directory to that of the current lambda value. + _shutil.copytree(first_dir, new_dir) + # For speed reasons, additional processes need to be created by copying the first process. + # this is more difficult than usual due to the number of window-dependent variables + new_config = [] + # All variables that need to change + new_lam_1 = self._protocol._getLambda1()[index] + new_lam_2 = self._protocol._getLambda2()[index] + new_alpha = self._protocol._getAlpha()[index].value() + new_uh = self._protocol._getUh()[index].value() + new_w0 = self._protocol._getW0()[index].value() + new_direction = self._protocol._getDirection()[index] + with open(new_dir + "/openmm_script.py", "r") as f: + for line in f: + if line.startswith("lambda1"): + new_config.append(f"lambda1 = {new_lam_1}\n") + elif line.startswith("lambda2"): + new_config.append(f"lambda2 = {new_lam_2}\n") + elif line.startswith("alpha"): + new_config.append( + f"alpha = {new_alpha} * kilocalories_per_mole\n" + ) + elif line.startswith("uh"): + new_config.append(f"uh = {new_uh} * kilocalories_per_mole\n") + elif line.startswith("w0"): + new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") + elif line.startswith("direction"): + new_config.append(f"direction = {new_direction}\n") + elif line.startswith("window_index"): + new_config.append(f"window_index = {index}\n") + else: + new_config.append(line) + with open(new_dir + "/openmm_script.py", "w") as f: + for line in new_config: + f.write(line) + + # biosimspace runner functionality + if not self._setup_only: + process = _copy.copy(first_process) + process._system = first_process._system.copy() + process._protocol = self._protocol + process._work_dir = new_dir + process._stdout_file = new_dir + "/AToM.out" + process._stderr_file = new_dir + "/AToM.err" + process._rst_file = new_dir + "/openmm.rst7" + process._top_file = new_dir + "/openmm.prm7" + process._traj_file = new_dir + "/openmm.dcd" + process._config_file = new_dir + "/openmm_script.py" + process._input_files = [ + process._config_file, + process._rst_file, + process._top_file, + ] + processes.append(process) + + if not self._setup_only: + # Initialise process runner. + self._runner = _ProcessRunner(processes) diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index 9bea6d8b0..cb2c8270e 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -45,6 +45,13 @@ def __init__( property_map={}, **kwargs, ): + # Look for the is_testing flag in the kwargs. + # Only used for calculating single point energies. + """if "_is_testing" in kwargs: + _warnings.warn("NOW IN TESTING MODE") + self._is_testing = kwargs["_is_testing"] + else: + self._is_testing = False""" super().__init__( system, protocol, @@ -65,6 +72,8 @@ def _generate_config(self): self._generate_config_equilibration() elif isinstance(self._protocol, _Protocol.AToMAnnealing): self._generate_config_annealing() + # elif isinstance(self._protocol, _Protocol.AToMProduction) and self._is_testing: + # self._generate_config_single_point_testing() elif isinstance(self._protocol, _Protocol.AToMProduction): self._generate_config_production() @@ -488,6 +497,7 @@ def _generate_config_annealing(self): def _generate_config_production(self): self._protocol._set_current_index(0) + analysis_method = self._protocol._getAnalysisMethod() util = _AToMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -511,7 +521,8 @@ def _generate_config_production(self): self._add_config_imports() self._add_config_monkey_patches() self.addToConfig("\n") - self.addToConfig(util.createSoftcorePertE()) + if analysis_method == "UWHAM" or analysis_method == "both": + self.addToConfig(util.createSoftcorePertE()) # Add standard openMM config is_periodic = self._add_initialisation(has_box) @@ -627,9 +638,201 @@ def _generate_config_production(self): steps_per_cycle = int(steps / cycles) self.addToConfig(f"\ntemperature = {temperature}") - # Now run the simulation. - self.addToConfig( - util.createSoftcorePertELoop( - self._name, cycles, steps_per_cycle, report_interval, timestep, step + if analysis_method == "UWHAM": + # Now run the simulation. + self.addToConfig( + util.createSoftcorePertELoop( + self._name, cycles, steps_per_cycle, report_interval, timestep, step + ) + ) + elif analysis_method == "both": + direction = self._protocol._getDirection() + inflex = 0 + for i in range(len(direction) - 1): + if direction[i] != direction[i + 1]: + inflex = i + 1 + break + # Now run the simulation. + self.addToConfig( + util.createReportingBoth( + name=self._name, + cycles=cycles, + steps_per_cycle=steps_per_cycle, + timestep=timestep, + inflex_point=inflex, + steps=step, + ) + ) + else: + direction = self._protocol._getDirection() + inflex = 0 + for i in range(len(direction) - 1): + if direction[i] != direction[i + 1]: + inflex = i + 1 + break + self.addToConfig( + util.createLoopWithReporting( + name=self._name, + cycles=cycles, + steps_per_cycle=steps_per_cycle, + report_interval=report_interval, + timestep=timestep, + steps=step, + inflex_point=inflex, + ) + ) + + def _generate_config_single_point_testing(self): + # Designed as a hidden method - uses a production protocol to + # calculate single point energies for each lambda window + # quite hacky, but not designed to be exposed to the user anyway + if not isinstance(self._protocol, _Protocol.AToMProduction): + raise _IncompatibleError( + "Single point testing requires an AToMProduction protocol." + ) + util = _AToMUtils(self._protocol) + # Clear the existing configuration list. + self._config = [] + + has_box = self._check_space() + + # TODO: check extra_options, extra_lines and property_map + if self._protocol._get_window_index() is None: + raise _IncompatibleError( + "AToM protocol requires the current window index to be set." ) + + # Write the OpenMM import statements. + + self.addToConfig("import pandas as pd") + self.addToConfig("import numpy as np") + self.addToConfig("from glob import glob") + self.addToConfig("import math") + self.addToConfig("import os") + self.addToConfig("import shutil") + self._add_config_imports() + self._add_config_monkey_patches() + self.addToConfig("\n") + # Add standard openMM config + + is_periodic = self._add_initialisation(has_box) + # Get the starting temperature and system pressure. + temperature = self._protocol._getTemperature().kelvin().value() + pressure = self._protocol._getPressure() + + is_constant_pressure = self._add_pressure_check( + pressure, temperature, is_periodic ) + + # Add any position restraints. + if self._protocol.getRestraint() is not None: + restraint = self._protocol.getRestraint() + # Search for the atoms to restrain by keyword. + if isinstance(restraint, str): + restrained_atoms = self._system.getRestraintAtoms(restraint) + # Use the user-defined list of indices. + else: + restrained_atoms = restraint + self.addToConfig("\n# Add position restraints.") + frc = util.create_flat_bottom_restraint(restrained_atoms) + self.addToConfig(frc) + + # Use utils to create AToM-specific forces + # Atom force is the only window-dependent force + disp = util.createDisplacement() + self.addToConfig(disp) + self.addToConfig("\n# Add AToM Force.") + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + if self._protocol._getCoreAlignment(): + alignment = util.createAlignmentForce() + self.addToConfig("\n# Add alignment force.") + self.addToConfig(alignment) + + if self._protocol._getCMCMRestraint(): + CMCM = util.createCOMRestraint() + self.addToConfig("\n# Add COM restraint.") + self.addToConfig(CMCM) + + # Get the integration time step from the protocol. + timestep = self._protocol.getTimeStep().picoseconds().value() + + # Set the integrator. + self.addToConfig("\n# Define the integrator.") + self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") + friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + self.addToConfig(f" {friction:.5f}/picosecond,") + self.addToConfig(f" {timestep}*picoseconds)") + if self._is_seeded: + self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") + + # Add the platform information. + self._add_config_platform() + + self._add_simulation_instantiation() + + # Set initial velocities from temperature distribution. + self.addToConfig("\n# Setting initial system velocities.") + self.addToConfig( + f"simulation.context.setVelocitiesToTemperature({temperature})" + ) + + # Check for a restart file and load the simulation state. + is_restart, step = self._add_config_restart() + + # Work out the number of integration steps. + total_steps = _math.ceil( + self._protocol.getRunTime() / self._protocol.getTimeStep() + ) + + # Subtract the current number of steps. + steps = total_steps - step + + # Exit if the simulation has already finished. + if steps <= 0: + print("The simulation has already finished!") + return + + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + + # Get the report and restart intervals. + report_interval = self._protocol.getReportInterval() + restart_interval = self._protocol.getRestartInterval() + + # Cap the intervals at the total number of steps. + if report_interval > steps: + report_interval = steps + if restart_interval > steps: + restart_interval = steps + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + + # Work out the total simulation time in picoseconds. + run_time = steps * timestep + + # Work out the number of cycles in 100 picosecond intervals. + cycles = _math.ceil(run_time / (report_interval * timestep)) + + # Work out the number of steps per cycle. + steps_per_cycle = int(steps / cycles) + + self.addToConfig(f"\ntemperature = {temperature}") + # reading in the directions from the protocol, find the index at which direction changes + direction = self._protocol._getDirection() + inflex = 0 + for i in range(len(direction) - 1): + if direction[i] != direction[i + 1]: + inflex = i + 1 + break + self.addToConfig(util.createSinglePointTest(inflex)) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 5180698e4..4dd5d9383 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -407,7 +407,7 @@ def create_flat_bottom_restraint(self, restrained_atoms): List of atom indices to be restrained. Need to be explicitly given due to the ability to parse strings in the protocol. """ # Still using the position restraint mixin, get the values of the relevant constants - pos_const = self.protocol._getForceConstant().value() + pos_const = self.protocol.getForceConstant().value() pos_width = self.protocol._getPosRestWidth().value() output = "" output += "fc = {} * kilocalorie_per_mole / angstrom**2\n".format(pos_const) @@ -471,7 +471,14 @@ def createAnnealingProtocol(self): return output def createLoopWithReporting( - self, name, cycles, steps_per_cycle, report_interval, timestep, steps=0 + self, + name, + cycles, + steps_per_cycle, + report_interval, + timestep, + inflex_point, + steps=0, ): """Creates the loop in which simulations are run, stopping each cycle to report the potential energies required for MBAR analysis. @@ -488,13 +495,12 @@ def createLoopWithReporting( Timestep used in the simulation. steps : int Total number of steps that have been performed so far (Default 0). + inflex_point : int + The index at which the protocol changes direction. Potentials only need to be calculated for each half of the protocol. """ - _warnings.warn( - "MBAR analysis functionality is not fully implemented and WILL NOT WORK" - ) output = "" output += "# Create the dictionary which will hold the energies\n" - output += f"master_lambda_list = {self.protocol._get_lambda_values()}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" output += "energies = {}\n" output += "energies['time'] = []\n" output += "energies['fep-lambda'] = []\n" @@ -504,7 +510,8 @@ def createLoopWithReporting( output += f"steps_so_far = {steps}\n" output += "# Timestep in ps\n" output += f"timestep = {timestep}\n" - # TODO: REMEMBER TO RESET VALUES BACK TO THE ORIGINAL VALUES AFTER EACH CYCLE + output += f"inflex_point = {inflex_point}\n" + output += f"master_lambda = master_lambda_list[window_index]\n" output += f"for x in range(0, {cycles}):\n" output += f" simulation.step({steps_per_cycle})\n" output += f" steps_so_far += {steps_per_cycle}\n" @@ -512,11 +519,36 @@ def createLoopWithReporting( output += " energies['time'].append(time)\n" output += " energies['fep-lambda'].append(master_lambda)\n" output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" - output += " for ind, lam in enumerate(master_lambda_list):\n" - output += " for key in atm_constants.keys():\n" - output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" - output += " state = simulation.context.getState(getEnergy=True)\n" - output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += " # do the first half of master lambda if direction == 1\n" + output += " if direction == 1:\n" + output += ( + " for ind, lam in enumerate(master_lambda_list[:inflex_point]):\n" + ) + output += " for key in atm_constants.keys():\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" + output += " else:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind])\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += " #fill the rest of the dictionary with NaNs\n" + output += " for lam in master_lambda_list[inflex_point:]:\n" + output += " energies[lam].append(float('nan'))\n" + output += " # do the second half of master lambda if direction == -1\n" + output += " else:\n" + output += " #fill the first half of the dictionary with NaNs\n" + output += " for lam in master_lambda_list[:inflex_point]:\n" + output += " energies[lam].append(float('nan'))\n" + output += ( + " for ind, lam in enumerate(master_lambda_list[inflex_point:]):\n" + ) + output += " for key in atm_constants.keys():\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind+inflex_point].value_in_unit(kilojoules_per_mole))\n" + output += " else:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind+inflex_point])\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" output += ( " #Now reset lambda-dependent values back to their original state\n" ) @@ -599,3 +631,168 @@ def createSoftcorePertELoop( output += "df.set_index('window', inplace= True)\n" output += f"df.to_csv('{name}.csv')\n" return output + + def createReportingBoth( + self, + name, + cycles, + steps_per_cycle, + timestep, + inflex_point, + steps=0, + ): + output = "" + output += f"steps_so_far = {steps}\n" + output += "# Timestep in ps\n" + output += f"timestep = {timestep}\n" + output += "\n" + output += "#Reporting for UWHAM:\n" + output += "result = {}\n" + output += "result['window'] = []\n" + output += "result['temperature'] = []\n" + output += "result['direction'] = []\n" + output += "result['lambda1'] = []\n" + output += "result['lambda2'] = []\n" + output += "result['alpha'] = []\n" + output += "result['uh'] = []\n" + output += "result['w0'] = []\n" + output += "result['pot_en'] = []\n" + output += "result['pert_en'] = []\n" + output += "result['metad_offset'] = []\n" + + output += "# Reporting for MBAR:\n" + # round master lambda to 4 d.p. to avoid floating point errors + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" + output += "energies = {}\n" + output += "energies['time'] = []\n" + output += "energies['fep-lambda'] = []\n" + output += "for i in master_lambda_list:\n" + output += " energies[i] = []\n" + output += f"inflex_point = {inflex_point}\n" + output += f"master_lambda = master_lambda_list[window_index]\n" + output += f"steps_so_far = {steps}\n" + + output += "# Now run the simulation.\n" + output += f"for x in range(0, {cycles}):\n" + output += f" simulation.step({steps_per_cycle})\n" + output += " time = steps_so_far * timestep\n" + output += ( + " state = simulation.context.getState(getEnergy = True, groups = -1)\n" + ) + output += " pot_energy = state.getPotentialEnergy()\n" + output += " (u1, u0, alchemicalEBias) = atm_force.getPerturbationEnergy(simulation.context)\n" + output += " umcore = simulation.context.getParameter(atm_force.Umax())* kilojoules_per_mole\n" + output += " ubcore = simulation.context.getParameter(atm_force.Ubcore())* kilojoules_per_mole\n" + output += " acore = simulation.context.getParameter(atm_force.Acore())\n" + output += " uoffset = 0.0 * kilojoules_per_mole\n" + output += ( + " direction = simulation.context.getParameter(atm_force.Direction())\n" + ) + output += " if direction > 0:\n" + output += ( + " pert_e = softCorePertE(u1-(u0+uoffset), umcore, ubcore, acore)\n" + ) + output += " else:\n" + output += ( + " pert_e = softCorePertE(u0-(u1+uoffset), umcore, ubcore, acore)\n" + ) + output += " result['window'].append(window_index)\n" + output += " result['temperature'].append(temperature)\n" + output += " result['direction'].append(direction)\n" + output += " result['lambda1'].append(lambda1)\n" + output += " result['lambda2'].append(lambda2)\n" + output += ( + " result['alpha'].append(alpha.value_in_unit(kilocalories_per_mole))\n" + ) + output += " result['uh'].append(uh.value_in_unit(kilocalories_per_mole))\n" + output += " result['w0'].append(w0.value_in_unit(kilocalories_per_mole))\n" + output += " result['pot_en'].append(pot_energy.value_in_unit(kilocalories_per_mole))\n" + output += " result['pert_en'].append(pert_e.value_in_unit(kilocalories_per_mole))\n" + output += " result['metad_offset'].append(0.0)\n" + output += " energies['time'].append(time)\n" + output += " energies['fep-lambda'].append(master_lambda)\n" + output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" + output += " # do the first half of master lambda if direction == 1\n" + output += " if direction == 1:\n" + output += ( + " for ind, lam in enumerate(master_lambda_list[:inflex_point]):\n" + ) + output += " for key in atm_constants.keys():\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" + output += " else:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind])\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += " #fill the rest of the dictionary with NaNs\n" + output += " for lam in master_lambda_list[inflex_point:]:\n" + output += " energies[lam].append(float('nan'))\n" + output += " # do the second half of master lambda if direction == -1\n" + output += " else:\n" + output += " #fill the first half of the dictionary with NaNs\n" + output += " for lam in master_lambda_list[:inflex_point]:\n" + output += " energies[lam].append(float('nan'))\n" + output += ( + " for ind, lam in enumerate(master_lambda_list[inflex_point:]):\n" + ) + output += " for key in atm_constants.keys():\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind+inflex_point].value_in_unit(kilojoules_per_mole))\n" + output += " else:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind+inflex_point])\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += ( + " #Now reset lambda-dependent values back to their original state\n" + ) + output += " simulation.context.setParameter('Lambda1',lambda1)\n" + output += " simulation.context.setParameter('Lambda2',lambda2)\n" + output += " simulation.context.setParameter('Alpha',alpha)\n" + output += " simulation.context.setParameter('Uh',uh)\n" + output += " simulation.context.setParameter('W0',w0)\n" + output += " simulation.context.setParameter('Direction',direction)\n" + output += " #save the state of the simulation\n" + output += f" simulation.saveState('{name}.xml')\n" + + output += "#now convert the UWHAM dictionary to a pandas dataframe\n" + output += "df = pd.DataFrame(result)\n" + output += "df.set_index('window', inplace= True)\n" + output += f"df.to_csv('{name}.csv')\n" + + output += "# same for MBAR\n" + output += "df = pd.DataFrame(energies)\n" + output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" + output += "df.to_csv(f'energies_{master_lambda}.csv')\n" + + return output + + def createSinglePointTest(self, inflex_point): + """Create a single point test for the ATM force""" + output = "" + output += "# Create the dictionary which will hold the energies\n" + output += f"master_lambda_list = {self.protocol._get_lambda_values()}\n" + output += "energies = {}\n" + output += f"for i in master_lambda_list[{inflex_point}]:\n" + output += " energies[i] = []\n" + output += "#now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" + output += f"for ind, lam in enumerate(master_lambda_list[{inflex_point}]):\n" + output += " for key in atm_constants.keys():\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" + output += " state = simulation.context.getState(getEnergy=True)\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += ( + " #Now reset lambda-dependent values back to their original state\n" + ) + output += " simulation.context.setParameter('Lambda1',lambda1)\n" + output += " simulation.context.setParameter('Lambda2',lambda2)\n" + output += " simulation.context.setParameter('Alpha',alpha)\n" + output += " simulation.context.setParameter('Uh',uh)\n" + output += " simulation.context.setParameter('W0',w0)\n" + output += " simulation.context.setParameter('Direction',direction)\n" + output += f" simulation.saveState('{name}.xml')\n" + output += "#now convert the dictionary to a pandas dataframe, with both time and fep-lambda as index columns\n" + output += "df = pd.DataFrame(energies)\n" + output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" + output += "df.to_csv(f'energies_{master_lambda}.csv')\n" + output += "simulation.step(1)\n" + return output diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 09e3dd01b..1ed432da3 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -1415,8 +1415,7 @@ def getSystem(self, block="AUTO"): # Return the most recent frame. return self.getFrame(index) - except Exception as e: - _warnings.warn(f"The following error was raised when getting system: {e}") + except: return None def getCurrentSystem(self): diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 1f5bdc3c6..9b8f8fad0 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -113,6 +113,12 @@ def __init__( "Either 'system' or 'data' must be passed to the AToM protocol." ) + if system is not None and not isinstance(system, _System): + raise TypeError("'system' must be of type 'BioSimSpace.System'") + + if data is not None and not isinstance(data, dict): + raise TypeError("'data' must be of type 'dict'") + if isinstance(system, _System) and data is None: try: sdata = _json.loads(system._sire_object.property("atom_data").value()) @@ -2495,6 +2501,7 @@ def __init__( SC_a=0.0625, cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, + analysis_method="UWHAM", ): """ Create a new production protocol. @@ -2614,6 +2621,9 @@ def __init__( W0 : list of int, float, str, :class:`Energy The W0 values. + analysis_method : str + The method to use for analysis. Options are "UWHAM", "MBAR" or "both" + This affects the output files and the analysis that is performed. """ super().__init__( system, @@ -2678,6 +2688,8 @@ def __init__( self._set_lambda_values() + self._setAnalysisMethod(analysis_method) + def getTimeStep(self): """ Return the time step. @@ -3308,6 +3320,18 @@ def _get_lambda_values(self): except: return None + def _setAnalysisMethod(self, analysis_method): + """Set the method that will be used for analysis of the simulation results. + This will change the output files that are generated.""" + allowed_methods = ["UWHAM", "MBAR", "both"] + if analysis_method in allowed_methods: + self._analysis_method = analysis_method + else: + raise ValueError(f"analysis_method must be one of {allowed_methods}") + + def _getAnalysisMethod(self): + return self._analysis_method + def _set_current_index(self, index): # Internal function to set index of the current simulation window # set using the master lambda list diff --git a/tests/Process/test_atm.py b/tests/Process/test_atm.py index 1a0e06b2d..4f3f52577 100644 --- a/tests/Process/test_atm.py +++ b/tests/Process/test_atm.py @@ -72,6 +72,27 @@ def test_custom_ATM_anneal(TEMOA_hostguest): run_process(system, protocol) +def test_ATM_production(TEMOA_hostguest): + # First get a system with data + system, data = TEMOA_hostguest + # Generate a production protocol + prot_prod = BSS.Protocol.AToMProduction(data=data, runtime="0.2 ps") + + run_process(system, prot_prod) + + # now test "MBAR" analysis method + prot_prod = BSS.Protocol.AToMProduction( + data=data, runtime="0.2 ps", analysis_method="MBAR" + ) + run_process(system, prot_prod) + + # finally, test the "both" analysis method + prot_prod = BSS.Protocol.AToMProduction( + data=data, runtime="0.2 ps", analysis_method="both" + ) + run_process(system, prot_prod) + + def run_process(system, protocol): """Helper function to run various simulation protocols.""" diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 71d2091b8..593c516f4 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -151,8 +151,8 @@ def test_atm_equilibration(TEMOA_hostguest): ) # Check that all protocols have the same values - assert protocol_units._getTimestep() == protocol_strings._getTimestep() - assert protocol_units._getRuntime() == protocol_strings._getRuntime() + assert protocol_units.getTimeStep() == protocol_strings.getTimeStep() + assert protocol_units.getRunTime() == protocol_strings.getRunTime() assert ( protocol_units._getStartTemperature() == protocol_strings._getStartTemperature() ) @@ -268,3 +268,22 @@ def test_atm_production(TEMOA_hostguest): assert protocol._getAlpha() == end_product assert protocol._getUh() == end_product assert protocol._getW0() == end_product + + # now check that all of the allowed analysis options can be set + protocol = BSS.Protocol.AToMProduction( + data=data, + num_lambda=6, + analysis_method="UWHAM", + ) + + protocol = BSS.Protocol.AToMProduction( + data=data, + num_lambda=6, + analysis_method="MBAR", + ) + + protocol = BSS.Protocol.AToMProduction( + data=data, + num_lambda=6, + analysis_method="both", + ) From 9c29ac6f3a5ff9c742e50f0f7ffad693120ea380 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 24 Jun 2024 15:27:17 +0100 Subject: [PATCH 039/123] Deleted redundant functionality --- .../FreeEnergy/AToM/_AToM_system.py | 2186 ----------------- .../BioSimSpace/FreeEnergy/AToM/__init__.py | 22 - .../BioSimSpace/FreeEnergy/AToM/_analysis.py | 306 --- python/BioSimSpace/FreeEnergy/__init__.py | 1 - 4 files changed, 2515 deletions(-) delete mode 100644 python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py delete mode 100644 python/BioSimSpace/FreeEnergy/AToM/__init__.py delete mode 100644 python/BioSimSpace/FreeEnergy/AToM/_analysis.py diff --git a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py b/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py deleted file mode 100644 index ea458c384..000000000 --- a/python/BioSimSpace/FreeEnergy/AToM/_AToM_system.py +++ /dev/null @@ -1,2186 +0,0 @@ -###################################################################### -# BioSimSpace: Making biomolecular simulation a breeze! -# -# Copyright: 2017-2023 -# -# Authors: Lester Hedges , Matthew Burman -# -# BioSimSpace is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# BioSimSpace is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with BioSimSpace. If not, see . -###################################################################### - -# Functionality for creating and viewing systems for Atomic transfer. - -__all__ = [ - "makeSystem", - "viewRigidCores", - "relativeATM", - "Minimise", - "Equilibrate", - "Anneal", -] - -from ... import _is_notebook -from ..._SireWrappers import Molecule as _Molecule -from ..._SireWrappers import System as _System -from ... import _Utils -from ...Types import Length as _Length -from ...Types import Vector as _Vector -from ...Types import Coordinate as _Coordinate -from ...Align import matchAtoms as _matchAtoms -from ...Align import rmsdAlign as _rmsdAlign -from ... import Process as _Process -from ...Notebook import View as _View -from ...Process._atom_utils import _AToMUtils as _AtomUtils -import os as _os -import shutil as _shutil -import copy as _copy -import warnings as _warnings -import math as _math - - -class makeSystem: - """ - A class for creating AToM systems - """ - - def __init__( - self, - mol1, - ligand1=None, - ligand2=None, - displacement="20A", - protein_index=0, - ligand1_index=1, - ligand2_index=2, - ligand1_rigid_core=None, - ligand2_rigid_core=None, - prot_com_atoms=None, - lig1_com_atoms=None, - lig2_com_atoms=None, - ): - """ - Constructor for AToMSystem class - - Parameters - ---------- - mol1 : BioSimSpace._SireWrappers.Molecule, BioSimSpace._SireWrappers.Molecules, BioSimSpace._SireWrappers.System - The first molecule/system - this can be one of the following: - - A single protein (BioSimSpace._SireWrappers.Molecule) - - A pre-prepared protein-ligand-ligand system ready for use in AToM (BioSimSpace._SireWrappers.System). - ligand1 : BioSimSpace._SireWrappers.Molecule - The bound ligand. - ligand1 : BioSimSpace._SireWrappers.Molecule - The free ligand. - displacement : float, list - The diplacement between the bound and free ligands. - If a float is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. - If a list is given, the vector will be used directly. - Lengths should always be given in angstroms. - protein_index : int, list of int - The index of the protein in the system (only needed if passing in a pre-prepared system). - ligand1_index : int - The index of the bound ligand in the system (only needed if passing in a pre-prepared system). - ligand2_index : int - The index of the free ligand in the system (only needed if passing in a pre-prepared system). - ligand1_rigid_core : list - A list of three atom indices that define the rigid core of the bound ligand. - Indices are set relative to the ligand, not the system and are 0-indexed. - ligand2_rigid_core : list - A list of three atom indices that define the rigid core of the free ligand. - Indices are set relative to the ligand, not the system and are 0-indexed. - protein_com_atoms: list - A list of atom indices that define the center of mass of the protein. - If None, the center of mass will be calculated. - lig1_com_atoms: list - A list of atom indices that define the center of mass of the bound ligand. - If None, the center of mass will be calculated. - lig2_com_atoms: list - A list of atom indices that define the center of mass of the free ligand. - If None, the center of mass will be calculated. - """ - if isinstance(mol1, _Molecule) and ( - not isinstance(ligand1, _Molecule) or not isinstance(ligand2, _Molecule) - ): - raise ValueError( - "ligand1 and ligand2 must be specified if mol1 is a Molecule" - ) - self.data = {} - self._is_pre_prepared = False - self._is_made = False - self._setProteinIndex(protein_index) - self._setLigand1Index(ligand1_index) - self._setLigand2Index(ligand2_index) - self._setMol1(mol1) - self._setLigand1(ligand1) - self._setLigand2(ligand2) - self.setLigand1RigidCore(ligand1_rigid_core) - self.setLigand2RigidCore(ligand2_rigid_core) - self._setDisplacement(displacement) - if isinstance(mol1, _Molecule): - print("Making from three") - self._makeSystemFromThree() - else: - # These will be updated if/when needed - self._setProteinIndex(protein_index) - self._setLigand1Index(ligand1_index) - self._setLigand2Index(ligand2_index) - self._set_mol1_com_atoms(prot_com_atoms) - self._set_lig1_com_atoms(lig1_com_atoms) - self._set_lig2_com_atoms(lig2_com_atoms) - - def getProteinIndex(self): - """ - Get the index of the protein in the system - - Returns - ------- - int - The index of the protein in the system. - """ - return self.protein_index - - def _setProteinIndex(self, protein_index): - """ - Set the index of the protein in the system - - Parameters - ---------- - protein_index : int - The index of the protein in the system. - """ - if isinstance(protein_index, list): - # check that all elements are ints - if not all(isinstance(x, int) for x in protein_index): - raise TypeError("protein_index must be a list of ints or a single int") - self.protein_index = protein_index - elif isinstance(protein_index, int): - self.protein_index = [protein_index] - else: - raise TypeError("protein_index must be an int or a list of ints") - - def getLigand1Index(self): - """ - Get the index of the bound ligand in the system - - Returns - ------- - int - The index of the bound ligand in the system. - """ - return self.ligand1_index - - def _setLigand1Index(self, ligand1_index): - """ - Set the index of the bound ligand in the system - - Parameters - ---------- - ligand1_index : int - The index of the bound ligand in the system. - """ - if not isinstance(ligand1_index, int): - raise TypeError("ligand1_index must be an int") - else: - self.ligand1_index = ligand1_index - - def getLigand2Index(self): - """ - Get the index of the free ligand in the system - - Returns - ------- - int - The index of the free ligand in the system. - """ - return self.ligand2_index - - def _setLigand2Index(self, ligand2_index): - """ - Set the index of the free ligand in the system - - Parameters - ---------- - ligand2_index : int - The index of the free ligand in the system. - """ - if not isinstance(ligand2_index, int): - raise TypeError("ligand2_index must be an int") - else: - self.ligand2_index = ligand2_index - - def getLigand1RigidCore(self): - """ - Get the user-defined rigid core atom indices for the bound ligand - - Returns - ------- - list - A list of three atom indices that define the rigid core of the bound ligand. - """ - return self.ligand1_rigid_core - - def setLigand1RigidCore(self, ligand1_rigid_core): - """ - Set the user-defined rigid core atom indices for the bound ligand - """ - if not ligand1_rigid_core: - self.ligand1_rigid_core = None - else: - if not isinstance(ligand1_rigid_core, list): - raise TypeError("ligand1_rigid_core must be a list") - if len(ligand1_rigid_core) != 3: - raise ValueError("ligand1_rigid_core must have length 3") - if any(x >= self.ligand1_atomcount for x in ligand1_rigid_core): - raise ValueError( - "ligand1_rigid_core contains an index that is greater than the number of atoms in the ligand" - ) - self.ligand1_rigid_core = ligand1_rigid_core - - def getLigand2RigidCore(self): - """ - Get the user-defined rigid core atom indices for the free ligand - - Returns - ------- - list - A list of three atom indices that define the rigid core of the free ligand. - """ - return self.ligand2_rigid_core - - def setLigand2RigidCore(self, ligand2_rigid_core): - """ - Set the user-defined rigid core atom indices for the free ligand - """ - if not ligand2_rigid_core: - self.ligand2_rigid_core = None - else: - if not isinstance(ligand2_rigid_core, list): - raise TypeError("ligand2_rigid_core must be a list") - if len(ligand2_rigid_core) != 3: - raise ValueError("ligand2_rigid_core must have length 3") - if any(x >= self.ligand2_atomcount for x in ligand2_rigid_core): - raise ValueError( - "ligand2_rigid_core contains an index that is greater than the number of atoms in the ligand" - ) - self.ligand2_rigid_core = ligand2_rigid_core - - def _setMol1(self, mol1): - """ - Set the first molecule/system - - Parameters - ---------- - mol1 : BioSimSpace._SireWrappers.Molecule, BioSimSpace._SireWrappers.System - The first molecule/system - this can be one of the following: - - A single protein (BioSimSpace._SireWrappers.Molecule) - - A pre-prepared protein-ligand-ligand system ready for use in AToM (BioSimSpace._SireWrappers.System). - """ - if not isinstance(mol1, (_Molecule, _System)): - raise TypeError("mol1 must be a Molecule or System") - - if isinstance(mol1, _Molecule): - if mol1.isWater(): - print("Looks like mol1 is a water molecule - it should be a protein") - self.mol1_atomcount = mol1.nAtoms() - self.mol1 = mol1 - elif isinstance(mol1, _System): - print("Assuming that mol1 is a pre-prepared AToM system") - self._is_pre_prepared = True - self.system = mol1 - self._systemInfo() - - def _systemInfo(self): - """ - If the user gives a pre-prepared AToM system, extract the needed information - - Returns - ------- - dict - A dictionary containing information on the AToM system - """ - for p in self.protein_index: - if self.system[p].isWater(): - print( - f"The molecule at index {self.protein_index} appears to be a water molecule." - " This should be a protein." - ) - if self.system[self.ligand1_index].isWater(): - print( - f"The molecule at index {self.ligand1_index} appears to be a water molecule." - " This should be the bound ligand." - ) - if self.system[self.ligand2_index].isWater(): - print( - f"The molecule at index {self.ligand2_index} appears to be a water molecule." - " This should be the free ligand." - ) - self.mol1_atomcount = sum(self.system[i].nAtoms() for i in self.protein_index) - self.ligand1_atomcount = self.system[self.ligand1_index].nAtoms() - self.ligand2_atomcount = self.system[self.ligand2_index].nAtoms() - - def _setLigand1(self, ligand1): - if self._is_pre_prepared: - print("Pre-prepared system given...Ignoring ligand1") - else: - if not isinstance(ligand1, _Molecule): - raise TypeError("ligand1 must be a Molecule") - if ligand1.isWater(): - print( - "Looks like ligand1 is a water molecule - it should the bound ligand" - ) - self.ligand1 = ligand1 - self.ligand1_atomcount = ligand1.nAtoms() - - def _setLigand2(self, ligand2): - if self._is_pre_prepared: - print("Pre-prepared system given...Ignoring ligand2") - else: - if not isinstance(ligand2, _Molecule): - raise TypeError("ligand2 must be a Molecule") - if ligand2.isWater(): - print( - "Looks like ligand2 is a water molecule - it should the free ligand" - ) - self.ligand2 = ligand2 - self.ligand2_atomcount = ligand2.nAtoms() - - def _setDisplacement(self, displacement): - if isinstance(displacement, str): - self.displacement = _Length(displacement) - elif isinstance(displacement, _Length): - self.displacement = displacement - elif isinstance(displacement, list): - if len(displacement) != 3: - raise ValueError("displacement must have length 3") - if all(isinstance(x, (float, int)) for x in displacement): - self.displacement = _Vector(*displacement) - elif all(isinstance(x, _Length) for x in displacement): - self.displacement = _Vector([x.value() for x in displacement]) - else: - raise TypeError("displacement must be a list of floats or BSS lengths") - else: - raise TypeError("displacement must be a string, BSS length or list") - - def _makeSystemFromThree(self): - """ - Make the AToM system from a protein and two ligands - """ - # First step is to align the ligands - # align ligand2 to ligand1 - mapping = _matchAtoms(self.ligand2, self.ligand1) - self.ligand2 = _rmsdAlign(self.ligand2, self.ligand1, mapping) - - # Concatenate the molecules - system_ligand1 = (self.mol1 + self.ligand1).toSystem() - - if isinstance(self.displacement, _Vector): - self.ligand2.translate( - [self.displacement.x(), self.displacement.y(), self.displacement.z()] - ) - self.data["displacement"] = self.displacement - else: - # Now we need to translate ligand2 so that it is separated from the protein/ligand1 - # by the desired distance - vec = self._findTranslationVector( - system_ligand1, - self.displacement, - protein=self.mol1, - ligand=self.ligand1, - ) - self.ligand2.translate([vec.x(), vec.y(), vec.z()]) - self.data["displacement"] = [vec.x(), vec.y(), vec.z()] - - self.system = (self.mol1 + self.ligand1 + self.ligand2).toSystem() - self._setProteinIndex(self.system.getIndex(self.mol1)) - self._setLigand1Index(self.system.getIndex(self.ligand1)) - self._setLigand2Index(self.system.getIndex(self.ligand2)) - - def _findAtomIndices(self): - """ - Find the indices of the protein and ligand atoms in the system - - Returns - ------- - dict - A dictionary containing the indices of the protein and ligand atoms in the system - """ - protein_atom_start = self.system[self.protein_index[0]].getAtoms()[0] - protein_atom_end = self.system[self.protein_index[-1]].getAtoms()[-1] - self.first_protein_atom_index = self.system.getIndex(protein_atom_start) - self.last_protein_atom_index = self.system.getIndex(protein_atom_end) - - ligand1_atom_start = self.system[self.ligand1_index].getAtoms()[0] - ligand1_atom_end = self.system[self.ligand1_index].getAtoms()[-1] - self.first_ligand1_atom_index = self.system.getIndex(ligand1_atom_start) - self.last_ligand1_atom_index = self.system.getIndex(ligand1_atom_end) - - ligand2_atom_start = self.system[self.ligand2_index].getAtoms()[0] - ligand2_atom_end = self.system[self.ligand2_index].getAtoms()[-1] - self.first_ligand2_atom_index = self.system.getIndex(ligand2_atom_start) - self.last_ligand2_atom_index = self.system.getIndex(ligand2_atom_end) - - @staticmethod - def _findTranslationVector( - system, - displacement, - protein=None, - ligand=None, - protein_index=None, - ligand1_index=None, - ): - """ - Finds the vector along which the free ligand is to be translated. - Based on the funnel making logic of biosimspace - - Parameters - ---------- - system : BioSimSpace._SireWrappers.System - The system containing the protein and ligand. - - protein : BioSimSpace._SireWrappers.Molecule - The protein molecule. - ligand : BioSimSpace._SireWrappers.Molecule - The ligand molecule. - displacement : float - The desired displacement between the ligands in angstroms. - - Returns - ------- - BioSimSpace.Types.Vector - The vector along which the ligand is to be translated. - """ - from sire.legacy.Maths import Vector - - if not isinstance(system, _System): - raise TypeError("system must be a BioSimSpace system") - if not isinstance(protein, (_Molecule, type(None))): - raise TypeError("protein must be a BioSimSpace molecule") - if not isinstance(ligand, (_Molecule, type(None))): - raise TypeError("ligand must be a BioSimSpace molecule") - - if protein is None: - protein = system[protein_index] - if ligand is None: - ligand = system[ligand1_index] - # Assume that binding sire is the center of mass of the ligand - binding = _Coordinate(*ligand._getCenterOfMass()) - - # Create grid around the binding site - # This will act as the search region - grid_length = _Length(20.0, "angstroms") - - num_edges = 5 - search_radius = (grid_length / num_edges) / 2 - grid_min = binding - 0.5 * grid_length - grid_max = binding + 0.5 * grid_length - - non_protein_coords = Vector() - # Count grid squares that contain no protein atoms - num_non_prot = 0 - - import numpy as np - - # Loop over the grid - for x in np.linspace(grid_min.x().value(), grid_max.x().value(), num_edges): - for y in np.linspace(grid_min.y().value(), grid_max.y().value(), num_edges): - for z in np.linspace( - grid_min.z().value(), grid_max.z().value(), num_edges - ): - search = f"atoms within {search_radius.value()} of ({x}, {y}, {z})" - - try: - protein.search(search) - except: - non_protein_coords += Vector(x, y, z) - num_non_prot += 1 - - non_protein_coords /= num_non_prot - non_protein_coords = _Coordinate._from_sire_vector(non_protein_coords) - - # Now search out alpha carbons in system - x = binding.x().angstroms().value() - y = binding.y().angstroms().value() - z = binding.z().angstroms().value() - string = f"(atoms within 10 of {x},{y},{z}) and atomname CA" - - try: - search = system.search(string) - except: - _warnings.warn( - "No alpha carbons found in system, falling back on any carbon atoms." - ) - try: - string = f"(atoms within 10 of {x},{y},{z}) and element C" - search = system.search(string) - except: - raise ValueError("No carbon atoms found in system") - - com = _Coordinate(_Length(0, "A"), _Length(0, "A"), _Length(0, "A")) - atoms1 = [] - for atom in search: - com += atom.coordinates() - atoms1.append(system.getIndex(atom)) - com /= search.nResults() - - initial_normal_vector = (non_protein_coords - com).toVector().normalise() - - out_of_protein = displacement.value() * initial_normal_vector - return out_of_protein - - def get_prot_com_atoms(self): - """ - Get the atoms that define the center of mass of the protein as a list of ints - - Returns - ------- - list - A list of atom indices that define the center of mass of the protein. - """ - return self._mol1_com_atoms - - def _set_mol1_com_atoms(self, mol1_com_atoms): - """ - Set the atoms that define the center of mass of the protein - If a list is given, simply set them according to the list. - If None, find them based on the center of mass of the protein. - """ - if mol1_com_atoms is not None: - # Make sure its a list of ints - if not isinstance(mol1_com_atoms, list): - raise TypeError("mol1_com_atoms must be a list") - if not all(isinstance(x, int) for x in mol1_com_atoms): - raise TypeError("mol1_com_atoms must be a list of ints") - self._mol1_com_atoms = mol1_com_atoms - else: - # Find com of the protein - if self._is_pre_prepared: - temp_system = self.system._sire_object - protein = temp_system[self.protein_index[0]] - for i in self.protein_index[1:]: - protein += temp_system[i] - com = protein.coordinates() - self._mol1_com_atoms = [ - a.index().value() - for a in protein[f"atoms within 11 angstrom of {com}"] - ] - del temp_system - del protein - else: - protein = self.mol1 - com = protein._sire_object.coordinates() - self._mol1_com_atoms = [ - a.index().value() - for a in protein._sire_object[f"atoms within 11 angstrom of {com}"] - ] - - def get_lig1_com_atoms(self): - """ - Get the atoms that define the center of mass of the bound ligand as a list of ints - - Returns - ------- - list - A list of atom indices that define the center of mass of the bound ligand. - """ - return self._lig1_com_atoms - - def _set_lig1_com_atoms(self, lig1_com_atoms): - """ - Set the atoms that define the center of mass of the bound ligand - If a list is given, simply set them according to the list. - If None, find them based on the center of mass of the bound ligand. - In most cases this will be all atoms within the ligand - """ - if lig1_com_atoms is not None: - # Make sure its a list of ints - if not isinstance(lig1_com_atoms, list): - raise TypeError("lig1_com_atoms must be a list") - if not all(isinstance(x, int) for x in lig1_com_atoms): - raise TypeError("lig1_com_atoms must be a list of ints") - self._lig1_com_atoms = lig1_com_atoms - else: - # Find com of the ligand - if self._is_pre_prepared: - ligand1 = self.system[self.ligand1_index] - else: - ligand1 = self.ligand1 - com = ligand1._sire_object.coordinates() - self._lig1_com_atoms = [ - a.index().value() - for a in ligand1._sire_object[f"atoms within 11 angstrom of {com}"] - ] - - def get_lig2_com_atoms(self): - """ - Get the atoms that define the center of mass of the free ligand as a list of ints - - Returns - ------- - list - A list of atom indices that define the center of mass of the free ligand. - """ - return self._lig2_com_atoms - - def _set_lig2_com_atoms(self, lig2_com_atoms): - """ - Set the atoms that define the center of mass of the free ligand - If a list is given, simply set them according to the list. - If None, find them based on the center of mass of the free ligand. - In most cases this will be all atoms within the ligand - """ - if lig2_com_atoms is not None: - # Make sure its a list of ints - if not isinstance(lig2_com_atoms, list): - raise TypeError("lig2_com_atoms must be a list") - if not all(isinstance(x, int) for x in lig2_com_atoms): - raise TypeError("lig2_com_atoms must be a list of ints") - self._lig2_com_atoms = lig2_com_atoms - else: - # Find com of the ligand - if self._is_pre_prepared: - ligand2 = self.system[self.ligand2_index] - else: - ligand2 = self.ligand2 - com = ligand2._sire_object.coordinates() - self._lig2_com_atoms = [ - a.index().value() - for a in ligand2._sire_object[f"atoms within 11 angstrom of {com}"] - ] - - def getSystem(self): - """ - Get the AToM system - - Returns - ------- - BioSimSpace._SireWrappers.System - The AToM system - """ - self._makeData() - return self.system, self.data - - def _makeData(self): - """ - Make the data dictionary for the AToM system - """ - self._findAtomIndices() - if self._is_pre_prepared: - if not isinstance(self.displacement, _Vector): - raise ValueError( - "Displacement must be a vector or list if a pre-prepared system is given" - ) - else: - self.data["displacement"] = self.displacement - self.data["protein_index"] = self.protein_index - self.data["ligand1_index"] = self.ligand1_index - self.data["ligand2_index"] = self.ligand2_index - self.data["ligand1_rigid_core"] = self.ligand1_rigid_core - self.data["ligand2_rigid_core"] = self.ligand2_rigid_core - self.data["mol1_atomcount"] = self.mol1_atomcount - self.data["ligand1_atomcount"] = self.ligand1_atomcount - self.data["ligand2_atomcount"] = self.ligand2_atomcount - self.data["first_protein_atom_index"] = self.first_protein_atom_index - self.data["last_protein_atom_index"] = self.last_protein_atom_index - self.data["first_ligand1_atom_index"] = self.first_ligand1_atom_index - self.data["last_ligand1_atom_index"] = self.last_ligand1_atom_index - self.data["first_ligand2_atom_index"] = self.first_ligand2_atom_index - self.data["last_ligand2_atom_index"] = self.last_ligand2_atom_index - self.data["protein_com_atoms"] = self._mol1_com_atoms - self.data["ligand1_com_atoms"] = self._lig1_com_atoms - self.data["ligand2_com_atoms"] = self._lig2_com_atoms - - -class relativeATM: - """ - A class for setting up and performing RBFE calculations using AToM - """ - - def __init__( - self, - system, - protocol, - platform="CPU", - work_dir=None, - setup_only=False, - ignore_warnings=False, - show_errors=True, - extra_options={}, - extra_lines=[], - property_map={}, - ): - """ - Constructor. - - Parameters - ---------- - system : BioSimSpace._SireWrappers.System - A prepared AToM system containing a protein and two ligands, one bound and one free. - Assumed to already be equilibrated. - - protocol : BioSimSpace.Protocol.AToM - A protocol object that defines the RBFE protocol. - - platform : str - The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. - For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, - e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. - For OPENCL, instead use OPENCL_VISIBLE_DEVICES. - - work_dir : str - The working directory for the simulation. - - setup_only : bool - Whether to only support simulation setup. If True, then no - simulation processes objects will be created, only the directory - hierarchy and input files to run a simulation externally. This - can be useful when you don't intend to use BioSimSpace to run - the simulation. Note that a 'work_dir' must also be specified. - - ignore_warnings : bool - Whether to ignore warnings when generating the binary run file. - This option is specific to GROMACS and will be ignored when a - different molecular dynamics engine is chosen. - - show_errors : bool - Whether to show warning/error messages when generating the binary - run file. This option is specific to GROMACS and will be ignored - when a different molecular dynamics engine is chosen. - - extra_options : dict - A dictionary containing extra options. Overrides the defaults generated - by the protocol. - - extra_lines : [str] - A list of extra lines to put at the end of the configuration file. - - property_map : dict - A dictionary that maps system "properties" to their user defined - values. This allows the user to refer to properties with their - own naming scheme, e.g. { "charge" : "my-charge" } - - """ - if not isinstance(system, _System): - raise TypeError( - "'system' must be of type 'BioSimSpace._SireWrappers.System'" - ) - else: - # Store a copy of solvated system. - self._system = system.copy() - - # Validate the protocol. - if protocol is not None: - from ...Protocol._AToM import AToMProduction as _Production - - if not isinstance(protocol, _Production): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - - # Check the platform. - if not isinstance(platform, str): - raise TypeError("'platform' must be of type 'str'.") - else: - self._platform = platform - - if not isinstance(setup_only, bool): - raise TypeError("'setup_only' must be of type 'bool'.") - else: - self._setup_only = setup_only - - if work_dir is None and setup_only: - raise ValueError( - "A 'work_dir' must be specified when 'setup_only' is True!" - ) - - # Create the working directory. - self._work_dir = _Utils.WorkDir(work_dir) - - if not isinstance(ignore_warnings, bool): - raise ValueError("'ignore_warnings' must be of type 'bool.") - self._ignore_warnings = ignore_warnings - - if not isinstance(show_errors, bool): - raise ValueError("'show_errors' must be of type 'bool.") - self._show_errors = show_errors - - # Check the extra options. - if not isinstance(extra_options, dict): - raise TypeError("'extra_options' must be of type 'dict'.") - else: - keys = extra_options.keys() - if not all(isinstance(k, str) for k in keys): - raise TypeError("Keys of 'extra_options' must be of type 'str'.") - self._extra_options = extra_options - - # Check the extra lines. - if not isinstance(extra_lines, list): - raise TypeError("'extra_lines' must be of type 'list'.") - else: - if not all(isinstance(line, str) for line in extra_lines): - raise TypeError("Lines in 'extra_lines' must be of type 'str'.") - self._extra_lines = extra_lines - - # Check that the map is valid. - if not isinstance(property_map, dict): - raise TypeError("'property_map' must be of type 'dict'") - self._property_map = property_map - - self._inititalise_runner(system=self._system) - - def run(self, serial=True): - """ - Run the simulations. - Returns - ------- - list of :class:`Process ` - A list of process objects. - """ - # Initialise the runner. - if not isinstance(serial, bool): - raise TypeError("'serial' must be of type 'bool'.") - - if self._setup_only: - _warnings.warn("No processes exist! Object created in 'setup_only' mode.") - - else: - self._runner.startAll(serial=serial) - - def _inititalise_runner(self, system): - """ - Internal helper function to initialise the process runner. - - Parameters - ---------- - - system : :class:`System ` - The molecular system. - """ - # TODO: generate generic protocol if None is passed. - # This protocol will have to be minimal - cannot guess rigid core atoms - if self._protocol is None: - raise RuntimeError("No protocol has been set - cannot run simulations.") - # Initialise list to store the processe - processes = [] - # Get the list of lambda1 values so that the total number of simulations can - # be asserted - lambda_list = self._protocol._get_lambda_values() - # Set index of current simulation to 0 - self._protocol._set_current_index(0) - lam = lambda_list[0] - - first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) - - # Create the first simulation, which will be copied and used for future simulations. - first_process = _Production( - system=system, - protocol=self._protocol, - platform=self._platform, - work_dir=first_dir, - property_map=self._property_map, - ) - - if self._setup_only: - del first_process - else: - processes.append(first_process) - - # Remove first index as its already been used - lambda_list = lambda_list[1:] - # Enumerate starting at 1 to account for the removal of the first lambda value - for index, lam in enumerate(lambda_list, 1): - # TODO: Support for simulations restarting from a checkpoint. - # Files are named according to index, rather than lambda value - # This is to avoid confusion arising from the fact that there are multiple lambdas - # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 - # and may contain duplicates - new_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) - # Use absolute path. - if not _os.path.isabs(new_dir): - new_dir = _os.path.abspath(new_dir) - - # Delete any existing directories. - if _os.path.isdir(new_dir): - _shutil.rmtree(new_dir, ignore_errors=True) - - # Copy the first directory to that of the current lambda value. - _shutil.copytree(first_dir, new_dir) - # For speed reasons, additional processes need to be created by copying the first process. - # this is more difficult than usual due to the number of window-dependent variables - new_config = [] - # All variables that need to change - new_lam_1 = self._protocol.getLambda1()[index] - new_lam_2 = self._protocol.getLambda2()[index] - new_alpha = self._protocol.getAlpha()[index].value() - new_uh = self._protocol.getUh()[index].value() - new_w0 = self._protocol.getW0()[index].value() - new_direction = self._protocol.getDirections()[index] - with open(new_dir + "/openmm_script.py", "r") as f: - for line in f: - if line.startswith("lambda1"): - new_config.append(f"lambda1 = {new_lam_1}\n") - elif line.startswith("lambda2"): - new_config.append(f"lambda2 = {new_lam_2}\n") - elif line.startswith("alpha"): - new_config.append( - f"alpha = {new_alpha} * kilocalories_per_mole\n" - ) - elif line.startswith("uh"): - new_config.append(f"uh = {new_uh} * kilocalories_per_mole\n") - elif line.startswith("w0"): - new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") - elif line.startswith("direction"): - new_config.append(f"direction = {new_direction}\n") - elif line.startswith("window_index"): - new_config.append(f"window_index = {index}\n") - else: - new_config.append(line) - with open(new_dir + "/openmm_script.py", "w") as f: - for line in new_config: - f.write(line) - - # biosimspace runner functionality - if not self._setup_only: - process = _copy.copy(first_process) - process._system = first_process._system.copy() - process._protocol = self._protocol - process._work_dir = new_dir - process._stdout_file = new_dir + "/AToM.out" - process._stderr_file = new_dir + "/AToM.err" - process._rst_file = new_dir + "/openmm.rst7" - process._top_file = new_dir + "/openmm.prm7" - process._traj_file = new_dir + "/openmm.dcd" - process._config_file = new_dir + "/openmm_script.py" - process._input_files = [ - process._config_file, - process._rst_file, - process._top_file, - ] - processes.append(process) - - if not self._setup_only: - # Initialise process runner. - self._runner = _Process.ProcessRunner(processes) - - -def viewRigidCores(system, data): - """ - View the aligned ligands with rigid core atoms defined by the user during system creation. - """ - - if ( - "ligand1_rigid_core" not in data.keys() - or "ligand2_rigid_core" not in data.keys() - ): - raise ValueError( - "ligand1_rigid_core and ligand2_rigid_core must be defined in data" - ) - - def move_to_origin(lig): - com = _Coordinate(*lig._getCenterOfMass()) - lig.translate([-com.x().value(), -com.y().value(), -com.z().value()]) - - if not _is_notebook: - raise RuntimeError("This function can only be used in a Jupyter notebook") - - if not isinstance(system, _System): - raise TypeError("system must be a BioSimSpace system") - - if not isinstance(data, dict): - raise TypeError("data must be a dictionary") - - # copy the ligands - ligand1 = system[data["ligand1_index"]].copy() - move_to_origin(ligand1) - ligand2 = system[data["ligand2_index"]].copy() - move_to_origin(ligand2) - - # Translate ligand2 so they don't overlap - ligand2.translate([10.0, 0, 0]) - - # Get coords of rigid core atoms - ligand1_core_coords = [] - ligand2_core_coords = [] - - for i in data["ligand1_rigid_core"]: - ligand1_core_coords.append(ligand1.getAtoms()[i].coordinates()) - - for i in data["ligand2_rigid_core"]: - ligand2_core_coords.append(ligand2.getAtoms()[i].coordinates()) - - # Create molecule containing both ligands - mol = ligand1 + ligand2 - - # Create view - view = _View(mol) - - # Create nglview object - ngl = view.system(mol) - colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] - # Add spheres to rigid core locations - for coord1, coord2, colour in zip( - ligand1_core_coords, ligand2_core_coords, colours - ): - ngl.shape.add_sphere( - [coord1.x().value(), coord1.y().value(), coord1.z().value()], colour, 0.7 - ) - ngl.shape.add_sphere( - [coord2.x().value(), coord2.y().value(), coord2.z().value()], colour, 0.7 - ) - return ngl - - -class Minimise(_Process.OpenMM): - """A class for minimising AToM systems. - Includes restraints.""" - - def __init__( - self, - system, - protocol, - exe=None, - platform="CPU", - seed=None, - work_dir=None, - property_map={}, - ): - # Validate the protocol. - if protocol is not None: - from ...Protocol._AToM import AToMMinimisation as _Minimisation - - if not isinstance(protocol, _Minimisation): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToM'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - super().__init__( - system=system, - protocol=protocol, - exe=exe, - name="minimise", - platform=platform, - work_dir=work_dir, - seed=seed, - property_map=property_map, - ) - - def _generate_config(self): - """Custom config generation, mixing in restraints - with minimisation protocol. AToM force is not applied here.""" - - util = _AtomUtils(self._protocol) - # Clear the existing configuration list. - self._config = [] - - # Get the "space" property from the user mapping. - prop = self._property_map.get("space", "space") - - # Check whether the system contains periodic box information. - if prop in self._system._sire_object.propertyKeys(): - try: - # Make sure that we have a periodic box. The system will now have - # a default cartesian space. - box = self._system._sire_object.property(prop) - has_box = box.isPeriodic() - except: - has_box = False - else: - _warnings.warn("No simulation box found. Assuming gas phase simulation.") - has_box = False - - # Write the OpenMM import statements. - self._add_config_imports() - self._add_config_monkey_patches() - # Load the input files. - self.addToConfig("\n# Load the topology and coordinate files.") - self.addToConfig( - "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." - ) - self.addToConfig( - f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" - ) - - # Don't use a cut-off if this is a vacuum simulation or if box information - # is missing. - self.addToConfig("\n# Initialise the molecular system.") - if not has_box or not self._has_water: - self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") - else: - self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") - self.addToConfig(" nonbondedCutoff=1*nanometer,") - self.addToConfig(" constraints=HBonds)") - - # Set the integrator. (Use zero-temperature as this is just a dummy step.) - self.addToConfig("\n# Define the integrator.") - self.addToConfig("integrator = LangevinMiddleIntegrator(0*kelvin,") - self.addToConfig(" 1/picosecond,") - self.addToConfig(" 0.002*picoseconds)") - - # Add the platform information. - self._add_config_platform() - - # Add any position restraints. - if self._protocol.getRestraint() is not None: - restraint = self._protocol.getRestraint() - # Search for the atoms to restrain by keyword. - if isinstance(restraint, str): - restrained_atoms = self._system.getRestraintAtoms(restraint) - # Use the user-defined list of indices. - else: - restrained_atoms = restraint - self.addToConfig("\n# Add position restraints.") - frc = util.create_flat_bottom_restraint(restrained_atoms) - self.addToConfig(frc) - - # Add the atom-specific restraints. - disp = util.createDisplacement() - self.addToConfig(disp) - if self._protocol.getCoreAlignment(): - alignment = util.createAlignmentForce() - self.addToConfig("\n# Add alignment force.") - self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): - CMCM = util.createCOMRestraint() - self.addToConfig("\n# Add COM restraint.") - self.addToConfig(CMCM) - - # Set up the simulation object. - self.addToConfig("\n# Initialise and configure the simulation object.") - self.addToConfig("simulation = Simulation(prm.topology,") - self.addToConfig(" system,") - self.addToConfig(" integrator,") - self.addToConfig(" platform,") - self.addToConfig(" properties)") - if self._protocol.getRestraint() is not None: - self.addToConfig("simulation.context.setPositions(positions)") - else: - self.addToConfig("simulation.context.setPositions(prm.positions)") - self.addToConfig("if prm.box_vectors is not None:") - self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") - self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") - self.addToConfig( - f"simulation.minimizeEnergy(maxIterations={self._protocol.getSteps()})" - ) - - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters(state_interval=1, traj_interval=1) - - # Now run the simulation. - self.addToConfig( - "\n# Run a single simulation step to allow us to get the system and energy." - ) - self.addToConfig(f"simulation.step(1)") - - # Flag that this isn't a custom protocol. - self._protocol._setCustomised(False) - - -class Equilibrate(_Process.OpenMM): - """A class for running a pre-production equilibration step. - Required for most systems to preven atom overlapping issues.""" - - def __init__( - self, - system, - protocol, - exe=None, - platform="CUDA", - seed=None, - work_dir=None, - property_map={}, - ): - # Validate the protocol. - if protocol is not None: - from ...Protocol._AToM import AToMEquilibration as _Equilibration - - if not isinstance(protocol, _Equilibration): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - super().__init__( - system=system, - protocol=protocol, - exe=exe, - name="equilibrate", - platform=platform, - work_dir=work_dir, - seed=seed, - property_map=property_map, - ) - - def _generate_config(self): - - util = _AtomUtils(self._protocol) - # Clear the existing configuration list. - self._config = [] - - # Get the "space" property from the user mapping. - prop = self._property_map.get("space", "space") - - # Check whether the system contains periodic box information. - if prop in self._system._sire_object.propertyKeys(): - try: - # Make sure that we have a periodic box. The system will now have - # a default cartesian space. - box = self._system._sire_object.property(prop) - has_box = box.isPeriodic() - except: - has_box = False - else: - _warnings.warn("No simulation box found. Assuming gas phase simulation.") - has_box = False - - # Write the OpenMM import statements and monkey-patches. - self._add_config_imports() - self._add_config_monkey_patches() - - # Load the input files. - self.addToConfig("\n# Load the topology and coordinate files.") - self.addToConfig( - "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." - ) - self.addToConfig( - f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" - ) - - # Don't use a cut-off if this is a vacuum simulation or if box information - # is missing. - is_periodic = True - self.addToConfig("\n# Initialise the molecular system.") - if not has_box or not self._has_water: - is_periodic = False - self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") - else: - self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") - self.addToConfig(" nonbondedCutoff=1*nanometer,") - self.addToConfig(" constraints=HBonds)") - - # Get the starting temperature and system pressure. - temperature = self._protocol.getStartTemperature().kelvin().value() - pressure = self._protocol.getPressure() - - # Add a Monte Carlo barostat if the simulation is at constant pressure. - is_const_pressure = False - if pressure is not None: - # Cannot use a barostat with a non-periodic system. - if not is_periodic: - _warnings.warn( - "Cannot use a barostat for a vacuum or non-periodic simulation" - ) - else: - is_const_pressure = True - - # Convert to bar and get the value. - pressure = pressure.bar().value() - - # Create the barostat and add its force to the system. - self.addToConfig("\n# Add a barostat to run at constant pressure.") - self.addToConfig( - f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" - ) - if self._is_seeded: - self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") - self.addToConfig("system.addForce(barostat)") - - # Add any position restraints. - if self._protocol.getRestraint() is not None: - restraint = self._protocol.getRestraint() - # Search for the atoms to restrain by keyword. - if isinstance(restraint, str): - restrained_atoms = self._system.getRestraintAtoms(restraint) - # Use the user-defined list of indices. - else: - restrained_atoms = restraint - self.addToConfig("\n# Add position restraints.") - frc = util.create_flat_bottom_restraint(restrained_atoms) - self.addToConfig(frc) - - # Add the atom-specific restraints. - disp = util.createDisplacement() - self.addToConfig(disp) - if self._protocol.getUseATMForce(): - atm = util.createATMForce(index=None) - self.addToConfig(atm) - - if self._protocol.getCoreAlignment(): - alignment = util.createAlignmentForce() - self.addToConfig("\n# Add alignment force.") - self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): - CMCM = util.createCOMRestraint() - self.addToConfig("\n# Add COM restraint.") - self.addToConfig(CMCM) - - # Get the integration time step from the protocol. - timestep = self._protocol.getTimeStep().picoseconds().value() - - # Set the integrator. - self.addToConfig("\n# Define the integrator.") - self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() - self.addToConfig(f" {friction:.5f}/picosecond,") - self.addToConfig(f" {timestep}*picoseconds)") - if self._is_seeded: - self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") - - # Add the platform information. - self._add_config_platform() - - # Set up the simulation object. - self.addToConfig("\n# Initialise and configure the simulation object.") - self.addToConfig("simulation = Simulation(prm.topology,") - self.addToConfig(" system,") - self.addToConfig(" integrator,") - self.addToConfig(" platform,") - self.addToConfig(" properties)") - if self._protocol.getRestraint() is not None: - self.addToConfig("simulation.context.setPositions(positions)") - else: - self.addToConfig("simulation.context.setPositions(prm.positions)") - self.addToConfig("if prm.box_vectors is not None:") - self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") - self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") - - # Set initial velocities from temperature distribution. - self.addToConfig("\n# Setting initial system velocities.") - self.addToConfig( - f"simulation.context.setVelocitiesToTemperature({temperature})" - ) - - # Work out the number of integration steps. - steps = _math.ceil(self._protocol.getRunTime() / self._protocol.getTimeStep()) - - # Get the report and restart intervals. - report_interval = self._protocol.getReportInterval() - restart_interval = self._protocol.getRestartInterval() - - # Cap the intervals at the total number of steps. - if report_interval > steps: - report_interval = steps - if restart_interval > steps: - restart_interval = steps - - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters( - state_interval=report_interval, - traj_interval=restart_interval, - is_restart=False, - ) - - # Now run the simulation. - self.addToConfig("\n# Run the simulation.") - - # Constant temperature equilibration. - if self._protocol.isConstantTemp(): - self.addToConfig(f"simulation.step({steps})") - - # Heating / cooling cycle. - else: - # Adjust temperature every 100 cycles, assuming that there at - # least that many cycles. - if steps > 100: - # Work out the number of temperature cycles. - temp_cycles = _math.ceil(steps / 100) - - # Work out the temperature change per cycle. - delta_temp = ( - self._protocol.getEndTemperature().kelvin().value() - - self._protocol.getStartTemperature().kelvin().value() - ) / temp_cycles - - self.addToConfig(f"start_temperature = {temperature}") - self.addToConfig(f"for x in range(0, {temp_cycles}):") - self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") - self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") - if is_const_pressure: - self.addToConfig( - f" barostat.setDefaultTemperature(temperature*kelvin)" - ) - self.addToConfig(" simulation.step(100)") - else: - # Work out the temperature change per step. - delta_temp = ( - self._protocol.getEndTemperature().kelvin().value() - - self._protocol.getStartTemperature().kelvin().value() - ) / steps - - self.addToConfig(f"start_temperature = {temperature}") - self.addToConfig(f"for x in range(0, {steps}):") - self.addToConfig(f" temperature = {temperature} + x*{delta_temp}") - self.addToConfig(f" integrator.setTemperature(temperature*kelvin)") - if is_const_pressure: - self.addToConfig( - f" barostat.setDefaultTemperature(temperature*kelvin)" - ) - self.addToConfig(" simulation.step(1)") - - -class Anneal(_Process.OpenMM): - """A class for pre-production annealing of AToM systems.""" - - def __init__( - self, - system, - protocol, - exe=None, - platform="CUDA", - seed=None, - work_dir=None, - property_map={}, - ): - # Validate the protocol. - if protocol is not None: - from ...Protocol._AToM import AToMAnnealing as _Annealing - - if not isinstance(protocol, _Annealing): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - - if protocol.getAnnealValues() is None or protocol.getAnnealNumCycles is None: - raise ValueError("Anneal values and cycles must be specified") - - # Use this to set default values for the protocol - protocol._set_current_index(0) - super().__init__( - system=system, - protocol=protocol, - exe=exe, - name="anneal", - platform=platform, - work_dir=work_dir, - seed=seed, - property_map=property_map, - ) - - def _generate_config(self): - util = _AtomUtils(self._protocol) - # Clear the existing configuration list. - self._config = [] - - # Get the "space" property from the user mapping. - prop = self._property_map.get("space", "space") - - # Check whether the system contains periodic box information. - if prop in self._system._sire_object.propertyKeys(): - try: - # Make sure that we have a periodic box. The system will now have - # a default cartesian space. - box = self._system._sire_object.property(prop) - has_box = box.isPeriodic() - except: - has_box = False - else: - _warnings.warn("No simulation box found. Assuming gas phase simulation.") - has_box = False - - # Write the OpenMM import statements. - self._add_config_imports() - self._add_config_monkey_patches() - - # Add standard openMM config - self.addToConfig("from glob import glob") - self.addToConfig("import math") - self.addToConfig("import os") - self.addToConfig("import shutil") - - # Load the input files. - self.addToConfig("\n# Load the topology and coordinate files.") - self.addToConfig( - "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." - ) - self.addToConfig( - f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" - ) - - # Don't use a cut-off if this is a vacuum simulation or if box information - # is missing. - is_periodic = True - self.addToConfig("\n# Initialise the molecular system.") - if not has_box or not self._has_water: - is_periodic = False - self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") - else: - self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") - self.addToConfig(" nonbondedCutoff=1*nanometer,") - self.addToConfig(" constraints=HBonds)") - - # Get the starting temperature and system pressure. - temperature = self._protocol.getTemperature().kelvin().value() - pressure = self._protocol.getPressure() - - # Add a Monte Carlo barostat if the simulation is at constant pressure. - is_const_pressure = False - if pressure is not None: - # Cannot use a barostat with a non-periodic system. - if not is_periodic: - _warnings.warn( - "Cannot use a barostat for a vacuum or non-periodic simulation" - ) - else: - is_const_pressure = True - - # Convert to bar and get the value. - pressure = pressure.bar().value() - - # Create the barostat and add its force to the system. - self.addToConfig("\n# Add a barostat to run at constant pressure.") - self.addToConfig( - f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" - ) - if self._is_seeded: - self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") - self.addToConfig("system.addForce(barostat)") - - # Add any position restraints. - if self._protocol.getRestraint() is not None: - restraint = self._protocol.getRestraint() - # Search for the atoms to restrain by keyword. - if isinstance(restraint, str): - restrained_atoms = self._system.getRestraintAtoms(restraint) - # Use the user-defined list of indices. - else: - restrained_atoms = restraint - self.addToConfig("\n# Add position restraints.") - frc = util.create_flat_bottom_restraint(restrained_atoms) - self.addToConfig(frc) - - # Get the integration time step from the protocol. - timestep = self._protocol.getTimeStep().picoseconds().value() - - # Set the integrator. - self.addToConfig("\n# Define the integrator.") - self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() - self.addToConfig(f" {friction:.5f}/picosecond,") - self.addToConfig(f" {timestep}*picoseconds)") - if self._is_seeded: - self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") - - # Add the platform information. - self._add_config_platform() - - # Use utils to create AToM-specific forces - # Atom force is the only window-dependent force - disp = util.createDisplacement() - self.addToConfig(disp) - self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - if self._protocol.getCoreAlignment(): - alignment = util.createAlignmentForce() - self.addToConfig("\n# Add alignment force.") - self.addToConfig(alignment) - - if self._protocol.getCMCMRestraint(): - CMCM = util.createCOMRestraint() - self.addToConfig("\n# Add COM restraint.") - self.addToConfig(CMCM) - - self.addToConfig("\n# Initialise and configure the simulation object.") - self.addToConfig("simulation = Simulation(prm.topology,") - self.addToConfig(" system,") - self.addToConfig(" integrator,") - self.addToConfig(" platform,") - self.addToConfig(" properties)") - if self._protocol.getRestraint() is not None: - self.addToConfig("simulation.context.setPositions(positions)") - else: - self.addToConfig("simulation.context.setPositions(prm.positions)") - self.addToConfig("if prm.box_vectors is not None:") - self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") - self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") - - # Set initial velocities from temperature distribution. - self.addToConfig("\n# Setting initial system velocities.") - self.addToConfig( - f"simulation.context.setVelocitiesToTemperature({temperature})" - ) - - # Check for a restart file and load the simulation state. - is_restart, step = self._add_config_restart() - - # Work out the number of integration steps. - total_steps = _math.ceil( - self._protocol.getRunTime() / self._protocol.getTimeStep() - ) - - # Subtract the current number of steps. - steps = total_steps - step - - # Exit if the simulation has already finished. - if steps <= 0: - print("The simulation has already finished!") - return - - # Inform user that a restart was loaded. - self.addToConfig("\n# Print restart information.") - self.addToConfig("if is_restart:") - self.addToConfig(f" steps = {total_steps}") - self.addToConfig(" percent_complete = 100 * (step / steps)") - self.addToConfig(" print('Loaded state from an existing simulation.')") - self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") - - # Get the report and restart intervals. - report_interval = self._protocol.getReportInterval() - restart_interval = self._protocol.getRestartInterval() - - # Cap the intervals at the total number of steps. - if report_interval > steps: - report_interval = steps - if restart_interval > steps: - restart_interval = steps - - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters( - state_interval=report_interval, - traj_interval=restart_interval, - is_restart=is_restart, - ) - - # Work out the total simulation time in picoseconds. - run_time = steps * timestep - - # Work out the number of cycles in 100 picosecond intervals. - cycles = _math.ceil(run_time / 100) - - # Work out the number of steps per cycle. - steps_per_cycle = int(steps / cycles) - - # get annealing protocol from atom utils - annealing_protocol = util.createAnnealingProtocol() - self.addToConfig(annealing_protocol) - - -class _Production(_Process.OpenMM): - """An internal class for running a single production AToM simulation.""" - - def __init__( - self, - system, - protocol, - exe=None, - platform="CUDA", - seed=None, - work_dir=None, - property_map={}, - ): - # Validate the protocol. - if protocol is not None: - from ...Protocol._AToM import AToMProduction as _Production - - if not isinstance(protocol, _Production): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMEquilibration'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - - # Use this to set default values for the protocol - protocol._set_current_index(0) - super().__init__( - system=system, - protocol=protocol, - exe=exe, - name="openmm", - platform=platform, - work_dir=work_dir, - seed=seed, - property_map=property_map, - ) - - def _generate_config(self): - # Clear the existing configuration list. - self._config = [] - - # Get the "space" property from the user mapping. - prop = self._property_map.get("space", "space") - - # Check whether the system contains periodic box information. - if prop in self._system._sire_object.propertyKeys(): - try: - # Make sure that we have a periodic box. The system will now have - # a default cartesian space. - box = self._system._sire_object.property(prop) - has_box = box.isPeriodic() - except: - has_box = False - else: - _warnings.warn("No simulation box found. Assuming gas phase simulation.") - has_box = False - # TODO: check extra_options, extra_lines and property_map - util = _AtomUtils(self._protocol) - if self._protocol._get_window_index() is None: - raise _IncompatibleError( - "AToM protocol requires the current window index to be set." - ) - - # Write the OpenMM import statements. - self._add_config_imports() - self.addToConfig("import pandas as pd") - self.addToConfig("import numpy as np") - self._add_config_monkey_patches() - self.addToConfig("\n") - self.addToConfig(util.createSoftcorePertE()) - # Add standard openMM config - self.addToConfig("from glob import glob") - self.addToConfig("import math") - self.addToConfig("import os") - self.addToConfig("import shutil") - - # Load the input files. - self.addToConfig("\n# Load the topology and coordinate files.") - self.addToConfig( - "\n# We use ParmEd due to issues with the built in AmberPrmtopFile for certain triclinic spaces." - ) - self.addToConfig( - f"prm = parmed.load_file('{self._name}.prm7', '{self._name}.rst7')" - ) - - # Don't use a cut-off if this is a vacuum simulation or if box information - # is missing. - is_periodic = True - self.addToConfig("\n# Initialise the molecular system.") - if not has_box or not self._has_water: - is_periodic = False - self.addToConfig("system = prm.createSystem(nonbondedMethod=NoCutoff,") - else: - self.addToConfig("system = prm.createSystem(nonbondedMethod=PME,") - self.addToConfig(" nonbondedCutoff=1*nanometer,") - self.addToConfig(" constraints=HBonds)") - - # Get the starting temperature and system pressure. - temperature = self._protocol.getTemperature().kelvin().value() - pressure = self._protocol.getPressure() - - # Add a Monte Carlo barostat if the simulation is at constant pressure. - is_const_pressure = False - if pressure is not None: - # Cannot use a barostat with a non-periodic system. - if not is_periodic: - _warnings.warn( - "Cannot use a barostat for a vacuum or non-periodic simulation" - ) - else: - is_const_pressure = True - - # Convert to bar and get the value. - pressure = pressure.bar().value() - - # Create the barostat and add its force to the system. - self.addToConfig("\n# Add a barostat to run at constant pressure.") - self.addToConfig( - f"barostat = MonteCarloBarostat({pressure}*bar, {temperature}*kelvin)" - ) - if self._is_seeded: - self.addToConfig(f"barostat.setRandomNumberSeed({self._seed})") - self.addToConfig("system.addForce(barostat)") - - # Add any position restraints. - if self._protocol.getRestraint() is not None: - restraint = self._protocol.getRestraint() - # Search for the atoms to restrain by keyword. - if isinstance(restraint, str): - restrained_atoms = self._system.getRestraintAtoms(restraint) - # Use the user-defined list of indices. - else: - restrained_atoms = restraint - self.addToConfig("\n# Add position restraints.") - frc = util.create_flat_bottom_restraint(restrained_atoms) - self.addToConfig(frc) - - # Get the integration time step from the protocol. - timestep = self._protocol.getTimeStep().picoseconds().value() - - # Set the integrator. - self.addToConfig("\n# Define the integrator.") - self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() - self.addToConfig(f" {friction:.5f}/picosecond,") - self.addToConfig(f" {timestep}*picoseconds)") - if self._is_seeded: - self.addToConfig(f"integrator.setRandomNumberSeed({self._seed})") - - # Add the platform information. - self._add_config_platform() - - # Use utils to create AToM-specific forces - # Atom force is the only window-dependent force - disp = util.createDisplacement() - self.addToConfig(disp) - self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - if self._protocol.getCoreAlignment(): - alignment = util.createAlignmentForce() - self.addToConfig("\n# Add alignment force.") - self.addToConfig(alignment) - - if self._protocol.getCMCMRestraint(): - CMCM = util.createCOMRestraint() - self.addToConfig("\n# Add COM restraint.") - self.addToConfig(CMCM) - - self.addToConfig("\n# Initialise and configure the simulation object.") - self.addToConfig("simulation = Simulation(prm.topology,") - self.addToConfig(" system,") - self.addToConfig(" integrator,") - self.addToConfig(" platform,") - self.addToConfig(" properties)") - if self._protocol.getRestraint() is not None: - self.addToConfig("simulation.context.setPositions(positions)") - else: - self.addToConfig("simulation.context.setPositions(prm.positions)") - self.addToConfig("if prm.box_vectors is not None:") - self.addToConfig(" box_vectors = reducePeriodicBoxVectors(prm.box_vectors)") - self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") - - # Set initial velocities from temperature distribution. - self.addToConfig("\n# Setting initial system velocities.") - self.addToConfig( - f"simulation.context.setVelocitiesToTemperature({temperature})" - ) - - # Check for a restart file and load the simulation state. - is_restart, step = self._add_config_restart() - - # Work out the number of integration steps. - total_steps = _math.ceil( - self._protocol.getRunTime() / self._protocol.getTimeStep() - ) - - # Subtract the current number of steps. - steps = total_steps - step - - # Exit if the simulation has already finished. - if steps <= 0: - print("The simulation has already finished!") - return - - # Inform user that a restart was loaded. - self.addToConfig("\n# Print restart information.") - self.addToConfig("if is_restart:") - self.addToConfig(f" steps = {total_steps}") - self.addToConfig(" percent_complete = 100 * (step / steps)") - self.addToConfig(" print('Loaded state from an existing simulation.')") - self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") - - # Get the report and restart intervals. - report_interval = self._protocol.getReportInterval() - restart_interval = self._protocol.getRestartInterval() - - # Cap the intervals at the total number of steps. - if report_interval > steps: - report_interval = steps - if restart_interval > steps: - restart_interval = steps - - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters( - state_interval=report_interval, - traj_interval=restart_interval, - is_restart=is_restart, - ) - - # Work out the total simulation time in picoseconds. - run_time = steps * timestep - - # Work out the number of cycles in 100 picosecond intervals. - cycles = _math.ceil(run_time / (report_interval * timestep)) - - # Work out the number of steps per cycle. - steps_per_cycle = int(steps / cycles) - - self.addToConfig(f"\ntemperature = {temperature}") - # Now run the simulation. - self.addToConfig( - util.createSoftcorePertELoop( - self._name, cycles, steps_per_cycle, report_interval, timestep, step - ) - ) - # Now run the simulation. - # self.addToConfig("\n# Run the simulation in 100 picosecond cycles.") - # self.addToConfig(f"for x in range(0, {cycles}):") - # self.addToConfig(f" simulation.step({steps_per_cycle})") - # self.addToConfig(f" simulation.saveState('{self._name}.xml')") - - -class _relativeATM: - """ - A class for setting up and performing RBFE calculations using AToM - """ - - def __init__( - self, - system, - protocol, - platform="CPU", - work_dir=None, - setup_only=False, - ignore_warnings=False, - show_errors=True, - property_map={}, - ): - """ - Constructor. - - Parameters - ---------- - system : BioSimSpace._SireWrappers.System - A prepared AToM system containing a protein and two ligands, one bound and one free. - Assumed to already be equilibrated. - - protocol : BioSimSpace.Protocol.AToM - A protocol object that defines the RBFE protocol. - - platform : str - The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. - For CUDA use the CUDA_VISIBLE_DEVICES environment variable to set the GPUs on which to run, - e.g. to run on two GPUs indexed 0 and 1 use: CUDA_VISIBLE_DEVICES=0,1. - For OPENCL, instead use OPENCL_VISIBLE_DEVICES. - - work_dir : str - The working directory for the simulation. - - setup_only : bool - Whether to only support simulation setup. If True, then no - simulation processes objects will be created, only the directory - hierarchy and input files to run a simulation externally. This - can be useful when you don't intend to use BioSimSpace to run - the simulation. Note that a 'work_dir' must also be specified. - - ignore_warnings : bool - Whether to ignore warnings when generating the binary run file. - This option is specific to GROMACS and will be ignored when a - different molecular dynamics engine is chosen. - - show_errors : bool - Whether to show warning/error messages when generating the binary - run file. This option is specific to GROMACS and will be ignored - when a different molecular dynamics engine is chosen. - - property_map : dict - A dictionary that maps system "properties" to their user defined - values. This allows the user to refer to properties with their - own naming scheme, e.g. { "charge" : "my-charge" } - - """ - from .. import _Utils - - self._system = system.copy() - - # Validate the protocol. - if protocol is not None: - from ..Protocol._AToM import AToMProduction as _Production - - if not isinstance(protocol, _Production): - raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" - ) - else: - self._protocol = protocol - else: - # No default protocol due to the need for well-defined rigid cores - raise ValueError("A protocol must be specified") - - # Check the platform. - if not isinstance(platform, str): - raise TypeError("'platform' must be of type 'str'.") - else: - self._platform = platform - - if not isinstance(setup_only, bool): - raise TypeError("'setup_only' must be of type 'bool'.") - else: - self._setup_only = setup_only - - if work_dir is None and setup_only: - raise ValueError( - "A 'work_dir' must be specified when 'setup_only' is True!" - ) - - # Create the working directory. - self._work_dir = _Utils.WorkDir(work_dir) - - if not isinstance(ignore_warnings, bool): - raise ValueError("'ignore_warnings' must be of type 'bool.") - self._ignore_warnings = ignore_warnings - - if not isinstance(show_errors, bool): - raise ValueError("'show_errors' must be of type 'bool.") - self._show_errors = show_errors - # Check that the map is valid. - if not isinstance(property_map, dict): - raise TypeError("'property_map' must be of type 'dict'") - self._property_map = property_map - - self._inititalise_runner(system=self._system) - - def run(self, serial=True): - """ - Run the simulations. - Returns - ------- - list of :class:`Process ` - A list of process objects. - """ - # Initialise the runner. - if not isinstance(serial, bool): - raise TypeError("'serial' must be of type 'bool'.") - - if self._setup_only: - _warnings.warn("No processes exist! Object created in 'setup_only' mode.") - - else: - self._runner.startAll(serial=serial) - - def _inititalise_runner(self, system): - """ - Internal helper function to initialise the process runner. - - Parameters - ---------- - - system : :class:`System ` - The molecular system. - """ - from ..Process import OpenMM as OMMprocess - - # This protocol will have to be minimal - cannot guess rigid core atoms - if self._protocol is None: - raise RuntimeError("No protocol has been set - cannot run simulations.") - # Initialise list to store the processe - processes = [] - # Get the list of lambda1 values so that the total number of simulations can - # be asserted - lambda_list = self._protocol._get_lambda_values() - # Set index of current simulation to 0 - self._protocol._set_current_index(0) - lam = lambda_list[0] - - first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) - - # Create the first simulation, which will be copied and used for future simulations. - first_process = OMMprocess( - system=system, - protocol=self._protocol, - platform=self._platform, - work_dir=first_dir, - property_map=self._property_map, - ) - - if self._setup_only: - del first_process - else: - processes.append(first_process) - - # Remove first index as its already been used - lambda_list = lambda_list[1:] - # Enumerate starting at 1 to account for the removal of the first lambda value - for index, lam in enumerate(lambda_list, 1): - # TODO: Support for simulations restarting from a checkpoint. - # Files are named according to index, rather than lambda value - # This is to avoid confusion arising from the fact that there are multiple lambdas - # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 - # and may contain duplicates - new_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) - # Use absolute path. - if not _os.path.isabs(new_dir): - new_dir = _os.path.abspath(new_dir) - - # Delete any existing directories. - if _os.path.isdir(new_dir): - _shutil.rmtree(new_dir, ignore_errors=True) - - # Copy the first directory to that of the current lambda value. - _shutil.copytree(first_dir, new_dir) - # For speed reasons, additional processes need to be created by copying the first process. - # this is more difficult than usual due to the number of window-dependent variables - new_config = [] - # All variables that need to change - new_lam_1 = self._protocol.getLambda1()[index] - new_lam_2 = self._protocol.getLambda2()[index] - new_alpha = self._protocol.getAlpha()[index].value() - new_uh = self._protocol.getUh()[index].value() - new_w0 = self._protocol.getW0()[index].value() - new_direction = self._protocol.getDirections()[index] - with open(new_dir + "/openmm_script.py", "r") as f: - for line in f: - if line.startswith("lambda1"): - new_config.append(f"lambda1 = {new_lam_1}\n") - elif line.startswith("lambda2"): - new_config.append(f"lambda2 = {new_lam_2}\n") - elif line.startswith("alpha"): - new_config.append( - f"alpha = {new_alpha} * kilocalories_per_mole\n" - ) - elif line.startswith("uh"): - new_config.append(f"uh = {new_uh} * kilocalories_per_mole\n") - elif line.startswith("w0"): - new_config.append(f"w0 = {new_w0} * kilocalories_per_mole\n") - elif line.startswith("direction"): - new_config.append(f"direction = {new_direction}\n") - elif line.startswith("window_index"): - new_config.append(f"window_index = {index}\n") - else: - new_config.append(line) - with open(new_dir + "/openmm_script.py", "w") as f: - for line in new_config: - f.write(line) - - # biosimspace runner functionality - if not self._setup_only: - process = _copy.copy(first_process) - process._system = first_process._system.copy() - process._protocol = self._protocol - process._work_dir = new_dir - process._stdout_file = new_dir + "/AToM.out" - process._stderr_file = new_dir + "/AToM.err" - process._rst_file = new_dir + "/openmm.rst7" - process._top_file = new_dir + "/openmm.prm7" - process._traj_file = new_dir + "/openmm.dcd" - process._config_file = new_dir + "/openmm_script.py" - process._input_files = [ - process._config_file, - process._rst_file, - process._top_file, - ] - processes.append(process) - - if not self._setup_only: - # Initialise process runner. - self._runner = _Process.ProcessRunner(processes) diff --git a/python/BioSimSpace/FreeEnergy/AToM/__init__.py b/python/BioSimSpace/FreeEnergy/AToM/__init__.py deleted file mode 100644 index ea8ce9182..000000000 --- a/python/BioSimSpace/FreeEnergy/AToM/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -###################################################################### -# BioSimSpace: Making biomolecular simulation a breeze! -# -# Copyright: 2017-2023 -# -# Authors: Lester Hedges -# -# BioSimSpace is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# BioSimSpace is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with BioSimSpace. If not, see . -##################################################################### -from ._AToM_system import * -from ._analysis import * diff --git a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py b/python/BioSimSpace/FreeEnergy/AToM/_analysis.py deleted file mode 100644 index 5653fc10f..000000000 --- a/python/BioSimSpace/FreeEnergy/AToM/_analysis.py +++ /dev/null @@ -1,306 +0,0 @@ -###################################################################### -# BioSimSpace: Making biomolecular simulation a breeze! -# -# Copyright: 2017-2023 -# -# Authors: Lester Hedges , Matthew Burman -# -# BioSimSpace is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# BioSimSpace is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with BioSimSpace. If not, see . -###################################################################### - -__all__ = ["analyse"] - -import pandas as pd - -import numpy -import scipy.optimize -import scipy.special -import pathlib -import functools - - -def _compute_weights(ln_z, ln_q, factor): - q_ij = numpy.exp(ln_q - ln_z) - return q_ij / (factor * q_ij).sum(axis=-1, keepdims=True) - - -def _compute_kappa_hessian(ln_z, ln_q, factor, n): - ln_z = numpy.insert(ln_z, 0, 0.0) - - w = (factor * _compute_weights(ln_z, ln_q, factor))[:, 1:] - return -w.T @ w / n + numpy.diag(w.sum(axis=0) / n) - - -def _compute_kappa(ln_z, ln_q, factor, n): - ln_z = numpy.insert(ln_z, 0, 0.0) - - ln_q_ij_sum = scipy.special.logsumexp(a=ln_q - ln_z, b=factor, axis=1) - kappa = ln_q_ij_sum.sum() / n + (factor * ln_z).sum() - - w = factor * _compute_weights(ln_z, ln_q, factor) - grad = -w[:, 1:].sum(axis=0) / n + factor[1:] - - return kappa, grad - - -def _compute_variance(ln_z, w, factor, n): - o = w.T @ w / n - - b = o * factor - numpy.eye(len(ln_z)) - b = b[1:, 1:] - - b_inv_a = -o + o[0, :] - b_inv_a = b_inv_a[1:, 1:] - - var_matrix = (b_inv_a @ numpy.linalg.inv(b.T)) / n - return numpy.insert(numpy.diag(var_matrix), 0, 0.0) - - -def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): - """ - This is for the bias ilogistic potential - (lambda2-lambda1) ln[1+exp(-alpha (u-u0))]/alpha + lambda2 u + w0 - """ - ebias1 = numpy.zeros_like(epert) - if alpha > 0: - ee = 1 + numpy.exp(-alpha * (epert - u0)) - ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha - return ebias1 + lam2 * epert + w0 - - -def npot_fcn(e0, epert, bet, lam1, lam2, alpha, u0, w0): - # This is the negative reduced energy - # -beta*(U0+bias) - return -bet * (e0 + _bias_fcn(epert, lam1, lam2, alpha, u0, w0)) - - -def _estimate_f_i(ln_q, n_k): - """Estimates the free energies of a set of *sampled* states. - - - Args: - n_k: The number of samples at state ``k``. - ln_q: array of netgative potentials with ``shape=(n_states,n_samples)``. - - Returns: - The estimated reduced free energies and their estimated variance. - """ - n_k = numpy.array(n_k) - - ln_q = numpy.array(ln_q).T - - n_samples, n_states = ln_q.shape - - if n_states != len(n_k): - raise RuntimeError( - "The number of states do not match: %d != %d" % (n_states, len(n_k)) - ) - if n_samples != n_k.sum(): - raise RuntimeError( - "The number of samples do not match: %d != %d" % (n_samples, n_k.sum()) - ) - - ln_z = numpy.zeros(len(n_k) - 1) # ln_z_0 is always fixed at 0.0 - ln_q -= ln_q[:, :1] - - n = n_k.sum() - factor = n_k / n - - result = scipy.optimize.minimize( - functools.partial(_compute_kappa, ln_q=ln_q, n=n, factor=factor), - ln_z, - method="trust-ncg", - jac=True, - hess=functools.partial(_compute_kappa_hessian, ln_q=ln_q, n=n, factor=factor), - ) - - if not result.success: - raise RuntimeError("The UWHAM minimization failed to converge.") - - f_i = numpy.insert(-result.x, 0, 0.0) - ln_z = numpy.insert(result.x, 0, 0.0) - - weights = _compute_weights(ln_z, ln_q, factor) - - if not numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): - raise RuntimeError("The UWHAM weights do not sum to 1.0") - - df_i = _compute_variance(ln_z, weights, factor, n) - - return f_i, df_i, weights / n - - -def _sort_folders(work_dir): - """Sorts folder names by lambda value, ensuring they are read correctly. - - Parameters - ---------- - work_dir : str - The directory containing the simulation data. - - Returns - ------- - folders : dict - A dictionary of folder names and their corresponding lambda values. - """ - folders = {} - for folder in pathlib.Path(work_dir).iterdir(): - if folder.is_dir() and folder.name.startswith("lambda_"): - try: - lambda_val = float(folder.name.split("_")[-1]) - except ValueError: - continue - folders[lambda_val] = folder - return {k: v for k, v in sorted(folders.items())} - - -def _get_inflection_indices(folders): - # Find folders at which 'direction' goes from 1 to -1 - # This is the point at which the direction of the lambda windows changes - # NOTE: this assumes that the folders are correctly sorted - - # check that the keys are sorted - keys = list(folders.keys()) - if keys != sorted(keys): - raise ValueError(f"Folders are not sorted correctly. {keys} != {sorted(keys)}") - - directions = [] - for folder in folders.values(): - df = pd.read_csv(folder / "openmm.csv") - direction = df["direction"].values[0] - directions.append(direction) - - # get the indices at which the direction changes - for i in range(len(directions) - 1): - if directions[i] != directions[i + 1]: - inflection_indices = (i, i + 1) - break - - return inflection_indices - - -def analyse(work_dir, inflection_indices=None): - """ - Analyse the output of BioSimSpace AToM simulations. - - Parameters - ---------- - work_dir : str - The directory containing the simulation data. - inflection_indices : tuple, optional - The point at which 'direction' changes. - Should be (last index of direction 1, first index of direction 2). - If not provided not provided, will be implied from files. - - """ - dataframes = [] - slices = {} - total_states = 0 - total_samples = 0 - folders = _sort_folders(work_dir) - if inflection_indices is None: - inflection_indices = _get_inflection_indices(folders) - for folder in folders.values(): - df = pd.read_csv(folder / "openmm.csv") - df["beta"] = 1 / (0.001986209 * df["temperature"]) - total_states += 1 - total_samples += len(df) - for sub_df in df.groupby("window"): - # get value of window - window = sub_df[0] - # check if window is in slices - if window not in slices: - slices[window] = [] - # append the dataframe to the list of dataframes for that window - # now get the tuple 'sub_df' and convert it to a dataframe - s = sub_df[1] - slices[window].append(s) - - # now combine all dataframes in each slice - for window in slices: - # get the dataframes for the current window - dfs = slices[window] - # combine the dataframes - combined_df = pd.concat(dfs) - dataframes.append(combined_df) - - # sort 'dataframes' based on 'window' - dataframes = sorted(dataframes, key=lambda x: x["window"].values[0]) - - pots = [] - pert_es = [] - n_samples = [] - # check that all dataframes are the same length, throw a warning if they are not - for df in dataframes: - n_samples.append(len(df)) - e0 = df["pot_en"].values - pert_e = df["pert_en"].values - pots.append(e0) - pert_es.append(pert_e) - - # We will assume that the point at which leg1 and leg2 are split is halfway through - n_samples_first_half = n_samples[: inflection_indices[0] + 1] - pots_first_half = numpy.concatenate(pots[: inflection_indices[0] + 1]) - pert_es_first_half = numpy.concatenate(pert_es[: inflection_indices[0] + 1]) - ln_q = numpy.zeros((inflection_indices[0] + 1, len(pots_first_half))) - sid = 0 - - for be in range(len(n_samples_first_half)): - lnq = npot_fcn( - e0=pots_first_half, - epert=pert_es_first_half, - bet=dataframes[be]["beta"].values[0], - lam1=dataframes[be]["lambda1"].values[0], - lam2=dataframes[be]["lambda2"].values[0], - alpha=dataframes[be]["alpha"].values[0], - u0=dataframes[be]["uh"].values[0], - w0=dataframes[be]["w0"].values[0], - ) - ln_q[sid] = lnq - sid += 1 - - f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) - ddg = f_i[-1] - f_i[0] - ddg1 = ddg / dataframes[0]["beta"].values[0] - ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] - - n_samples_second_half = n_samples[inflection_indices[1] :] - pots_second_half = numpy.concatenate(pots[inflection_indices[1] :]) - pert_es_second_half = numpy.concatenate(pert_es[inflection_indices[1] :]) - ln_q = numpy.zeros((total_states - inflection_indices[1], len(pots_second_half))) - sid = 0 - - # note the order of (be, te) - for be in range(len(n_samples_second_half)): - lnq = npot_fcn( - e0=pots_second_half, - epert=pert_es_second_half, - bet=dataframes[be]["beta"].values[0], - lam1=dataframes[be]["lambda1"].values[0], - lam2=dataframes[be]["lambda2"].values[0], - alpha=dataframes[be]["alpha"].values[0], - u0=dataframes[be]["uh"].values[0], - w0=dataframes[be]["w0"].values[0], - ) - ln_q[sid] = lnq - sid += 1 - - f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) - ddg = f_i[-1] - f_i[0] - ddg2 = ddg / dataframes[0]["beta"].values[0] - ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] - - ddg_total = ddg1 - ddg2 - ddg_total_error = numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) - return ddg_total, ddg_total_error diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 77d85222e..785427414 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -43,4 +43,3 @@ from ._relative import * from ._utils import * from . import AToM -from ._atm import * From 8d9315c6485988600fe4ffcdb9c7df966b84e7f1 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 27 Jun 2024 11:37:11 +0100 Subject: [PATCH 040/123] fixed imports --- python/BioSimSpace/FreeEnergy/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 785427414..37cf66616 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -42,4 +42,4 @@ from ._relative import * from ._utils import * -from . import AToM +from ._atm import * From d7fdab95332ddb54f860e135dc49e32d51264054 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Tue, 9 Jul 2024 11:03:38 +0100 Subject: [PATCH 041/123] Update Sire development requirement. --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 54bef5a18..9b0e83d9a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ # BioSimSpace runtime requirements. # main -sire~=2024.2.0 +#sire~=2024.2.0 # devel -#sire==2024.3.0.dev +sire==2024.3.0.dev configargparse ipywidgets From 44d193049919b08165a20c575c5bf9fc5c23ed24 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Tue, 9 Jul 2024 11:28:24 +0100 Subject: [PATCH 042/123] Fix formatting. [ci skip] --- doc/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst index 70f896098..48716ecec 100644 --- a/doc/source/changelog.rst +++ b/doc/source/changelog.rst @@ -16,7 +16,7 @@ within the biomolecular simulation community. Our software is hosted via the `Op * Use SDF as an intermediate for ``antechamber`` if the original molecule was loaded from that format (`#287 `__). * Detect dummy atoms by checking ``element`` *and* ``ambertype`` properties when creating ``SOMD`` pert files (`#289 `__). * Add missing ``match_water`` kwarg to ``prepareFEP`` node (`#292 `__). -* Add protein free-energy perturbation functionality (`@akalpokas `__). +* Add protein free-energy perturbation functionality (`@akalpokas `__). * Ensure that the LJ sigma parameter for perturbed atoms is non-zero (`#295 `__). * Fixed return type docstrings for functions in the :mod:`BioSimSpace.Parameters` module (`#298 `__). * Don't use ``sire.legacy.Base.wrap`` with the ``file_format`` property to avoid (incorrect) auto string to unit conversion of ``mol2`` to moles squared (`#300 `__). From 3f8874988d77cc01311154299aac9bdb7c0d9acb Mon Sep 17 00:00:00 2001 From: Audrius Kalpokas Date: Wed, 10 Jul 2024 09:42:44 +0100 Subject: [PATCH 043/123] Update PFEP tutorial paper link --- doc/source/tutorials/protein_mutations.rst | 54 +++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/doc/source/tutorials/protein_mutations.rst b/doc/source/tutorials/protein_mutations.rst index d0e0a3f43..b75202552 100644 --- a/doc/source/tutorials/protein_mutations.rst +++ b/doc/source/tutorials/protein_mutations.rst @@ -82,24 +82,24 @@ and mutant structures: .. parsed-literal:: - + ================================================== Summary of pdb4amber for: 1UBQ.pdb =================================================== - + ----------Chains The following (original) chains have been found: A - + ---------- Alternate Locations (Original Residues!)) - + The following residues had alternate locations: None -----------Non-standard-resnames - - + + ---------- Missing heavy atom(s) - + None @@ -112,24 +112,24 @@ Next, we are going to create a mutant structure: .. parsed-literal:: - + ================================================== Summary of pdb4amber for: 1UBQ_dry_wt.pdb =================================================== - + ----------Chains The following (original) chains have been found: - - + + ---------- Alternate Locations (Original Residues!)) - + The following residues had alternate locations: None -----------Non-standard-resnames - - + + ---------- Missing heavy atom(s) - + ALA_9 misses 1 heavy atom(s) @@ -239,13 +239,13 @@ FEP engine `__: .. code:: ipython3 merged_system = merged_protein.toSystem() - + # solvate the system with the padding of 15 angstroms padding = 15 * BSS.Units.Length.angstrom box_min, box_max = merged_system.getAxisAlignedBoundingBox() box_size = [y - x for x, y in zip(box_min, box_max)] box_sizes = [x + padding for x in box_size] - + box, angles = BSS.Box.rhombicDodecahedronHexagon(max(box_sizes)) solvated_system = BSS.Solvent.tip3p(molecule=merged_system, box=box, angles=angles, ion_conc=0.15) @@ -268,13 +268,13 @@ Apo System Now we are going to focus on the aldose reductase system and set up an alchemical transformation in both apo and holo forms of the protein. The input files (2PDG_8.0) were taken from the SI of a `paper by Aldeghi et. -al `__, +al `__, residue 47 mutated via PyMol (V47I), and standardised via *pdb4amber*. .. code:: ipython3 - protein_wt = BSS.IO.readMolecules("input_files/aldose_reductase_dry.pdb")[0] - protein_mut = BSS.IO.readMolecules("input_files/aldose_reductase_v47i_dry.pdb")[0] + protein_wt = BSS.IO.readMolecules(BSS.IO.expand(BSS.tutorialUrl(), "aldose_reductase_dry.pdb"))[0] + protein_mut = BSS.IO.readMolecules(BSS.IO.expand(BSS.tutorialUrl(), "aldose_reductase_v47i_dry.pdb"))[0] We can use ``ensure_compatible=False`` in order to get tLEaP to re-add the hydrogens for us: @@ -335,7 +335,7 @@ up as before: .. code:: ipython3 padding = 15 * BSS.Units.Length.angstrom - + box_min, box_max = merged_system.getAxisAlignedBoundingBox() box_size = [y - x for x, y in zip(box_min, box_max)] box_sizes = [x + padding for x in box_size] @@ -357,10 +357,10 @@ ligand and the cofactor of aldose reductase: .. code:: ipython3 - ligand_47d = BSS.IO.readMolecules(["input_files/ligand_47_gaff2.gro", "input_files/ligand_47_gaff2.top"])[0] - cofactor_nap = BSS.IO.readMolecules(["input_files/cofactor_nap_gaff2.gro", "input_files/cofactor_nap_gaff2.top"])[0] + ligand_47d = BSS.IO.readMolecules(BSS.IO.expand(BSS.tutorialUrl(), ["ligand_47_gaff2.gro", "ligand_47_gaff2.top"]))[0] + cofactor_nap = BSS.IO.readMolecules(BSS.IO.expand(BSS.tutorialUrl(), ["cofactor_nap_gaff2.gro", "cofactor_nap_gaff2.top"]))[0] -We can use BioSimSpace’s Amber parametrisation pipeline if we wish to, +We can use BioSimSpace’s AMBER parametrisation pipeline if we wish to, but in this case the ligands have been parametrised for us so we can skip the following cell: @@ -385,12 +385,12 @@ simulations Date: Thu, 11 Jul 2024 10:06:16 +0100 Subject: [PATCH 044/123] Add support for merging ions. [closes #312] --- python/BioSimSpace/Align/_align.py | 272 +++++++++++------- .../Sandpit/Exscientia/Align/_align.py | 272 +++++++++++------- 2 files changed, 322 insertions(+), 222 deletions(-) diff --git a/python/BioSimSpace/Align/_align.py b/python/BioSimSpace/Align/_align.py index 1db09c51a..90839464f 100644 --- a/python/BioSimSpace/Align/_align.py +++ b/python/BioSimSpace/Align/_align.py @@ -1547,22 +1547,47 @@ def _rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_ma mol0 = molecule0._getSireObject() mol1 = molecule1._getSireObject() + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) # Perform the alignment, mol0 to mol1. - try: + if len(mapping) == 1 and is_ion: + idx0 = list(mapping.keys())[0] + idx1 = list(mapping.values())[0] + # Replace the coordinates of the mapped atom with those of the reference. mol0 = ( - mol0.move().align(mol1, _SireMol.AtomResultMatcher(sire_mapping)).molecule() + mol0.edit() + .atom(idx0) + .setProperty( + property_map0.get("coordinates", "coordinates"), + mol1.atom(idx1).property( + property_map1.get("coordinates", "coordinates") + ), + ) + .molecule() + .commit() ) - except Exception as e: - msg = "Failed to align molecules based on mapping: %r" % mapping - if "Could not calculate the single value decomposition" in str(e): - msg += ". Try minimising your molecular coordinates prior to alignment." - if _isVerbose(): - raise _AlignmentError(msg) from e - else: - raise _AlignmentError(msg) from None + else: + try: + mol0 = ( + mol0.move() + .align(mol1, _SireMol.AtomResultMatcher(sire_mapping)) + .molecule() + ) + except Exception as e: + msg = "Failed to align molecules based on mapping: %r" % mapping + if "Could not calculate the single value decomposition" in str(e): + msg += ". Try minimising your molecular coordinates prior to alignment." + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None # Return the aligned molecule. return _Molecule(mol0) @@ -2509,6 +2534,12 @@ def _score_rdkit_mappings( .commit() ) + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -2575,61 +2606,68 @@ def _score_rdkit_mappings( break if is_valid: - # Rigidly align molecule0 to molecule1 based on the mapping. - if scoring_function == "RMSDALIGN": - try: - molecule0 = ( - molecule0.move() - .align( - molecule1, _SireMol.AtomResultMatcher(sire_mapping) - ) - .molecule() - ) - except Exception as e: - if ( - "Could not calculate the single value decomposition" - in str(e) - ): - is_gsl_error = True - gsl_exception = e - else: - msg = ( - "Failed to align molecules when scoring based on mapping: %r" - % mapping + # If there is only a single atom in the mapping and one molecule + # has one atom, e.g. an ion, then skip the alignment. + if len(mapping) == 1 and is_ion: + mappings.append(mapping) + scores.append(0.0) + else: + # Rigidly align molecule0 to molecule1 based on the mapping. + if scoring_function == "RMSDALIGN": + try: + molecule0 = ( + molecule0.move() + .align( + molecule1, + _SireMol.AtomResultMatcher(sire_mapping), + ) + .molecule() ) - if _isVerbose(): - raise _AlignmentError(msg) from e + except Exception as e: + if ( + "Could not calculate the single value decomposition" + in str(e) + ): + is_gsl_error = True + gsl_exception = e else: - raise _AlignmentError(msg) from None - # Flexibly align molecule0 to molecule1 based on the mapping. - elif scoring_function == "RMSDFLEXALIGN": - molecule0 = flexAlign( - _Molecule(molecule0), - _Molecule(molecule1), - mapping, - property_map0=property_map0, - property_map1=property_map1, - )._sire_object - - # Append the mapping to the list. - mappings.append(mapping) - - # We now compute the RMSD between the coordinates of the matched atoms - # in molecule0 and molecule1. - - # Initialise lists to hold the coordinates. - c0 = [] - c1 = [] - - # Loop over each atom index in the map. - for idx0, idx1 in sire_mapping.items(): - # Append the coordinates of the matched atom in molecule0. - c0.append(molecule0.atom(idx0).property("coordinates")) - # Append the coordinates of atom in molecule1 to which it maps. - c1.append(molecule1.atom(idx1).property("coordinates")) - - # Compute the RMSD between the two sets of coordinates. - scores.append(_SireMaths.getRMSD(c0, c1)) + msg = ( + "Failed to align molecules when scoring based on mapping: %r" + % mapping + ) + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None + # Flexibly align molecule0 to molecule1 based on the mapping. + elif scoring_function == "RMSDFLEXALIGN": + molecule0 = flexAlign( + _Molecule(molecule0), + _Molecule(molecule1), + mapping, + property_map0=property_map0, + property_map1=property_map1, + )._sire_object + + # Append the mapping to the list. + mappings.append(mapping) + + # We now compute the RMSD between the coordinates of the matched atoms + # in molecule0 and molecule1. + + # Initialise lists to hold the coordinates. + c0 = [] + c1 = [] + + # Loop over each atom index in the map. + for idx0, idx1 in sire_mapping.items(): + # Append the coordinates of the matched atom in molecule0. + c0.append(molecule0.atom(idx0).property("coordinates")) + # Append the coordinates of atom in molecule1 to which it maps. + c1.append(molecule1.atom(idx1).property("coordinates")) + + # Compute the RMSD between the two sets of coordinates. + scores.append(_SireMaths.getRMSD(c0, c1)) # No mappings were found. if len(mappings) == 0: @@ -2732,6 +2770,12 @@ def _score_sire_mappings( .commit() ) + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Initialise a list to hold the mappings. mappings = [] @@ -2751,54 +2795,60 @@ def _score_sire_mappings( break if is_valid: - # Rigidly align molecule0 to molecule1 based on the mapping. - if scoring_function == "RMSDALIGN": - try: - molecule0 = ( - molecule0.move() - .align(molecule1, _SireMol.AtomResultMatcher(mapping)) - .molecule() - ) - except Exception as e: - msg = ( - "Failed to align molecules when scoring based on mapping: %r" - % mapping - ) - if _isVerbose(): - raise _AlignmentError(msg) from e - else: - raise _AlignmentError(msg) from None - # Flexibly align molecule0 to molecule1 based on the mapping. - elif scoring_function == "RMSDFLEXALIGN": - molecule0 = flexAlign( - _Molecule(molecule0), - _Molecule(molecule1), - _from_sire_mapping(mapping), - property_map0=property_map0, - property_map1=property_map1, - )._sire_object - - # Append the mapping to the list. - mapping = _from_sire_mapping(mapping) - mapping = dict(sorted(mapping.items())) - mappings.append(mapping) - - # We now compute the RMSD between the coordinates of the matched atoms - # in molecule0 and molecule1. - - # Initialise lists to hold the coordinates. - c0 = [] - c1 = [] - - # Loop over each atom index in the map. - for idx0, idx1 in mapping.items(): - # Append the coordinates of the matched atom in molecule0. - c0.append(molecule0.atom(idx0).property("coordinates")) - # Append the coordinates of atom in molecule1 to which it maps. - c1.append(molecule1.atom(idx1).property("coordinates")) - - # Compute the RMSD between the two sets of coordinates. - scores.append(_SireMaths.getRMSD(c0, c1)) + # If there is only a single atom in the mapping and one molecule + # has one atom, e.g. an ion, then skip the alignment. + if len(mapping) == 1 and is_ion: + mappings.append(mapping) + scores.append(0.0) + else: + # Rigidly align molecule0 to molecule1 based on the mapping. + if scoring_function == "RMSDALIGN": + try: + molecule0 = ( + molecule0.move() + .align(molecule1, _SireMol.AtomResultMatcher(mapping)) + .molecule() + ) + except Exception as e: + msg = ( + "Failed to align molecules when scoring based on mapping: %r" + % mapping + ) + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None + # Flexibly align molecule0 to molecule1 based on the mapping. + elif scoring_function == "RMSDFLEXALIGN": + molecule0 = flexAlign( + _Molecule(molecule0), + _Molecule(molecule1), + _from_sire_mapping(mapping), + property_map0=property_map0, + property_map1=property_map1, + )._sire_object + + # Append the mapping to the list. + mapping = _from_sire_mapping(mapping) + mapping = dict(sorted(mapping.items())) + mappings.append(mapping) + + # We now compute the RMSD between the coordinates of the matched atoms + # in molecule0 and molecule1. + + # Initialise lists to hold the coordinates. + c0 = [] + c1 = [] + + # Loop over each atom index in the map. + for idx0, idx1 in mapping.items(): + # Append the coordinates of the matched atom in molecule0. + c0.append(molecule0.atom(idx0).property("coordinates")) + # Append the coordinates of atom in molecule1 to which it maps. + c1.append(molecule1.atom(idx1).property("coordinates")) + + # Compute the RMSD between the two sets of coordinates. + scores.append(_SireMaths.getRMSD(c0, c1)) # No mappings were found. if len(mappings) == 0: diff --git a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py index 27731e95d..6b3522c39 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py @@ -1151,19 +1151,44 @@ def rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_map # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Perform the alignment, mol0 to mol1. - try: + if len(mapping) == 1 and is_ion: + idx0 = list(mapping.keys())[0] + idx1 = list(mapping.values())[0] + # Replace the coordinates of the mapped atom with those of the reference. mol0 = ( - mol0.move().align(mol1, _SireMol.AtomResultMatcher(sire_mapping)).molecule() + mol0.edit() + .atom(idx0) + .setProperty( + property_map0.get("coordinates", "coordinates"), + mol1.atom(idx1).property( + property_map1.get("coordinates", "coordinates") + ), + ) + .molecule() + .commit() ) - except Exception as e: - msg = "Failed to align molecules based on mapping: %r" % mapping - if "Could not calculate the single value decomposition" in str(e): - msg += ". Try minimising your molecular coordinates prior to alignment." - if _isVerbose(): - raise _AlignmentError(msg) from e - else: - raise _AlignmentError(msg) from None + else: + try: + mol0 = ( + mol0.move() + .align(mol1, _SireMol.AtomResultMatcher(sire_mapping)) + .molecule() + ) + except Exception as e: + msg = "Failed to align molecules based on mapping: %r" % mapping + if "Could not calculate the single value decomposition" in str(e): + msg += ". Try minimising your molecular coordinates prior to alignment." + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None # Return the aligned molecule. return _Molecule(mol0) @@ -1760,6 +1785,12 @@ def _score_rdkit_mappings( .commit() ) + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -1826,61 +1857,68 @@ def _score_rdkit_mappings( break if is_valid: - # Rigidly align molecule0 to molecule1 based on the mapping. - if scoring_function == "RMSDALIGN": - try: - molecule0 = ( - molecule0.move() - .align( - molecule1, _SireMol.AtomResultMatcher(sire_mapping) - ) - .molecule() - ) - except Exception as e: - if ( - "Could not calculate the single value decomposition" - in str(e) - ): - is_gsl_error = True - gsl_exception = e - else: - msg = ( - "Failed to align molecules when scoring based on mapping: %r" - % mapping + # If there is only a single atom in the mapping and one molecule + # has one atom, e.g. an ion, then skip the alignment. + if len(mapping) == 1 and is_ion: + mappings.append(mapping) + scores.append(0.0) + else: + # Rigidly align molecule0 to molecule1 based on the mapping. + if scoring_function == "RMSDALIGN": + try: + molecule0 = ( + molecule0.move() + .align( + molecule1, + _SireMol.AtomResultMatcher(sire_mapping), + ) + .molecule() ) - if _isVerbose(): - raise _AlignmentError(msg) from e + except Exception as e: + if ( + "Could not calculate the single value decomposition" + in str(e) + ): + is_gsl_error = True + gsl_exception = e else: - raise _AlignmentError(msg) from None - # Flexibly align molecule0 to molecule1 based on the mapping. - elif scoring_function == "RMSDFLEXALIGN": - molecule0 = flexAlign( - _Molecule(molecule0), - _Molecule(molecule1), - mapping, - property_map0=property_map0, - property_map1=property_map1, - )._sire_object - - # Append the mapping to the list. - mappings.append(mapping) - - # We now compute the RMSD between the coordinates of the matched atoms - # in molecule0 and molecule1. - - # Initialise lists to hold the coordinates. - c0 = [] - c1 = [] - - # Loop over each atom index in the map. - for idx0, idx1 in sire_mapping.items(): - # Append the coordinates of the matched atom in molecule0. - c0.append(molecule0.atom(idx0).property("coordinates")) - # Append the coordinates of atom in molecule1 to which it maps. - c1.append(molecule1.atom(idx1).property("coordinates")) - - # Compute the RMSD between the two sets of coordinates. - scores.append(_SireMaths.getRMSD(c0, c1)) + msg = ( + "Failed to align molecules when scoring based on mapping: %r" + % mapping + ) + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None + # Flexibly align molecule0 to molecule1 based on the mapping. + elif scoring_function == "RMSDFLEXALIGN": + molecule0 = flexAlign( + _Molecule(molecule0), + _Molecule(molecule1), + mapping, + property_map0=property_map0, + property_map1=property_map1, + )._sire_object + + # Append the mapping to the list. + mappings.append(mapping) + + # We now compute the RMSD between the coordinates of the matched atoms + # in molecule0 and molecule1. + + # Initialise lists to hold the coordinates. + c0 = [] + c1 = [] + + # Loop over each atom index in the map. + for idx0, idx1 in sire_mapping.items(): + # Append the coordinates of the matched atom in molecule0. + c0.append(molecule0.atom(idx0).property("coordinates")) + # Append the coordinates of atom in molecule1 to which it maps. + c1.append(molecule1.atom(idx1).property("coordinates")) + + # Compute the RMSD between the two sets of coordinates. + scores.append(_SireMaths.getRMSD(c0, c1)) # No mappings were found. if len(mappings) == 0: @@ -1983,6 +2021,12 @@ def _score_sire_mappings( .commit() ) + # Do we have a monatomic ion? + if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): + is_ion = True + else: + is_ion = False + # Initialise a list to hold the mappings. mappings = [] @@ -2002,54 +2046,60 @@ def _score_sire_mappings( break if is_valid: - # Rigidly align molecule0 to molecule1 based on the mapping. - if scoring_function == "RMSDALIGN": - try: - molecule0 = ( - molecule0.move() - .align(molecule1, _SireMol.AtomResultMatcher(mapping)) - .molecule() - ) - except Exception as e: - msg = ( - "Failed to align molecules when scoring based on mapping: %r" - % mapping - ) - if _isVerbose(): - raise _AlignmentError(msg) from e - else: - raise _AlignmentError(msg) from None - # Flexibly align molecule0 to molecule1 based on the mapping. - elif scoring_function == "RMSDFLEXALIGN": - molecule0 = flexAlign( - _Molecule(molecule0), - _Molecule(molecule1), - _from_sire_mapping(mapping), - property_map0=property_map0, - property_map1=property_map1, - )._sire_object - - # Append the mapping to the list. - mapping = _from_sire_mapping(mapping) - mapping = dict(sorted(mapping.items())) - mappings.append(mapping) - - # We now compute the RMSD between the coordinates of the matched atoms - # in molecule0 and molecule1. - - # Initialise lists to hold the coordinates. - c0 = [] - c1 = [] - - # Loop over each atom index in the map. - for idx0, idx1 in mapping.items(): - # Append the coordinates of the matched atom in molecule0. - c0.append(molecule0.atom(idx0).property("coordinates")) - # Append the coordinates of atom in molecule1 to which it maps. - c1.append(molecule1.atom(idx1).property("coordinates")) - - # Compute the RMSD between the two sets of coordinates. - scores.append(_SireMaths.getRMSD(c0, c1)) + # If there is only a single atom in the mapping and one molecule + # has one atom, e.g. an ion, then skip the alignment. + if len(mapping) == 1 and is_ion: + mappings.append(mapping) + scores.append(0.0) + else: + # Rigidly align molecule0 to molecule1 based on the mapping. + if scoring_function == "RMSDALIGN": + try: + molecule0 = ( + molecule0.move() + .align(molecule1, _SireMol.AtomResultMatcher(mapping)) + .molecule() + ) + except Exception as e: + msg = ( + "Failed to align molecules when scoring based on mapping: %r" + % mapping + ) + if _isVerbose(): + raise _AlignmentError(msg) from e + else: + raise _AlignmentError(msg) from None + # Flexibly align molecule0 to molecule1 based on the mapping. + elif scoring_function == "RMSDFLEXALIGN": + molecule0 = flexAlign( + _Molecule(molecule0), + _Molecule(molecule1), + _from_sire_mapping(mapping), + property_map0=property_map0, + property_map1=property_map1, + )._sire_object + + # Append the mapping to the list. + mapping = _from_sire_mapping(mapping) + mapping = dict(sorted(mapping.items())) + mappings.append(mapping) + + # We now compute the RMSD between the coordinates of the matched atoms + # in molecule0 and molecule1. + + # Initialise lists to hold the coordinates. + c0 = [] + c1 = [] + + # Loop over each atom index in the map. + for idx0, idx1 in mapping.items(): + # Append the coordinates of the matched atom in molecule0. + c0.append(molecule0.atom(idx0).property("coordinates")) + # Append the coordinates of atom in molecule1 to which it maps. + c1.append(molecule1.atom(idx1).property("coordinates")) + + # Compute the RMSD between the two sets of coordinates. + scores.append(_SireMaths.getRMSD(c0, c1)) # No mappings were found. if len(mappings) == 0: From c8246ed1c7cea18bf184822e3370c5e6d36e117e Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 11 Jul 2024 10:42:45 +0100 Subject: [PATCH 045/123] Add unit test for ion merge. --- tests/Align/test_align.py | 22 +++++++++++++++++ tests/Sandpit/Exscientia/Align/test_align.py | 25 ++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/tests/Align/test_align.py b/tests/Align/test_align.py index 341e4bf4f..44c53a74c 100644 --- a/tests/Align/test_align.py +++ b/tests/Align/test_align.py @@ -673,3 +673,25 @@ def test_roi_merge(protein_inputs): merged = BSS.Align.merge(aligned_p0, p1, protein_mapping, roi=roi) merged_system = merged.toSystem() assert merged_system.nPerturbableMolecules() == 1 + + +def test_ion_merge(system): + from sire.legacy.IO import createSodiumIon + + # Extract a water molecule. + water = system[-1] + + # Create a sodium ion using the water coordinates. + ion = createSodiumIon( + water.getAtoms()[0]._sire_object.property("coordinates"), "tip3p" + ) + + # Merge the water and ion. + merged = BSS.Align.merge(water, BSS._SireWrappers.Molecule(ion)) + + # Make sure the ion has the coordintes of the oxygen atom. + coords0 = merged._sire_object.property("coordinates0").toVector()[0] + coords1 = merged._sire_object.property("coordinates1").toVector()[0] + water_coords = water._sire_object.property("coordinates").toVector()[0] + assert coords0 == coords1 + assert coords0 == water_coords diff --git a/tests/Sandpit/Exscientia/Align/test_align.py b/tests/Sandpit/Exscientia/Align/test_align.py index d493b1624..12d8e68a4 100644 --- a/tests/Sandpit/Exscientia/Align/test_align.py +++ b/tests/Sandpit/Exscientia/Align/test_align.py @@ -725,3 +725,28 @@ def test_hydrogen_mass_repartitioning(): assert mass0 == masses1[idx] for idx, mass1 in dummy_masses1: assert mass1 == masses0[idx] + + +def test_ion_merge(): + from sire.legacy.IO import createSodiumIon + from tests.conftest import root_fp + + # Extract a water molecule from the system. + water = BSS.IO.readMolecules( + [f"{root_fp}/input/ala.crd", f"{root_fp}/input/ala.top"] + )[-1] + + # Create a sodium ion using the water coordinates. + ion = createSodiumIon( + water.getAtoms()[0]._sire_object.property("coordinates"), "tip3p" + ) + + # Merge the water and ion. + merged = BSS.Align.merge(water, BSS._SireWrappers.Molecule(ion)) + + # Make sure the ion has the coordintes of the oxygen atom. + coords0 = merged._sire_object.property("coordinates0").toVector()[0] + coords1 = merged._sire_object.property("coordinates1").toVector()[0] + water_coords = water._sire_object.property("coordinates").toVector()[0] + assert coords0 == coords1 + assert coords0 == water_coords From edadeeec3967bcf4d53864a732bb71ac9cc38f41 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 11 Jul 2024 13:05:26 +0100 Subject: [PATCH 046/123] Exclude sander.LES from allowed executables. --- python/BioSimSpace/Process/_amber.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/Process/_amber.py b/python/BioSimSpace/Process/_amber.py index 8140729a4..f9b5e21ca 100644 --- a/python/BioSimSpace/Process/_amber.py +++ b/python/BioSimSpace/Process/_amber.py @@ -2856,9 +2856,11 @@ def is_exe(fpath): # order their path accordingly, or use the exe keyword argument. if results: for exe in results: - exe = _pathlib.Path(p) / exe - if is_exe(exe): - return str(exe) + # Exclude "locally enhanced sampling" executables. + if "LES" not in exe: + exe = _pathlib.Path(p) / exe + if is_exe(exe): + return str(exe) msg = ( "'BioSimSpace.Process.Amber' is not supported. " From fe9a655fe846806f68759e616d00fd0e4bc90b2e Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 12 Jul 2024 16:39:54 +0100 Subject: [PATCH 047/123] Continued refactor, includes single-point energy testing to ensure parity with Gallachio Lab code --- python/BioSimSpace/Process/_atm.py | 30 +- python/BioSimSpace/Process/_atom_utils.py | 187 ++++++++--- tests/FreeEnergy/test_atm.py | 370 ++++++++++++++++++++++ tests/conftest.py | 2 +- 4 files changed, 540 insertions(+), 49 deletions(-) diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index cb2c8270e..c44076a8f 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -47,11 +47,11 @@ def __init__( ): # Look for the is_testing flag in the kwargs. # Only used for calculating single point energies. - """if "_is_testing" in kwargs: + if "_is_testing" in kwargs: _warnings.warn("NOW IN TESTING MODE") self._is_testing = kwargs["_is_testing"] else: - self._is_testing = False""" + self._is_testing = False super().__init__( system, protocol, @@ -72,8 +72,8 @@ def _generate_config(self): self._generate_config_equilibration() elif isinstance(self._protocol, _Protocol.AToMAnnealing): self._generate_config_annealing() - # elif isinstance(self._protocol, _Protocol.AToMProduction) and self._is_testing: - # self._generate_config_single_point_testing() + elif isinstance(self._protocol, _Protocol.AToMProduction) and self._is_testing: + self._generate_config_single_point_testing() elif isinstance(self._protocol, _Protocol.AToMProduction): self._generate_config_production() @@ -686,6 +686,7 @@ def _generate_config_single_point_testing(self): # Designed as a hidden method - uses a production protocol to # calculate single point energies for each lambda window # quite hacky, but not designed to be exposed to the user anyway + self._protocol._set_current_index(0) if not isinstance(self._protocol, _Protocol.AToMProduction): raise _IncompatibleError( "Single point testing requires an AToMProduction protocol." @@ -734,7 +735,7 @@ def _generate_config_single_point_testing(self): else: restrained_atoms = restraint self.addToConfig("\n# Add position restraints.") - frc = util.create_flat_bottom_restraint(restrained_atoms) + frc = util.create_flat_bottom_restraint(restrained_atoms, force_group=5) self.addToConfig(frc) # Use utils to create AToM-specific forces @@ -742,14 +743,16 @@ def _generate_config_single_point_testing(self): disp = util.createDisplacement() self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) + self.addToConfig( + util.createATMForce(self._protocol._get_window_index(), force_group=10) + ) if self._protocol._getCoreAlignment(): - alignment = util.createAlignmentForce() + alignment = util.createAlignmentForce(force_group=[6, 7, 8]) self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) if self._protocol._getCMCMRestraint(): - CMCM = util.createCOMRestraint() + CMCM = util.createCOMRestraint(force_group=9) self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -835,4 +838,13 @@ def _generate_config_single_point_testing(self): if direction[i] != direction[i + 1]: inflex = i + 1 break - self.addToConfig(util.createSinglePointTest(inflex)) + self.addToConfig( + util.createSinglePointTest( + inflex, + self._name, + atm_force_group=10, + position_restraint_force_group=5, + alignment_force_groups=[6, 7, 8], + com_force_group=9, + ) + ) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index 4dd5d9383..dcf6b60ce 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -162,11 +162,23 @@ def createSoftcorePertE(self): output += " return usc\n" return output - def createAlignmentForce(self): + def createAlignmentForce(self, force_group=None): + """ + Create the alignment force that keeps the ligands co-planar. + + parameters + ---------- + force_group : None or list + Group of the force to be added to the system. If none defined then no force group will be set + (therefore it will default to 0). Only tested for single-point energies. + If a list is given the groups will be assigned in the order [distance, angle, dihedral] + """ # This force is the same in every lambda window self.getAlignmentConstants() self.findAbsoluteCoreIndices() + if force_group is not None and len(force_group) != 3: + raise ValueError("Force group must be a list of three integers") output = "\n\n" output += "k_distance = {} * kilocalorie_per_mole / angstrom**2\n".format( self.alignment_k_distance @@ -194,6 +206,8 @@ def createAlignmentForce(self): output += ( "distance_force.addBond((idxs_b[0], idxs_a[0]), distance_parameters)\n" ) + if force_group is not None: + output += "distance_force.setForceGroup({})\n".format(force_group[0]) output += "system.addForce(distance_force)\n" output += "\n\n" @@ -214,32 +228,62 @@ def createAlignmentForce(self): (idxs_b[0], idxs_b[1], idxs_a[0], idxs_a[1]), [k_theta.value_in_unit(kilojoules_per_mole)], )\n""" + if force_group is not None: + output += "angle_force.setForceGroup({})\n".format(force_group[1]) output += "system.addForce(angle_force)\n\n" - output += """dihedral_energy_fn = ( - "0.5 * k * (1 - cos_phi);" - "" - "cos_phi = (v_x * w_x + v_y * w_y + v_z * w_z) / (norm_v * norm_w);" - "" - "norm_v = sqrt(v_x^2 + v_y^2 + v_z^2);" - "v_x = dx_31 - dot_31 * dx_21 / norm_21;" - "v_y = dy_31 - dot_31 * dy_21 / norm_21;" - "v_z = dz_31 - dot_31 * dz_21 / norm_21;" - "" - "dot_31 = (dx_31 * dx_21 + dy_31 * dy_21 + dz_31 * dz_21) / norm_21;" - "dx_31 = x3 - x1; dy_31 = y3 - y1; dz_31 = z3 - z1;" - "" - "norm_w = sqrt(w_x^2 + w_y^2 + w_z^2);" - "w_x = dx_54 - dot_54 * dx_21 / norm_21;" - "w_y = dy_54 - dot_54 * dy_21 / norm_21;" - "w_z = dz_54 - dot_54 * dz_21 / norm_21;" - "" - "dot_54 =(dx_54 * dx_21 + dy_54 * dy_21 + dz_54 * dz_21) / norm_21;" - "dx_54 = x5 - x4; dy_54 = y5 - y4; dz_54 = z5 - z4;" - "" - "norm_21 = sqrt(dx_21^2 + dy_21^2 + dz_21^2);" - "dx_21 = x2 - x1; dy_21 = y2 - y1; dz_21 = z2 - z1;" - )\n""" + # Femto dihedral form: + # output += """dihedral_energy_fn = ( + # "0.5 * k * (1 - cos_phi);" + # "" + # "cos_phi = (v_x * w_x + v_y * w_y + v_z * w_z) / (norm_v * norm_w);" + # "" + # "norm_v = sqrt(v_x^2 + v_y^2 + v_z^2);" + # "v_x = dx_31 - dot_31 * dx_21 / norm_21;" + # "v_y = dy_31 - dot_31 * dy_21 / norm_21;" + # "v_z = dz_31 - dot_31 * dz_21 / norm_21;" + # "" + # "dot_31 = (dx_31 * dx_21 + dy_31 * dy_21 + dz_31 * dz_21) / norm_21;" + # "dx_31 = x3 - x1; dy_31 = y3 - y1; dz_31 = z3 - z1;" + # "" + # "norm_w = sqrt(w_x^2 + w_y^2 + w_z^2);" + # "w_x = dx_54 - dot_54 * dx_21 / norm_21;" + # "w_y = dy_54 - dot_54 * dy_21 / norm_21;" + # "w_z = dz_54 - dot_54 * dz_21 / norm_21;" + # "" + # "dot_54 =(dx_54 * dx_21 + dy_54 * dy_21 + dz_54 * dz_21) / norm_21;" + # "dx_54 = x5 - x4; dy_54 = y5 - y4; dz_54 = z5 - z4;" + # "" + # "norm_21 = sqrt(dx_21^2 + dy_21^2 + dz_21^2);" + # "dx_21 = x2 - x1; dy_21 = y2 - y1; dz_21 = z2 - z1;" + # )\n""" + + # Gallachio lab dihedral form: + output += 'dihedral_energy_fn = "(k/2) * (1 - cosp) ; "\n' + output += 'dihedral_energy_fn += "cosp = xvn*xwn + yvn*ywn + zvn*zwn ; "\n' + output += 'dihedral_energy_fn += "xvn = xv/v ; yvn = yv/v; zvn = zv/v ;"\n' + output += 'dihedral_energy_fn += "v = sqrt(xv^2 + yv^2 + zv^2 ) ;"\n' + output += 'dihedral_energy_fn += "xv = xd0 - dot01*xdn1 ;"\n' + output += 'dihedral_energy_fn += "yv = yd0 - dot01*ydn1 ;"\n' + output += 'dihedral_energy_fn += "zv = zd0 - dot01*zdn1 ;"\n' + output += 'dihedral_energy_fn += "dot01 = xd0*xdn1 + yd0*ydn1 + zd0*zdn1 ;"\n' + output += 'dihedral_energy_fn += "xd0 = x3 - x1 ;"\n' + output += 'dihedral_energy_fn += "yd0 = y3 - y1 ;"\n' + output += 'dihedral_energy_fn += "zd0 = z3 - z1 ;"\n' + output += 'dihedral_energy_fn += "xwn = xw/w ; ywn = yw/w; zwn = zw/w ;"\n' + output += 'dihedral_energy_fn += "w = sqrt(xw^2 + yw^2 + zw^2) ;"\n' + output += 'dihedral_energy_fn += "xw = xd3 - dot31*xdn1 ;"\n' + output += 'dihedral_energy_fn += "yw = yd3 - dot31*ydn1 ;"\n' + output += 'dihedral_energy_fn += "zw = zd3 - dot31*zdn1 ;"\n' + output += 'dihedral_energy_fn += "dot31 = xd3*xdn1 + yd3*ydn1 + zd3*zdn1 ;"\n' + output += 'dihedral_energy_fn += "xd3 = x5 - x4 ;"\n' + output += 'dihedral_energy_fn += "yd3 = y5 - y4 ;"\n' + output += 'dihedral_energy_fn += "zd3 = z5 - z4 ;"\n' + output += 'dihedral_energy_fn += "xdn1 = xd1/dn1 ; ydn1 = yd1/dn1 ; zdn1 = zd1/dn1 ;"\n' + output += 'dihedral_energy_fn += "dn1 = sqrt(xd1^2 + yd1^2 + zd1^2) ;"\n' + output += 'dihedral_energy_fn += "xd1 = x2 - x1 ;"\n' + output += 'dihedral_energy_fn += "yd1 = y2 - y1 ;"\n' + output += 'dihedral_energy_fn += "zd1 = z2 - z1 ;"\n' output += "dihedral_force = CustomCompoundBondForce(5, dihedral_energy_fn)\n" output += 'dihedral_force.addPerBondParameter("k")\n' @@ -251,6 +295,8 @@ def createAlignmentForce(self): (idxs_a[0], idxs_a[1], idxs_a[2], idxs_b[0], idxs_b[2]), [0.5 * k_psi.value_in_unit(kilojoules_per_mole)], )\n""" + if force_group is not None: + output += "dihedral_force.setForceGroup({})\n".format(force_group[2]) output += "system.addForce(dihedral_force)\n\n" return output @@ -277,6 +323,7 @@ def getLigand2AtomsAsList(self): def createATMForce( self, index, + force_group=None, ): """ Create a string which can be added directly to an openmm script to add an ATM force to the system. @@ -285,6 +332,8 @@ def createATMForce( ---------- index : int Index of current window - used to set window-dependent variables. + force_group : int + Group of the force to be added to the system. Shuld only be needed when testing single-point energies. """ self.findDisplacement() self.getATMForceConstants(index) @@ -336,14 +385,23 @@ def createATMForce( output += "nonbonded = copy.deepcopy(system.getForce(nonbonded_force_id))\n" output += "system.removeForce(nonbonded_force_id)\n" output += "atm_force.addForce(nonbonded)\n" + if force_group is not None: + output += "atm_force.setForceGroup({})\n".format(force_group) output += "system.addForce(atm_force)\n" return output - def createCOMRestraint(self): + def createCOMRestraint(self, force_group=None): """ Create a string containing the CM-CM restriants for two groups of atoms. In most cases these will be some combination of protein and ligand atoms. - Constants for the force are set in the protocol.""" + Constants for the force are set in the protocol. + + parameters + ---------- + force_group : None or int + Group of the force to be added to the system. If none defined then no force group will be set + (therefore it will default to 0). Only tested for single-point energies.""" + self.findAbsoluteCOMAtoms() # Groups contained within the constraint protein_com = self.protein_com_atoms @@ -393,18 +451,26 @@ def createCOMRestraint(self): )\n""" output += "force_CMCM.addBond((numgroups+1,numgroups+0), parameters_free)\n" + if force_group is not None: + if not isinstance(force_group, int): + raise TypeError("Force group must be an integer") + output += "force_CMCM.setForceGroup({})\n".format(force_group) output += "system.addForce(force_CMCM)\n" output += "#End of CM-CM force\n\n" return output - def create_flat_bottom_restraint(self, restrained_atoms): + def create_flat_bottom_restraint(self, restrained_atoms, force_group=None): """Flat bottom restraint for atom-compatible position restraints Parameters ---------- restrained_atoms : list List of atom indices to be restrained. Need to be explicitly given due to the ability to parse strings in the protocol. + + force_group : None or int + Group of the force to be added to the system. If none defined then no force group will be set + (therefore it will default to 0). Only tested for single-point energies. """ # Still using the position restraint mixin, get the values of the relevant constants pos_const = self.protocol.getForceConstant().value() @@ -429,7 +495,10 @@ def create_flat_bottom_restraint(self, restrained_atoms): output += " fc1 = fc.value_in_unit(kilojoules_per_mole / nanometer**2)\n" output += " tol1 = tol.value_in_unit(nanometer)\n" output += " posrestforce.addParticle(i, [x1, y1, z1, fc1, tol1])\n" - + if force_group is not None: + if not isinstance(force_group, int): + raise TypeError("Force group must be an integer") + output += "posrestforce.setForceGroup({})\n".format(force_group) output += "system.addForce(posrestforce)\n" return output @@ -766,20 +835,61 @@ def createReportingBoth( return output - def createSinglePointTest(self, inflex_point): + def createSinglePointTest( + self, + inflex_point, + name, + atm_force_group=None, + position_restraint_force_group=None, + alignment_force_groups=None, + com_force_group=None, + ): """Create a single point test for the ATM force""" output = "" output += "# Create the dictionary which will hold the energies\n" - output += f"master_lambda_list = {self.protocol._get_lambda_values()}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" output += "energies = {}\n" - output += f"for i in master_lambda_list[{inflex_point}]:\n" + output += f"for i in master_lambda_list[:{inflex_point}]:\n" output += " energies[i] = []\n" + # First we can check the potential of forces that are not lambda-dependent, this will only work if the ATMforce is in its own group + + if ( + (position_restraint_force_group is not None) + and (alignment_force_groups is not None) + and (com_force_group is not None) + ): + output += "non_lambda_forces = {}\n" + output += f"pos_state = simulation.context.getState(getEnergy=True, groups={{{position_restraint_force_group}}})\n" + output += "non_lambda_forces['position_restraint'] = pos_state.getPotentialEnergy().value_in_unit(kilojoules_per_mole)\n" + output += f"alignment_force_groups = {alignment_force_groups}\n" + output += "for counter,group in enumerate(alignment_force_groups):\n" + output += " if counter == 0:\n" + output += " name='distance'\n" + output += " elif counter == 1:\n" + output += " name='angle'\n" + output += " elif counter == 2:\n" + output += " name='dihedral'\n" + output += " align_state = simulation.context.getState(getEnergy=True, groups={group})\n" + output += " non_lambda_forces[name] = align_state.getPotentialEnergy().value_in_unit(kilojoules_per_mole)\n" + output += f"com_state = simulation.context.getState(getEnergy=True, groups={{{com_force_group}}})\n" + output += "non_lambda_forces['com'] = com_state.getPotentialEnergy().value_in_unit(kilojoules_per_mole)\n" + # now save as a dataframe + output += "df = pd.DataFrame(non_lambda_forces,index=[0])\n" + output += "df.to_csv(f'non_lambda_forces.csv')\n" + output += "#now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" - output += f"for ind, lam in enumerate(master_lambda_list[{inflex_point}]):\n" + output += f"for ind, lam in enumerate(master_lambda_list[:{inflex_point}]):\n" output += " for key in atm_constants.keys():\n" - output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" - output += " state = simulation.context.getState(getEnergy=True)\n" - output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilocalories_per_mole))\n" + output += " if key in ['Alpha','Uh','W0']:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind].value_in_unit(kilojoules_per_mole))\n" + output += " else:\n" + output += " simulation.context.setParameter(key, atm_constants[key][ind])\n" + if atm_force_group is None: + output += " state = simulation.context.getState(getEnergy=True)\n" + else: + group_placeholder = f"{atm_force_group}" + output += f" state = simulation.context.getState(getEnergy=True, groups={{{group_placeholder}}})\n" + output += " energies[lam].append(state.getPotentialEnergy().value_in_unit(kilojoules_per_mole))\n" output += ( " #Now reset lambda-dependent values back to their original state\n" ) @@ -789,10 +899,9 @@ def createSinglePointTest(self, inflex_point): output += " simulation.context.setParameter('Uh',uh)\n" output += " simulation.context.setParameter('W0',w0)\n" output += " simulation.context.setParameter('Direction',direction)\n" - output += f" simulation.saveState('{name}.xml')\n" output += "#now convert the dictionary to a pandas dataframe, with both time and fep-lambda as index columns\n" output += "df = pd.DataFrame(energies)\n" - output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" - output += "df.to_csv(f'energies_{master_lambda}.csv')\n" + output += "df.to_csv(f'energies_singlepoint.csv')\n" output += "simulation.step(1)\n" + output += f"simulation.saveState('{name}.xml')\n" return output diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index f6a86aab1..08d3640a9 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -4,6 +4,7 @@ import tarfile import tempfile import json +import pandas as pd import BioSimSpace as BSS @@ -75,3 +76,372 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): # make a new atm_generator and check the parsing of a full system atm_generator = BSS.FreeEnergy.AToM(system=atm_system) + + +def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): + # Tests the single point energies of the + # Mirroring inputs for G. lab code + lig1_cm_atoms_absolute = [ + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + ] + lig2_cm_atoms_absolute = [ + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + ] + lig1_cm_rel = [x - 196 for x in lig1_cm_atoms_absolute] + lig2_cm_rel = [x - 217 for x in lig2_cm_atoms_absolute] + prot_cm_atoms = [ + 0, + 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, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + ] + atm_generator = BSS.FreeEnergy.AToM( + protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + ) + system, data = atm_generator.prepare( + displacement=[22, 22, 22], + ligand1_rigid_core=[8, 6, 4], + ligand2_rigid_core=[3, 5, 1], + ligand1_com_atoms=lig1_cm_rel, + ligand2_com_atoms=lig2_cm_rel, + protein_com_atoms=prot_cm_atoms, + ) + + pos_rst_atoms = [ + 0, + 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, + ] + + production_atm = BSS.Protocol.AToMProduction( + system=system, + CMCM_restraint=True, + cm_kf=25.0, + cm_tol=5.0, + restraint=pos_rst_atoms, + pos_rest_width=0.5, + force_constant=25.0, + align_k_psi=10.0, + align_k_theta=10.0, + align_kf_sep=2.5, + runtime="100 ps", + num_lambda=22, + SC_umax=100.0, + SC_a=0.0625, + SC_u0=50.0, + ) + + with tempfile.TemporaryDirectory() as tmpdirname: + production = BSS.Process.OpenMM( + system, + production_atm, + platform="CUDA", + setup_only=True, + work_dir=tmpdirname, + **{"_is_testing": True}, + ) + production.start() + production.wait() + # now get the file containing single points + df = pd.read_csv(tmpdirname + "/energies_singlepoint.csv") + ens = df.to_dict() + + # Here we are specifically verifying the energies of the ATMForce + ens_GL = { + 0.0: 2847.6, + 0.0476: 2849.1, + 0.0952: 2850.7, + 0.1429: 2852.2, + 0.1905: 2853.7, + 0.2381: 2855.3, + 0.2857: 2856.8, + 0.3333: 2858.4, + 0.381: 2859.9, + 0.4286: 2861.5, + 0.4762: 2863.0, + } + # Need to add an offset due to treatment of 1-4 forces in GL code + offset = 803.3 + # now check that the energies are the same + for lam, en in ens_GL.items(): + assert pytest.approx(ens[str(lam)][0], rel=1) == en + offset + + # Now check the rest of the forces + df_nonlam = pd.read_csv(tmpdirname + "/non_lambda_forces.csv") + ens_nonlam = df_nonlam.to_dict() + + ens_GL_nolam = { + "com": 0.0, + "distance": 0.02983, + "angle": 0.0072010, + "dihedral": 6.234e-07, + "position_restraint": 0.0, + } + print(ens_nonlam) + for key, en in ens_GL_nolam.items(): + assert pytest.approx(ens_nonlam[key][0], rel=1e-3) == en diff --git a/tests/conftest.py b/tests/conftest.py index 5e9cbf4fc..45974dc8c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -107,7 +107,7 @@ def TEMOA_lig1(): @pytest.fixture(scope="session") def TEMOA_lig2(): lig2 = BSS.IO.readMolecules( - BSS.IO.expand(BSS.tutorialUrl(), ["temoa_ligG1.rst7", "temoa_ligG1.prm7"]) + BSS.IO.expand(BSS.tutorialUrl(), ["temoa_ligG4.rst7", "temoa_ligG4.prm7"]) )[0] return lig2 From 44872d79a419a9e9fef9571f7c1fee808f5f81d5 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 16 Jul 2024 16:53:25 +0100 Subject: [PATCH 048/123] WIP. Adds support for MBAR analysis, also updates openMM scripts to add on-the-fly saving of energy trajectories --- python/BioSimSpace/FreeEnergy/_UWHAM.py | 7 + python/BioSimSpace/FreeEnergy/_atm.py | 156 +++++++++++++++++++++- python/BioSimSpace/Process/_atom_utils.py | 29 +++- 3 files changed, 187 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_UWHAM.py b/python/BioSimSpace/FreeEnergy/_UWHAM.py index 5653fc10f..1bc59e100 100644 --- a/python/BioSimSpace/FreeEnergy/_UWHAM.py +++ b/python/BioSimSpace/FreeEnergy/_UWHAM.py @@ -203,6 +203,13 @@ def analyse(work_dir, inflection_indices=None): Should be (last index of direction 1, first index of direction 2). If not provided not provided, will be implied from files. + Returns + ------- + ddg_total : float + The free energy. + ddg_total_error : float + The error in the free energy. + """ dataframes = [] slices = {} diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index c287f0c1e..36d726bc4 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -41,6 +41,9 @@ import copy as _copy import os as _os import shutil as _shutil +import pathlib as _pathlib +import pandas as _pd +import numpy as _np class AToM: @@ -1035,9 +1038,16 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): The inflection point for the UWHAM analysis. """ if method == "UWHAM": - _warnings.warn("DOINGUwham") total_ddg, total_ddg_err = AToM._analyse_UWHAM(work_dir, inflex_point) return total_ddg, total_ddg_err + if method == "MBAR": + from ._relative import Relative as _Relative + + # temporary version to check that things are working + ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir, inflex_point) + ddg_forward = _Relative.difference(ddg_forward) + ddg_reverse = _Relative.difference(ddg_reverse) + return ddg_forward, ddg_reverse else: raise ValueError(f"Method {method} is not supported for analysis.") @@ -1051,6 +1061,150 @@ def _analyse_UWHAM(work_dir, inflex_point=None): total_ddg, total_ddg_err = _UWHAM(work_dir, inflex_point) return total_ddg, total_ddg_err + @staticmethod + def _analyse_MBAR(work_dir, inflex_point=None): + """ + Analyse the MBAR-compatible outputs. + Adapted version of BioSimSpace _analyse_internal function + """ + from ._relative import Relative as _Relative + from alchemlyb.postprocessors.units import to_kcalmol as _to_kcalmol + from .. import Units as _Units + + try: + from alchemlyb.estimators import AutoMBAR as _AutoMBAR + except ImportError: + from alchemlyb.estimators import MBAR as _AutoMBAR + + if not isinstance(work_dir, str): + raise TypeError("work_dir must be a string") + if not _os.path.isdir(work_dir): + raise ValueError("work_dir must be a valid directory") + + glob_path = _pathlib.Path(work_dir) + files = sorted(glob_path.glob("**/energies*.csv")) + + # Slightly more complicated than a standard FE calculation + # the key complication comes from the need to split the forward and reverse legs + # instead of being inherently separate as in a standard FE calculation, they + # are dictated by 'direction'. This means that the energy arrays need + # to be re-numbered in to separate forward and reverse legs. + + # need to make sure that all lambdas were run at the same temp + temps = [] + dataframes_forward = [] + dataframes_backward = [] + for file in files: + # read the csv to a dataframe + df = _pd.read_csv(file) + # read the temperature column and make sure all values in it are equal + temp = df["temperature"].unique() + if len(temp) != 1: + raise ValueError(f"Temperature column in {file} is not uniform") + # check if the last column in the dataframe is full of NaNs + if df.iloc[:, -1:].isnull().values.all(): + reverse = False + else: + reverse = True + temps.append(temp[0]) + # now drop the temperature column + df = df.drop(columns=["temperature"]) + # remove columns with NaN values + df = df.dropna(axis=1) + # we will need to match the fep-lambda value to the correct new value + # first get fep-lambda, should be the same value for all entries in the 'fep-lambda' column + fep_lambda = df["fep-lambda"].unique() + if len(fep_lambda) != 1: + raise ValueError(f"fep-lambda column in {file} is not uniform") + # find all columns whose titles are only numbers + cols = [] + num_lams = 0 + for col in df.columns: + try: + val = float(col) + if val == fep_lambda: + index_fep_lambda = num_lams + num_lams += 1 + except ValueError: + cols.append(col) + new_lambdas = list(_np.linspace(0, 1, num_lams)) + new_fep_lambda = new_lambdas[index_fep_lambda] + new_cols = cols + new_lambdas + # rename the columns + df.columns = new_cols + # now replace all values in the fep-lambda column with the new value + df["fep-lambda"] = new_fep_lambda + df.set_index(cols, inplace=True) + if reverse: + dataframes_backward.append(df) + else: + dataframes_forward.append(df) + + # check that all temperatures are the same + if len(set(temps)) != 1: + raise ValueError("All temperatures must be the same") + data_forward = _Relative._preprocess_data(dataframes_forward, "MBAR") + data_backward = _Relative._preprocess_data(dataframes_backward, "MBAR") + try: + alchem_forward = _AutoMBAR().fit(data_forward) + except ValueError as e: + raise ValueError(f"Error in fitting forward leg of MBAR calculation: {e}") + + try: + alchem_backward = _AutoMBAR().fit(data_backward) + except ValueError as e: + raise ValueError(f"Error in fitting backward leg of MBAR calculation: {e}") + + print(data_forward) + alchem_forward.delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + delta_f_for = _to_kcalmol(alchem_forward.delta_f_) + alchem_forward.d_delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + d_delta_f_for = _to_kcalmol(alchem_forward.d_delta_f_) + data_forward_final = [] + for lamb in new_lambdas: + x = new_lambdas.index(lamb) + mbar_value = delta_f_for.iloc[0, x] + mbar_error = d_delta_f_for.iloc[0, x] + + data_forward_final.append( + ( + lamb, + (mbar_value) * _Units.Energy.kcal_per_mol, + (mbar_error) * _Units.Energy.kcal_per_mol, + ) + ) + alchem_backward.delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + delta_f_back = _to_kcalmol(alchem_backward.delta_f_) + alchem_backward.d_delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + d_delta_f_back = _to_kcalmol(alchem_backward.d_delta_f_) + data_backward_final = [] + for lamb in new_lambdas: + x = new_lambdas.index(lamb) + mbar_value = delta_f_back.iloc[0, x] + mbar_error = d_delta_f_back.iloc[0, x] + + data_backward_final.append( + ( + lamb, + (mbar_value) * _Units.Energy.kcal_per_mol, + (mbar_error) * _Units.Energy.kcal_per_mol, + ) + ) + + return data_forward_final, data_backward_final + class _relativeATM: """ diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index dcf6b60ce..b7ed53051 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -573,6 +573,7 @@ def createLoopWithReporting( output += "energies = {}\n" output += "energies['time'] = []\n" output += "energies['fep-lambda'] = []\n" + output += "energies['temperature'] = []\n" output += "for i in master_lambda_list:\n" output += " energies[i] = []\n" output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" @@ -587,6 +588,7 @@ def createLoopWithReporting( output += " time = steps_so_far * timestep\n" output += " energies['time'].append(time)\n" output += " energies['fep-lambda'].append(master_lambda)\n" + output += " energies['temperature'].append(integrator.getTemperature().value_in_unit(kelvin))\n" output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" output += " # do the first half of master lambda if direction == 1\n" output += " if direction == 1:\n" @@ -628,7 +630,11 @@ def createLoopWithReporting( output += " simulation.context.setParameter('W0',w0)\n" output += " simulation.context.setParameter('Direction',direction)\n" output += f" simulation.saveState('{name}.xml')\n" - output += "#now convert the dictionary to a pandas dataframe, with both time and fep-lambda as index columns\n" + output += " #now dump data to a csv file\n" + output += f" df = pd.DataFrame(energies)\n" + output += " df.set_index(['time', 'fep-lambda'], inplace=True)\n" + output += " df.to_csv(f'energies_{master_lambda}.csv')\n" + output += "#Dump final data to csv file\n" output += "df = pd.DataFrame(energies)\n" output += "df.set_index(['time', 'fep-lambda'], inplace=True)\n" output += "df.to_csv(f'energies_{master_lambda}.csv')\n" @@ -680,7 +686,7 @@ def createSoftcorePertELoop( " pert_e = softCorePertE(u0-(u1+uoffset), umcore, ubcore, acore)\n" ) output += " result['window'].append(window_index)\n" - output += " result['temperature'].append(temperature)\n" + output += " result['temperature'].append(integrator.getTemperature().value_in_unit(kelvin))\n" output += " result['direction'].append(direction)\n" output += " result['lambda1'].append(lambda1)\n" output += " result['lambda2'].append(lambda2)\n" @@ -694,8 +700,12 @@ def createSoftcorePertELoop( output += " result['metad_offset'].append(0.0)\n" output += " #save the state of the simulation\n" output += f" simulation.saveState('{name}.xml')\n" + output += " #now dump data to a csv file\n" + output += " df = pd.DataFrame(result)\n" + output += " df.set_index('window', inplace=True)\n" + output += f" df.to_csv(f'{name}.csv')\n" - output += "#now convert the dictionary to a pandas dataframe\n" + output += "#now convert the final dictionary to a pandas dataframe\n" output += "df = pd.DataFrame(result)\n" output += "df.set_index('window', inplace= True)\n" output += f"df.to_csv('{name}.csv')\n" @@ -735,6 +745,7 @@ def createReportingBoth( output += "energies = {}\n" output += "energies['time'] = []\n" output += "energies['fep-lambda'] = []\n" + output += "energies['temperature'] = []\n" output += "for i in master_lambda_list:\n" output += " energies[i] = []\n" output += f"inflex_point = {inflex_point}\n" @@ -744,6 +755,7 @@ def createReportingBoth( output += "# Now run the simulation.\n" output += f"for x in range(0, {cycles}):\n" output += f" simulation.step({steps_per_cycle})\n" + output += f" steps_so_far += {steps_per_cycle}\n" output += " time = steps_so_far * timestep\n" output += ( " state = simulation.context.getState(getEnergy = True, groups = -1)\n" @@ -766,7 +778,7 @@ def createReportingBoth( " pert_e = softCorePertE(u0-(u1+uoffset), umcore, ubcore, acore)\n" ) output += " result['window'].append(window_index)\n" - output += " result['temperature'].append(temperature)\n" + output += " result['temperature'].append(integrator.getTemperature().value_in_unit(kelvin))\n" output += " result['direction'].append(direction)\n" output += " result['lambda1'].append(lambda1)\n" output += " result['lambda2'].append(lambda2)\n" @@ -780,6 +792,7 @@ def createReportingBoth( output += " result['metad_offset'].append(0.0)\n" output += " energies['time'].append(time)\n" output += " energies['fep-lambda'].append(master_lambda)\n" + output += " energies['temperature'].append(integrator.getTemperature().value_in_unit(kelvin))\n" output += " #now loop over all simulate lambda values, set the values in the context, and calculate potential energy\n" output += " # do the first half of master lambda if direction == 1\n" output += " if direction == 1:\n" @@ -822,6 +835,14 @@ def createReportingBoth( output += " simulation.context.setParameter('Direction',direction)\n" output += " #save the state of the simulation\n" output += f" simulation.saveState('{name}.xml')\n" + output += " #now dump UWHAM data to a csv file\n" + output += " df = pd.DataFrame(result)\n" + output += " df.set_index('window', inplace=True)\n" + output += f" df.to_csv(f'{name}.csv')\n" + output += " #now dump MBAR data to a csv file\n" + output += " df = pd.DataFrame(energies)\n" + output += " df.set_index(['time', 'fep-lambda'], inplace=True)\n" + output += " df.to_csv(f'energies_{master_lambda}.csv')\n" output += "#now convert the UWHAM dictionary to a pandas dataframe\n" output += "df = pd.DataFrame(result)\n" From 803139f9c4486073924ae4be42281253059d7229 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 23 Jul 2024 15:19:07 +0100 Subject: [PATCH 049/123] Testing for various analysis methods --- python/BioSimSpace/FreeEnergy/_atm.py | 173 ++--------- .../FreeEnergy/{_UWHAM.py => _ddg.py} | 276 +++++++++++++++++- 2 files changed, 302 insertions(+), 147 deletions(-) rename python/BioSimSpace/FreeEnergy/{_UWHAM.py => _ddg.py} (50%) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 36d726bc4..ad0dfda04 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1044,10 +1044,18 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): from ._relative import Relative as _Relative # temporary version to check that things are working - ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir, inflex_point) + ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir) ddg_forward = _Relative.difference(ddg_forward) ddg_reverse = _Relative.difference(ddg_reverse) return ddg_forward, ddg_reverse + + if method == "test": + ddg_forward, ddg_reverse = AToM._analyse_test(work_dir) + return ddg_forward, ddg_reverse + + if method == "femto": + est, o = AToM._analyse_femto(work_dir) + return est, o else: raise ValueError(f"Method {method} is not supported for analysis.") @@ -1056,154 +1064,37 @@ def _analyse_UWHAM(work_dir, inflex_point=None): """ Analyse the UWHAM results from the AToM simulation. """ - from ._UWHAM import analyse as _UWHAM + from ._ddg import analyse_UWHAM as _UWHAM total_ddg, total_ddg_err = _UWHAM(work_dir, inflex_point) return total_ddg, total_ddg_err @staticmethod - def _analyse_MBAR(work_dir, inflex_point=None): + def _analyse_MBAR(work_dir): """ - Analyse the MBAR-compatible outputs. - Adapted version of BioSimSpace _analyse_internal function + Analyse the MBAR results from the AToM simulation. """ - from ._relative import Relative as _Relative - from alchemlyb.postprocessors.units import to_kcalmol as _to_kcalmol - from .. import Units as _Units - - try: - from alchemlyb.estimators import AutoMBAR as _AutoMBAR - except ImportError: - from alchemlyb.estimators import MBAR as _AutoMBAR - - if not isinstance(work_dir, str): - raise TypeError("work_dir must be a string") - if not _os.path.isdir(work_dir): - raise ValueError("work_dir must be a valid directory") - - glob_path = _pathlib.Path(work_dir) - files = sorted(glob_path.glob("**/energies*.csv")) - - # Slightly more complicated than a standard FE calculation - # the key complication comes from the need to split the forward and reverse legs - # instead of being inherently separate as in a standard FE calculation, they - # are dictated by 'direction'. This means that the energy arrays need - # to be re-numbered in to separate forward and reverse legs. - - # need to make sure that all lambdas were run at the same temp - temps = [] - dataframes_forward = [] - dataframes_backward = [] - for file in files: - # read the csv to a dataframe - df = _pd.read_csv(file) - # read the temperature column and make sure all values in it are equal - temp = df["temperature"].unique() - if len(temp) != 1: - raise ValueError(f"Temperature column in {file} is not uniform") - # check if the last column in the dataframe is full of NaNs - if df.iloc[:, -1:].isnull().values.all(): - reverse = False - else: - reverse = True - temps.append(temp[0]) - # now drop the temperature column - df = df.drop(columns=["temperature"]) - # remove columns with NaN values - df = df.dropna(axis=1) - # we will need to match the fep-lambda value to the correct new value - # first get fep-lambda, should be the same value for all entries in the 'fep-lambda' column - fep_lambda = df["fep-lambda"].unique() - if len(fep_lambda) != 1: - raise ValueError(f"fep-lambda column in {file} is not uniform") - # find all columns whose titles are only numbers - cols = [] - num_lams = 0 - for col in df.columns: - try: - val = float(col) - if val == fep_lambda: - index_fep_lambda = num_lams - num_lams += 1 - except ValueError: - cols.append(col) - new_lambdas = list(_np.linspace(0, 1, num_lams)) - new_fep_lambda = new_lambdas[index_fep_lambda] - new_cols = cols + new_lambdas - # rename the columns - df.columns = new_cols - # now replace all values in the fep-lambda column with the new value - df["fep-lambda"] = new_fep_lambda - df.set_index(cols, inplace=True) - if reverse: - dataframes_backward.append(df) - else: - dataframes_forward.append(df) - - # check that all temperatures are the same - if len(set(temps)) != 1: - raise ValueError("All temperatures must be the same") - data_forward = _Relative._preprocess_data(dataframes_forward, "MBAR") - data_backward = _Relative._preprocess_data(dataframes_backward, "MBAR") - try: - alchem_forward = _AutoMBAR().fit(data_forward) - except ValueError as e: - raise ValueError(f"Error in fitting forward leg of MBAR calculation: {e}") - - try: - alchem_backward = _AutoMBAR().fit(data_backward) - except ValueError as e: - raise ValueError(f"Error in fitting backward leg of MBAR calculation: {e}") - - print(data_forward) - alchem_forward.delta_f_.attrs = { - "temperature": temps[0], - "energy_unit": "kJ/mol", - } - delta_f_for = _to_kcalmol(alchem_forward.delta_f_) - alchem_forward.d_delta_f_.attrs = { - "temperature": temps[0], - "energy_unit": "kJ/mol", - } - d_delta_f_for = _to_kcalmol(alchem_forward.d_delta_f_) - data_forward_final = [] - for lamb in new_lambdas: - x = new_lambdas.index(lamb) - mbar_value = delta_f_for.iloc[0, x] - mbar_error = d_delta_f_for.iloc[0, x] - - data_forward_final.append( - ( - lamb, - (mbar_value) * _Units.Energy.kcal_per_mol, - (mbar_error) * _Units.Energy.kcal_per_mol, - ) - ) - alchem_backward.delta_f_.attrs = { - "temperature": temps[0], - "energy_unit": "kJ/mol", - } - delta_f_back = _to_kcalmol(alchem_backward.delta_f_) - alchem_backward.d_delta_f_.attrs = { - "temperature": temps[0], - "energy_unit": "kJ/mol", - } - d_delta_f_back = _to_kcalmol(alchem_backward.d_delta_f_) - data_backward_final = [] - for lamb in new_lambdas: - x = new_lambdas.index(lamb) - mbar_value = delta_f_back.iloc[0, x] - mbar_error = d_delta_f_back.iloc[0, x] - - data_backward_final.append( - ( - lamb, - (mbar_value) * _Units.Energy.kcal_per_mol, - (mbar_error) * _Units.Energy.kcal_per_mol, - ) - ) + from ._ddg import analyse_MBAR as _MBAR + + ddg_forward, ddg_reverse = _MBAR(work_dir) + return ddg_forward, ddg_reverse + + @staticmethod + def _analyse_test(work_dir): + """ + Analyse the test results from the AToM simulation. + """ + from ._ddg import new_MBAR as _test + + ddg_forward, ddg_reverse = _test(work_dir) + return ddg_forward, ddg_reverse + + @staticmethod + def _analyse_femto(work_dir): + from ._ddg import MBAR_hijack_femto - return data_forward_final, data_backward_final + est, o = MBAR_hijack_femto(work_dir) + return est, o class _relativeATM: diff --git a/python/BioSimSpace/FreeEnergy/_UWHAM.py b/python/BioSimSpace/FreeEnergy/_ddg.py similarity index 50% rename from python/BioSimSpace/FreeEnergy/_UWHAM.py rename to python/BioSimSpace/FreeEnergy/_ddg.py index 1bc59e100..6db1dd6cb 100644 --- a/python/BioSimSpace/FreeEnergy/_UWHAM.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -19,15 +19,21 @@ # along with BioSimSpace. If not, see . ###################################################################### -__all__ = ["analyse"] -import pandas as pd +# Alchemical transfer analysis methods. UWHAM implementation adapted from +# both the `femto` and `AToM-openmm` packages. +__all__ = ["analyse_UWHAM", "analyse_MBAR", "new_MBAR"] + +import pandas as _pd import numpy import scipy.optimize import scipy.special import pathlib import functools +import pathlib as _pathlib +import os as _os +import pymbar def _compute_weights(ln_z, ln_q, factor): @@ -177,7 +183,7 @@ def _get_inflection_indices(folders): directions = [] for folder in folders.values(): - df = pd.read_csv(folder / "openmm.csv") + df = _pd.read_csv(folder / "openmm.csv") direction = df["direction"].values[0] directions.append(direction) @@ -190,7 +196,7 @@ def _get_inflection_indices(folders): return inflection_indices -def analyse(work_dir, inflection_indices=None): +def analyse_UWHAM(work_dir, inflection_indices=None): """ Analyse the output of BioSimSpace AToM simulations. @@ -219,7 +225,7 @@ def analyse(work_dir, inflection_indices=None): if inflection_indices is None: inflection_indices = _get_inflection_indices(folders) for folder in folders.values(): - df = pd.read_csv(folder / "openmm.csv") + df = _pd.read_csv(folder / "openmm.csv") df["beta"] = 1 / (0.001986209 * df["temperature"]) total_states += 1 total_samples += len(df) @@ -239,7 +245,7 @@ def analyse(work_dir, inflection_indices=None): # get the dataframes for the current window dfs = slices[window] # combine the dataframes - combined_df = pd.concat(dfs) + combined_df = _pd.concat(dfs) dataframes.append(combined_df) # sort 'dataframes' based on 'window' @@ -280,6 +286,7 @@ def analyse(work_dir, inflection_indices=None): f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) ddg = f_i[-1] - f_i[0] ddg1 = ddg / dataframes[0]["beta"].values[0] + print(f"Forward leg: {ddg1}") ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] n_samples_second_half = n_samples[inflection_indices[1] :] @@ -306,8 +313,265 @@ def analyse(work_dir, inflection_indices=None): f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) ddg = f_i[-1] - f_i[0] ddg2 = ddg / dataframes[0]["beta"].values[0] + print(f"Reverse leg: {ddg2}") ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] ddg_total = ddg1 - ddg2 ddg_total_error = numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) return ddg_total, ddg_total_error + + +def analyse_MBAR(work_dir): + """ + Analyse the MBAR-compatible outputs. + Adapted version of BioSimSpace _analyse_internal function + """ + from ._relative import Relative as _Relative + from alchemlyb.postprocessors.units import to_kcalmol as _to_kcalmol + from .. import Units as _Units + + try: + from alchemlyb.estimators import AutoMBAR as _AutoMBAR + except ImportError: + from alchemlyb.estimators import MBAR as _AutoMBAR + + if not isinstance(work_dir, str): + raise TypeError("work_dir must be a string") + if not _os.path.isdir(work_dir): + raise ValueError("work_dir must be a valid directory") + + glob_path = _pathlib.Path(work_dir) + files = sorted(glob_path.glob("**/energies*.csv")) + + # Slightly more complicated than a standard FE calculation + # the key complication comes from the need to split the forward and reverse legs + # instead of being inherently separate as in a standard FE calculation, they + # are dictated by 'direction'. This means that the energy arrays need + # to be re-numbered in to separate forward and reverse legs. + + # need to make sure that all lambdas were run at the same temp + temps = [] + dataframes_forward = [] + dataframes_backward = [] + for file in files: + # read the csv to a dataframe + df = _pd.read_csv(file) + # read the temperature column and make sure all values in it are equal + temp = df["temperature"].unique() + if len(temp) != 1: + raise ValueError(f"Temperature column in {file} is not uniform") + # check if the last column in the dataframe is full of NaNs + if df.iloc[:, -1:].isnull().values.all(): + reverse = False + else: + reverse = True + temps.append(temp[0]) + # now drop the temperature column + df = df.drop(columns=["temperature"]) + # remove columns with NaN values + df = df.dropna(axis=1) + # we will need to match the fep-lambda value to the correct new value + # first get fep-lambda, should be the same value for all entries in the 'fep-lambda' column + fep_lambda = df["fep-lambda"].unique() + if len(fep_lambda) != 1: + raise ValueError(f"fep-lambda column in {file} is not uniform") + # find all columns whose titles are only numbers + cols = [] + num_lams = 0 + for col in df.columns: + try: + val = float(col) + if val == fep_lambda: + index_fep_lambda = num_lams + num_lams += 1 + except ValueError: + cols.append(col) + new_lambdas = list(numpy.linspace(0, 1, num_lams)) + new_fep_lambda = new_lambdas[index_fep_lambda] + new_cols = cols + new_lambdas + # rename the columns + df.columns = new_cols + # now replace all values in the fep-lambda column with the new value + df["fep-lambda"] = new_fep_lambda + df.set_index(cols, inplace=True) + if reverse: + dataframes_backward.append(df) + else: + dataframes_forward.append(df) + + # check that all temperatures are the same + if len(set(temps)) != 1: + raise ValueError("All temperatures must be the same") + data_forward = _Relative._preprocess_data(dataframes_forward, "MBAR") + data_backward = _Relative._preprocess_data(dataframes_backward, "MBAR") + print("\n\n\n\n\n") + print(type(data_forward)) + data_forward.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + data_backward.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + try: + alchem_forward = _AutoMBAR().fit(data_forward) + except ValueError as e: + raise ValueError(f"Error in fitting forward leg of MBAR calculation: {e}") + + try: + alchem_backward = _AutoMBAR().fit(data_backward) + except ValueError as e: + raise ValueError(f"Error in fitting backward leg of MBAR calculation: {e}") + + alchem_forward.delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + delta_f_for = _to_kcalmol(alchem_forward.delta_f_) + alchem_forward.d_delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + d_delta_f_for = _to_kcalmol(alchem_forward.d_delta_f_) + data_forward_final = [] + for lamb in new_lambdas: + x = new_lambdas.index(lamb) + mbar_value = delta_f_for.iloc[0, x] + mbar_error = d_delta_f_for.iloc[0, x] + + data_forward_final.append( + ( + lamb, + (mbar_value) * _Units.Energy.kcal_per_mol, + (mbar_error) * _Units.Energy.kcal_per_mol, + ) + ) + alchem_backward.delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + delta_f_back = _to_kcalmol(alchem_backward.delta_f_) + alchem_backward.d_delta_f_.attrs = { + "temperature": temps[0], + "energy_unit": "kJ/mol", + } + d_delta_f_back = _to_kcalmol(alchem_backward.d_delta_f_) + data_backward_final = [] + for lamb in new_lambdas: + x = new_lambdas.index(lamb) + mbar_value = delta_f_back.iloc[0, x] + mbar_error = d_delta_f_back.iloc[0, x] + + data_backward_final.append( + ( + lamb, + (mbar_value) * _Units.Energy.kcal_per_mol, + (mbar_error) * _Units.Energy.kcal_per_mol, + ) + ) + + return data_forward_final, data_backward_final + + +def _naive_MBAR(u_kn, n_k): + # print(u_kn) + # print(n_k) + mbar = pymbar.MBAR(u_kn, n_k) + ddg_dict = mbar.compute_free_energy_differences() + + return ddg_dict["Delta_f"][0, :], ddg_dict["dDelta_f"][0, :] ** 2, mbar.W_nk + + +def new_MBAR(work_dir): + glob_path = _pathlib.Path(work_dir) + files = sorted(glob_path.glob("**/energies*.csv")) + + energies_forward = [] + energies_reverse = [] + n_k_forward = [] + n_k_reverse = [] + betas = [] + for file in files: + df = _pd.read_csv(file) + if df.iloc[:, -1:].isnull().values.all(): + reverse = False + else: + reverse = True + # now drop columns containing NaN values + df = df.dropna(axis=1) + # beta, specifically for energies in units of kj/mol + df["beta"] = 1 / (0.001986209 * df["temperature"]) + betas.append(df["beta"].values[0]) + # check that beta is the same for all files + if len(set(betas)) != 1: + raise ValueError("All temperatures must be the same") + temp_list = [] + # now reduce the potentials within the dataframe + for col in df.columns: + try: + float(col) + df[col] = df[col] * df["beta"] + temp_list.append(df[col].to_numpy()) + except ValueError: + continue + if not reverse: + n_k_forward.append(len(df)) + # now need to flatten temp_list to a single 1d list and append to energies + energies_forward.append(numpy.array(temp_list).ravel()) + else: + n_k_reverse.append(len(df)) + energies_reverse.append(numpy.array(temp_list).ravel()) + energies_forward = numpy.array(energies_forward) + f_i, fi_var, weight = _naive_MBAR(energies_forward, n_k_forward) + ddg_forward = (f_i[-1] - f_i[0]) / betas[0] + ddg_forward_error = numpy.sqrt(fi_var[-1] + fi_var[0]) + + energies_reverse = numpy.array(energies_reverse) + f_i, fi_var, weight = _naive_MBAR(energies_reverse, n_k_reverse) + ddg_reverse = (f_i[-1] - f_i[0]) / betas[0] + ddg_reverse_error = numpy.sqrt(fi_var[-1] + fi_var[0]) + + return ddg_forward, ddg_reverse + + +def MBAR_hijack_femto(work_dir): + import femto.fe.ddg + from openmm.unit import kelvin + + glob_path = _pathlib.Path(work_dir) + files = sorted(glob_path.glob("**/energies*.csv")) + + energies = [] + n_k = [] + num_nan = 0 + for counter, file in enumerate(files): + df = _pd.read_csv(file) + # beta, specifically for energies in units of kj/mol + df["beta"] = 1 / (0.001986209 * df["temperature"]) + energies_temp = [] + # now reduce the potentials within the dataframe + for col in df.columns: + if counter == 0: + # counter the number of columns that are full of NaNs + if df[col].isnull().values.all(): + num_nan += 1 + try: + float(col) + if counter == 0: + n_k.append(len(df[col])) + df[col] = df[col] * df["beta"] + energies_temp.append(df[col].to_numpy()) + except ValueError: + continue + energies_temp = numpy.array(energies_temp) + energies_temp = energies_temp.ravel() + energies.append(energies_temp) + energies = numpy.array(energies) + state_groups = [(num_nan, 1.0), (num_nan, 1.0)] + temperature = 300 * kelvin + print(n_k) + est, overlap = femto.fe.ddg.estimate_ddg( + energies, numpy.array(n_k), temperature, state_groups + ) + return est, overlap From ef3c93cdbc7cdcc818283e23b40715962a035655 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 24 Jul 2024 12:43:04 +0100 Subject: [PATCH 050/123] Add missing extra_args kwarg. [closes #318] --- python/BioSimSpace/Process/_somd.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/python/BioSimSpace/Process/_somd.py b/python/BioSimSpace/Process/_somd.py index 2d1c5e508..f51d56774 100644 --- a/python/BioSimSpace/Process/_somd.py +++ b/python/BioSimSpace/Process/_somd.py @@ -78,6 +78,7 @@ def __init__( seed=None, extra_options={}, extra_lines=[], + extra_args={}, property_map={}, **kwargs, ): @@ -118,6 +119,9 @@ def __init__( extra_lines : [str] A list of extra lines to put at the end of the configuration file. + extra_args : dict + A dictionary of extra command-line arguments to pass to the AMBER executable. + property_map : dict A dictionary that maps system "properties" to their user defined values. This allows the user to refer to properties with their @@ -136,6 +140,7 @@ def __init__( seed=seed, extra_options=extra_options, extra_lines=extra_lines, + extra_args=extra_args, property_map=property_map, ) @@ -478,6 +483,10 @@ def _generate_args(self): self.setArg("-C", "%s.cfg" % self._name) # Config file. self.setArg("-p", self._platform) # Simulation platform. + # Add the extra arguments. + for key, value in self._extra_args.items(): + self.setArg(key, value) + def start(self): """ Start the SOMD process. From 0be1c8a68cac44058af0b2061570bf6cac9fc273 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Mon, 29 Jul 2024 13:20:21 +0100 Subject: [PATCH 051/123] Typo. [ci skip] --- python/BioSimSpace/Process/_somd.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/Process/_somd.py b/python/BioSimSpace/Process/_somd.py index f51d56774..fb8063e15 100644 --- a/python/BioSimSpace/Process/_somd.py +++ b/python/BioSimSpace/Process/_somd.py @@ -120,7 +120,7 @@ def __init__( A list of extra lines to put at the end of the configuration file. extra_args : dict - A dictionary of extra command-line arguments to pass to the AMBER executable. + A dictionary of extra command-line arguments to pass to the SOMD executable. property_map : dict A dictionary that maps system "properties" to their user defined From f1592b582548c828dbd7a0098b57caa2165ed534 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Tue, 30 Jul 2024 10:52:11 +0100 Subject: [PATCH 052/123] Add AMBER to list of supported FEP engines. [ci skip] [closes #322] --- python/BioSimSpace/FreeEnergy/_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/_utils.py b/python/BioSimSpace/FreeEnergy/_utils.py index c4c3a61b7..540be2bf5 100644 --- a/python/BioSimSpace/FreeEnergy/_utils.py +++ b/python/BioSimSpace/FreeEnergy/_utils.py @@ -38,4 +38,4 @@ def engines(): engines : [str] The list of supported engines. """ - return ["SOMD", "GROMACS"] + return ["AMBER", "SOMD", "GROMACS"] From 709137b2626697f107a5de36edb4e81b8a773e0f Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 31 Jul 2024 16:35:32 +0100 Subject: [PATCH 053/123] Cleaned up API documentation --- python/BioSimSpace/FreeEnergy/__init__.py | 1 + python/BioSimSpace/FreeEnergy/_atm.py | 102 ++++--- python/BioSimSpace/Protocol/_AToM.py | 317 +++++++++------------- python/BioSimSpace/Protocol/__init__.py | 4 + 4 files changed, 191 insertions(+), 233 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 37cf66616..d47e41d6c 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -29,6 +29,7 @@ :toctree: generated/ Relative + AToM Functions ========= diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index ad0dfda04..93c65762b 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -64,20 +64,20 @@ def __init__( Parameters ---------- - system : BioSimSpace._SireWrappers.System + system : :class:`System ` A pre-prepared AToM system containing protein and ligands placed in their correct positions. If provided takes precedence over protein, ligand1 and ligand2. - protein : BioSimSpace._SireWrappers.Molecule + protein : :class:`Molecule ` A protein molecule. Will be used along with ligand1 and ligand2 to create a system. - ligand1 : BioSimSpace._SireWrappers.Molecule + ligand1 : :class:`Molecule ` The bound ligand. Will be used along with protein and ligand2 to create a system. - ligand2 : BioSimSpace._SireWrappers.Molecule + ligand2 : :class:`Molecule ` The free ligand. Will be used along with protein and ligand1 to create a system. - protein_index: int, list + protein_index : int, [int] If passing a pre-prepared system, the index (or indices) of the protein molecule in the system (Default 0). - ligand1_index: int + ligand1_index : int If passing a pre-prepared system, the index of the bound ligand molecule in the system (Default 1). - ligand2_index: int + ligand2_index : int If passing a pre-prepared system, the index of the free ligand molecule in the system (Default 2). """ # make sure that either system or protein, ligand1 and ligand2 are given @@ -443,27 +443,35 @@ def prepare( Parameters ---------- - ligand1_rigid_core : list + ligand1_rigid_core : [int] A list of three atom indices that define the rigid core of the bound ligand. Indices are set relative to the ligand, not the system and are 0-indexed. - ligand2_rigid_core : list + ligand2_rigid_core : [int] A list of three atom indices that define the rigid core of the free ligand. Indices are set relative to the ligand, not the system and are 0-indexed. - displacement : float, string, list + displacement : float, string, [float, float, float] The diplacement between the bound and free ligands. If a float or string is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. If a list is given, the vector will be used directly. Lengths should always be given in angstroms. Default is 20A. - protein_com_atoms : list + protein_com_atoms : [int] A list of atom indices that define the center of mass of the protein. If None, the center of mass of the protein will be found automatically. - ligand1_com_atoms : list + ligand1_com_atoms : [int] A list of atom indices that define the center of mass of the bound ligand. If None, the center of mass of the bound ligand will be found automatically. - ligand2_com_atoms : list + ligand2_com_atoms : [int] A list of atom indices that define the center of mass of the free ligand. If None, the center of mass of the free ligand will be found automatically. + + Returns + ------- + + System : :class:`System ` + The prepared system, including protein and ligands in their correct positions. + Data : dict + A dictionary containing the data needed for the AToM simulation. """ if self._is_prepared: self._systemInfo() @@ -843,12 +851,12 @@ def viewRigidCores( Parameters ---------- - system : BioSimSpace._SireWrappers.System + system : :class:`System ` The system for the AToM simulation that has been prepared AToM.prepare(). All other parameters are ignored if this is provided. - ligand1 : BioSimSpace._SireWrappers.Molecule + ligand1 : :class:`Molecule ` The bound ligand. - ligand2 : BioSimSpace._SireWrappers.Molecule + ligand2 : :class:`Molecule ` The free ligand. ligand1_rigid_core : list The indices for the rigid core atoms of the bound ligand. @@ -1008,10 +1016,37 @@ def run( platform="CPU", work_dir=None, setup_only=False, - ignore_warnings=False, - show_errors=True, property_map={}, ): + """Run the AToM production simulation(s). + + Parameters + ---------- + system : :class:`System ` + A prepared AToM system. + + protocol : :class:`Protocol ` + A protocol object that defines the AToM protocol. + + platform : str + The platform for the simulation. + + work_dir : str + The working directory for the simulation. + + setup_only : bool + Whether to only support simulation setup. If True, then no + simulation processes objects will be created, only the directory + hierarchy and input files to run a simulation externally. This + can be useful when you don't intend to use BioSimSpace to run + the simulation. Note that a 'work_dir' must also be specified. + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + + """ runner = _relativeATM( system, protocol, @@ -1019,8 +1054,6 @@ def run( property_map=property_map, work_dir=work_dir, setup_only=setup_only, - ignore_warnings=ignore_warnings, - show_errors=show_errors, ) runner.run() @@ -1036,6 +1069,13 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): The method to use for the analysis. Currently only UWHAM is supported. inflex_point : float The inflection point for the UWHAM analysis. + + Returns + ------- + ddg : float + The free energy difference between the two ligands. + ddg_err : float + The error in the free energy difference. """ if method == "UWHAM": total_ddg, total_ddg_err = AToM._analyse_UWHAM(work_dir, inflex_point) @@ -1109,8 +1149,6 @@ def __init__( platform="CPU", work_dir=None, setup_only=False, - ignore_warnings=False, - show_errors=True, property_map={}, ): """ @@ -1141,16 +1179,6 @@ def __init__( can be useful when you don't intend to use BioSimSpace to run the simulation. Note that a 'work_dir' must also be specified. - ignore_warnings : bool - Whether to ignore warnings when generating the binary run file. - This option is specific to GROMACS and will be ignored when a - different molecular dynamics engine is chosen. - - show_errors : bool - Whether to show warning/error messages when generating the binary - run file. This option is specific to GROMACS and will be ignored - when a different molecular dynamics engine is chosen. - property_map : dict A dictionary that maps system "properties" to their user defined values. This allows the user to refer to properties with their @@ -1193,13 +1221,6 @@ def __init__( # Create the working directory. self._work_dir = _Utils.WorkDir(work_dir) - if not isinstance(ignore_warnings, bool): - raise ValueError("'ignore_warnings' must be of type 'bool.") - self._ignore_warnings = ignore_warnings - - if not isinstance(show_errors, bool): - raise ValueError("'show_errors' must be of type 'bool.") - self._show_errors = show_errors # Check that the map is valid. if not isinstance(property_map, dict): raise TypeError("'property_map' must be of type 'dict'") @@ -1210,9 +1231,10 @@ def __init__( def run(self, serial=True): """ Run the simulations. + Returns ------- - list of :class:`Process ` + Processes : [:class:`Process `] A list of process objects. """ # Initialise the runner. diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 9b8f8fad0..21335713c 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -35,75 +35,6 @@ def __init__( cm_kf=25.0 * kcal_per_mol / angstrom2, cm_tol=5.0 * angstrom, ): - """ - Create a protocol object. - - Parameters - ---------- - - system : :class:`System ` - A system generated by BioSimSpace.FreeEnergy.AToM. - - data : dict - The AToM data dictionary. - - core_alignment : bool - Whether to use rigid core restraints to align the two ligands. - - CMCM_restraint : bool - Whether to use a center of mass distance restraint. - - restraint : str, [int] - The type of restraint to perform. This should be one of the - following options: - "backbone" - Protein backbone atoms. The matching is done by a name - template, so is unreliable on conversion between - molecular file formats. - "heavy" - All non-hydrogen atoms that aren't part of water - molecules or free ions. - "all" - All atoms that aren't part of water molecules or free - ions. - Alternatively, the user can pass a list of atom indices for - more fine-grained control. If None, then no restraints are used. - - force_constant : :class:`GeneralUnit `, float - The force constant for the restraint potential. If a 'float' is - passed, then default units of 'kcal_per_mol / angstrom**2' will - be used. - - pos_rest_width : :class:`Length `, float - The width of the flat-bottom potential used for coordinate restraint in Angstroms. - - pos_restrained_atoms : list of int - The atoms to be restrained. - - align_kf_sep : int, float, str, :class:`GeneralUnit - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - - align_k_theta : int, float, str, :class:`Energy - The force constant for the angular portion of the alignment restaint (kcal/mol). - - align_k_psi : int, float, str, :class:`Energy - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - - SC_umax : int, float, str, :class:`Energy - The Umax value for the ATM softcore potential (kcal/mol). - - SC_u0 : int, float, str, :class:`Energy - The uh value for the ATM softcore potential (kcal/mol). - - SC_a : int, float, str, :class:`Energy - The a value for the ATM softcore potential. - - cm_kf : int, float, str, :class:`GeneralUnit - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length - The tolerance for the center of mass distance restraint (A). - """ # Call the base class constructor. super().__init__() @@ -735,71 +666,6 @@ def _get_window_index(self): class AToMMinimisation(_AToM): """ Minimisation protocol for AToM simulations. - - Parameters - ---------- - - system : :class:`System ` - A system generated by BioSimSpace.FreeEnergy.AToM. - data : dict - The AToM data dictionary. - - core_alignment : bool - Whether to use rigid core restraints to align the two ligands. - - CMCM_restraint : bool - Whether to use a center of mass distance restraint. - - restraint : str, [int] - The type of restraint to perform. This should be one of the - following options: - "backbone" - Protein backbone atoms. The matching is done by a name - template, so is unreliable on conversion between - molecular file formats. - "heavy" - All non-hydrogen atoms that aren't part of water - molecules or free ions. - "all" - All atoms that aren't part of water molecules or free - ions. - Alternatively, the user can pass a list of atom indices for - more fine-grained control. If None, then no restraints are used. - - force_constant : :class:`GeneralUnit `, float - The force constant for the restraint potential. If a 'float' is - passed, then default units of 'kcal_per_mol / angstrom**2' will - be used. - - pos_rest_width : :class:`Length `, float - The width of the flat-bottom potential used for coordinate restraint in Angstroms. - - pos_restrained_atoms : list of int - The atoms to be restrained. - - align_kf_sep : int, float, str, :class:`GeneralUnit - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - - align_k_theta : int, float, str, :class:`Energy - The force constant for the angular portion of the alignment restaint (kcal/mol). - - align_k_psi : int, float, str, :class:`Energy - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - - SC_umax : int, float, str, :class:`Energy - The Umax value for the ATM softcore potential (kcal/mol). - - SC_u0 : int, float, str, :class:`Energy - The uh value for the ATM softcore potential (kcal/mol). - - SC_a : int, float, str, :class:`Energy - The a value for the ATM softcore potential. - - cm_kf : int, float, str, :class:`GeneralUnit - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length - The tolerance for the center of mass distance restraint (A). """ def __init__( @@ -821,6 +687,72 @@ def __init__( cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, cm_tol=5 * _Units.Length.angstrom, ): + """ + Parameters + ---------- + + system : :class:`System ` + A prepared AToM system. + data : dict + The AToM data dictionary. + + core_alignment : bool + Whether to use rigid core restraints to align the two ligands. + + CMCM_restraint : bool + Whether to use a center of mass distance restraint. + + restraint : str, [int] + The type of restraint to perform. This should be one of the + following options: + "backbone" + Protein backbone atoms. The matching is done by a name + template, so is unreliable on conversion between + molecular file formats. + "heavy" + All non-hydrogen atoms that aren't part of water + molecules or free ions. + "all" + All atoms that aren't part of water molecules or free + ions. + Alternatively, the user can pass a list of atom indices for + more fine-grained control. If None, then no restraints are used. + + force_constant : :class:`GeneralUnit `, float + The force constant for the restraint potential. If a 'float' is + passed, then default units of 'kcal_per_mol / angstrom**2' will + be used. + + pos_rest_width : :class:`Length `, float + The width of the flat-bottom potential used for coordinate restraint in Angstroms. + + pos_restrained_atoms : [int] + The atoms to be restrained. + + align_kf_sep : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : int, float, str, :class:`Energy ` + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : int, float, str, :class:`Energy ` + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + + SC_umax : int, float, str, :class:`Energy ` + The Umax value for the ATM softcore potential (kcal/mol). + + SC_u0 : int, float, str, :class:`Energy ` + The uh value for the ATM softcore potential (kcal/mol). + + SC_a : int, float, str, :class:`Energy ` + The a value for the ATM softcore potential. + + cm_kf : int, float, str, :class:`GeneralUnit ` + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + cm_tol : int, float, str, :class:`Length ` + The tolerance for the center of mass distance restraint (A).""" + super().__init__( system, data, @@ -912,31 +844,31 @@ def __init__( Parameters ---------- - system : :class:`System ` - A system generated by BioSimSpace.FreeEnergy.AToM. + system : :class:`System `` + A prepared AToM system. data : dict The AToM data dictionary. - timestep : :class:`Time ` + timestep : str, :class:`Time ` The integration timestep. - runtime : :class:`Time ` + runtime : str, :class:`Time ` The running time. - temperature_start : :class:`Temperature ` + temperature_start : str, :class:`Temperature ` The starting temperature. - temperature_end : :class:`Temperature ` + temperature_end : str, :class:`Temperature ` The ending temperature. - temperature : :class:`Temperature ` + temperature : str, :class:`Temperature ` The equilibration temperature. This takes precedence of over the other temperatures, i.e. to run at fixed temperature. - pressure : :class:`Pressure ` + pressure : str, :class:`Pressure ` The pressure. Pass pressure=None to use the NVT ensemble. - thermostat_time_constant : :class:`Time ` + thermostat_time_constant : str, :class:`Time ` Time constant for thermostat coupling. report_interval : int @@ -967,36 +899,34 @@ def __init__( Alternatively, the user can pass a list of atom indices for more fine-grained control. If None, then no restraints are used. - force_constant : :class:`GeneralUnit `, float - The force constant for the restraint potential. If a 'float' is - passed, then default units of 'kcal_per_mol / angstrom**2' will - be used. + force_constant : float, :class:`GeneralUnit ` + The force constant for the restraint potential (kcal/(mol A^2). - pos_rest_width : :class:`Length `, float + pos_rest_width : float, :class:`Length ` The width of the flat-bottom potential used for coordinate restraint in Angstroms. - pos_restrained_atoms : list of int + pos_restrained_atoms : [int] The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + align_kf_sep : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2). - align_k_theta : int, float, str, :class:`Energy + align_k_theta : int, float, str, :class:`Energy ` The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : int, float, str, :class:`Energy + align_k_psi : int, float, str, :class:`Energy ` The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy + SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy + SC_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit + cm_kf : int, float, str, :class:`GeneralUnit ` The force constant for the center of mass distance restraint (kcal/mol/A^2). cm_tol : int, float, str, :class:`Length @@ -1691,25 +1621,25 @@ def __init__( Parameters ---------- - system : :class:`System ` - A system generated by BioSimSpace.FreeEnergy.AToM. + system : :class:`System `` + A prepared AToM system. data : dict The AToM data dictionary. - timestep : :class:`Time ` + timestep : str, :class:`Time ` The integration timestep. - runtime : :class:`Time ` + runtime : str, :class:`Time ` The running time. - temperature : :class:`Temperature ` + temperature : str, :class:`Temperature ` The temperature. - pressure : :class:`Pressure ` + pressure : str, :class:`Pressure ` The pressure. Pass pressure=None to use the NVT ensemble. - thermostat_time_constant : :class:`Time ` + thermostat_time_constant : str, :class:`Time ` Time constant for thermostat coupling. report_interval : int @@ -1740,39 +1670,39 @@ def __init__( Alternatively, the user can pass a list of atom indices for more fine-grained control. If None, then no restraints are used. - force_constant : :class:`GeneralUnit `, float + force_constant : float, :class:`GeneralUnit ` The force constant for the restraint potential. If a 'float' is passed, then default units of 'kcal_per_mol / angstrom**2' will be used. - pos_rest_width : :class:`Length `, float + pos_rest_width : float, :class:`Length ` The width of the flat-bottom potential used for coordinate restraint in Angstroms. pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit + align_kf_sep : int, float, str, :class:`GeneralUnit ` The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : int, float, str, :class:`Energy + align_k_theta : int, float, str, :class:`Energy ` The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : int, float, str, :class:`Energy + align_k_psi : int, float, str, :class:`Energy ` The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy + SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy + SC_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit + cm_kf : int, float, str, :class:`GeneralUnit ` The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : int, float, str, :class:`Length + cm_tol : int, float, str, :class:`Length ` The tolerance for the center of mass distance restraint (A). direction : str @@ -2508,25 +2438,25 @@ def __init__( Parameters ---------- - system : :class:`System ` - A system generated by BioSimSpace.FreeEnergy.AToM. + system : :class:`System `` + A prepared AToM system. data : dict The AToM data dictionary. - timestep : :class:`Time ` + timestep : str, :class:`Time ` The integration timestep. - runtime : :class:`Time ` + runtime : str, :class:`Time ` The running time. - temperature : :class:`Temperature ` + temperature : str, :class:`Temperature ` The temperature. - pressure : :class:`Pressure ` + pressure : str, :class:`Pressure ` The pressure. Pass pressure=None to use the NVT ensemble. - thermostat_time_constant : :class:`Time ` + thermostat_time_constant : str, :class:`Time ` Time constant for thermostat coupling. report_interval : int @@ -2557,7 +2487,7 @@ def __init__( Alternatively, the user can pass a list of atom indices for more fine-grained control. If None, then no restraints are used. - force_constant : :class:`GeneralUnit `, float + force_constant : float, :class:`GeneralUnit ` The force constant for the restraint potential. If a 'float' is passed, then default units of 'kcal_per_mol / angstrom**2' will be used. @@ -2569,28 +2499,28 @@ def __init__( The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit + align_kf_sep : int, float, str, :class:`GeneralUnit ` The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - align_k_theta : int, float, str, :class:`Energy + align_k_theta : int, float, str, :class:`Energy ` The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : int, float, str, :class:`Energy + align_k_psi : int, float, str, :class:`Energy ` The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy + SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy + SC_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy + SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit + cm_kf : int, float, str, :class:`GeneralUnit ` The force constant for the center of mass distance restraint (kcal/mol/A^2). - cm_tol : int, float, str, :class:`Length + cm_tol : int, float, str, :class:`Length ` The tolerance for the center of mass distance restraint (A). restart : bool @@ -2612,18 +2542,19 @@ def __init__( lambda2 : list of float The lambda2 values. - alpha : list of int, float, str, :class:`Energy + alpha : list of int, float, str, :class:`Energy ` The alpha values. - uh : list of int, float, str, :class:`Energy + uh : list of int, float, str, :class:`Energy ` The uh values. - W0 : list of int, float, str, :class:`Energy + W0 : list of int, float, str, :class:`Energy ` The W0 values. analysis_method : str The method to use for analysis. Options are "UWHAM", "MBAR" or "both" This affects the output files and the analysis that is performed. + USE of "UWHAM" is strongly recommended, "MBAR" analysis is still experimental. """ super().__init__( system, diff --git a/python/BioSimSpace/Protocol/__init__.py b/python/BioSimSpace/Protocol/__init__.py index 1eaa4c6b4..6db922ccf 100644 --- a/python/BioSimSpace/Protocol/__init__.py +++ b/python/BioSimSpace/Protocol/__init__.py @@ -47,6 +47,10 @@ Metadynamics Steering Custom + AToMMinimisation + AToMEquilibration + AToMAnnealing + AToMProduction Examples ======== From 2659abe1092175087da43df5b547feab4f2cbe53 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 1 Aug 2024 13:28:24 +0100 Subject: [PATCH 054/123] Adds explanation of AToM functionality to FreeEnergy docs --- doc/source/api/index_FreeEnergy.rst | 69 ++++++++++++++++++++++++++++ python/BioSimSpace/Protocol/_AToM.py | 4 ++ 2 files changed, 73 insertions(+) diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index 0d931ecb0..92bd1934c 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -143,3 +143,72 @@ for minimising or equilibrating structures for each lambda window. See the :class:`FreeEnergyEquilibration ` protocols for details. At present, these protocols are only supported when not using :class:`SOMD ` as the simulation engine. + + +BioSimSpace.FreeEnergy.AToM +---------------------------- +The *FreeEnergy.AToM* package contains tools to configure, run, and analyse *relative* +free energy simulations using the *alchemical transfer method*, developed by the +`Gallachio lab `. + +Only available in the *OpenMM* engine, the *alchemical transfer method* replaces the +conventional notion of perturbing between two end states with a single system containing +both the free and bound ligand. The relative free energy of binding is then associated with the +swapping of the bound and free ligands. + +The *alchemical transfer method* has a few advantages over the conventional approach, mainly arising +from its relative simplicity and flexibility. The method is particularly well-suited to the study of +difficult ligand transformations, such as scaffold-hopping and charge change perturbations. The presence +of both ligands in the same system also replaces the conventional idea of "legs", combining free, bound, +forward and reverse legs into a single simulation. + +In order to perform a relative free energy calculation using the *alchemical transfer method*, the user +requires a protein and two ligands, as well as knowledge of any common core shared between the two ligands. +AToM-compatible systems can be created from these elements using the :class:`FreeEnergy.AToM ` class. + +.. code-block:: python + + from BioSimSpace.FreeEnergy import AToM + + ... + + # Create an AToM object. 'protein', 'ligand1' and 'ligand2' must be BioSimSpace Molecule + # objects. + # 'ligand1' is bound in the lambda=0 state, 'ligand2' is bound in the lambda=1 state. + AToM_object = AToM(protein=protein, ligand1=ligand1, ligand2=ligand2) + + # Now create the BioSimSpace system. Here is where knowledge of the common core is required. + # ligand1_rigid_core and ligand2_rigid_core are lists of integers, each of length three, + # which define the indices of the common core atoms in the ligands. + # Displacement is the desired distance between the centre of masses of the two ligands. + system, data = AToM_object.prepare( + ligand1_rigid_core=[1, 2, 3], + ligand2_rigid_core=[1, 2, 3], + displacement=22.0 + ) + + # The prepare function returns two objects: a prepared BioSimSpace system that is ready + # for AToM simulation, and a data dictionary containing information relevant to AToM calculations. + # This dictionary does not need to be kept, as the information is also encoded in the system + # object, but it may be useful for debugging. + + +Preparing the system for production runs is slightly more complex than in the conventional approach, as the +system will need to be annealed to an intermediate lambda value, and then equilibrated at that value. The +:class:`Protocol ` class contains functionality for equilibrating and annealing systems +for AToM simulations. + +Once the production simulations have been completed, the user can analyse the data using the :func:`analyse ` function. + +.. code-block:: python + + from BioSimSpace.FreeEnergy import AToM + + ... + + # Analyse the simulation data. + ddg, error = AToM.analyse("path/to/working/directory") + + + + diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 21335713c..49760bc85 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1583,6 +1583,8 @@ def restraints(cls): class AToMAnnealing(_AToM): + """Annealing protocol for AToM simulations.""" + def __init__( self, system=None, @@ -2399,6 +2401,8 @@ def _setAnnealNumCycles(self, anneal_numcycles): class AToMProduction(_AToM): + """Production protocol for AToM simulations.""" + def __init__( self, system=None, From 4084fd53bf5f6007f716c1617f8ac0c5b8c5df6d Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 1 Aug 2024 16:46:10 +0100 Subject: [PATCH 055/123] Adds ignore_lower input to UWHAM analysis, allowing the first N samples to be ignored when calculating energies Also adds a test for UWHAM analysis based on known answers from UWHAM-R --- python/BioSimSpace/FreeEnergy/_atm.py | 36 ++++- python/BioSimSpace/FreeEnergy/_ddg.py | 12 +- tests/FreeEnergy/test_atm.py | 197 ++++++++++++++++++++++++++ 3 files changed, 233 insertions(+), 12 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 93c65762b..329f4a8bc 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1058,7 +1058,12 @@ def run( runner.run() @staticmethod - def analyse(work_dir, method="UWHAM", inflex_point=None): + def analyse( + work_dir, + method="UWHAM", + ignore_lower=0, + inflex_indices=None, + ): """Analyse the AToM simulation. Parameters @@ -1067,8 +1072,12 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): The working directory where the AToM simulation is located. method : str The method to use for the analysis. Currently only UWHAM is supported. - inflex_point : float - The inflection point for the UWHAM analysis. + ignore_lower : int + Ignore the first N samples when analysing. + inflex_indices : [int] + The indices at which the direction changes. For example, if direction=[1,1,-1,-1], + then inflex_indices=[1,2]. + If None, the inflexion point will be found automatically. Returns ------- @@ -1077,8 +1086,21 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): ddg_err : float The error in the free energy difference. """ + if not isinstance(ignore_lower, int): + raise TypeError("'ignore_lower' must be an integer.") + if ignore_lower < 0: + raise ValueError("'ignore_lower' must be a positive integer.") + if inflex_indices is not None: + if not isinstance(inflex_indices, list): + raise TypeError("'inflex_indices' must be a list.") + if not all(isinstance(x, int) for x in inflex_indices): + raise TypeError("'inflex_indices' must be a list of integers.") + if not len(inflex_indices) == 2: + raise ValueError("'inflex_indices' must have length 2.") if method == "UWHAM": - total_ddg, total_ddg_err = AToM._analyse_UWHAM(work_dir, inflex_point) + total_ddg, total_ddg_err = AToM._analyse_UWHAM( + work_dir, ignore_lower, inflex_indices + ) return total_ddg, total_ddg_err if method == "MBAR": from ._relative import Relative as _Relative @@ -1100,13 +1122,15 @@ def analyse(work_dir, method="UWHAM", inflex_point=None): raise ValueError(f"Method {method} is not supported for analysis.") @staticmethod - def _analyse_UWHAM(work_dir, inflex_point=None): + def _analyse_UWHAM(work_dir, ignore_lower, inflex_indices=None): """ Analyse the UWHAM results from the AToM simulation. """ from ._ddg import analyse_UWHAM as _UWHAM - total_ddg, total_ddg_err = _UWHAM(work_dir, inflex_point) + total_ddg, total_ddg_err = _UWHAM( + work_dir, ignore_lower, inflection_indices=inflex_indices + ) return total_ddg, total_ddg_err @staticmethod diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 6db1dd6cb..0a9ae2255 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -85,7 +85,7 @@ def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): return ebias1 + lam2 * epert + w0 -def npot_fcn(e0, epert, bet, lam1, lam2, alpha, u0, w0): +def _npot_fcn(e0, epert, bet, lam1, lam2, alpha, u0, w0): # This is the negative reduced energy # -beta*(U0+bias) return -bet * (e0 + _bias_fcn(epert, lam1, lam2, alpha, u0, w0)) @@ -196,7 +196,7 @@ def _get_inflection_indices(folders): return inflection_indices -def analyse_UWHAM(work_dir, inflection_indices=None): +def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): """ Analyse the output of BioSimSpace AToM simulations. @@ -226,6 +226,8 @@ def analyse_UWHAM(work_dir, inflection_indices=None): inflection_indices = _get_inflection_indices(folders) for folder in folders.values(): df = _pd.read_csv(folder / "openmm.csv") + # drop the first `ignore_lower` rows of each df + df = df.iloc[ignore_lower:] df["beta"] = 1 / (0.001986209 * df["temperature"]) total_states += 1 total_samples += len(df) @@ -270,7 +272,7 @@ def analyse_UWHAM(work_dir, inflection_indices=None): sid = 0 for be in range(len(n_samples_first_half)): - lnq = npot_fcn( + lnq = _npot_fcn( e0=pots_first_half, epert=pert_es_first_half, bet=dataframes[be]["beta"].values[0], @@ -282,7 +284,6 @@ def analyse_UWHAM(work_dir, inflection_indices=None): ) ln_q[sid] = lnq sid += 1 - f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) ddg = f_i[-1] - f_i[0] ddg1 = ddg / dataframes[0]["beta"].values[0] @@ -297,7 +298,7 @@ def analyse_UWHAM(work_dir, inflection_indices=None): # note the order of (be, te) for be in range(len(n_samples_second_half)): - lnq = npot_fcn( + lnq = _npot_fcn( e0=pots_second_half, epert=pert_es_second_half, bet=dataframes[be]["beta"].values[0], @@ -309,7 +310,6 @@ def analyse_UWHAM(work_dir, inflection_indices=None): ) ln_q[sid] = lnq sid += 1 - f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) ddg = f_i[-1] - f_i[0] ddg2 = ddg / dataframes[0]["beta"].values[0] diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 08d3640a9..a6b3cbd38 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -445,3 +445,200 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): print(ens_nonlam) for key, en in ens_GL_nolam.items(): assert pytest.approx(ens_nonlam[key][0], rel=1e-3) == en + + +def test_UWHAM(): + import numpy as np + + # To try and ensure parity with the Gallachio lab code + # we will test each individual element of the UWHAM calculation + potential = -69702.79 + e_pert = 70.48908 + beta = 1.678238963 + lambda1 = 0.0 + lambda2 = 0.0 + alpha = 0.0 + u0 = 0.0 + w0 = 0.0 + + n_pot = 116977.9 + + from BioSimSpace.FreeEnergy._ddg import _npot_fcn + + npot = _npot_fcn( + e0=potential, + epert=e_pert, + bet=beta, + lam1=lambda1, + lam2=lambda2, + alpha=alpha, + u0=u0, + w0=w0, + ) + + assert pytest.approx(npot, rel=1e-3) == n_pot + + # Now testing agreement with known values from + # UWHAM-R analysis + ln_q_array = np.array( + [ + [ + 117251.85638785, + 117147.70578372, + 117259.71235395, + 117184.35793014, + 116934.45115, + 117405.64541825, + 116930.39936544, + 117131.36660758, + 117072.35871073, + 117041.11910054, + 117166.97160247, + ], + [ + 117246.36847836, + 117141.83269751, + 117254.16656958, + 117181.69670683, + 116933.05433974, + 117404.90353356, + 116930.17474063, + 117130.18191686, + 117071.63726339, + 117041.08918386, + 117167.13191866, + ], + [ + 117240.88056888, + 117135.95961129, + 117248.62078521, + 117179.03548353, + 116931.65752948, + 117404.16164887, + 116929.95011581, + 117128.99722614, + 117070.91581606, + 117041.05926718, + 117167.29223485, + ], + [ + 117235.3926594, + 117130.08652508, + 117243.07500085, + 117176.37426023, + 116930.26071922, + 117403.41976418, + 116929.725491, + 117127.81253542, + 117070.19436872, + 117041.0293505, + 117167.45255104, + ], + [ + 117229.90474991, + 117124.21343886, + 117237.52921648, + 117173.71303693, + 116928.86390896, + 117402.67787949, + 116929.50086619, + 117126.6278447, + 117069.47292138, + 117040.99943382, + 117167.61286723, + ], + [ + 117224.41684043, + 117118.34035265, + 117231.98343212, + 117171.05181363, + 116927.4670987, + 117401.9359948, + 116929.27624138, + 117125.44315397, + 117068.75147404, + 117040.96951714, + 117167.77318343, + ], + [ + 117218.92893094, + 117112.46726644, + 117226.43764775, + 117168.39059033, + 116926.07028844, + 117401.1941101, + 116929.05161657, + 117124.25846325, + 117068.0300267, + 117040.93960046, + 117167.93349962, + ], + [ + 117213.44102146, + 117106.59418022, + 117220.89186339, + 117165.72936702, + 116924.67347817, + 117400.45222541, + 116928.82699176, + 117123.07377253, + 117067.30857936, + 117040.90968378, + 117168.09381581, + ], + [ + 117207.95311198, + 117100.72109401, + 117215.34607902, + 117163.06814372, + 116923.27666791, + 117399.71034072, + 116928.60236695, + 117121.88908181, + 117066.58713202, + 117040.8797671, + 117168.254132, + ], + [ + 117202.46520249, + 117094.84800779, + 117209.80029465, + 117160.40692042, + 116921.87985765, + 117398.96845603, + 116928.37774214, + 117120.70439109, + 117065.86568468, + 117040.84985042, + 117168.41444819, + ], + [ + 117196.97729301, + 117088.97492158, + 117204.25451029, + 117157.74569712, + 116920.48304739, + 117398.22657134, + 116928.15311733, + 117119.51970037, + 117065.14423734, + 117040.81993374, + 117168.57476438, + ], + ] + ) + + n_samples = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + + known_answer = 12.42262 + known_error = 1.422156 + + from BioSimSpace.FreeEnergy._ddg import _estimate_f_i + + f_i, d_i, weights = _estimate_f_i(ln_q_array, n_samples) + ddg = f_i[-1] - f_i[0] + ddg = ddg / beta + ddg_error = np.sqrt(d_i[-1] + d_i[0]) / beta + + assert pytest.approx(ddg, rel=1e-3) == known_answer + assert pytest.approx(ddg_error, rel=1e-3) == known_error From c837b814340f7f8e2fba7002b6b29324901b4f80 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 2 Aug 2024 08:49:56 +0100 Subject: [PATCH 056/123] Switch to using pip install. [ci skip] --- README.rst | 8 ++++---- doc/source/install.rst | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index b1753915e..e2e64650c 100644 --- a/README.rst +++ b/README.rst @@ -113,20 +113,20 @@ Conda environment. git clone https://github.com/openbiosim/biosimspace cd biosimspace/python - python setup.py install + pip install . If you plan to develop and want an editable install, use: .. code-block:: bash - python setup.py develop + pip install -e . If you want to skip the installation of BioSimSpace dependencies, e.g. if they are already installed, then you can use: .. code-block:: bash - BSS_SKIP_DEPENDENCIES=1 python setup.py develop + BSS_SKIP_DEPENDENCIES=1 pip install -e . Once finished, you can test the installation by running: @@ -150,7 +150,7 @@ latest development code into that. conda activate openbiosim-dev git clone https://github.com/openbiosim/biosimspace cd biosimspace/python - BSS_SKIP_DEPENDENCIES=1 python setup.py develop + BSS_SKIP_DEPENDENCIES=1 pip install -e . (You may also want to install optional dependencies, such as ``ambertools`` and ``gromacs`` into your environment.) diff --git a/doc/source/install.rst b/doc/source/install.rst index 728491e61..8bf59dff8 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -219,20 +219,20 @@ Conda environment. git clone https://github.com/openbiosim/biosimspace cd biosimspace/python - python setup.py install + pip install . If you plan to develop and want an editable install, use: .. code-block:: bash - python setup.py develop + pip install -e . If you want to skip the installation of BioSimSpace dependencies, e.g. if they are already installed, then you can use: .. code-block:: bash - BSS_SKIP_DEPENDENCIES=1 python setup.py develop + BSS_SKIP_DEPENDENCIES=1 pip install -e . Once finished, you can test the installation by running: @@ -256,7 +256,7 @@ latest development code into that. conda activate openbiosim-dev git clone https://github.com/openbiosim/biosimspace cd biosimspace/python - BSS_SKIP_DEPENDENCIES=1 python setup.py develop + BSS_SKIP_DEPENDENCIES=1 pip install -e . (You may also want to install optional dependencies, such as ``ambertools`` and ``gromacs`` into your environment.) From 63023f6294fc868d3c849654f0ca04cce49b1109 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 2 Aug 2024 09:54:53 +0100 Subject: [PATCH 057/123] Fixed docs for annealing and production protocols --- python/BioSimSpace/Protocol/_AToM.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 49760bc85..cde7d96b4 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1623,7 +1623,7 @@ def __init__( Parameters ---------- - system : :class:`System `` + system : :class:`System ` A prepared AToM system. data : dict @@ -2442,7 +2442,7 @@ def __init__( Parameters ---------- - system : :class:`System `` + system : :class:`System ` A prepared AToM system. data : dict From 7f2e181167e044632126010073f5ff5fd8222564 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 2 Aug 2024 16:47:44 +0100 Subject: [PATCH 058/123] Adds support for safely resarting simulaitons from checkpoints --- python/BioSimSpace/Process/_atm.py | 47 ++++--- python/BioSimSpace/Process/_atom_utils.py | 151 ++++++++++++++-------- python/BioSimSpace/Protocol/_AToM.py | 1 - 3 files changed, 126 insertions(+), 73 deletions(-) diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index c44076a8f..494a3cce3 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -602,14 +602,6 @@ def _generate_config_production(self): print("The simulation has already finished!") return - # Inform user that a restart was loaded. - self.addToConfig("\n# Print restart information.") - self.addToConfig("if is_restart:") - self.addToConfig(f" steps = {total_steps}") - self.addToConfig(" percent_complete = 100 * (step / steps)") - self.addToConfig(" print('Loaded state from an existing simulation.')") - self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") - # Get the report and restart intervals. report_interval = self._protocol.getReportInterval() restart_interval = self._protocol.getRestartInterval() @@ -620,14 +612,6 @@ def _generate_config_production(self): if restart_interval > steps: restart_interval = steps - # Add the reporters. - self.addToConfig("\n# Add reporters.") - self._add_config_reporters( - state_interval=report_interval, - traj_interval=restart_interval, - is_restart=is_restart, - ) - # Work out the total simulation time in picoseconds. run_time = steps * timestep @@ -637,12 +621,37 @@ def _generate_config_production(self): # Work out the number of steps per cycle. steps_per_cycle = int(steps / cycles) + self.addToConfig( + util.createRestartLogic( + total_cycles=cycles, steps_per_cycle=steps_per_cycle + ) + ) + # Inform user that a restart was loaded. + self.addToConfig("\n# Print restart information.") + self.addToConfig("if is_restart:") + self.addToConfig(f" steps = {total_steps}") + self.addToConfig(" percent_complete = 100 * (step / steps)") + self.addToConfig(" print('Loaded state from an existing simulation.')") + self.addToConfig(" print(f'Simulation is {percent_complete}% complete.')") + self.addToConfig(" print(f'running an additional {numcycles} cycles')") + + # Add the reporters. + self.addToConfig("\n# Add reporters.") + self._add_config_reporters( + state_interval=report_interval, + traj_interval=restart_interval, + is_restart=is_restart, + ) + self.addToConfig(f"\ntemperature = {temperature}") if analysis_method == "UWHAM": # Now run the simulation. self.addToConfig( util.createSoftcorePertELoop( - self._name, cycles, steps_per_cycle, report_interval, timestep, step + name=self._name, + steps_per_cycle=steps_per_cycle, + report_interval=report_interval, + timestep=timestep, ) ) elif analysis_method == "both": @@ -656,11 +665,9 @@ def _generate_config_production(self): self.addToConfig( util.createReportingBoth( name=self._name, - cycles=cycles, steps_per_cycle=steps_per_cycle, timestep=timestep, inflex_point=inflex, - steps=step, ) ) else: @@ -673,11 +680,9 @@ def _generate_config_production(self): self.addToConfig( util.createLoopWithReporting( name=self._name, - cycles=cycles, steps_per_cycle=steps_per_cycle, report_interval=report_interval, timestep=timestep, - steps=step, inflex_point=inflex, ) ) diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atom_utils.py index b7ed53051..2dc67f544 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atom_utils.py @@ -539,15 +539,27 @@ def createAnnealingProtocol(self): output += "simulation.saveState('openmm.xml')" return output + def createRestartLogic(self, total_cycles, steps_per_cycle): + # Creates the logic to calculate, at run time, the number of cycles that need to be run + # based on the number of steps that have already been run + output = "" + output += f"total_required_cycles = {total_cycles}\n" + output += "if not is_restart:\n" + output += " steps_so_far = 0\n" + output += " numcycles = total_required_cycles\n" + output += "else:\n" + output += " steps_so_far = step\n" + output += f" cycles_so_far = steps_so_far / {steps_per_cycle}\n" + output += " numcycles = int(total_required_cycles - cycles_so_far)\n" + return output + def createLoopWithReporting( self, name, - cycles, steps_per_cycle, report_interval, timestep, inflex_point, - steps=0, ): """Creates the loop in which simulations are run, stopping each cycle to report the potential energies required for MBAR analysis. @@ -568,21 +580,30 @@ def createLoopWithReporting( The index at which the protocol changes direction. Potentials only need to be calculated for each half of the protocol. """ output = "" - output += "# Create the dictionary which will hold the energies\n" + output += "# Reporting for MBAR:\n" + # round master lambda to 4 d.p. to avoid floating point errors output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" - output += "energies = {}\n" - output += "energies['time'] = []\n" - output += "energies['fep-lambda'] = []\n" - output += "energies['temperature'] = []\n" - output += "for i in master_lambda_list:\n" - output += " energies[i] = []\n" + output += f"master_lambda = master_lambda_list[window_index]\n" + + output += "if is_restart:\n" + output += " try:\n" + output += " MBAR_df = pd.read_csv(f'energies_{master_lambda}.csv')\n" + output += " energies = MBAR_df.to_dict('list')\n" + output += " energies = {float(k) if k.replace('.', '').isdigit() else k: v for k, v in energies.items()}\n" + output += " except FileNotFoundError:\n" + output += " raise FileNotFoundError('MBAR data not found, unable to restart')\n" + output += "else:\n" + output += " energies = {}\n" + output += " energies['time'] = []\n" + output += " energies['fep-lambda'] = []\n" + output += " energies['temperature'] = []\n" + output += " for i in master_lambda_list:\n" + output += " energies[i] = []\n" output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" - output += f"steps_so_far = {steps}\n" output += "# Timestep in ps\n" output += f"timestep = {timestep}\n" output += f"inflex_point = {inflex_point}\n" - output += f"master_lambda = master_lambda_list[window_index]\n" - output += f"for x in range(0, {cycles}):\n" + output += f"for x in range(0, numcycles):\n" output += f" simulation.step({steps_per_cycle})\n" output += f" steps_so_far += {steps_per_cycle}\n" output += " time = steps_so_far * timestep\n" @@ -641,29 +662,43 @@ def createLoopWithReporting( return output def createSoftcorePertELoop( - self, name, cycles, steps_per_cycle, report_interval, timestep, steps=0 + self, + name, + steps_per_cycle, + report_interval, + timestep, ): """Recreation of Gallachio lab analysis - currently uses {cycles} to define sampling frequency""" output = "" output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" - output += f"steps_so_far = {steps}\n" output += "# Timestep in ps\n" output += f"timestep = {timestep}\n" output += "\n" output += "#Create dictionary for storing results in the same manner as the Gallachio lab code\n" - output += "result = {}\n" - output += "result['window'] = []\n" - output += "result['temperature'] = []\n" - output += "result['direction'] = []\n" - output += "result['lambda1'] = []\n" - output += "result['lambda2'] = []\n" - output += "result['alpha'] = []\n" - output += "result['uh'] = []\n" - output += "result['w0'] = []\n" - output += "result['pot_en'] = []\n" - output += "result['pert_en'] = []\n" - output += "result['metad_offset'] = []\n" - output += f"for x in range(0, {cycles}):\n" + # Logic for restarting simulations + output += "#Reporting for UWHAM:\n" + output += "if is_restart:\n" + # first UWHAM + output += " try:\n" + output += f" UWHAM_df = pd.read_csv('{name}.csv')\n" + output += " result = UWHAM_df.to_dict('list')\n" + output += " except FileNotFoundError:\n" + output += " raise FileNotFoundError('UWHAM data not found, unable to restart')\n" + output += "else:\n" + output += " result = {}\n" + output += " result['window'] = []\n" + output += " result['temperature'] = []\n" + output += " result['direction'] = []\n" + output += " result['lambda1'] = []\n" + output += " result['lambda2'] = []\n" + output += " result['alpha'] = []\n" + output += " result['uh'] = []\n" + output += " result['w0'] = []\n" + output += " result['pot_en'] = []\n" + output += " result['pert_en'] = []\n" + output += " result['metad_offset'] = []\n" + + output += f"for x in range(0, numcycles):\n" output += f" simulation.step({steps_per_cycle})\n" output += ( " state = simulation.context.getState(getEnergy = True, groups = -1)\n" @@ -714,46 +749,60 @@ def createSoftcorePertELoop( def createReportingBoth( self, name, - cycles, steps_per_cycle, timestep, inflex_point, - steps=0, ): output = "" - output += f"steps_so_far = {steps}\n" output += "# Timestep in ps\n" output += f"timestep = {timestep}\n" output += "\n" + # Logic for restarting simulations output += "#Reporting for UWHAM:\n" - output += "result = {}\n" - output += "result['window'] = []\n" - output += "result['temperature'] = []\n" - output += "result['direction'] = []\n" - output += "result['lambda1'] = []\n" - output += "result['lambda2'] = []\n" - output += "result['alpha'] = []\n" - output += "result['uh'] = []\n" - output += "result['w0'] = []\n" - output += "result['pot_en'] = []\n" - output += "result['pert_en'] = []\n" - output += "result['metad_offset'] = []\n" + output += "if is_restart:\n" + # first UWHAM + output += " try:\n" + output += f" UWHAM_df = pd.read_csv('{name}.csv')\n" + output += " result = UWHAM_df.to_dict('list')\n" + output += " except FileNotFoundError:\n" + output += " raise FileNotFoundError('UWHAM data not found, unable to restart')\n" + output += "else:\n" + output += " result = {}\n" + output += " result['window'] = []\n" + output += " result['temperature'] = []\n" + output += " result['direction'] = []\n" + output += " result['lambda1'] = []\n" + output += " result['lambda2'] = []\n" + output += " result['alpha'] = []\n" + output += " result['uh'] = []\n" + output += " result['w0'] = []\n" + output += " result['pot_en'] = []\n" + output += " result['pert_en'] = []\n" + output += " result['metad_offset'] = []\n" output += "# Reporting for MBAR:\n" # round master lambda to 4 d.p. to avoid floating point errors output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" - output += "energies = {}\n" - output += "energies['time'] = []\n" - output += "energies['fep-lambda'] = []\n" - output += "energies['temperature'] = []\n" - output += "for i in master_lambda_list:\n" - output += " energies[i] = []\n" - output += f"inflex_point = {inflex_point}\n" output += f"master_lambda = master_lambda_list[window_index]\n" - output += f"steps_so_far = {steps}\n" + output += "if is_restart:\n" + output += " try:\n" + output += " MBAR_df = pd.read_csv(f'energies_{master_lambda}.csv')\n" + output += " energies = MBAR_df.to_dict('list')\n" + output += " energies = {float(k) if k.replace('.', '').isdigit() else k: v for k, v in energies.items()}\n" + output += " except FileNotFoundError:\n" + output += " raise FileNotFoundError('MBAR data not found, unable to restart')\n" + output += "else:\n" + output += " energies = {}\n" + output += " energies['time'] = []\n" + output += " energies['fep-lambda'] = []\n" + output += " energies['temperature'] = []\n" + output += " for i in master_lambda_list:\n" + output += " energies[i] = []\n" + + output += f"inflex_point = {inflex_point}\n" output += "# Now run the simulation.\n" - output += f"for x in range(0, {cycles}):\n" + output += f"for x in range(0, numcycles):\n" output += f" simulation.step({steps_per_cycle})\n" output += f" steps_so_far += {steps_per_cycle}\n" output += " time = steps_so_far * timestep\n" diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index cde7d96b4..4f1c3b83d 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -2502,7 +2502,6 @@ def __init__( pos_restrained_atoms : list of int The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit ` The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). From b264c47ddcecc121fce8d192079ea1b61ef36dc5 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 5 Aug 2024 16:36:46 +0100 Subject: [PATCH 059/123] Fixes for using BioSimSpace runner to run production, as well as fixes and tests for restarting from checkpoint! --- python/BioSimSpace/FreeEnergy/_atm.py | 2 +- python/BioSimSpace/Process/_atm.py | 13 +++++++--- python/BioSimSpace/Process/_openmm.py | 4 ++-- tests/FreeEnergy/test_atm.py | 34 +++++++++++++++++++++++++++ tests/Protocol/test_atm_protocol.py | 2 ++ 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 329f4a8bc..0bcc57769 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1056,6 +1056,7 @@ def run( setup_only=setup_only, ) runner.run() + return runner._runner @staticmethod def analyse( @@ -1314,7 +1315,6 @@ def _inititalise_runner(self, system): lambda_list = lambda_list[1:] # Enumerate starting at 1 to account for the removal of the first lambda value for index, lam in enumerate(lambda_list, 1): - # TODO: Support for simulations restarting from a checkpoint. # Files are named according to index, rather than lambda value # This is to avoid confusion arising from the fact that there are multiple lambdas # and that the values of lambda1 and lambda2 wont necessarily be go from 0 to 1 diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index 494a3cce3..fe3d4d86d 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -34,8 +34,8 @@ class OpenMMAToM(_OpenMM): def __init__( self, - system, - protocol, + system=None, + protocol=None, reference_system=None, exe=None, name="openmm", @@ -587,7 +587,14 @@ def _generate_config_production(self): ) # Check for a restart file and load the simulation state. - is_restart, step = self._add_config_restart() + is_restart, _ = self._add_config_restart() + + #NOTE: The restarting logic here is different to previous openMM classes + # It doesn't use the steps value from the restart function, instead + # the number of steps is worked out at runtime within the openmm script + # this means that restarting either by using the biosimspace runner + # OR by running the openmm script directly will work the same. + step = 0 # Work out the number of integration steps. total_steps = _math.ceil( diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 1ed432da3..36458a81d 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -70,8 +70,8 @@ class OpenMM(_process.Process): # Special cases for generate config when using ATM protocols. def __new__( cls, - system, - protocol, + system=None, + protocol=None, reference_system=None, exe=None, name="openmm", diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index a6b3cbd38..99198c0d1 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -5,6 +5,7 @@ import tempfile import json import pandas as pd +import os import BioSimSpace as BSS @@ -78,6 +79,39 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM(system=atm_system) +def test_run(TEMOA_hostguest): + system, _ = TEMOA_hostguest + production_atm = BSS.Protocol.AToMProduction( + system=system, + CMCM_restraint=True, + runtime="2 fs", + report_interval=1, + restart_interval=1, + num_lambda=2, + analysis_method="UWHAM", + ) + production_atm2 = BSS.Protocol.AToMProduction( + system=system, + CMCM_restraint=True, + runtime="4 fs", + report_interval=1, + restart_interval=1, + num_lambda=2, + analysis_method="UWHAM", + ) + with tempfile.TemporaryDirectory() as tmpdirname: + production = BSS.FreeEnergy.AToM.run(system, production_atm, work_dir=tmpdirname) + production.wait() + # read openmm.csv and make sure it has a single row + df = pd.read_csv(os.path.join(tmpdirname,"lambda_0.0000/openmm.csv")) + assert len(df) == 1 + + production2 = BSS.FreeEnergy.AToM.run(system, production_atm2, work_dir=tmpdirname) + production2.wait() + df = pd.read_csv(os.path.join(tmpdirname,"lambda_0.0000/openmm.csv")) + assert len(df) == 2 + + def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): # Tests the single point energies of the # Mirroring inputs for G. lab code diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 593c516f4..83beeda07 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -287,3 +287,5 @@ def test_atm_production(TEMOA_hostguest): num_lambda=6, analysis_method="both", ) + + # Now test the ability to restart. From ab054a85d7917a9505752f6a7e850e9a9ef0c657 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 6 Aug 2024 15:16:11 +0100 Subject: [PATCH 060/123] Runner fix --- python/BioSimSpace/FreeEnergy/_atm.py | 5 ++++- tests/Protocol/test_atm_protocol.py | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 0bcc57769..9f991e362 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1056,7 +1056,10 @@ def run( setup_only=setup_only, ) runner.run() - return runner._runner + if setup_only: + return None + else: + return runner._runner @staticmethod def analyse( diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 83beeda07..593c516f4 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -287,5 +287,3 @@ def test_atm_production(TEMOA_hostguest): num_lambda=6, analysis_method="both", ) - - # Now test the ability to restart. From 532b97c3b4ff5de0d79c6653eb9148eeb6f62e73 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 6 Aug 2024 15:46:15 +0100 Subject: [PATCH 061/123] Remove analysis methods used for testing --- python/BioSimSpace/FreeEnergy/_atm.py | 8 -- python/BioSimSpace/FreeEnergy/_ddg.py | 103 -------------------------- 2 files changed, 111 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 9f991e362..3b8ff334d 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1114,14 +1114,6 @@ def analyse( ddg_forward = _Relative.difference(ddg_forward) ddg_reverse = _Relative.difference(ddg_reverse) return ddg_forward, ddg_reverse - - if method == "test": - ddg_forward, ddg_reverse = AToM._analyse_test(work_dir) - return ddg_forward, ddg_reverse - - if method == "femto": - est, o = AToM._analyse_femto(work_dir) - return est, o else: raise ValueError(f"Method {method} is not supported for analysis.") diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 0a9ae2255..db3c56ed9 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -472,106 +472,3 @@ def analyse_MBAR(work_dir): ) return data_forward_final, data_backward_final - - -def _naive_MBAR(u_kn, n_k): - # print(u_kn) - # print(n_k) - mbar = pymbar.MBAR(u_kn, n_k) - ddg_dict = mbar.compute_free_energy_differences() - - return ddg_dict["Delta_f"][0, :], ddg_dict["dDelta_f"][0, :] ** 2, mbar.W_nk - - -def new_MBAR(work_dir): - glob_path = _pathlib.Path(work_dir) - files = sorted(glob_path.glob("**/energies*.csv")) - - energies_forward = [] - energies_reverse = [] - n_k_forward = [] - n_k_reverse = [] - betas = [] - for file in files: - df = _pd.read_csv(file) - if df.iloc[:, -1:].isnull().values.all(): - reverse = False - else: - reverse = True - # now drop columns containing NaN values - df = df.dropna(axis=1) - # beta, specifically for energies in units of kj/mol - df["beta"] = 1 / (0.001986209 * df["temperature"]) - betas.append(df["beta"].values[0]) - # check that beta is the same for all files - if len(set(betas)) != 1: - raise ValueError("All temperatures must be the same") - temp_list = [] - # now reduce the potentials within the dataframe - for col in df.columns: - try: - float(col) - df[col] = df[col] * df["beta"] - temp_list.append(df[col].to_numpy()) - except ValueError: - continue - if not reverse: - n_k_forward.append(len(df)) - # now need to flatten temp_list to a single 1d list and append to energies - energies_forward.append(numpy.array(temp_list).ravel()) - else: - n_k_reverse.append(len(df)) - energies_reverse.append(numpy.array(temp_list).ravel()) - energies_forward = numpy.array(energies_forward) - f_i, fi_var, weight = _naive_MBAR(energies_forward, n_k_forward) - ddg_forward = (f_i[-1] - f_i[0]) / betas[0] - ddg_forward_error = numpy.sqrt(fi_var[-1] + fi_var[0]) - - energies_reverse = numpy.array(energies_reverse) - f_i, fi_var, weight = _naive_MBAR(energies_reverse, n_k_reverse) - ddg_reverse = (f_i[-1] - f_i[0]) / betas[0] - ddg_reverse_error = numpy.sqrt(fi_var[-1] + fi_var[0]) - - return ddg_forward, ddg_reverse - - -def MBAR_hijack_femto(work_dir): - import femto.fe.ddg - from openmm.unit import kelvin - - glob_path = _pathlib.Path(work_dir) - files = sorted(glob_path.glob("**/energies*.csv")) - - energies = [] - n_k = [] - num_nan = 0 - for counter, file in enumerate(files): - df = _pd.read_csv(file) - # beta, specifically for energies in units of kj/mol - df["beta"] = 1 / (0.001986209 * df["temperature"]) - energies_temp = [] - # now reduce the potentials within the dataframe - for col in df.columns: - if counter == 0: - # counter the number of columns that are full of NaNs - if df[col].isnull().values.all(): - num_nan += 1 - try: - float(col) - if counter == 0: - n_k.append(len(df[col])) - df[col] = df[col] * df["beta"] - energies_temp.append(df[col].to_numpy()) - except ValueError: - continue - energies_temp = numpy.array(energies_temp) - energies_temp = energies_temp.ravel() - energies.append(energies_temp) - energies = numpy.array(energies) - state_groups = [(num_nan, 1.0), (num_nan, 1.0)] - temperature = 300 * kelvin - print(n_k) - est, overlap = femto.fe.ddg.estimate_ddg( - energies, numpy.array(n_k), temperature, state_groups - ) - return est, overlap From 491868ec778410c1a2ef8975254dfa7cfd7ee703 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 7 Aug 2024 14:04:46 +0100 Subject: [PATCH 062/123] Alters UWHAM analysis to bring it more in line with GL code --- python/BioSimSpace/FreeEnergy/_ddg.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index db3c56ed9..d907491ac 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -82,6 +82,7 @@ def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): if alpha > 0: ee = 1 + numpy.exp(-alpha * (epert - u0)) ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha + print(ebias1) return ebias1 + lam2 * epert + w0 @@ -217,6 +218,8 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): The error in the free energy. """ + # NOTE: This code is not designed to work with repex + # It always assumes that each window is at the same temperature dataframes = [] slices = {} total_states = 0 @@ -228,6 +231,7 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): df = _pd.read_csv(folder / "openmm.csv") # drop the first `ignore_lower` rows of each df df = df.iloc[ignore_lower:] + # Beta values, assuming that energies are in kj/mol df["beta"] = 1 / (0.001986209 * df["temperature"]) total_states += 1 total_samples += len(df) @@ -264,6 +268,17 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): pots.append(e0) pert_es.append(pert_e) + # Should only matter in cases where states are at different temps, + # leaving here for debugging and parity with GL code + for be in range(len(n_samples)): + pots[be] = pots[be] - _bias_fcn( + pert_es[be], + lam1=dataframes[be]["lambda1"].values[0], + lam2=dataframes[be]["lambda2"].values[0], + alpha=dataframes[be]["alpha"].values[0], + u0=dataframes[be]["uh"].values[0], + w0=dataframes[be]["w0"].values[0], + ) # We will assume that the point at which leg1 and leg2 are split is halfway through n_samples_first_half = n_samples[: inflection_indices[0] + 1] pots_first_half = numpy.concatenate(pots[: inflection_indices[0] + 1]) From c3421990d8e1897c076fae465ce95833ff29e67e Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 7 Aug 2024 14:31:21 +0100 Subject: [PATCH 063/123] Doc fixes --- python/BioSimSpace/FreeEnergy/_atm.py | 2 +- python/BioSimSpace/Protocol/_AToM.py | 36 +++++++++++++-------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 3b8ff334d..3565cd4c3 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -853,7 +853,7 @@ def viewRigidCores( ---------- system : :class:`System ` The system for the AToM simulation that has been prepared AToM.prepare(). - All other parameters are ignored if this is provided. + All other arguments are ignored if this is provided. ligand1 : :class:`Molecule ` The bound ligand. ligand2 : :class:`Molecule ` diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_AToM.py index 4f1c3b83d..8ccd57f10 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_AToM.py @@ -1680,7 +1680,7 @@ def __init__( pos_rest_width : float, :class:`Length ` The width of the flat-bottom potential used for coordinate restraint in Angstroms. - pos_restrained_atoms : list of int + pos_restrained_atoms : [int] The atoms to be restrained. align_kf_sep : int, float, str, :class:`GeneralUnit ` @@ -2499,7 +2499,7 @@ def __init__( pos_rest_width : :class:`Length `, float The width of the flat-bottom potential used for coordinate restraint in Angstroms. - pos_restrained_atoms : list of int + pos_restrained_atoms : [int] The atoms to be restrained. align_kf_sep : int, float, str, :class:`GeneralUnit ` @@ -2533,25 +2533,25 @@ def __init__( The number of lambda values. This will be used to set the window-dependent AToM parameters, unless they are explicitly set by the user. - lambdas : list of float + lambdas : [float] The lambda values. - direction : list of int + direction : [int] The direction values. Must be either 1 (forwards) or -1 (backwards). - lambda1 : list of float + lambda1 : [float] The lambda1 values. - lambda2 : list of float + lambda2 : [float] The lambda2 values. - alpha : list of int, float, str, :class:`Energy ` + alpha : [int], float, str, :class:`Energy ` The alpha values. - uh : list of int, float, str, :class:`Energy ` + uh : [int], float, str, :class:`Energy ` The uh values. - W0 : list of int, float, str, :class:`Energy ` + W0 : [int], float, str, :class:`Energy ` The W0 values. analysis_method : str @@ -2927,7 +2927,7 @@ def _getDirection(self): Returns ------- - lambdas : list of float + lambdas : [float] The directions. """ return self._directions @@ -2939,7 +2939,7 @@ def _setDirection(self, directions): Parameters ---------- - directions : list of int + directions : [int] The directions. """ if isinstance(directions, list): @@ -2965,7 +2965,7 @@ def _getLambda1(self): Returns ------- - lambda1 : list of float + lambda1 : [float] The lambda1 values. """ return self._lambda1 @@ -2977,7 +2977,7 @@ def _setLambda1(self, lambda1): Parameters ---------- - lambda1 : list of float + lambda1 : [float] The lambda1 values. """ if isinstance(lambda1, list): @@ -2992,7 +2992,7 @@ def _setLambda1(self, lambda1): "all entries in 'lambda1' must be floats with a value less than or equal to 0.5" ) elif lambda1 is None: - # use numpy to create a list of floats + # use numpy to create a [float]s self._lambda1 = _np.concatenate( [ _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), @@ -3011,7 +3011,7 @@ def _getLambda2(self): Returns ------- - lambda2 : list of float + lambda2 : [float] The lambda2 values. """ return self._lambda2 @@ -3023,7 +3023,7 @@ def _setLambda2(self, lambda2): Parameters ---------- - lambda2 : list of float + lambda2 : [float] The lambda2 values. """ if isinstance(lambda2, list): @@ -3040,7 +3040,7 @@ def _setLambda2(self, lambda2): else: raise ValueError("all entries in 'lambda2' must be floats") elif lambda2 is None: - # use numpy to create a list of floats + # use numpy to create a [float]s self._lambda2 = _np.concatenate( [ _np.linspace(0, 0.5, _math.floor(self._num_lambda / 2)), @@ -3071,7 +3071,7 @@ def _setAlpha(self, alpha): Parameters ---------- - alpha : list of :class:`Energy or list of int, float, str + alpha : list of :class:`Energy or [int], float, str The alpha values in kcal/mol. """ if isinstance(alpha, list): From 27fe39e7a79a8042573d62c163f27e62fdf7cdea Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 8 Aug 2024 09:50:18 +0100 Subject: [PATCH 064/123] Switch to os.path for tests --- tests/FreeEnergy/test_atm.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 99198c0d1..016ff80a6 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -100,15 +100,19 @@ def test_run(TEMOA_hostguest): analysis_method="UWHAM", ) with tempfile.TemporaryDirectory() as tmpdirname: - production = BSS.FreeEnergy.AToM.run(system, production_atm, work_dir=tmpdirname) + production = BSS.FreeEnergy.AToM.run( + system, production_atm, work_dir=tmpdirname + ) production.wait() # read openmm.csv and make sure it has a single row - df = pd.read_csv(os.path.join(tmpdirname,"lambda_0.0000/openmm.csv")) + df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) assert len(df) == 1 - production2 = BSS.FreeEnergy.AToM.run(system, production_atm2, work_dir=tmpdirname) + production2 = BSS.FreeEnergy.AToM.run( + system, production_atm2, work_dir=tmpdirname + ) production2.wait() - df = pd.read_csv(os.path.join(tmpdirname,"lambda_0.0000/openmm.csv")) + df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) assert len(df) == 2 @@ -442,7 +446,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): production.start() production.wait() # now get the file containing single points - df = pd.read_csv(tmpdirname + "/energies_singlepoint.csv") + df = pd.read_csv(os.path.join(tmpdirname, "energies_singlepoint.csv")) ens = df.to_dict() # Here we are specifically verifying the energies of the ATMForce @@ -466,7 +470,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): assert pytest.approx(ens[str(lam)][0], rel=1) == en + offset # Now check the rest of the forces - df_nonlam = pd.read_csv(tmpdirname + "/non_lambda_forces.csv") + df_nonlam = pd.read_csv(os.path.join(tmpdirname, "non_lambda_forces.csv")) ens_nonlam = df_nonlam.to_dict() ens_GL_nolam = { From 2643b3009df2837cb2883afc774e92797a77d410 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 8 Aug 2024 10:02:15 +0100 Subject: [PATCH 065/123] Blacken --- python/BioSimSpace/Process/_atm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index fe3d4d86d..0cd1bfbd4 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -589,10 +589,10 @@ def _generate_config_production(self): # Check for a restart file and load the simulation state. is_restart, _ = self._add_config_restart() - #NOTE: The restarting logic here is different to previous openMM classes + # NOTE: The restarting logic here is different to previous openMM classes # It doesn't use the steps value from the restart function, instead # the number of steps is worked out at runtime within the openmm script - # this means that restarting either by using the biosimspace runner + # this means that restarting either by using the biosimspace runner # OR by running the openmm script directly will work the same. step = 0 From 993c825fefe7f1c47e2713745e0eb036e91404df Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 8 Aug 2024 12:08:08 +0100 Subject: [PATCH 066/123] Switch to CPU platform for single point energy test, shortened length of simulations run in process tests --- tests/FreeEnergy/test_atm.py | 7 +++--- tests/Process/test_atm.py | 47 +++++++++++++++++++++++++++++------- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 016ff80a6..44faabb6f 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -438,13 +438,15 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): production = BSS.Process.OpenMM( system, production_atm, - platform="CUDA", + platform="CPU", setup_only=True, work_dir=tmpdirname, **{"_is_testing": True}, ) production.start() production.wait() + + assert not production.isError() # now get the file containing single points df = pd.read_csv(os.path.join(tmpdirname, "energies_singlepoint.csv")) ens = df.to_dict() @@ -477,10 +479,9 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): "com": 0.0, "distance": 0.02983, "angle": 0.0072010, - "dihedral": 6.234e-07, + "dihedral": 3.55355e-13, "position_restraint": 0.0, } - print(ens_nonlam) for key, en in ens_GL_nolam.items(): assert pytest.approx(ens_nonlam[key][0], rel=1e-3) == en diff --git a/tests/Process/test_atm.py b/tests/Process/test_atm.py index 4f3f52577..78a50f336 100644 --- a/tests/Process/test_atm.py +++ b/tests/Process/test_atm.py @@ -7,7 +7,7 @@ def test_ATM_min(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a minimisation protocol - prot_min = BSS.Protocol.AToMMinimisation(data=data, steps=100) + prot_min = BSS.Protocol.AToMMinimisation(data=data, steps=1) run_process(system, prot_min) del system, data @@ -18,7 +18,11 @@ def test_ATM_equil_noATMForce(TEMOA_hostguest): system, data = TEMOA_hostguest # Generate an equilibration protocol prot_equil = BSS.Protocol.AToMEquilibration( - data=data, runtime="0.2 ps", use_atm_force=False + data=data, + runtime="4 fs", + use_atm_force=False, + report_interval=1, + restart_interval=1, ) run_process(system, prot_equil) @@ -30,7 +34,11 @@ def test_ATM_equil_withATMForce(TEMOA_hostguest): system, data = TEMOA_hostguest # Generate an equilibration protocol prot_equil = BSS.Protocol.AToMEquilibration( - data=data, runtime="0.2 ps", use_atm_force=True + data=data, + runtime="4 fs", + use_atm_force=True, + report_interval=1, + restart_interval=1, ) run_process(system, prot_equil) @@ -41,7 +49,13 @@ def test_ATM_anneal(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate an annealing protocol - prot_anneal = BSS.Protocol.AToMAnnealing(data=data, runtime="0.2 ps") + prot_anneal = BSS.Protocol.AToMAnnealing( + data=data, + runtime="4 fs", + report_interval=1, + restart_interval=1, + anneal_numcycles=1, + ) run_process(system, prot_anneal) del system, data @@ -66,8 +80,10 @@ def test_custom_ATM_anneal(TEMOA_hostguest): protocol = BSS.Protocol.AToMAnnealing( data=data, anneal_values=annealing_dict, - anneal_numcycles=10, - runtime="0.2 ps", + anneal_numcycles=1, + runtime="2 fs", + report_interval=1, + restart_interval=1, ) run_process(system, protocol) @@ -76,19 +92,32 @@ def test_ATM_production(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a production protocol - prot_prod = BSS.Protocol.AToMProduction(data=data, runtime="0.2 ps") + prot_prod = BSS.Protocol.AToMProduction( + data=data, + runtime="2 fs", + report_interval=1, + restart_interval=1, + ) run_process(system, prot_prod) # now test "MBAR" analysis method prot_prod = BSS.Protocol.AToMProduction( - data=data, runtime="0.2 ps", analysis_method="MBAR" + data=data, + runtime="2 fs", + analysis_method="MBAR", + report_interval=1, + restart_interval=1, ) run_process(system, prot_prod) # finally, test the "both" analysis method prot_prod = BSS.Protocol.AToMProduction( - data=data, runtime="0.2 ps", analysis_method="both" + data=data, + runtime="2 fs", + analysis_method="both", + report_interval=1, + restart_interval=1, ) run_process(system, prot_prod) From f2b412a905b081562d46a7d4ff1199a732bad5fc Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 8 Aug 2024 15:45:51 +0100 Subject: [PATCH 067/123] Remove debug print statement from analysis [ci skip] --- python/BioSimSpace/FreeEnergy/_ddg.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index d907491ac..933a73d4b 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -82,7 +82,6 @@ def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): if alpha > 0: ee = 1 + numpy.exp(-alpha * (epert - u0)) ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha - print(ebias1) return ebias1 + lam2 * epert + w0 From 77e4bf7b60aecd5e33b3ac4fabf5690e7d11cb7d Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 12 Aug 2024 12:26:14 +0100 Subject: [PATCH 068/123] Adds ignore_upper option to UWHAM analysis [ci skip] --- python/BioSimSpace/FreeEnergy/_atm.py | 16 +++++++++++++--- python/BioSimSpace/FreeEnergy/_ddg.py | 15 +++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 3565cd4c3..088e616a8 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1066,6 +1066,7 @@ def analyse( work_dir, method="UWHAM", ignore_lower=0, + ignore_upper=None, inflex_indices=None, ): """Analyse the AToM simulation. @@ -1094,6 +1095,15 @@ def analyse( raise TypeError("'ignore_lower' must be an integer.") if ignore_lower < 0: raise ValueError("'ignore_lower' must be a positive integer.") + if ignore_upper is not None: + if not isinstance(ignore_upper, int): + raise TypeError("'ignore_upper' must be an integer.") + if ignore_upper < 0: + raise ValueError("'ignore_upper' must be a positive integer.") + if ignore_upper < ignore_lower: + raise ValueError( + "'ignore_upper' must be greater than or equal to 'ignore_lower'." + ) if inflex_indices is not None: if not isinstance(inflex_indices, list): raise TypeError("'inflex_indices' must be a list.") @@ -1103,7 +1113,7 @@ def analyse( raise ValueError("'inflex_indices' must have length 2.") if method == "UWHAM": total_ddg, total_ddg_err = AToM._analyse_UWHAM( - work_dir, ignore_lower, inflex_indices + work_dir, ignore_lower, ignore_upper, inflex_indices ) return total_ddg, total_ddg_err if method == "MBAR": @@ -1118,14 +1128,14 @@ def analyse( raise ValueError(f"Method {method} is not supported for analysis.") @staticmethod - def _analyse_UWHAM(work_dir, ignore_lower, inflex_indices=None): + def _analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflex_indices=None): """ Analyse the UWHAM results from the AToM simulation. """ from ._ddg import analyse_UWHAM as _UWHAM total_ddg, total_ddg_err = _UWHAM( - work_dir, ignore_lower, inflection_indices=inflex_indices + work_dir, ignore_lower, ignore_upper, inflection_indices=inflex_indices ) return total_ddg, total_ddg_err diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 933a73d4b..74d7a1e4e 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -196,7 +196,7 @@ def _get_inflection_indices(folders): return inflection_indices -def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): +def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None): """ Analyse the output of BioSimSpace AToM simulations. @@ -204,6 +204,10 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): ---------- work_dir : str The directory containing the simulation data. + ignore_lower : int + The number of rows to ignore at the start of each file. + ignore_upper : int + The number of rows to ignore at the end of each file. inflection_indices : tuple, optional The point at which 'direction' changes. Should be (last index of direction 1, first index of direction 2). @@ -229,7 +233,10 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): for folder in folders.values(): df = _pd.read_csv(folder / "openmm.csv") # drop the first `ignore_lower` rows of each df - df = df.iloc[ignore_lower:] + if ignore_upper is not None: + df = df.iloc[ignore_lower:ignore_upper] + else: + df = df.iloc[ignore_lower:] # Beta values, assuming that energies are in kj/mol df["beta"] = 1 / (0.001986209 * df["temperature"]) total_states += 1 @@ -301,7 +308,7 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_first_half) ddg = f_i[-1] - f_i[0] ddg1 = ddg / dataframes[0]["beta"].values[0] - print(f"Forward leg: {ddg1}") + # print(f"Forward leg: {ddg1}") ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] n_samples_second_half = n_samples[inflection_indices[1] :] @@ -327,7 +334,7 @@ def analyse_UWHAM(work_dir, ignore_lower, inflection_indices=None): f_i, d_i, weights = _estimate_f_i(ln_q, n_samples_second_half) ddg = f_i[-1] - f_i[0] ddg2 = ddg / dataframes[0]["beta"].values[0] - print(f"Reverse leg: {ddg2}") + # print(f"Reverse leg: {ddg2}") ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] ddg_total = ddg1 - ddg2 From 55a3a09f0f926433e06895180ee6439cb7eac9dc Mon Sep 17 00:00:00 2001 From: zhiyi wu Date: Fri, 16 Aug 2024 15:27:44 +0100 Subject: [PATCH 069/123] use the new sire --- .github/workflows/Sandpit_exs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Sandpit_exs.yml b/.github/workflows/Sandpit_exs.yml index 50160fe36..b75de18e4 100644 --- a/.github/workflows/Sandpit_exs.yml +++ b/.github/workflows/Sandpit_exs.yml @@ -33,7 +33,7 @@ jobs: - name: Install dependency run: | - conda install -c conda-forge -c openbiosim/label/main biosimspace python=3.10 ambertools gromacs "sire=2024.1.0" "alchemlyb>=2.1" pytest openff-interchange pint=0.21 rdkit "jaxlib>0.3.7" tqdm + conda install -c conda-forge -c openbiosim/label/main biosimspace python=3.10 ambertools gromacs "sire=2024.2.0" "alchemlyb>=2.1" pytest openff-interchange pint=0.21 rdkit "jaxlib>0.3.7" tqdm python -m pip install git+https://github.com/Exscientia/MDRestraintsGenerator.git # For the testing of BSS.FreeEnergy.AlchemicalFreeEnergy.analysis python -m pip install https://github.com/alchemistry/alchemtest/archive/master.zip From 1309f8c527584d6a39cc282705bbcb4b8145d83d Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 20 Aug 2024 15:58:35 +0100 Subject: [PATCH 070/123] Makes atm file naming consistent, simplifies openmm protocol if statement, makes protocol setters and getters public --- python/BioSimSpace/FreeEnergy/_atm.py | 18 +- python/BioSimSpace/Process/_atm.py | 82 ++-- .../Process/{_atom_utils.py => _atm_utils.py} | 68 ++-- python/BioSimSpace/Process/_openmm.py | 9 +- python/BioSimSpace/Protocol/__init__.py | 2 +- .../Protocol/{_AToM.py => _atm.py} | 358 +++++++++--------- tests/Protocol/test_atm_protocol.py | 100 +++-- 7 files changed, 313 insertions(+), 324 deletions(-) rename python/BioSimSpace/Process/{_atom_utils.py => _atm_utils.py} (96%) rename python/BioSimSpace/Protocol/{_AToM.py => _atm.py} (93%) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 088e616a8..28180aaaf 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1220,7 +1220,7 @@ def __init__( # Validate the protocol. if protocol is not None: - from ..Protocol._AToM import AToMProduction as _Production + from ..Protocol._atm import AToMProduction as _Production if not isinstance(protocol, _Production): raise TypeError( @@ -1295,9 +1295,9 @@ def _inititalise_runner(self, system): processes = [] # Get the list of lambda1 values so that the total number of simulations can # be asserted - lambda_list = self._protocol._get_lambda_values() + lambda_list = self._protocol.get_lambda_values() # Set index of current simulation to 0 - self._protocol._set_current_index(0) + self._protocol.set_current_index(0) lam = lambda_list[0] first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) @@ -1339,12 +1339,12 @@ def _inititalise_runner(self, system): # this is more difficult than usual due to the number of window-dependent variables new_config = [] # All variables that need to change - new_lam_1 = self._protocol._getLambda1()[index] - new_lam_2 = self._protocol._getLambda2()[index] - new_alpha = self._protocol._getAlpha()[index].value() - new_uh = self._protocol._getUh()[index].value() - new_w0 = self._protocol._getW0()[index].value() - new_direction = self._protocol._getDirection()[index] + new_lam_1 = self._protocol.getLambda1()[index] + new_lam_2 = self._protocol.getLambda2()[index] + new_alpha = self._protocol.getAlpha()[index].value() + new_uh = self._protocol.getUh()[index].value() + new_w0 = self._protocol.getW0()[index].value() + new_direction = self._protocol.getDirection()[index] with open(new_dir + "/openmm_script.py", "r") as f: for line in f: if line.startswith("lambda1"): diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index 0cd1bfbd4..fea23d167 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -19,7 +19,7 @@ # along with BioSimSpace. If not, see . ###################################################################### -from ._atom_utils import _AToMUtils +from ._atm_utils import _AToMUtils import warnings as _warnings import math as _math from .._Exceptions import IncompatibleError as _IncompatibleError @@ -198,11 +198,11 @@ def _generate_config_minimisation(self): # Add the atom-specific restraints. disp = util.createDisplacement() self.addToConfig(disp) - if self._protocol._getCoreAlignment(): + if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol._getCMCMRestraint(): + if self._protocol.getCMCMRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -210,7 +210,7 @@ def _generate_config_minimisation(self): self._add_simulation_instantiation() self.addToConfig( - f"simulation.minimizeEnergy(maxIterations={self._protocol._getSteps()})" + f"simulation.minimizeEnergy(maxIterations={self._protocol.getSteps()})" ) # Add the reporters. self.addToConfig("\n# Add reporters.") @@ -236,8 +236,8 @@ def _generate_config_equilibration(self): is_periodic = self._add_initialisation(has_box) # Get the starting temperature and system pressure. - temperature = self._protocol._getStartTemperature().kelvin().value() - pressure = self._protocol._getPressure() + temperature = self._protocol.getStartTemperature().kelvin().value() + pressure = self._protocol.getPressure() is_constant_pressure = self._add_pressure_check( pressure, temperature, is_periodic @@ -258,15 +258,15 @@ def _generate_config_equilibration(self): # Add the atom-specific restraints. disp = util.createDisplacement() self.addToConfig(disp) - if self._protocol._getUseATMForce(): + if self._protocol.getUseATMForce(): atm = util.createATMForce(index=None) self.addToConfig(atm) - if self._protocol._getCoreAlignment(): + if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol._getCMCMRestraint(): + if self._protocol.getCMCMRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -277,7 +277,7 @@ def _generate_config_equilibration(self): # Set the integrator. self.addToConfig("\n# Define the integrator.") self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() self.addToConfig(f" {friction:.5f}/picosecond,") self.addToConfig(f" {timestep}*picoseconds)") if self._is_seeded: @@ -332,8 +332,8 @@ def _generate_config_equilibration(self): # Work out the temperature change per cycle. delta_temp = ( - self._protocol._getEndTemperature().kelvin().value() - - self._protocol._getStartTemperature().kelvin().value() + self._protocol.getEndTemperature().kelvin().value() + - self._protocol.getStartTemperature().kelvin().value() ) / temp_cycles self.addToConfig(f"start_temperature = {temperature}") @@ -348,8 +348,8 @@ def _generate_config_equilibration(self): else: # Work out the temperature change per step. delta_temp = ( - self._protocol._getEndTemperature().kelvin().value() - - self._protocol._getStartTemperature().kelvin().value() + self._protocol.getEndTemperature().kelvin().value() + - self._protocol.getStartTemperature().kelvin().value() ) / steps self.addToConfig(f"start_temperature = {temperature}") @@ -363,7 +363,7 @@ def _generate_config_equilibration(self): self.addToConfig(" simulation.step(1)") def _generate_config_annealing(self): - self._protocol._set_current_index(0) + self._protocol.set_current_index(0) util = _AToMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -381,8 +381,8 @@ def _generate_config_annealing(self): is_periodic = self._add_initialisation(has_box) # Get the starting temperature and system pressure. - temperature = self._protocol._getTemperature().kelvin().value() - pressure = self._protocol._getPressure() + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() is_constant_pressure = self._add_pressure_check( pressure, temperature, is_periodic @@ -406,13 +406,13 @@ def _generate_config_annealing(self): disp = util.createDisplacement() self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - if self._protocol._getCoreAlignment(): + self.addToConfig(util.createATMForce(self._protocol.get_window_index())) + if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol._getCMCMRestraint(): + if self._protocol.getCMCMRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -423,7 +423,7 @@ def _generate_config_annealing(self): # Set the integrator. self.addToConfig("\n# Define the integrator.") self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() self.addToConfig(f" {friction:.5f}/picosecond,") self.addToConfig(f" {timestep}*picoseconds)") if self._is_seeded: @@ -496,8 +496,8 @@ def _generate_config_annealing(self): self.addToConfig(annealing_protocol) def _generate_config_production(self): - self._protocol._set_current_index(0) - analysis_method = self._protocol._getAnalysisMethod() + self._protocol.set_current_index(0) + analysis_method = self._protocol.getAnalysisMethod() util = _AToMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -505,7 +505,7 @@ def _generate_config_production(self): has_box = self._check_space() # TODO: check extra_options, extra_lines and property_map - if self._protocol._get_window_index() is None: + if self._protocol.get_window_index() is None: raise _IncompatibleError( "AToM protocol requires the current window index to be set." ) @@ -527,8 +527,8 @@ def _generate_config_production(self): is_periodic = self._add_initialisation(has_box) # Get the starting temperature and system pressure. - temperature = self._protocol._getTemperature().kelvin().value() - pressure = self._protocol._getPressure() + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() is_constant_pressure = self._add_pressure_check( pressure, temperature, is_periodic @@ -552,13 +552,13 @@ def _generate_config_production(self): disp = util.createDisplacement() self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol._get_window_index())) - if self._protocol._getCoreAlignment(): + self.addToConfig(util.createATMForce(self._protocol.get_window_index())) + if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol._getCMCMRestraint(): + if self._protocol.getCMCMRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -569,7 +569,7 @@ def _generate_config_production(self): # Set the integrator. self.addToConfig("\n# Define the integrator.") self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() self.addToConfig(f" {friction:.5f}/picosecond,") self.addToConfig(f" {timestep}*picoseconds)") if self._is_seeded: @@ -662,7 +662,7 @@ def _generate_config_production(self): ) ) elif analysis_method == "both": - direction = self._protocol._getDirection() + direction = self._protocol.getDirection() inflex = 0 for i in range(len(direction) - 1): if direction[i] != direction[i + 1]: @@ -678,7 +678,7 @@ def _generate_config_production(self): ) ) else: - direction = self._protocol._getDirection() + direction = self._protocol.getDirection() inflex = 0 for i in range(len(direction) - 1): if direction[i] != direction[i + 1]: @@ -698,7 +698,7 @@ def _generate_config_single_point_testing(self): # Designed as a hidden method - uses a production protocol to # calculate single point energies for each lambda window # quite hacky, but not designed to be exposed to the user anyway - self._protocol._set_current_index(0) + self._protocol.set_current_index(0) if not isinstance(self._protocol, _Protocol.AToMProduction): raise _IncompatibleError( "Single point testing requires an AToMProduction protocol." @@ -710,7 +710,7 @@ def _generate_config_single_point_testing(self): has_box = self._check_space() # TODO: check extra_options, extra_lines and property_map - if self._protocol._get_window_index() is None: + if self._protocol.get_window_index() is None: raise _IncompatibleError( "AToM protocol requires the current window index to be set." ) @@ -730,8 +730,8 @@ def _generate_config_single_point_testing(self): is_periodic = self._add_initialisation(has_box) # Get the starting temperature and system pressure. - temperature = self._protocol._getTemperature().kelvin().value() - pressure = self._protocol._getPressure() + temperature = self._protocol.getTemperature().kelvin().value() + pressure = self._protocol.getPressure() is_constant_pressure = self._add_pressure_check( pressure, temperature, is_periodic @@ -756,14 +756,14 @@ def _generate_config_single_point_testing(self): self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") self.addToConfig( - util.createATMForce(self._protocol._get_window_index(), force_group=10) + util.createATMForce(self._protocol.get_window_index(), force_group=10) ) - if self._protocol._getCoreAlignment(): + if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce(force_group=[6, 7, 8]) self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol._getCMCMRestraint(): + if self._protocol.getCMCMRestraint(): CMCM = util.createCOMRestraint(force_group=9) self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -774,7 +774,7 @@ def _generate_config_single_point_testing(self): # Set the integrator. self.addToConfig("\n# Define the integrator.") self.addToConfig(f"integrator = LangevinMiddleIntegrator({temperature}*kelvin,") - friction = 1 / self._protocol._getThermostatTimeConstant().picoseconds().value() + friction = 1 / self._protocol.getThermostatTimeConstant().picoseconds().value() self.addToConfig(f" {friction:.5f}/picosecond,") self.addToConfig(f" {timestep}*picoseconds)") if self._is_seeded: @@ -844,7 +844,7 @@ def _generate_config_single_point_testing(self): self.addToConfig(f"\ntemperature = {temperature}") # reading in the directions from the protocol, find the index at which direction changes - direction = self._protocol._getDirection() + direction = self._protocol.getDirection() inflex = 0 for i in range(len(direction) - 1): if direction[i] != direction[i + 1]: diff --git a/python/BioSimSpace/Process/_atom_utils.py b/python/BioSimSpace/Process/_atm_utils.py similarity index 96% rename from python/BioSimSpace/Process/_atom_utils.py rename to python/BioSimSpace/Process/_atm_utils.py index 2dc67f544..11963c2a6 100644 --- a/python/BioSimSpace/Process/_atom_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -40,16 +40,16 @@ def __init__(self, protocol): ): raise TypeError("Protocol must be an AToM protocol") self.protocol = protocol - self.data = self.protocol._getData() + self.data = self.protocol.getData() def getAlignmentConstants(self): - self.alignment_k_distance = self.protocol._getAlignKfSep().value() - self.alignment_k_theta = self.protocol._getAlignKTheta().value() - self.alignment_k_psi = self.protocol._getAlignKPsi().value() + self.alignment_k_distance = self.protocol.getAlignKfSep().value() + self.alignment_k_theta = self.protocol.getAlignKTheta().value() + self.alignment_k_psi = self.protocol.getAlignKPsi().value() def getCMConstants(self): - self.cm_kf = self.protocol._getCMKf().value() - self.cm_tol = self.protocol._getCMTol().value() + self.cm_kf = self.protocol.getCMKf().value() + self.cm_tol = self.protocol.getCMTol().value() def findAbsoluteCoreIndices(self): import numpy as np @@ -84,42 +84,42 @@ def findAbsoluteCOMAtoms(self): def getATMForceConstants(self, index=None): self.lig1_atoms = self.getLigand1AtomsAsList() self.lig2_atoms = self.getLigand2AtomsAsList() - self.SCUmax = self.protocol._getSCUmax().value() - self.SCU0 = self.protocol._getSCU0().value() - self.SCa = self.protocol._getSCa() + self.SCUmax = self.protocol.getSCUmax().value() + self.SCU0 = self.protocol.getSCU0().value() + self.SCa = self.protocol.getSCa() if isinstance(self.protocol, _Protocol.AToMProduction): if index is None: raise ValueError("Index must be set for AToMProduction protocol") - self.lambda1 = self.protocol._getLambda1()[index] - self.lambda2 = self.protocol._getLambda2()[index] - self.alpha = self.protocol._getAlpha()[index].value() - self.uh = self.protocol._getUh()[index].value() - self.w0 = self.protocol._getW0()[index].value() - self.direction = self.protocol._getDirection()[index] - self.master_lambda = self.protocol._get_lambda_values()[index] + self.lambda1 = self.protocol.getLambda1()[index] + self.lambda2 = self.protocol.getLambda2()[index] + self.alpha = self.protocol.getAlpha()[index].value() + self.uh = self.protocol.getUh()[index].value() + self.w0 = self.protocol.getW0()[index].value() + self.direction = self.protocol.getDirection()[index] + self.master_lambda = self.protocol.get_lambda_values()[index] elif isinstance( self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) ): - self.lambda1 = self.protocol._getLambda1() - self.lambda2 = self.protocol._getLambda2() - self.alpha = self.protocol._getAlpha().value() - self.uh = self.protocol._getUh().value() - self.w0 = self.protocol._getW0().value() - self.direction = self.protocol._getDirection() + self.lambda1 = self.protocol.getLambda1() + self.lambda2 = self.protocol.getLambda2() + self.alpha = self.protocol.getAlpha().value() + self.uh = self.protocol.getUh().value() + self.w0 = self.protocol.getW0().value() + self.direction = self.protocol.getDirection() def _dump_atm_constants_to_dict(self): """Internal function to write all ATM window-dependent constants to a dictionary (string) to be used in sampling for analysis.""" output = "" output += "atm_constants = {\n" - output += " 'Lambda1': {},\n".format(self.protocol._getLambda1()) - output += " 'Lambda2': {},\n".format(self.protocol._getLambda2()) + output += " 'Lambda1': {},\n".format(self.protocol.getLambda1()) + output += " 'Lambda2': {},\n".format(self.protocol.getLambda2()) output += " 'Alpha': {},\n".format( - [i.value() for i in self.protocol._getAlpha()] + [i.value() for i in self.protocol.getAlpha()] ) - output += " 'Uh': {},\n".format([i.value() for i in self.protocol._getUh()]) - output += " 'W0': {},\n".format([i.value() for i in self.protocol._getW0()]) - output += " 'Direction': {}\n".format(self.protocol._getDirection()) + output += " 'Uh': {},\n".format([i.value() for i in self.protocol.getUh()]) + output += " 'W0': {},\n".format([i.value() for i in self.protocol.getW0()]) + output += " 'Direction': {}\n".format(self.protocol.getDirection()) output += "}\n" output += "for key in atm_constants.keys():\n" @@ -474,7 +474,7 @@ def create_flat_bottom_restraint(self, restrained_atoms, force_group=None): """ # Still using the position restraint mixin, get the values of the relevant constants pos_const = self.protocol.getForceConstant().value() - pos_width = self.protocol._getPosRestWidth().value() + pos_width = self.protocol.getPosRestWidth().value() output = "" output += "fc = {} * kilocalorie_per_mole / angstrom**2\n".format(pos_const) output += "tol = {} * angstrom\n".format(pos_width) @@ -507,12 +507,12 @@ def createAnnealingProtocol(self): Create a string which can be added directly to an openmm script to add an annealing protocol to the system. """ anneal_runtime = self.protocol.getRunTime() - num_cycles = self.protocol._getAnnealNumCycles() + num_cycles = self.protocol.getAnnealNumCycles() cycle_numsteps = int( (anneal_runtime / num_cycles) / self.protocol.getTimeStep() ) - prot = self.protocol._getAnnealValues() + prot = self.protocol.getAnnealValues() # Find all entries whose keys contain "start" and create a dictionary of these entries # Also remove the word "start" from the key start = {k.replace("_start", ""): v for k, v in prot.items() if "start" in k} @@ -582,7 +582,7 @@ def createLoopWithReporting( output = "" output += "# Reporting for MBAR:\n" # round master lambda to 4 d.p. to avoid floating point errors - output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" output += f"master_lambda = master_lambda_list[window_index]\n" output += "if is_restart:\n" @@ -782,7 +782,7 @@ def createReportingBoth( output += "# Reporting for MBAR:\n" # round master lambda to 4 d.p. to avoid floating point errors - output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" output += f"master_lambda = master_lambda_list[window_index]\n" output += "if is_restart:\n" output += " try:\n" @@ -917,7 +917,7 @@ def createSinglePointTest( """Create a single point test for the ATM force""" output = "" output += "# Create the dictionary which will hold the energies\n" - output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" output += "energies = {}\n" output += f"for i in master_lambda_list[:{inflex_point}]:\n" output += " energies[i] = []\n" diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 36458a81d..c416aa092 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -82,15 +82,10 @@ def __new__( **kwargs, ): from ._atm import OpenMMAToM + from ..Protocol._atm import _AToM # would like to use issubclass but _Protocol._AToM is not exposed - if ( - isinstance(protocol, _Protocol.AToMMinimisation) - or isinstance(protocol, _Protocol.AToMEquilibration) - or isinstance(protocol, _Protocol.AToMAnnealing) - or isinstance(protocol, _Protocol.AToMProduction) - ): - + if isinstance(protocol, _AToM): return super().__new__(OpenMMAToM) else: return super().__new__(cls) diff --git a/python/BioSimSpace/Protocol/__init__.py b/python/BioSimSpace/Protocol/__init__.py index 6db922ccf..63d6026cb 100644 --- a/python/BioSimSpace/Protocol/__init__.py +++ b/python/BioSimSpace/Protocol/__init__.py @@ -109,4 +109,4 @@ from ._production import * from ._steering import * from ._utils import * -from ._AToM import * +from ._atm import * diff --git a/python/BioSimSpace/Protocol/_AToM.py b/python/BioSimSpace/Protocol/_atm.py similarity index 93% rename from python/BioSimSpace/Protocol/_AToM.py rename to python/BioSimSpace/Protocol/_atm.py index 8ccd57f10..82b60bbed 100644 --- a/python/BioSimSpace/Protocol/_AToM.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -75,52 +75,52 @@ def __init__( raise TypeError("'data' must be of type 'dict'") # Whether or not to use alignment restraints. - self._setCoreAlignment(core_alignment) + self.setCoreAlignment(core_alignment) # Whether or not to use the CMCM restraint. - self._setCMCMRestraint(CMCM_restraint) + self.setCMCMRestraint(CMCM_restraint) # Store the width of the coordinate retraint. - self._setPosRestWidth(pos_rest_width) + self.setPosRestWidth(pos_rest_width) # Store the align_kf_sep value. - self._setAlignKfSep(align_kf_sep) + self.setAlignKfSep(align_kf_sep) # Store the align_k_theta value. - self._setAlignKTheta(align_k_theta) + self.setAlignKTheta(align_k_theta) # Store the align_k_psi value. - self._setAlignKPsi(align_k_psi) + self.setAlignKPsi(align_k_psi) # Store the SC_umax value. - self._setSCUmax(SC_umax) + self.setSCUmax(SC_umax) # Store the SC_u0 value. - self._setSCU0(SC_u0) + self.setSCU0(SC_u0) # Store the SC_a value. - self._setSCa(SC_a) + self.setSCa(SC_a) # Store cm_kf value. - self._setCMKf(cm_kf) + self.setCMKf(cm_kf) # Store cm_tol value. - self._setCMTol(cm_tol) + self.setCMTol(cm_tol) # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) def __str__(self): - d = self._getData() + d = self.getData() """Return a string representation of the protocol.""" string = ": " string += "timestep=%s " % self.getTimeStep() string += ", runtime=%s " % self.getRunTime() - string += ", temperature=%s " % self._getTemperature() + string += ", temperature=%s " % self.getTemperature() if self._pressure is not None: - string += ", pressure=%s, " % self._getPressure() - string += ", lambda1=%s " % self._getLambda1() - string += ", lambda2=%s " % self._getLambda2() + string += ", pressure=%s, " % self.getPressure() + string += ", lambda1=%s " % self.getLambda1() + string += ", lambda2=%s " % self.getLambda2() string += ", ligand1 core atoms=%s" % d["ligand1_rigid_core"] string += ", ligand2 core atoms=%s" % d["ligand2_rigid_core"] string += ", report_interval=%s " % self.getReportInterval() @@ -133,7 +133,7 @@ def __repr__(self): """Return a string showing how to instantiate the object.""" return self.__str__() - def _getData(self): + def getData(self): """ Return the AToM data dictionary. @@ -145,7 +145,7 @@ def _getData(self): """ return self._system_data - def _getCoreAlignment(self): + def getCoreAlignment(self): """ Return core alignment boolean. @@ -157,7 +157,7 @@ def _getCoreAlignment(self): """ return self._core_alignment - def _setCoreAlignment(self, core_alignment): + def setCoreAlignment(self, core_alignment): """ Set the core alignment flag. @@ -173,7 +173,7 @@ def _setCoreAlignment(self, core_alignment): _warnings.warn("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True - def _getCMCMRestraint(self): + def getCMCMRestraint(self): """ Return CMCM restraint boolean. @@ -185,7 +185,7 @@ def _getCMCMRestraint(self): """ return self._CMCM_restraint - def _setCMCMRestraint(self, CMCM_restraint): + def setCMCMRestraint(self, CMCM_restraint): """ Set the CMCM restraint flag. @@ -201,7 +201,7 @@ def _setCMCMRestraint(self, CMCM_restraint): _warnings.warn("Non-boolean CMCM restraint flag. Defaulting to True!") self._CMCM_restraint = True - def _getPosRestWidth(self): + def getPosRestWidth(self): """ Return the width of the position restraint. @@ -213,7 +213,7 @@ def _getPosRestWidth(self): """ return self._pos_rest_width - def _setPosRestWidth(self, pos_rest_width): + def setPosRestWidth(self, pos_rest_width): """ Set the width of the position restraint. @@ -253,7 +253,7 @@ def _setPosRestWidth(self, pos_rest_width): ) self._pos_rest_width = pos_rest_width - def _getAlignKfSep(self): + def getAlignKfSep(self): """ Return the align_kf_sep value. @@ -265,7 +265,7 @@ def _getAlignKfSep(self): """ return self._align_kf_sep - def _setAlignKfSep(self, align_kf_sep): + def setAlignKfSep(self, align_kf_sep): """ Set the align_kf_sep value. @@ -303,7 +303,7 @@ def _setAlignKfSep(self, align_kf_sep): ) self._align_kf_sep = align_kf_sep - def _getAlignKTheta(self): + def getAlignKTheta(self): """ Return the align_k_theta value. @@ -315,7 +315,7 @@ def _getAlignKTheta(self): """ return self._align_k_theta - def _setAlignKTheta(self, align_k_theta): + def setAlignKTheta(self, align_k_theta): """ Set the align_k_theta value. @@ -356,7 +356,7 @@ def _setAlignKTheta(self, align_k_theta): ) self._align_k_theta = align_k_theta - def _getAlignKPsi(self): + def getAlignKPsi(self): """ Return the align_k_psi value. @@ -368,7 +368,7 @@ def _getAlignKPsi(self): """ return self._align_k_psi - def _setAlignKPsi(self, align_k_psi): + def setAlignKPsi(self, align_k_psi): """ Set the align_k_psi value. @@ -406,7 +406,7 @@ def _setAlignKPsi(self, align_k_psi): ) self._align_k_psi = align_k_psi - def _getSCUmax(self): + def getSCUmax(self): """ Return the SC_umax value. @@ -418,7 +418,7 @@ def _getSCUmax(self): """ return self._SC_umax - def _setSCUmax(self, SC_umax): + def setSCUmax(self, SC_umax): """ Set the SC_umax value. @@ -456,7 +456,7 @@ def _setSCUmax(self, SC_umax): ) self._SC_umax = SC_umax - def _getSCU0(self): + def getSCU0(self): """ Return the SC_u0 value. @@ -468,7 +468,7 @@ def _getSCU0(self): """ return self._SC_u0 - def _setSCU0(self, SC_u0): + def setSCU0(self, SC_u0): """ Set the SC_u0 value. @@ -506,7 +506,7 @@ def _setSCU0(self, SC_u0): ) self._SC_u0 = SC_u0 - def _getSCa(self): + def getSCa(self): """ Return the SC_a value. @@ -518,7 +518,7 @@ def _getSCa(self): """ return self._SC_a - def _setSCa(self, SC_a): + def setSCa(self, SC_a): """ Set the SC_a value. @@ -533,7 +533,7 @@ def _setSCa(self, SC_a): else: raise TypeError("'SC_a' must be of type 'float'") - def _getCMKf(self): + def getCMKf(self): """ Return the cm_kf value. @@ -545,7 +545,7 @@ def _getCMKf(self): """ return self._cm_kf - def _setCMKf(self, cm_kf): + def setCMKf(self, cm_kf): """ Set the cm_kf value. @@ -583,7 +583,7 @@ def _setCMKf(self, cm_kf): ) self._cm_kf = cm_kf - def _getCMTol(self): + def getCMTol(self): """ Return the cm_tol value. @@ -595,7 +595,7 @@ def _getCMTol(self): """ return self._cm_tol - def _setCMTol(self, cm_tol): + def setCMTol(self, cm_tol): """ Set the cm_tol value. @@ -633,12 +633,12 @@ def _setCMTol(self, cm_tol): ) self._cm_tol = cm_tol - def _set_lambda_values(self): + def set_lambda_values(self): # Internal function to set the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() - def _get_lambda_values(self): + def get_lambda_values(self): # Internal function to get the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters try: @@ -646,7 +646,7 @@ def _get_lambda_values(self): except: return None - def _set_current_index(self, index): + def set_current_index(self, index): # Internal function to set index of the current simulation window # set using the master lambda list if index < 0: @@ -655,7 +655,7 @@ def _set_current_index(self, index): raise TypeError("index must be an integer") self._current_index = index - def _get_window_index(self): + def get_window_index(self): # Internal function to get the current window index try: return self._current_index @@ -771,9 +771,9 @@ def __init__( cm_tol, ) # Store the number of minimisation steps. - self._setSteps(steps) + self.setSteps(steps) - def _getSteps(self): + def getSteps(self): """ Return the number of minimisation steps. @@ -785,7 +785,7 @@ def _getSteps(self): """ return self._steps - def _setSteps(self, steps): + def setSteps(self, steps): """ Set the number of minimisation steps. @@ -974,13 +974,13 @@ def __init__( cm_tol, ) # Store - self._setTimestep(timestep) + self.setTimestep(timestep) - self._setRuntime(runtime) + self.setRuntime(runtime) # Constant temperature equilibration. if temperature is not None: - self._setStartTemperature(temperature) - self._setEndTemperature(temperature) + self.setStartTemperature(temperature) + self.setEndTemperature(temperature) self._is_const_temp = True # Heating / cooling simulation. @@ -988,10 +988,10 @@ def __init__( self._is_const_temp = False # Set the start temperature. - self._setStartTemperature(temperature_start) + self.setStartTemperature(temperature_start) # Set the final temperature. - self._setEndTemperature(temperature_end) + self.setEndTemperature(temperature_end) # Constant temperature simulation. if self._temperature_start == self._temperature_end: @@ -999,29 +999,29 @@ def __init__( # Set the system pressure. if pressure is not None: - self._setPressure(pressure) + self.setPressure(pressure) else: self._pressure = None - self._setThermostatTimeConstant(thermostat_time_constant) + self.setThermostatTimeConstant(thermostat_time_constant) - self._setReportInterval(report_interval) + self.setReportInterval(report_interval) - self._setRestartInterval(restart_interval) + self.setRestartInterval(restart_interval) - self._setUseATMForce(use_atm_force) + self.setUseATMForce(use_atm_force) - self._setDirection(direction) + self.setDirection(direction) - self._setLambda1(lambda1) + self.setLambda1(lambda1) - self._setLambda2(lambda2) + self.setLambda2(lambda2) - self._setAlpha(alpha) + self.setAlpha(alpha) - self._setUh(uh) + self.setUh(uh) - self._setW0(W0) + self.setW0(W0) def getTimeStep(self): """ @@ -1035,7 +1035,7 @@ def getTimeStep(self): """ return self._timestep - def _setTimestep(self, timestep): + def setTimestep(self, timestep): """ Set the time step. @@ -1069,7 +1069,7 @@ def getRunTime(self): """ return self._runtime - def _setRuntime(self, runtime): + def setRuntime(self, runtime): """ Set the running time. @@ -1091,7 +1091,7 @@ def _setRuntime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def _getStartTemperature(self): + def getStartTemperature(self): """ Return the starting temperature. @@ -1103,7 +1103,7 @@ def _getStartTemperature(self): """ return self._temperature_start - def _setStartTemperature(self, temperature): + def setStartTemperature(self, temperature): """ Set the starting temperature. @@ -1128,7 +1128,7 @@ def _setStartTemperature(self, temperature): temperature._value = 0.01 self._temperature_start = temperature - def _getEndTemperature(self): + def getEndTemperature(self): """ Return the final temperature. @@ -1140,7 +1140,7 @@ def _getEndTemperature(self): """ return self._temperature_end - def _setEndTemperature(self, temperature): + def setEndTemperature(self, temperature): """ Set the final temperature. @@ -1164,7 +1164,7 @@ def _setEndTemperature(self, temperature): temperature._value = 0.01 self._temperature_end = temperature - def _getPressure(self): + def getPressure(self): """ Return the pressure. @@ -1176,7 +1176,7 @@ def _getPressure(self): """ return self._pressure - def _setPressure(self, pressure): + def setPressure(self, pressure): """ Set the pressure. @@ -1198,7 +1198,7 @@ def _setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def _getThermostatTimeConstant(self): + def getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -1210,7 +1210,7 @@ def _getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def _setThermostatTimeConstant(self, thermostat_time_constant): + def setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -1244,7 +1244,7 @@ def getReportInterval(self): """ return self._report_interval - def _setReportInterval(self, report_interval): + def setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -1277,7 +1277,7 @@ def getRestartInterval(self): """ return self._restart_interval - def _setRestartInterval(self, restart_interval): + def setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -1298,7 +1298,7 @@ def _setRestartInterval(self, restart_interval): self._restart_interval = restart_interval - def _getUseATMForce(self): + def getUseATMForce(self): """ Return the use_atm_force flag. @@ -1310,7 +1310,7 @@ def _getUseATMForce(self): """ return self._use_atm_force - def _setUseATMForce(self, use_atm_force): + def setUseATMForce(self, use_atm_force): """ Set the use_atm_force flag. @@ -1324,7 +1324,7 @@ def _setUseATMForce(self, use_atm_force): raise TypeError("'use_atm_force' must be of type 'bool'") self._use_atm_force = use_atm_force - def _getDirection(self): + def getDirection(self): """ Return the direction of the equilibration. @@ -1336,7 +1336,7 @@ def _getDirection(self): """ return self._direction - def _setDirection(self, direction): + def setDirection(self, direction): """ Set the direction of the equilibration. @@ -1350,7 +1350,7 @@ def _setDirection(self, direction): raise TypeError("'direction' must have a value of 1 or -1") self._direction = int(direction) - def _getLambda1(self): + def getLambda1(self): """ Return the lambda1 value for the ATM force. @@ -1362,7 +1362,7 @@ def _getLambda1(self): """ return self._lambda1 - def _setLambda1(self, lambda1): + def setLambda1(self, lambda1): """ Set the lambda1 value for the ATM force. @@ -1378,7 +1378,7 @@ def _setLambda1(self, lambda1): raise ValueError("lambda1 must be between 0 and 0.5") self._lambda1 = float(lambda1) - def _getLambda2(self): + def getLambda2(self): """ Return the lambda2 value for the ATM force. @@ -1390,7 +1390,7 @@ def _getLambda2(self): """ return self._lambda2 - def _setLambda2(self, lambda2): + def setLambda2(self, lambda2): """ Set the lambda2 value for the ATM force. @@ -1406,7 +1406,7 @@ def _setLambda2(self, lambda2): raise ValueError("lambda2 must be between 0 and 0.5") self._lambda2 = float(lambda2) - def _getAlpha(self): + def getAlpha(self): """ Return the alpha value for the ATM force. @@ -1418,7 +1418,7 @@ def _getAlpha(self): """ return self._alpha - def _setAlpha(self, alpha): + def setAlpha(self, alpha): """ Set the alpha value for the ATM force. @@ -1456,7 +1456,7 @@ def _setAlpha(self, alpha): ) self._alpha = alpha - def _getUh(self): + def getUh(self): """ Return the uh value for the ATM force. @@ -1468,7 +1468,7 @@ def _getUh(self): """ return self._uh - def _setUh(self, uh): + def setUh(self, uh): """ Set the uh value for the ATM force. @@ -1506,7 +1506,7 @@ def _setUh(self, uh): ) self._uh = uh - def _getW0(self): + def getW0(self): """ Return the W0 value for the ATM force. @@ -1518,7 +1518,7 @@ def _getW0(self): """ return self._W0 - def _setW0(self, W0): + def setW0(self, W0): """ Set the W0 value for the ATM force. @@ -1781,41 +1781,41 @@ def __init__( cm_tol, ) - self._setTimestep(timestep) + self.setTimestep(timestep) - self._setRuntime(runtime) + self.setRuntime(runtime) - self._setTemperature(temperature) + self.setTemperature(temperature) # Set the system pressure. if pressure is not None: - self._setPressure(pressure) + self.setPressure(pressure) else: self._pressure = None - self._setThermostatTimeConstant(thermostat_time_constant) + self.setThermostatTimeConstant(thermostat_time_constant) - self._setReportInterval(report_interval) + self.setReportInterval(report_interval) - self._setRestartInterval(restart_interval) + self.setRestartInterval(restart_interval) - self._setDirection(direction) + self.setDirection(direction) - self._setLambda1(lambda1) + self.setLambda1(lambda1) - self._setLambda2(lambda2) + self.setLambda2(lambda2) - self._setAlpha(alpha) + self.setAlpha(alpha) - self._setUh(uh) + self.setUh(uh) - self._setW0(W0) + self.setW0(W0) # Store the anneal values. - self._setAnnealValues(anneal_values) + self.setAnnealValues(anneal_values) # Set the number of annealing cycles. - self._setAnnealNumCycles(anneal_numcycles) + self.setAnnealNumCycles(anneal_numcycles) def getTimeStep(self): """ @@ -1829,7 +1829,7 @@ def getTimeStep(self): """ return self._timestep - def _setTimestep(self, timestep): + def setTimestep(self, timestep): """ Set the time step. @@ -1863,7 +1863,7 @@ def getRunTime(self): """ return self._runtime - def _setRuntime(self, runtime): + def setRuntime(self, runtime): """ Set the running time. @@ -1885,7 +1885,7 @@ def _setRuntime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def _getTemperature(self): + def getTemperature(self): """ Return temperature. @@ -1897,7 +1897,7 @@ def _getTemperature(self): """ return self._temperature - def _setTemperature(self, temperature): + def setTemperature(self, temperature): """ Set the temperature. @@ -1919,7 +1919,7 @@ def _setTemperature(self, temperature): "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" ) - def _getPressure(self): + def getPressure(self): """ Return the pressure. @@ -1931,7 +1931,7 @@ def _getPressure(self): """ return self._pressure - def _setPressure(self, pressure): + def setPressure(self, pressure): """ Set the pressure. @@ -1953,7 +1953,7 @@ def _setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def _getThermostatTimeConstant(self): + def getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -1965,7 +1965,7 @@ def _getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def _setThermostatTimeConstant(self, thermostat_time_constant): + def setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -1999,7 +1999,7 @@ def getReportInterval(self): """ return self._report_interval - def _setReportInterval(self, report_interval): + def setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -2032,7 +2032,7 @@ def getRestartInterval(self): """ return self._restart_interval - def _setRestartInterval(self, restart_interval): + def setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -2053,7 +2053,7 @@ def _setRestartInterval(self, restart_interval): self._restart_interval = restart_interval - def _getDirection(self): + def getDirection(self): """ Return the direction of the equilibration. @@ -2065,7 +2065,7 @@ def _getDirection(self): """ return self._direction - def _setDirection(self, direction): + def setDirection(self, direction): """ Set the direction of the equilibration. @@ -2079,7 +2079,7 @@ def _setDirection(self, direction): raise TypeError("'direction' must have a value of 1 or -1") self._direction = int(direction) - def _getLambda1(self): + def getLambda1(self): """ Return the lambda1 value for the ATM force. @@ -2091,7 +2091,7 @@ def _getLambda1(self): """ return self._lambda1 - def _setLambda1(self, lambda1): + def setLambda1(self, lambda1): """ Set the lambda1 value for the ATM force. @@ -2107,7 +2107,7 @@ def _setLambda1(self, lambda1): raise ValueError("lambda1 must be between 0 and 0.5") self._lambda1 = float(lambda1) - def _getLambda2(self): + def getLambda2(self): """ Return the lambda2 value for the ATM force. @@ -2119,7 +2119,7 @@ def _getLambda2(self): """ return self._lambda2 - def _setLambda2(self, lambda2): + def setLambda2(self, lambda2): """ Set the lambda2 value for the ATM force. @@ -2135,7 +2135,7 @@ def _setLambda2(self, lambda2): raise ValueError("lambda2 must be between 0 and 0.5") self._lambda2 = float(lambda2) - def _getAlpha(self): + def getAlpha(self): """ Return the alpha value for the ATM force. @@ -2147,7 +2147,7 @@ def _getAlpha(self): """ return self._alpha - def _setAlpha(self, alpha): + def setAlpha(self, alpha): """ Set the alpha value for the ATM force. @@ -2185,7 +2185,7 @@ def _setAlpha(self, alpha): ) self._alpha = alpha - def _getUh(self): + def getUh(self): """ Return the uh value for the ATM force. @@ -2197,7 +2197,7 @@ def _getUh(self): """ return self._uh - def _setUh(self, uh): + def setUh(self, uh): """ Set the uh value for the ATM force. @@ -2235,7 +2235,7 @@ def _setUh(self, uh): ) self._uh = uh - def _getW0(self): + def getW0(self): """ Return the W0 value for the ATM force. @@ -2247,7 +2247,7 @@ def _getW0(self): """ return self._W0 - def _setW0(self, W0): + def setW0(self, W0): """ Set the W0 value for the ATM force. @@ -2285,7 +2285,7 @@ def _setW0(self, W0): ) self._W0 = W0 - def _getAnnealValues(self): + def getAnnealValues(self): """ Return the anneal protocol. @@ -2297,7 +2297,7 @@ def _getAnnealValues(self): """ return self._anneal_values - def _setAnnealValues(self, anneal_values): + def setAnnealValues(self, anneal_values): """ Set the anneal protocol. @@ -2372,7 +2372,7 @@ def capitalise_keys(input_dict): "'anneal_values' must be of type 'dict', 'None', or 'default'" ) - def _getAnnealNumCycles(self): + def getAnnealNumCycles(self): """ Return the number of annealing cycles. @@ -2384,7 +2384,7 @@ def _getAnnealNumCycles(self): """ return self._anneal_numcycles - def _setAnnealNumCycles(self, anneal_numcycles): + def setAnnealNumCycles(self, anneal_numcycles): """ Set the number of annealing cycles. @@ -2577,52 +2577,52 @@ def __init__( cm_tol, ) - self._setTimestep(timestep) + self.setTimestep(timestep) - self._setRuntime(runtime) + self.setRuntime(runtime) - self._setTemperature(temperature) + self.setTemperature(temperature) # Set the system pressure. if pressure is not None: - self._setPressure(pressure) + self.setPressure(pressure) else: self._pressure = None - self._setThermostatTimeConstant(thermostat_time_constant) + self.setThermostatTimeConstant(thermostat_time_constant) - self._setReportInterval(report_interval) + self.setReportInterval(report_interval) - self._setRestartInterval(restart_interval) + self.setRestartInterval(restart_interval) # Set the restart flag. - self._setRestart(restart) + self.setRestart(restart) # Set the number of lambda values. # If other window-dependent parameters are not set, then set them to # sensible defaults. - self._setNumLambda(num_lambda) + self.setNumLambda(num_lambda) # Store the direction values. - self._setDirection(direction) + self.setDirection(direction) # Store the lambda1 values. - self._setLambda1(lambda1) + self.setLambda1(lambda1) # Store the lambda2 values. - self._setLambda2(lambda2) + self.setLambda2(lambda2) # Store the alpha values. - self._setAlpha(alpha) + self.setAlpha(alpha) # Store the uh values. - self._setUh(uh) + self.setUh(uh) # Store the W0 values. - self._setW0(W0) + self.setW0(W0) - self._set_lambda_values() + self.set_lambda_values() - self._setAnalysisMethod(analysis_method) + self.setAnalysisMethod(analysis_method) def getTimeStep(self): """ @@ -2636,7 +2636,7 @@ def getTimeStep(self): """ return self._timestep - def _setTimestep(self, timestep): + def setTimestep(self, timestep): """ Set the time step. @@ -2670,7 +2670,7 @@ def getRunTime(self): """ return self._runtime - def _setRuntime(self, runtime): + def setRuntime(self, runtime): """ Set the running time. @@ -2692,7 +2692,7 @@ def _setRuntime(self, runtime): "'runtime' must be of type 'str' or 'BioSimSpace.Types.Time'" ) - def _getTemperature(self): + def getTemperature(self): """ Return temperature. @@ -2704,7 +2704,7 @@ def _getTemperature(self): """ return self._temperature - def _setTemperature(self, temperature): + def setTemperature(self, temperature): """ Set the temperature. @@ -2726,7 +2726,7 @@ def _setTemperature(self, temperature): "'temperature' must be of type 'str' or 'BioSimSpace.Types.Temperature'" ) - def _getPressure(self): + def getPressure(self): """ Return the pressure. @@ -2738,7 +2738,7 @@ def _getPressure(self): """ return self._pressure - def _setPressure(self, pressure): + def setPressure(self, pressure): """ Set the pressure. @@ -2760,7 +2760,7 @@ def _setPressure(self, pressure): "'pressure' must be of type 'str' or 'BioSimSpace.Types.Pressure'" ) - def _getThermostatTimeConstant(self): + def getThermostatTimeConstant(self): """ Return the time constant for the thermostat. @@ -2772,7 +2772,7 @@ def _getThermostatTimeConstant(self): """ return self._thermostat_time_constant - def _setThermostatTimeConstant(self, thermostat_time_constant): + def setThermostatTimeConstant(self, thermostat_time_constant): """ Set the time constant for the thermostat. @@ -2806,7 +2806,7 @@ def getReportInterval(self): """ return self._report_interval - def _setReportInterval(self, report_interval): + def setReportInterval(self, report_interval): """ Set the interval at which statistics are reported. (In integration steps.). @@ -2839,7 +2839,7 @@ def getRestartInterval(self): """ return self._restart_interval - def _setRestartInterval(self, restart_interval): + def setRestartInterval(self, restart_interval): """ Set the interval between saving restart confiugrations, and/or trajectory frames. (In integration steps.). @@ -2872,7 +2872,7 @@ def isRestart(self): """ return self._restart - def _setRestart(self, restart): + def setRestart(self, restart): """ Set the restart flag. @@ -2888,7 +2888,7 @@ def _setRestart(self, restart): _warnings.warn("Non-boolean restart flag. Defaulting to False!") self._restart = False - def _getNumLambda(self): + def getNumLambda(self): """ Return the number of lambda values. @@ -2900,7 +2900,7 @@ def _getNumLambda(self): """ return self._num_lambda - def _setNumLambda(self, num_lambda): + def setNumLambda(self, num_lambda): """ Set the number of lambda values. @@ -2916,11 +2916,11 @@ def _setNumLambda(self, num_lambda): "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." ) self._num_lambda = num_lambda - self._set_lambda_values() + self.set_lambda_values() else: raise TypeError("'num_lambda' must be of type 'int'") - def _getDirection(self): + def getDirection(self): """ Return the direction values. @@ -2932,7 +2932,7 @@ def _getDirection(self): """ return self._directions - def _setDirection(self, directions): + def setDirection(self, directions): """ Set the direction values. @@ -2958,7 +2958,7 @@ def _setDirection(self, directions): else: raise TypeError("'directions' must be of type 'list' or 'None'") - def _getLambda1(self): + def getLambda1(self): """ Return the lambda1 values. @@ -2970,7 +2970,7 @@ def _getLambda1(self): """ return self._lambda1 - def _setLambda1(self, lambda1): + def setLambda1(self, lambda1): """ Set the lambda1 values. @@ -3004,7 +3004,7 @@ def _setLambda1(self, lambda1): else: raise TypeError("'lambda1' must be of type 'list'") - def _getLambda2(self): + def getLambda2(self): """ Return the lambda2 values. @@ -3016,7 +3016,7 @@ def _getLambda2(self): """ return self._lambda2 - def _setLambda2(self, lambda2): + def setLambda2(self, lambda2): """ Set the lambda2 values. @@ -3052,7 +3052,7 @@ def _setLambda2(self, lambda2): else: raise TypeError("'lambda2' must be of type 'list'") - def _getAlpha(self): + def getAlpha(self): """ Return the alpha values. @@ -3064,7 +3064,7 @@ def _getAlpha(self): """ return self._alpha - def _setAlpha(self, alpha): + def setAlpha(self, alpha): """ Set the alpha values. @@ -3115,7 +3115,7 @@ def _setAlpha(self, alpha): else: raise TypeError("'alpha' must be of type 'list' or None") - def _getUh(self): + def getUh(self): """ Return the uh values. @@ -3127,7 +3127,7 @@ def _getUh(self): """ return self._uh - def _setUh(self, uh): + def setUh(self, uh): """ Set the uh values. @@ -3178,7 +3178,7 @@ def _setUh(self, uh): else: raise TypeError("'uh' must be of type 'list'") - def _getW0(self): + def getW0(self): """ Return the W0 values. @@ -3190,7 +3190,7 @@ def _getW0(self): """ return self._W0 - def _setW0(self, W0): + def setW0(self, W0): """ Set the W0 values. @@ -3241,12 +3241,12 @@ def _setW0(self, W0): else: raise TypeError("'W0' must be of type 'list'") - def _set_lambda_values(self): + def set_lambda_values(self): # Internal function to set the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() - def _get_lambda_values(self): + def get_lambda_values(self): # Internal function to get the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters try: @@ -3254,7 +3254,7 @@ def _get_lambda_values(self): except: return None - def _setAnalysisMethod(self, analysis_method): + def setAnalysisMethod(self, analysis_method): """Set the method that will be used for analysis of the simulation results. This will change the output files that are generated.""" allowed_methods = ["UWHAM", "MBAR", "both"] @@ -3263,10 +3263,10 @@ def _setAnalysisMethod(self, analysis_method): else: raise ValueError(f"analysis_method must be one of {allowed_methods}") - def _getAnalysisMethod(self): + def getAnalysisMethod(self): return self._analysis_method - def _set_current_index(self, index): + def set_current_index(self, index): # Internal function to set index of the current simulation window # set using the master lambda list if index < 0: @@ -3279,7 +3279,7 @@ def _set_current_index(self, index): raise TypeError("index must be an integer") self._current_index = index - def _get_window_index(self): + def get_window_index(self): # Internal function to get the current window index try: return self._current_index diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 593c516f4..4787ed1e2 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -59,49 +59,47 @@ def test_atm_minimisation(TEMOA_hostguest): # using getters, check that all protocols have the same values # (skip force constant and as it is not atm exclusive) assert ( - protocol_units._getPosRestWidth() - == protocol_floats._getPosRestWidth() - == protocol_strings._getPosRestWidth() + protocol_units.getPosRestWidth() + == protocol_floats.getPosRestWidth() + == protocol_strings.getPosRestWidth() ) assert ( - protocol_units._getAlignKfSep() - == protocol_floats._getAlignKfSep() - == protocol_strings._getAlignKfSep() + protocol_units.getAlignKfSep() + == protocol_floats.getAlignKfSep() + == protocol_strings.getAlignKfSep() ) assert ( - protocol_units._getAlignKTheta() - == protocol_floats._getAlignKTheta() - == protocol_strings._getAlignKTheta() + protocol_units.getAlignKTheta() + == protocol_floats.getAlignKTheta() + == protocol_strings.getAlignKTheta() ) assert ( - protocol_units._getAlignKPsi() - == protocol_floats._getAlignKPsi() - == protocol_strings._getAlignKPsi() + protocol_units.getAlignKPsi() + == protocol_floats.getAlignKPsi() + == protocol_strings.getAlignKPsi() ) assert ( - protocol_units._getSCUmax() - == protocol_floats._getSCUmax() - == protocol_strings._getSCUmax() + protocol_units.getSCUmax() + == protocol_floats.getSCUmax() + == protocol_strings.getSCUmax() ) assert ( - protocol_units._getSCU0() - == protocol_floats._getSCU0() - == protocol_strings._getSCU0() + protocol_units.getSCU0() + == protocol_floats.getSCU0() + == protocol_strings.getSCU0() ) assert ( - protocol_units._getSCa() - == protocol_floats._getSCa() - == protocol_strings._getSCa() + protocol_units.getSCa() == protocol_floats.getSCa() == protocol_strings.getSCa() ) assert ( - protocol_units._getCMKf() - == protocol_floats._getCMKf() - == protocol_strings._getCMKf() + protocol_units.getCMKf() + == protocol_floats.getCMKf() + == protocol_strings.getCMKf() ) assert ( - protocol_units._getCMTol() - == protocol_floats._getCMTol() - == protocol_strings._getCMTol() + protocol_units.getCMTol() + == protocol_floats.getCMTol() + == protocol_strings.getCMTol() ) @@ -154,25 +152,21 @@ def test_atm_equilibration(TEMOA_hostguest): assert protocol_units.getTimeStep() == protocol_strings.getTimeStep() assert protocol_units.getRunTime() == protocol_strings.getRunTime() assert ( - protocol_units._getStartTemperature() == protocol_strings._getStartTemperature() + protocol_units.getStartTemperature() == protocol_strings.getStartTemperature() ) - assert protocol_units._getEndTemperature() == protocol_strings._getEndTemperature() - assert protocol_units._getPressure() == protocol_strings._getPressure() + assert protocol_units.getEndTemperature() == protocol_strings.getEndTemperature() + assert protocol_units.getPressure() == protocol_strings.getPressure() assert ( - protocol_units._getThermostatTimeConstant() - == protocol_strings._getThermostatTimeConstant() + protocol_units.getThermostatTimeConstant() + == protocol_strings.getThermostatTimeConstant() ) assert ( - protocol_units._getAlpha() - == protocol_floats._getAlpha() - == protocol_strings._getAlpha() - ) - assert ( - protocol_units._getUh() == protocol_floats._getUh() == protocol_strings._getUh() - ) - assert ( - protocol_units._getW0() == protocol_floats._getW0() == protocol_strings._getW0() + protocol_units.getAlpha() + == protocol_floats.getAlpha() + == protocol_strings.getAlpha() ) + assert protocol_units.getUh() == protocol_floats.getUh() == protocol_strings.getUh() + assert protocol_units.getW0() == protocol_floats.getW0() == protocol_strings.getW0() def test_atm_annealing(TEMOA_hostguest): @@ -223,27 +217,27 @@ def test_atm_production(TEMOA_hostguest): num_lambda=6, ) # get values for direction, lambda1, lambda2, alpha, uh and W0 - assert len(protocol._getDirection()) == 6 - assert len(protocol._getLambda1()) == 6 - assert len(protocol._getLambda2()) == 6 - assert len(protocol._getAlpha()) == 6 - assert len(protocol._getUh()) == 6 - assert len(protocol._getW0()) == 6 + assert len(protocol.getDirection()) == 6 + assert len(protocol.getLambda1()) == 6 + assert len(protocol.getLambda2()) == 6 + assert len(protocol.getAlpha()) == 6 + assert len(protocol.getUh()) == 6 + assert len(protocol.getW0()) == 6 # Define custom values for direction that are not valid and check that an error is raised d = [1, 2, 3, 4, 5, 6] with pytest.raises(ValueError): - protocol._setDirection(d) + protocol.setDirection(d) # Define custom values for lambda1 that are not valid and check that an error is raised l1 = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] with pytest.raises(ValueError): - protocol._setLambda1(l1) + protocol.setLambda1(l1) # Define custom values for lambda2 that are not valid and check that an error is raised l2 = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] with pytest.raises(ValueError): - protocol._setLambda2(l2) + protocol.setLambda2(l2) # check that a list of strings, ints, floats and BSS units can be parsed for alpha,uh and w0 list_of_units = [ @@ -265,9 +259,9 @@ def test_atm_production(TEMOA_hostguest): end_product = [0.1 * BSS.Units.Energy.kcal_per_mol] * 5 end_product.append(1 * BSS.Units.Energy.kcal_per_mol) - assert protocol._getAlpha() == end_product - assert protocol._getUh() == end_product - assert protocol._getW0() == end_product + assert protocol.getAlpha() == end_product + assert protocol.getUh() == end_product + assert protocol.getW0() == end_product # now check that all of the allowed analysis options can be set protocol = BSS.Protocol.AToMProduction( From f28b9b57512a0ace45c7492f374d2184e63ed4e2 Mon Sep 17 00:00:00 2001 From: Miroslav Suruzhon <36005076+msuruzhon@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:44:09 +0100 Subject: [PATCH 071/123] Fixing a box check in GMX (#54) --- python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py index b6e02992f..52a17da82 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py @@ -355,7 +355,13 @@ def _write_system(self, system, coord_file=None, topol_file=None, ref_file=None) # For now, we'll not attempt to generate a box if the system property # is missing. If no box is present, we'll assume a non-periodic simulation. if "space" in system._sire_object.propertyKeys(): - has_box = True + try: + # Make sure that we have a periodic box. The system will now have + # a default cartesian space. + box = system._sire_object.property("space") + has_box = box.isPeriodic() + except: + has_box = False else: _warnings.warn("No simulation box found. Assuming gas phase simulation.") has_box = False From d60c00819c7ed9f859367168901c0cd4003954d8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 12:23:09 +0100 Subject: [PATCH 072/123] First stage of variable name standardisation, in this case the COM distance restraint --- python/BioSimSpace/FreeEnergy/_atm.py | 2 +- python/BioSimSpace/Process/_atm.py | 14 +- python/BioSimSpace/Process/_atm_utils.py | 12 +- python/BioSimSpace/Protocol/_atm.py | 479 ++++++++++++----------- tests/FreeEnergy/test_atm.py | 12 +- tests/Protocol/test_atm_protocol.py | 32 +- 6 files changed, 295 insertions(+), 256 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 28180aaaf..fca49b1ce 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1295,7 +1295,7 @@ def _inititalise_runner(self, system): processes = [] # Get the list of lambda1 values so that the total number of simulations can # be asserted - lambda_list = self._protocol.get_lambda_values() + lambda_list = self._protocol._get_lambda_values() # Set index of current simulation to 0 self._protocol.set_current_index(0) lam = lambda_list[0] diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index fea23d167..37afcecba 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -202,7 +202,7 @@ def _generate_config_minimisation(self): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): + if self._protocol.getCOMDistanceRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -266,7 +266,7 @@ def _generate_config_equilibration(self): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): + if self._protocol.getCOMDistanceRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -363,7 +363,7 @@ def _generate_config_equilibration(self): self.addToConfig(" simulation.step(1)") def _generate_config_annealing(self): - self._protocol.set_current_index(0) + self._protocol._set_current_index(0) util = _AToMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -406,13 +406,13 @@ def _generate_config_annealing(self): disp = util.createDisplacement() self.addToConfig(disp) self.addToConfig("\n# Add AToM Force.") - self.addToConfig(util.createATMForce(self._protocol.get_window_index())) + self.addToConfig(util.createATMForce(self._protocol._get_window_index())) if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): + if self._protocol.getCOMDistanceRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -558,7 +558,7 @@ def _generate_config_production(self): self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): + if self._protocol.getCOMDistanceRestraint(): CMCM = util.createCOMRestraint() self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) @@ -763,7 +763,7 @@ def _generate_config_single_point_testing(self): self.addToConfig("\n# Add alignment force.") self.addToConfig(alignment) - if self._protocol.getCMCMRestraint(): + if self._protocol.getCOMDistanceRestraint(): CMCM = util.createCOMRestraint(force_group=9) self.addToConfig("\n# Add COM restraint.") self.addToConfig(CMCM) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index 11963c2a6..fe0bbdf35 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -48,8 +48,8 @@ def getAlignmentConstants(self): self.alignment_k_psi = self.protocol.getAlignKPsi().value() def getCMConstants(self): - self.cm_kf = self.protocol.getCMKf().value() - self.cm_tol = self.protocol.getCMTol().value() + self.cm_kf = self.protocol.getCOMk().value() + self.cm_tol = self.protocol.getCOMWidth().value() def findAbsoluteCoreIndices(self): import numpy as np @@ -96,7 +96,7 @@ def getATMForceConstants(self, index=None): self.uh = self.protocol.getUh()[index].value() self.w0 = self.protocol.getW0()[index].value() self.direction = self.protocol.getDirection()[index] - self.master_lambda = self.protocol.get_lambda_values()[index] + self.master_lambda = self.protocol._get_lambda_values()[index] elif isinstance( self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) ): @@ -582,7 +582,7 @@ def createLoopWithReporting( output = "" output += "# Reporting for MBAR:\n" # round master lambda to 4 d.p. to avoid floating point errors - output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" output += f"master_lambda = master_lambda_list[window_index]\n" output += "if is_restart:\n" @@ -782,7 +782,7 @@ def createReportingBoth( output += "# Reporting for MBAR:\n" # round master lambda to 4 d.p. to avoid floating point errors - output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" output += f"master_lambda = master_lambda_list[window_index]\n" output += "if is_restart:\n" output += " try:\n" @@ -917,7 +917,7 @@ def createSinglePointTest( """Create a single point test for the ATM force""" output = "" output += "# Create the dictionary which will hold the energies\n" - output += f"master_lambda_list = {[round(i,4) for i in self.protocol.get_lambda_values()]}\n" + output += f"master_lambda_list = {[round(i,4) for i in self.protocol._get_lambda_values()]}\n" output += "energies = {}\n" output += f"for i in master_lambda_list[:{inflex_point}]:\n" output += " energies[i] = []\n" diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index 82b60bbed..061c517ff 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -22,18 +22,18 @@ def __init__( system=None, data=None, core_alignment=True, - CMCM_restraint=True, + com_distance_restraint=True, + com_k=25.0 * kcal_per_mol / angstrom2, + com_restraint_width=5.0 * angstrom, restraint=None, force_constant=10 * kcal_per_mol / angstrom2, - pos_rest_width=0.5 * angstrom, + positional_restraint_width=0.5 * angstrom, align_kf_sep=2.5 * kcal_per_mol / angstrom2, align_k_theta=10.0 * kcal_per_mol, align_k_psi=10.0 * kcal_per_mol, SC_umax=1000.0 * kcal_per_mol, SC_u0=500.0 * kcal_per_mol, SC_a=0.0625, - cm_kf=25.0 * kcal_per_mol / angstrom2, - cm_tol=5.0 * angstrom, ): # Call the base class constructor. super().__init__() @@ -78,10 +78,16 @@ def __init__( self.setCoreAlignment(core_alignment) # Whether or not to use the CMCM restraint. - self.setCMCMRestraint(CMCM_restraint) + self.setCOMDistanceRestraint(com_distance_restraint) - # Store the width of the coordinate retraint. - self.setPosRestWidth(pos_rest_width) + # Store com_k value. + self.setCOMk(com_k) + + # Store com_restraint_width value. + self.setCOMWidth(com_restraint_width) + + # Store the width of the coordinate restraint. + self.setPosRestWidth(positional_restraint_width) # Store the align_kf_sep value. self.setAlignKfSep(align_kf_sep) @@ -101,12 +107,6 @@ def __init__( # Store the SC_a value. self.setSCa(SC_a) - # Store cm_kf value. - self.setCMKf(cm_kf) - - # Store cm_tol value. - self.setCMTol(cm_tol) - # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) @@ -173,33 +173,35 @@ def setCoreAlignment(self, core_alignment): _warnings.warn("Non-boolean core alignment flag. Defaulting to True!") self._core_alignment = True - def getCMCMRestraint(self): + def getCOMDistanceRestraint(self): """ Return CMCM restraint boolean. Returns ------- - CMCM_restraint : bool + com_distance_restraint : bool Whether to use the CMCM restraint. """ - return self._CMCM_restraint + return self._com_distance_restraint - def setCMCMRestraint(self, CMCM_restraint): + def setCOMDistanceRestraint(self, com_distance_restraint): """ Set the CMCM restraint flag. Parameters ---------- - CMCM_restraint : bool + com_distance_restraint : bool Whether to use the CMCM restraint. """ - if isinstance(CMCM_restraint, bool): - self._CMCM_restraint = CMCM_restraint + if isinstance(com_distance_restraint, bool): + self._com_distance_restraint = com_distance_restraint else: - _warnings.warn("Non-boolean CMCM restraint flag. Defaulting to True!") - self._CMCM_restraint = True + _warnings.warn( + "Non-boolean com distance restraint flag. Defaulting to True!" + ) + self._com_distance_restraint = True def getPosRestWidth(self): """ @@ -208,50 +210,52 @@ def getPosRestWidth(self): Returns ------- - pos_rest_width : :class:`Length ` + positional_restraint_width : :class:`Length ` The width of the position restraint. """ - return self._pos_rest_width + return self._positional_restraint_width - def setPosRestWidth(self, pos_rest_width): + def setPosRestWidth(self, positional_restraint_width): """ Set the width of the position restraint. Parameters ---------- - pos_rest_width : int, float, str, :class:`Length ` + positional_restraint_width : int, float, str, :class:`Length ` The width of the position restraint. """ # Convert int to float. - if type(pos_rest_width) is int: - pos_rest_width = float(pos_rest_width) + if type(positional_restraint_width) is int: + positional_restraint_width = float(positional_restraint_width) - if isinstance(pos_rest_width, float): + if isinstance(positional_restraint_width, float): # Use default units. - pos_rest_width *= _Units.Length.angstrom + positional_restraint_width *= _Units.Length.angstrom else: - if isinstance(pos_rest_width, str): + if isinstance(positional_restraint_width, str): try: - pos_rest_width = _Types.Length(pos_rest_width) + positional_restraint_width = _Types.Length( + positional_restraint_width + ) except Exception: raise ValueError( - "Unable to parse 'pos_rest_width' string." + "Unable to parse 'positional_restraint_width' string." ) from None - elif not isinstance(pos_rest_width, _Types.Length): + elif not isinstance(positional_restraint_width, _Types.Length): raise TypeError( - "'pos_rest_width' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'positional_restraint_width' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if pos_rest_width.dimensions() != (0, 1, 0, 0, 0, 0, 0): + if positional_restraint_width.dimensions() != (0, 1, 0, 0, 0, 0, 0): raise ValueError( - "'pos_rest_width' has invalid dimensions! " - f"Expected dimensions of Length, found '{pos_rest_width.unit()}'" + "'positional_restraint_width' has invalid dimensions! " + f"Expected dimensions of Length, found '{positional_restraint_width.unit()}'" ) - self._pos_rest_width = pos_rest_width + self._positional_restraint_width = positional_restraint_width def getAlignKfSep(self): """ @@ -533,134 +537,107 @@ def setSCa(self, SC_a): else: raise TypeError("'SC_a' must be of type 'float'") - def getCMKf(self): + def getCOMk(self): """ - Return the cm_kf value. + Return the com_k value. Returns ------- - cm_kf : :class:`GeneralUnit ` - The cm_kf value in kcal/mol A**2. + com_k : :class:`GeneralUnit ` + The com_k value in kcal/mol A**2. """ - return self._cm_kf + return self._com_k - def setCMKf(self, cm_kf): + def setCOMk(self, com_k): """ - Set the cm_kf value. + Set the com_k value. Parameters ---------- - cm_kf : int, float, str, :class:`GeneralUnit + com_k : int, float, str, :class:`GeneralUnit The force constant for the CM-CM force in kcal/mol A**2. """ # Convert int to float. - if type(cm_kf) is int: - cm_kf = float(cm_kf) + if type(com_k) is int: + com_k = float(com_k) - if isinstance(cm_kf, float): + if isinstance(com_k, float): # Use default units. - cm_kf *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 + com_k *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 else: - if isinstance(cm_kf, str): + if isinstance(com_k, str): try: - cm_kf = _Types._GeneralUnit(cm_kf) + com_k = _Types._GeneralUnit(com_k) except Exception: - raise ValueError("Unable to parse 'cm_kf' string.") from None + raise ValueError("Unable to parse 'com_k' string.") from None - elif not isinstance(cm_kf, _Types._GeneralUnit): + elif not isinstance(com_k, _Types._GeneralUnit): raise TypeError( - "'cm_kf' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'com_k' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if cm_kf.dimensions() != (1, 0, -2, 0, 0, -1, 0): + if com_k.dimensions() != (1, 0, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{cm_kf.unit()}'" + f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{com_k.unit()}'" ) - self._cm_kf = cm_kf + self._com_k = com_k - def getCMTol(self): + def getCOMWidth(self): """ - Return the cm_tol value. + Return the com_restraint_width value. Returns ------- - cm_tol : :class:`Length ` - The cm_tol value in angstroms. + com_restraint_width : :class:`Length ` + The com_restraint_width value in angstroms. """ - return self._cm_tol + return self._com_restraint_width - def setCMTol(self, cm_tol): + def setCOMWidth(self, com_restraint_width): """ - Set the cm_tol value. + Set the com_restraint_width value. Parameters ---------- - cm_tol : int, float, str, :class:`Length - The cm_tol value in angstroms. + com_restraint_width : int, float, str, :class:`Length + The com_restraint_width value in angstroms. """ # Convert int to float. - if type(cm_tol) is int: - cm_tol = float(cm_tol) + if type(com_restraint_width) is int: + com_restraint_width = float(com_restraint_width) - if isinstance(cm_tol, float): + if isinstance(com_restraint_width, float): # Use default units. - cm_tol *= _Units.Length.angstrom + com_restraint_width *= _Units.Length.angstrom else: - if isinstance(cm_tol, str): + if isinstance(com_restraint_width, str): try: - cm_tol = _Types.Length(cm_tol) + com_restraint_width = _Types.Length(com_restraint_width) except Exception: - raise ValueError("Unable to parse 'cm_tol' string.") from None + raise ValueError( + "Unable to parse 'com_restraint_width' string." + ) from None - elif not isinstance(cm_tol, _Types.Length): + elif not isinstance(com_restraint_width, _Types.Length): raise TypeError( - "'cm_tol' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'com_restraint_width' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if cm_tol.dimensions() != (0, 1, 0, 0, 0, 0, 0): + if com_restraint_width.dimensions() != (0, 1, 0, 0, 0, 0, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions of Length, found '{cm_tol.unit()}'" + f"Expected dimensions of Length, found '{com_restraint_width.unit()}'" ) - self._cm_tol = cm_tol - - def set_lambda_values(self): - # Internal function to set the 'master lambda' - # This lambda value serves as the master for all other window-dependent parameters - self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() - - def get_lambda_values(self): - # Internal function to get the 'master lambda' - # This lambda value serves as the master for all other window-dependent parameters - try: - return self._lambda_values - except: - return None - - def set_current_index(self, index): - # Internal function to set index of the current simulation window - # set using the master lambda list - if index < 0: - raise ValueError("index must be positive") - if not isinstance(index, int): - raise TypeError("index must be an integer") - self._current_index = index - - def get_window_index(self): - # Internal function to get the current window index - try: - return self._current_index - except: - return None + self._com_restraint_width = com_restraint_width class AToMMinimisation(_AToM): @@ -674,18 +651,18 @@ def __init__( data=None, steps=10000, core_alignment=True, - CMCM_restraint=True, + com_distance_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - pos_rest_width=0.5 * angstrom, + positional_restraint_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, SC_a=0.0625, - cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - cm_tol=5 * _Units.Length.angstrom, + com_k=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + com_restraint_width=5 * _Units.Length.angstrom, ): """ Parameters @@ -699,8 +676,16 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. - CMCM_restraint : bool + com_distance_restraint : bool Whether to use a center of mass distance restraint. + This restraint applies to the protein/host and both ligands, and + is used to maintain the relative positions of all of them. + + com_k : int, float, str, :class:`GeneralUnit ` + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + com_restraint_width : int, float, str, :class:`Length + The width (tolerance) of the center of mass distance restraint (A). restraint : str, [int] The type of restraint to perform. This should be one of the @@ -723,7 +708,7 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. - pos_rest_width : :class:`Length `, float + positional_restraint_width : :class:`Length `, float The width of the flat-bottom potential used for coordinate restraint in Angstroms. pos_restrained_atoms : [int] @@ -745,30 +730,24 @@ def __init__( The uh value for the ATM softcore potential (kcal/mol). SC_a : int, float, str, :class:`Energy ` - The a value for the ATM softcore potential. - - cm_kf : int, float, str, :class:`GeneralUnit ` - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length ` - The tolerance for the center of mass distance restraint (A).""" + The a value for the ATM softcore potential.""" super().__init__( system, data, core_alignment, - CMCM_restraint, + com_distance_restraint, + com_k, + com_restraint_width, restraint, force_constant, - pos_rest_width, + positional_restraint_width, align_kf_sep, align_k_theta, align_k_psi, SC_umax, SC_u0, SC_a, - cm_kf, - cm_tol, ) # Store the number of minimisation steps. self.setSteps(steps) @@ -818,18 +797,18 @@ def __init__( report_interval=100, restart_interval=100, core_alignment=True, - CMCM_restraint=True, + com_distance_restraint=True, + com_k=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - pos_rest_width=0.5 * angstrom, + positional_restraint_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, SC_a=0.0625, - cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - cm_tol=5 * _Units.Length.angstrom, use_atm_force=False, direction=1, lambda1=0.0, @@ -880,8 +859,16 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. - CMCM_restraint : bool + com_distance_restraint : bool Whether to use a center of mass distance restraint. + This restraint applies to the protein/host and both ligands, and + is used to maintain the relative positions of all of them. + + com_k : int, float, str, :class:`GeneralUnit ` + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + com_restraint_width : int, float, str, :class:`Length + The width (tolerance) of the center of mass distance restraint (A). restraint : str, [int] The type of restraint to perform. This should be one of the @@ -902,7 +889,7 @@ def __init__( force_constant : float, :class:`GeneralUnit ` The force constant for the restraint potential (kcal/(mol A^2). - pos_rest_width : float, :class:`Length ` + positional_restraint_width : float, :class:`Length ` The width of the flat-bottom potential used for coordinate restraint in Angstroms. pos_restrained_atoms : [int] @@ -926,11 +913,6 @@ def __init__( SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit ` - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length - The tolerance for the center of mass distance restraint (A). use_atm_force : bool Whether to apply the ATM force within the equilibration protocol. @@ -957,21 +939,21 @@ def __init__( Value in kcal/mol. """ super().__init__( - system, - data, - core_alignment, - CMCM_restraint, - restraint, - force_constant, - pos_rest_width, - align_kf_sep, - align_k_theta, - align_k_psi, - SC_umax, - SC_u0, - SC_a, - cm_kf, - cm_tol, + system=system, + data=data, + core_alignment=core_alignment, + com_distance_restraint=com_distance_restraint, + com_k=com_k, + com_restraint_width=com_restraint_width, + restraint=restraint, + force_constant=force_constant, + positional_restraint_width=positional_restraint_width, + align_kf_sep=align_kf_sep, + align_k_theta=align_k_theta, + align_k_psi=align_k_psi, + SC_umax=SC_umax, + SC_u0=SC_u0, + SC_a=SC_a, ) # Store self.setTimestep(timestep) @@ -1597,18 +1579,18 @@ def __init__( report_interval=100, restart_interval=100, core_alignment=True, - CMCM_restraint=True, + com_distance_restraint=True, + com_k=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - pos_rest_width=0.5 * angstrom, + positional_restraint_width=0.5 * angstrom, align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, SC_u0=500 * _Units.Energy.kcal_per_mol, SC_a=0.0625, - cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - cm_tol=5 * _Units.Length.angstrom, direction=1, lambda1=0.0, lambda2=0.0, @@ -1653,8 +1635,16 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. - CMCM_restraint : bool + com_distance_restraint : bool Whether to use a center of mass distance restraint. + This restraint applies to the protein/host and both ligands, and + is used to maintain the relative positions of all of them. + + com_k : int, float, str, :class:`GeneralUnit ` + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + com_restraint_width : int, float, str, :class:`Length + The width (tolerance) of the center of mass distance restraint (A). restraint : str, [int] The type of restraint to perform. This should be one of the @@ -1677,7 +1667,7 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. - pos_rest_width : float, :class:`Length ` + positional_restraint_width : float, :class:`Length ` The width of the flat-bottom potential used for coordinate restraint in Angstroms. pos_restrained_atoms : [int] @@ -1701,12 +1691,6 @@ def __init__( SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit ` - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length ` - The tolerance for the center of mass distance restraint (A). - direction : str The direction of the Annealing. @@ -1764,21 +1748,21 @@ def __init__( The number of annealing cycles to perform, defines the rate at which values are incremented. Default 100. """ super().__init__( - system, - data, - core_alignment, - CMCM_restraint, - restraint, - force_constant, - pos_rest_width, - align_kf_sep, - align_k_theta, - align_k_psi, - SC_umax, - SC_u0, - SC_a, - cm_kf, - cm_tol, + system=system, + data=data, + core_alignment=core_alignment, + com_distance_restraint=com_distance_restraint, + com_k=com_k, + com_restraint_width=com_restraint_width, + restraint=restraint, + force_constant=force_constant, + positional_restraint_width=positional_restraint_width, + align_kf_sep=align_kf_sep, + align_k_theta=align_k_theta, + align_k_psi=align_k_psi, + SC_umax=SC_umax, + SC_u0=SC_u0, + SC_a=SC_a, ) self.setTimestep(timestep) @@ -2399,6 +2383,36 @@ def setAnnealNumCycles(self, anneal_numcycles): else: raise TypeError("'anneal_numcycles' must be of type 'int'") + def _set_current_index(self, index): + """ + The current index of the window. + In annealing protocols this should not be touched by the user. + + Parameters + ---------- + index : int + The index of the current lambda window. + """ + if index < 0: + raise ValueError("index must be positive") + if not isinstance(index, int): + raise TypeError("index must be an integer") + self._current_index = index + + def _get_window_index(self): + """ + A function to get the index of the current lambda window. + + Returns + ------- + index : int + The index of the current lambda window. + """ + try: + return self._current_index + except: + return None + class AToMProduction(_AToM): """Production protocol for AToM simulations.""" @@ -2416,10 +2430,12 @@ def __init__( restart_interval=100, restart=False, core_alignment=True, - CMCM_restraint=True, + com_distance_restraint=True, + com_k=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - pos_rest_width=0.5 * angstrom, + positional_restraint_width=0.5 * angstrom, num_lambda=22, direction=None, lambda1=None, @@ -2433,8 +2449,6 @@ def __init__( SC_umax=100 * _Units.Energy.kcal_per_mol, SC_u0=50 * _Units.Energy.kcal_per_mol, SC_a=0.0625, - cm_kf=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - cm_tol=5 * _Units.Length.angstrom, analysis_method="UWHAM", ): """ @@ -2472,8 +2486,16 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. - CMCM_restraint : bool + com_distance_restraint : bool Whether to use a center of mass distance restraint. + This restraint applies to the protein/host and both ligands, and + is used to maintain the relative positions of all of them. + + com_k : int, float, str, :class:`GeneralUnit ` + The force constant for the center of mass distance restraint (kcal/mol/A^2). + + com_restraint_width : int, float, str, :class:`Length + The width (tolerance) of the center of mass distance restraint (A). restraint : str, [int] The type of restraint to perform. This should be one of the @@ -2496,7 +2518,7 @@ def __init__( passed, then default units of 'kcal_per_mol / angstrom**2' will be used. - pos_rest_width : :class:`Length `, float + positional_restraint_width : :class:`Length `, float The width of the flat-bottom potential used for coordinate restraint in Angstroms. pos_restrained_atoms : [int] @@ -2520,12 +2542,6 @@ def __init__( SC_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. - cm_kf : int, float, str, :class:`GeneralUnit ` - The force constant for the center of mass distance restraint (kcal/mol/A^2). - - cm_tol : int, float, str, :class:`Length ` - The tolerance for the center of mass distance restraint (A). - restart : bool Whether this is a continuation of a previous simulation. @@ -2560,21 +2576,21 @@ def __init__( USE of "UWHAM" is strongly recommended, "MBAR" analysis is still experimental. """ super().__init__( - system, - data, - core_alignment, - CMCM_restraint, - restraint, - force_constant, - pos_rest_width, - align_kf_sep, - align_k_theta, - align_k_psi, - SC_umax, - SC_u0, - SC_a, - cm_kf, - cm_tol, + system=system, + data=data, + core_alignment=core_alignment, + com_distance_restraint=com_distance_restraint, + com_k=com_k, + com_restraint_width=com_restraint_width, + restraint=restraint, + force_constant=force_constant, + positional_restraint_width=positional_restraint_width, + align_kf_sep=align_kf_sep, + align_k_theta=align_k_theta, + align_k_psi=align_k_psi, + SC_umax=SC_umax, + SC_u0=SC_u0, + SC_a=SC_a, ) self.setTimestep(timestep) @@ -2620,7 +2636,7 @@ def __init__( # Store the W0 values. self.setW0(W0) - self.set_lambda_values() + self._set_lambda_values() self.setAnalysisMethod(analysis_method) @@ -2916,7 +2932,7 @@ def setNumLambda(self, num_lambda): "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." ) self._num_lambda = num_lambda - self.set_lambda_values() + self._set_lambda_values() else: raise TypeError("'num_lambda' must be of type 'int'") @@ -3059,7 +3075,7 @@ def getAlpha(self): Returns ------- - alpha : list of :class:`Energy + alpha : [:class:`Energy ] The alpha values in kcal/mol. """ return self._alpha @@ -3071,7 +3087,7 @@ def setAlpha(self, alpha): Parameters ---------- - alpha : list of :class:`Energy or [int], float, str + alpha : [`Energy ] or [int], [float], [str] The alpha values in kcal/mol. """ if isinstance(alpha, list): @@ -3122,7 +3138,7 @@ def getUh(self): Returns ------- - uh : list of :class:`Energy + uh : [:class:`Energy ] The uh values in kcal/mol. """ return self._uh @@ -3134,7 +3150,7 @@ def setUh(self, uh): Parameters ---------- - uh : list of :class:`Energy + uh : [:class:`Energy ] The uh values in kcal/mol. """ if isinstance(uh, list): @@ -3185,7 +3201,7 @@ def getW0(self): Returns ------- - W0 : list of :class:`Energy + W0 : [:class:`Energy ] The W0 values in kcal/mol. """ return self._W0 @@ -3197,7 +3213,7 @@ def setW0(self, W0): Parameters ---------- - W0 : list of :class:`Energy + W0 : [:class:`Energy ] or [int], [float], [str] The W0 values in kcal/mol. """ if isinstance(W0, list): @@ -3241,12 +3257,12 @@ def setW0(self, W0): else: raise TypeError("'W0' must be of type 'list'") - def set_lambda_values(self): + def _set_lambda_values(self): # Internal function to set the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters self._lambda_values = _np.linspace(0, 1, self._num_lambda).tolist() - def get_lambda_values(self): + def _get_lambda_values(self): # Internal function to get the 'master lambda' # This lambda value serves as the master for all other window-dependent parameters try: @@ -3256,7 +3272,15 @@ def get_lambda_values(self): def setAnalysisMethod(self, analysis_method): """Set the method that will be used for analysis of the simulation results. - This will change the output files that are generated.""" + This will change the output files that are generated. + + Parameters + ---------- + analysis_method : str + The method to use for analysis. Options are "UWHAM", "MBAR" or "both" + This affects the output files and the analysis that is performed. + USE of "UWHAM" is strongly recommended, "MBAR" analysis is still experimental. + """ allowed_methods = ["UWHAM", "MBAR", "both"] if analysis_method in allowed_methods: self._analysis_method = analysis_method @@ -3267,8 +3291,16 @@ def getAnalysisMethod(self): return self._analysis_method def set_current_index(self, index): - # Internal function to set index of the current simulation window - # set using the master lambda list + """ + A function to set the index of the current lambda window. + Used internally to set the values for all lambda-dependent parameters. + Take care when using this function as it can lead to unexpected behaviour if not used correctly. + + Parameters + ---------- + index : int + The index of the current lambda window. + """ if index < 0: raise ValueError("index must be positive") if index >= len(self._lambda1): @@ -3280,7 +3312,14 @@ def set_current_index(self, index): self._current_index = index def get_window_index(self): - # Internal function to get the current window index + """ + A function to get the index of the current lambda window. + + Returns + ------- + index : int + The index of the current lambda window. + """ try: return self._current_index except: diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 44faabb6f..e86707451 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -83,7 +83,7 @@ def test_run(TEMOA_hostguest): system, _ = TEMOA_hostguest production_atm = BSS.Protocol.AToMProduction( system=system, - CMCM_restraint=True, + com_distance_restraint=True, runtime="2 fs", report_interval=1, restart_interval=1, @@ -92,7 +92,7 @@ def test_run(TEMOA_hostguest): ) production_atm2 = BSS.Protocol.AToMProduction( system=system, - CMCM_restraint=True, + com_distance_restraint=True, runtime="4 fs", report_interval=1, restart_interval=1, @@ -418,11 +418,11 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): production_atm = BSS.Protocol.AToMProduction( system=system, - CMCM_restraint=True, - cm_kf=25.0, - cm_tol=5.0, + com_distance_restraint=True, + com_k=25.0, + com_restraint_width=5.0, restraint=pos_rst_atoms, - pos_rest_width=0.5, + positional_restraint_width=0.5, force_constant=25.0, align_k_psi=10.0, align_k_theta=10.0, diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 4787ed1e2..044cf0a62 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -13,48 +13,48 @@ def test_atm_minimisation(TEMOA_hostguest): protocol_units = BSS.Protocol.AToMMinimisation( data=data, core_alignment=False, - CMCM_restraint=False, + com_distance_restraint=False, restraint="all", force_constant=1.0 * (BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2), - pos_rest_width=0.1 * BSS.Units.Length.angstrom, + positional_restraint_width=0.1 * BSS.Units.Length.angstrom, align_kf_sep=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, align_k_theta=1.0 * BSS.Units.Energy.kcal_per_mol, align_k_psi=1.0 * BSS.Units.Energy.kcal_per_mol, SC_umax=10.0 * BSS.Units.Energy.kcal_per_mol, SC_u0=1.0 * BSS.Units.Energy.kcal_per_mol, SC_a=0.01, - cm_kf=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, - cm_tol=1.0 * BSS.Units.Length.angstrom, + com_k=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, + com_restraint_width=1.0 * BSS.Units.Length.angstrom, ) # Now test parsing options as floats protocol_floats = BSS.Protocol.AToMMinimisation( data=data, force_constant=1.0, - pos_rest_width=0.1, + positional_restraint_width=0.1, align_kf_sep=1.0, align_k_theta=1.0, align_k_psi=1.0, SC_umax=10.0, SC_u0=1.0, SC_a=0.01, - cm_kf=1.0, - cm_tol=1.0, + com_k=1.0, + com_restraint_width=1.0, ) # Finally try parsing strings protocol_strings = BSS.Protocol.AToMMinimisation( data=data, force_constant="1.0 kcal mol^-1 angstrom^-2", - pos_rest_width="0.1 angstrom", + positional_restraint_width="0.1 angstrom", align_kf_sep="1.0 kcal mol^-1 angstrom^-2", align_k_theta="1.0 kcal mol^-1", align_k_psi="1.0 kcal mol^-1", SC_umax="10.0 kcal mol^-1", SC_u0="1.0 kcal mol^-1", SC_a=0.01, - cm_kf="1.0 kcal mol^-1 angstrom^-2", - cm_tol="1.0 angstrom", + com_k="1.0 kcal mol^-1 angstrom^-2", + com_restraint_width="1.0 angstrom", ) # using getters, check that all protocols have the same values # (skip force constant and as it is not atm exclusive) @@ -92,14 +92,14 @@ def test_atm_minimisation(TEMOA_hostguest): protocol_units.getSCa() == protocol_floats.getSCa() == protocol_strings.getSCa() ) assert ( - protocol_units.getCMKf() - == protocol_floats.getCMKf() - == protocol_strings.getCMKf() + protocol_units.getCOMk() + == protocol_floats.getCOMk() + == protocol_strings.getCOMk() ) assert ( - protocol_units.getCMTol() - == protocol_floats.getCMTol() - == protocol_strings.getCMTol() + protocol_units.getCOMWidth() + == protocol_floats.getCOMWidth() + == protocol_strings.getCOMWidth() ) From e5de5957138f33caa6cdc7f6a961387a11752f6d Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 15:27:09 +0100 Subject: [PATCH 073/123] Next part of protocol renaming, this time for the alignment restraint and its corresponding constants --- python/BioSimSpace/Process/_atm_utils.py | 2 +- python/BioSimSpace/Protocol/_atm.py | 182 ++++++++++++----------- tests/FreeEnergy/test_atm.py | 2 +- tests/Protocol/test_atm_protocol.py | 12 +- 4 files changed, 101 insertions(+), 97 deletions(-) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index fe0bbdf35..b2adce588 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -43,7 +43,7 @@ def __init__(self, protocol): self.data = self.protocol.getData() def getAlignmentConstants(self): - self.alignment_k_distance = self.protocol.getAlignKfSep().value() + self.alignment_k_distance = self.protocol.getAlignKDistance().value() self.alignment_k_theta = self.protocol.getAlignKTheta().value() self.alignment_k_psi = self.protocol.getAlignKPsi().value() diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index 061c517ff..0d67fd8f8 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -22,15 +22,15 @@ def __init__( system=None, data=None, core_alignment=True, + align_k_distance=2.5 * kcal_per_mol / angstrom2, + align_k_theta=10.0 * kcal_per_mol, + align_k_psi=10.0 * kcal_per_mol, com_distance_restraint=True, com_k=25.0 * kcal_per_mol / angstrom2, com_restraint_width=5.0 * angstrom, restraint=None, force_constant=10 * kcal_per_mol / angstrom2, positional_restraint_width=0.5 * angstrom, - align_kf_sep=2.5 * kcal_per_mol / angstrom2, - align_k_theta=10.0 * kcal_per_mol, - align_k_psi=10.0 * kcal_per_mol, SC_umax=1000.0 * kcal_per_mol, SC_u0=500.0 * kcal_per_mol, SC_a=0.0625, @@ -77,6 +77,15 @@ def __init__( # Whether or not to use alignment restraints. self.setCoreAlignment(core_alignment) + # Store the align_k_distance value. + self.setAlignKDistance(align_k_distance) + + # Store the align_k_theta value. + self.setAlignKTheta(align_k_theta) + + # Store the align_k_psi value. + self.setAlignKPsi(align_k_psi) + # Whether or not to use the CMCM restraint. self.setCOMDistanceRestraint(com_distance_restraint) @@ -89,15 +98,6 @@ def __init__( # Store the width of the coordinate restraint. self.setPosRestWidth(positional_restraint_width) - # Store the align_kf_sep value. - self.setAlignKfSep(align_kf_sep) - - # Store the align_k_theta value. - self.setAlignKTheta(align_k_theta) - - # Store the align_k_psi value. - self.setAlignKPsi(align_k_psi) - # Store the SC_umax value. self.setSCUmax(SC_umax) @@ -257,55 +257,57 @@ def setPosRestWidth(self, positional_restraint_width): ) self._positional_restraint_width = positional_restraint_width - def getAlignKfSep(self): + def getAlignKDistance(self): """ - Return the align_kf_sep value. + Return the align_k_distance value. Returns ------- - align_kf_sep : :class:`GeneralUnit ` - The align_kf_sep value in kcal/mol angstrom**2. + align_k_distance : :class:`GeneralUnit ` + The align_k_distance value in kcal/mol angstrom**2. """ - return self._align_kf_sep + return self._align_k_distance - def setAlignKfSep(self, align_kf_sep): + def setAlignKDistance(self, align_k_distance): """ - Set the align_kf_sep value. + Set the align_k_distance value. Parameters ---------- - align_kf_sep : int, float, str, :class:`GeneralUnit `, float + align_k_distance : int, float, str, :class:`GeneralUnit `, float Length value for the alignment restraint kcal/mol angstrom**2. """ # Convert int to float. - if type(align_kf_sep) is int: - align_kf_sep = float(align_kf_sep) + if type(align_k_distance) is int: + align_k_distance = float(align_k_distance) - if isinstance(align_kf_sep, float): + if isinstance(align_k_distance, float): # Use default units. - align_kf_sep *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 + align_k_distance *= _Units.Energy.kcal_per_mol / _Units.Area.angstrom2 else: - if isinstance(align_kf_sep, str): + if isinstance(align_k_distance, str): try: - align_kf_sep = _Types._GeneralUnit(align_kf_sep) + align_k_distance = _Types._GeneralUnit(align_k_distance) except Exception: - raise ValueError("Unable to parse 'align_kf_sep' string.") from None + raise ValueError( + "Unable to parse 'align_k_distance' string." + ) from None - elif not isinstance(align_kf_sep, _Types._GeneralUnit): + elif not isinstance(align_k_distance, _Types._GeneralUnit): raise TypeError( - "'align_kf_sep' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'align_k_distance' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if align_kf_sep.dimensions() != (1, 0, -2, 0, 0, -1, 0): + if align_k_distance.dimensions() != (1, 0, -2, 0, 0, -1, 0): raise ValueError( - "'align_kf_sep' has invalid dimensions! " - f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{align_kf_sep.unit()}'" + "'align_k_distance' has invalid dimensions! " + f"Expected dimensions of energy density/area (e.g. kcal/molA^2), found '{align_k_distance.unit()}'" ) - self._align_kf_sep = align_kf_sep + self._align_k_distance = align_k_distance def getAlignKTheta(self): """ @@ -655,7 +657,7 @@ def __init__( restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, positional_restraint_width=0.5 * angstrom, - align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, @@ -676,6 +678,15 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. + align_k_distance : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : int, float, str, :class:`Energy ` + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : int, float, str, :class:`Energy ` + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + com_distance_restraint : bool Whether to use a center of mass distance restraint. This restraint applies to the protein/host and both ligands, and @@ -714,14 +725,7 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit ` - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - - align_k_theta : int, float, str, :class:`Energy ` - The force constant for the angular portion of the alignment restaint (kcal/mol). - align_k_psi : int, float, str, :class:`Energy ` - The force constant for the dihedral portion of the alignment restraint (kcal/mol). SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). @@ -733,21 +737,21 @@ def __init__( The a value for the ATM softcore potential.""" super().__init__( - system, - data, - core_alignment, - com_distance_restraint, - com_k, - com_restraint_width, - restraint, - force_constant, - positional_restraint_width, - align_kf_sep, - align_k_theta, - align_k_psi, - SC_umax, - SC_u0, - SC_a, + system=system, + data=data, + core_alignment=core_alignment, + align_k_distance=align_k_distance, + align_k_theta=align_k_theta, + align_k_psi=align_k_psi, + com_distance_restraint=com_distance_restraint, + com_k=com_k, + com_restraint_width=com_restraint_width, + restraint=restraint, + force_constant=force_constant, + positional_restraint_width=positional_restraint_width, + SC_umax=SC_umax, + SC_u0=SC_u0, + SC_a=SC_a, ) # Store the number of minimisation steps. self.setSteps(steps) @@ -803,7 +807,7 @@ def __init__( restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, positional_restraint_width=0.5 * angstrom, - align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, @@ -859,6 +863,15 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. + align_k_distance : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2). + + align_k_theta : int, float, str, :class:`Energy ` + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : int, float, str, :class:`Energy ` + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + com_distance_restraint : bool Whether to use a center of mass distance restraint. This restraint applies to the protein/host and both ligands, and @@ -895,15 +908,6 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit ` - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2). - - align_k_theta : int, float, str, :class:`Energy ` - The force constant for the angular portion of the alignment restaint (kcal/mol). - - align_k_psi : int, float, str, :class:`Energy ` - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). @@ -948,7 +952,7 @@ def __init__( restraint=restraint, force_constant=force_constant, positional_restraint_width=positional_restraint_width, - align_kf_sep=align_kf_sep, + align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, SC_umax=SC_umax, @@ -1585,7 +1589,7 @@ def __init__( restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, positional_restraint_width=0.5 * angstrom, - align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=1000 * _Units.Energy.kcal_per_mol, @@ -1635,6 +1639,15 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. + align_k_distance : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : int, float, str, :class:`Energy ` + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : int, float, str, :class:`Energy ` + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + com_distance_restraint : bool Whether to use a center of mass distance restraint. This restraint applies to the protein/host and both ligands, and @@ -1673,15 +1686,6 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit ` - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - - align_k_theta : int, float, str, :class:`Energy ` - The force constant for the angular portion of the alignment restaint (kcal/mol). - - align_k_psi : int, float, str, :class:`Energy ` - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). @@ -1757,7 +1761,7 @@ def __init__( restraint=restraint, force_constant=force_constant, positional_restraint_width=positional_restraint_width, - align_kf_sep=align_kf_sep, + align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, SC_umax=SC_umax, @@ -2443,7 +2447,7 @@ def __init__( alpha=None, uh=None, W0=None, - align_kf_sep=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, SC_umax=100 * _Units.Energy.kcal_per_mol, @@ -2486,6 +2490,15 @@ def __init__( core_alignment : bool Whether to use rigid core restraints to align the two ligands. + align_k_distance : int, float, str, :class:`GeneralUnit ` + The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). + + align_k_theta : int, float, str, :class:`Energy ` + The force constant for the angular portion of the alignment restaint (kcal/mol). + + align_k_psi : int, float, str, :class:`Energy ` + The force constant for the dihedral portion of the alignment restraint (kcal/mol). + com_distance_restraint : bool Whether to use a center of mass distance restraint. This restraint applies to the protein/host and both ligands, and @@ -2524,15 +2537,6 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - align_kf_sep : int, float, str, :class:`GeneralUnit ` - The force constant for the distance portion of the alignment restraint (kcal/(mol A^2)). - - align_k_theta : int, float, str, :class:`Energy ` - The force constant for the angular portion of the alignment restaint (kcal/mol). - - align_k_psi : int, float, str, :class:`Energy ` - The force constant for the dihedral portion of the alignment restraint (kcal/mol). - SC_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). @@ -2585,7 +2589,7 @@ def __init__( restraint=restraint, force_constant=force_constant, positional_restraint_width=positional_restraint_width, - align_kf_sep=align_kf_sep, + align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, SC_umax=SC_umax, diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index e86707451..7705ed671 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -426,7 +426,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): force_constant=25.0, align_k_psi=10.0, align_k_theta=10.0, - align_kf_sep=2.5, + align_k_distance=2.5, runtime="100 ps", num_lambda=22, SC_umax=100.0, diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 044cf0a62..933dd0da3 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -17,7 +17,7 @@ def test_atm_minimisation(TEMOA_hostguest): restraint="all", force_constant=1.0 * (BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2), positional_restraint_width=0.1 * BSS.Units.Length.angstrom, - align_kf_sep=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, + align_k_distance=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, align_k_theta=1.0 * BSS.Units.Energy.kcal_per_mol, align_k_psi=1.0 * BSS.Units.Energy.kcal_per_mol, SC_umax=10.0 * BSS.Units.Energy.kcal_per_mol, @@ -32,7 +32,7 @@ def test_atm_minimisation(TEMOA_hostguest): data=data, force_constant=1.0, positional_restraint_width=0.1, - align_kf_sep=1.0, + align_k_distance=1.0, align_k_theta=1.0, align_k_psi=1.0, SC_umax=10.0, @@ -47,7 +47,7 @@ def test_atm_minimisation(TEMOA_hostguest): data=data, force_constant="1.0 kcal mol^-1 angstrom^-2", positional_restraint_width="0.1 angstrom", - align_kf_sep="1.0 kcal mol^-1 angstrom^-2", + align_k_distance="1.0 kcal mol^-1 angstrom^-2", align_k_theta="1.0 kcal mol^-1", align_k_psi="1.0 kcal mol^-1", SC_umax="10.0 kcal mol^-1", @@ -64,9 +64,9 @@ def test_atm_minimisation(TEMOA_hostguest): == protocol_strings.getPosRestWidth() ) assert ( - protocol_units.getAlignKfSep() - == protocol_floats.getAlignKfSep() - == protocol_strings.getAlignKfSep() + protocol_units.getAlignKDistance() + == protocol_floats.getAlignKDistance() + == protocol_strings.getAlignKDistance() ) assert ( protocol_units.getAlignKTheta() From f9675db6ea67ff65413f5deb2347e55393344277 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:07:31 +0100 Subject: [PATCH 074/123] Next set of changes for protocol variable naming, this time the soft core parameters --- python/BioSimSpace/Process/_atm_utils.py | 6 +- python/BioSimSpace/Protocol/_atm.py | 194 ++++++++++++----------- tests/FreeEnergy/test_atm.py | 6 +- tests/Protocol/test_atm_protocol.py | 34 ++-- 4 files changed, 122 insertions(+), 118 deletions(-) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index b2adce588..23aafc8db 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -84,9 +84,9 @@ def findAbsoluteCOMAtoms(self): def getATMForceConstants(self, index=None): self.lig1_atoms = self.getLigand1AtomsAsList() self.lig2_atoms = self.getLigand2AtomsAsList() - self.SCUmax = self.protocol.getSCUmax().value() - self.SCU0 = self.protocol.getSCU0().value() - self.SCa = self.protocol.getSCa() + self.SCUmax = self.protocol.getSoftCoreUmax().value() + self.SCU0 = self.protocol.getSoftCoreU0().value() + self.SCa = self.protocol.getSoftCoreA() if isinstance(self.protocol, _Protocol.AToMProduction): if index is None: raise ValueError("Index must be set for AToMProduction protocol") diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index 0d67fd8f8..7582cbd70 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -31,9 +31,9 @@ def __init__( restraint=None, force_constant=10 * kcal_per_mol / angstrom2, positional_restraint_width=0.5 * angstrom, - SC_umax=1000.0 * kcal_per_mol, - SC_u0=500.0 * kcal_per_mol, - SC_a=0.0625, + soft_core_umax=1000.0 * kcal_per_mol, + soft_core_u0=500.0 * kcal_per_mol, + soft_core_a=0.0625, ): # Call the base class constructor. super().__init__() @@ -98,14 +98,14 @@ def __init__( # Store the width of the coordinate restraint. self.setPosRestWidth(positional_restraint_width) - # Store the SC_umax value. - self.setSCUmax(SC_umax) + # Store the soft_core_umax value. + self.setSoftCoreUmax(soft_core_umax) - # Store the SC_u0 value. - self.setSCU0(SC_u0) + # Store the soft_core_u0 value. + self.setSoftCoreU0(soft_core_u0) - # Store the SC_a value. - self.setSCa(SC_a) + # Store the soft_core_a value. + self.setSoftCoreA(soft_core_a) # Set the postition restraint. _PositionRestraintMixin.__init__(self, restraint, force_constant) @@ -412,132 +412,134 @@ def setAlignKPsi(self, align_k_psi): ) self._align_k_psi = align_k_psi - def getSCUmax(self): + def getSoftCoreUmax(self): """ - Return the SC_umax value. + Return the soft_core_umax value. Returns ------- - SC_umax : :class:`Energy ` - The SC_umax value in kcal/mol. + soft_core_umax : :class:`Energy ` + The soft_core_umax value in kcal/mol. """ - return self._SC_umax + return self._soft_core_umax - def setSCUmax(self, SC_umax): + def setSoftCoreUmax(self, soft_core_umax): """ - Set the SC_umax value. + Set the soft_core_umax value. Parameters ---------- - SC_umax : int, float, str, :class:`Energy ` + soft_core_umax : int, float, str, :class:`Energy ` The softcore Umax value in kcal/mol. """ # Convert int to float. - if type(SC_umax) is int: - SC_umax = float(SC_umax) + if type(soft_core_umax) is int: + soft_core_umax = float(soft_core_umax) - if isinstance(SC_umax, float): + if isinstance(soft_core_umax, float): # Use default units. - SC_umax *= _Units.Energy.kcal_per_mol + soft_core_umax *= _Units.Energy.kcal_per_mol else: - if isinstance(SC_umax, str): + if isinstance(soft_core_umax, str): try: - SC_umax = _Types._GeneralUnit(SC_umax) + soft_core_umax = _Types._GeneralUnit(soft_core_umax) except Exception: - raise ValueError("Unable to parse 'SC_umax' string.") from None + raise ValueError( + "Unable to parse 'soft_core_umax' string." + ) from None - elif not isinstance(SC_umax, _Types.Energy): + elif not isinstance(soft_core_umax, _Types.Energy): raise TypeError( - "'SC_umax' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'soft_core_umax' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if SC_umax.dimensions() != (1, 2, -2, 0, 0, -1, 0): + if soft_core_umax.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions of energy density (e.g. kcal/mol), found '{SC_umax.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{soft_core_umax.unit()}'" ) - self._SC_umax = SC_umax + self._soft_core_umax = soft_core_umax - def getSCU0(self): + def getSoftCoreU0(self): """ - Return the SC_u0 value. + Return the soft_core_u0 value. Returns ------- - SC_u0 : :class:`Energy ` - The SC_u0 value in kcal/mol. + soft_core_u0 : :class:`Energy ` + The soft_core_u0 value in kcal/mol. """ - return self._SC_u0 + return self._soft_core_u0 - def setSCU0(self, SC_u0): + def setSoftCoreU0(self, soft_core_u0): """ - Set the SC_u0 value. + Set the soft_core_u0 value. Parameters ---------- - SC_u0 : int, float, str, :class:`Energy ` + soft_core_u0 : int, float, str, :class:`Energy ` The softcore u0 value in kcal/mol. """ # Convert int to float. - if type(SC_u0) is int: - SC_u0 = float(SC_u0) + if type(soft_core_u0) is int: + soft_core_u0 = float(soft_core_u0) - if isinstance(SC_u0, float): + if isinstance(soft_core_u0, float): # Use default units. - SC_u0 *= _Units.Energy.kcal_per_mol + soft_core_u0 *= _Units.Energy.kcal_per_mol else: - if isinstance(SC_u0, str): + if isinstance(soft_core_u0, str): try: - SC_u0 = _Types._GeneralUnit(SC_u0) + soft_core_u0 = _Types._GeneralUnit(soft_core_u0) except Exception: - raise ValueError("Unable to parse 'SC_u0' string.") from None + raise ValueError("Unable to parse 'soft_core_u0' string.") from None - elif not isinstance(SC_u0, _Types.Energy): + elif not isinstance(soft_core_u0, _Types.Energy): raise TypeError( - "'SC_u0' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." + "'soft_core_u0' must be of type 'BioSimSpace.Types._GeneralUnit', 'str', or 'float'." ) # Validate the dimensions. - if SC_u0.dimensions() != (1, 2, -2, 0, 0, -1, 0): + if soft_core_u0.dimensions() != (1, 2, -2, 0, 0, -1, 0): raise ValueError( "'align_k_theta' has invalid dimensions! " - f"Expected dimensions of energy density (e.g. kcal/mol), found '{SC_u0.unit()}'" + f"Expected dimensions of energy density (e.g. kcal/mol), found '{soft_core_u0.unit()}'" ) - self._SC_u0 = SC_u0 + self._soft_core_u0 = soft_core_u0 - def getSCa(self): + def getSoftCoreA(self): """ - Return the SC_a value. + Return the soft_core_a value. Returns ------- - SC_a : float - The SC_a value. + soft_core_a : float + The soft_core_a value. """ - return self._SC_a + return self._soft_core_a - def setSCa(self, SC_a): + def setSoftCoreA(self, soft_core_a): """ - Set the SC_a value. + Set the soft_core_a value. Parameters ---------- - SC_a : float + soft_core_a : float The softcore a value. """ - if isinstance(SC_a, (int, float)): - self._SC_a = float(SC_a) + if isinstance(soft_core_a, (int, float)): + self._soft_core_a = float(soft_core_a) else: - raise TypeError("'SC_a' must be of type 'float'") + raise TypeError("'soft_core_a' must be of type 'float'") def getCOMk(self): """ @@ -660,9 +662,9 @@ def __init__( align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, - SC_umax=1000 * _Units.Energy.kcal_per_mol, - SC_u0=500 * _Units.Energy.kcal_per_mol, - SC_a=0.0625, + soft_core_umax=1000 * _Units.Energy.kcal_per_mol, + soft_core_u0=500 * _Units.Energy.kcal_per_mol, + soft_core_a=0.0625, com_k=25 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, com_restraint_width=5 * _Units.Length.angstrom, ): @@ -727,13 +729,13 @@ def __init__( - SC_umax : int, float, str, :class:`Energy ` + soft_core_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy ` + soft_core_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy ` + soft_core_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential.""" super().__init__( @@ -749,9 +751,9 @@ def __init__( restraint=restraint, force_constant=force_constant, positional_restraint_width=positional_restraint_width, - SC_umax=SC_umax, - SC_u0=SC_u0, - SC_a=SC_a, + soft_core_umax=soft_core_umax, + soft_core_u0=soft_core_u0, + soft_core_a=soft_core_a, ) # Store the number of minimisation steps. self.setSteps(steps) @@ -810,9 +812,9 @@ def __init__( align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, - SC_umax=1000 * _Units.Energy.kcal_per_mol, - SC_u0=500 * _Units.Energy.kcal_per_mol, - SC_a=0.0625, + soft_core_umax=1000 * _Units.Energy.kcal_per_mol, + soft_core_u0=500 * _Units.Energy.kcal_per_mol, + soft_core_a=0.0625, use_atm_force=False, direction=1, lambda1=0.0, @@ -908,13 +910,13 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - SC_umax : int, float, str, :class:`Energy ` + soft_core_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy ` + soft_core_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy ` + soft_core_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. @@ -955,9 +957,9 @@ def __init__( align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, - SC_umax=SC_umax, - SC_u0=SC_u0, - SC_a=SC_a, + soft_core_umax=soft_core_umax, + soft_core_u0=soft_core_u0, + soft_core_a=soft_core_a, ) # Store self.setTimestep(timestep) @@ -1592,9 +1594,9 @@ def __init__( align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, - SC_umax=1000 * _Units.Energy.kcal_per_mol, - SC_u0=500 * _Units.Energy.kcal_per_mol, - SC_a=0.0625, + soft_core_umax=1000 * _Units.Energy.kcal_per_mol, + soft_core_u0=500 * _Units.Energy.kcal_per_mol, + soft_core_a=0.0625, direction=1, lambda1=0.0, lambda2=0.0, @@ -1686,13 +1688,13 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - SC_umax : int, float, str, :class:`Energy ` + soft_core_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy ` + soft_core_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy ` + soft_core_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. direction : str @@ -1764,9 +1766,9 @@ def __init__( align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, - SC_umax=SC_umax, - SC_u0=SC_u0, - SC_a=SC_a, + soft_core_umax=soft_core_umax, + soft_core_u0=soft_core_u0, + soft_core_a=soft_core_a, ) self.setTimestep(timestep) @@ -2450,9 +2452,9 @@ def __init__( align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, - SC_umax=100 * _Units.Energy.kcal_per_mol, - SC_u0=50 * _Units.Energy.kcal_per_mol, - SC_a=0.0625, + soft_core_umax=100 * _Units.Energy.kcal_per_mol, + soft_core_u0=50 * _Units.Energy.kcal_per_mol, + soft_core_a=0.0625, analysis_method="UWHAM", ): """ @@ -2537,13 +2539,13 @@ def __init__( pos_restrained_atoms : [int] The atoms to be restrained. - SC_umax : int, float, str, :class:`Energy ` + soft_core_umax : int, float, str, :class:`Energy ` The Umax value for the ATM softcore potential (kcal/mol). - SC_u0 : int, float, str, :class:`Energy ` + soft_core_u0 : int, float, str, :class:`Energy ` The uh value for the ATM softcore potential (kcal/mol). - SC_a : int, float, str, :class:`Energy ` + soft_core_a : int, float, str, :class:`Energy ` The a value for the ATM softcore potential. restart : bool @@ -2592,9 +2594,9 @@ def __init__( align_k_distance=align_k_distance, align_k_theta=align_k_theta, align_k_psi=align_k_psi, - SC_umax=SC_umax, - SC_u0=SC_u0, - SC_a=SC_a, + soft_core_umax=soft_core_umax, + soft_core_u0=soft_core_u0, + soft_core_a=soft_core_a, ) self.setTimestep(timestep) diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 7705ed671..33ac3f678 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -429,9 +429,9 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): align_k_distance=2.5, runtime="100 ps", num_lambda=22, - SC_umax=100.0, - SC_a=0.0625, - SC_u0=50.0, + soft_core_umax=100.0, + soft_core_a=0.0625, + soft_core_u0=50.0, ) with tempfile.TemporaryDirectory() as tmpdirname: diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm_protocol.py index 933dd0da3..4439f4840 100644 --- a/tests/Protocol/test_atm_protocol.py +++ b/tests/Protocol/test_atm_protocol.py @@ -20,9 +20,9 @@ def test_atm_minimisation(TEMOA_hostguest): align_k_distance=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, align_k_theta=1.0 * BSS.Units.Energy.kcal_per_mol, align_k_psi=1.0 * BSS.Units.Energy.kcal_per_mol, - SC_umax=10.0 * BSS.Units.Energy.kcal_per_mol, - SC_u0=1.0 * BSS.Units.Energy.kcal_per_mol, - SC_a=0.01, + soft_core_umax=10.0 * BSS.Units.Energy.kcal_per_mol, + soft_core_u0=1.0 * BSS.Units.Energy.kcal_per_mol, + soft_core_a=0.01, com_k=1.0 * BSS.Units.Energy.kcal_per_mol / BSS.Units.Area.angstrom2, com_restraint_width=1.0 * BSS.Units.Length.angstrom, ) @@ -35,9 +35,9 @@ def test_atm_minimisation(TEMOA_hostguest): align_k_distance=1.0, align_k_theta=1.0, align_k_psi=1.0, - SC_umax=10.0, - SC_u0=1.0, - SC_a=0.01, + soft_core_umax=10.0, + soft_core_u0=1.0, + soft_core_a=0.01, com_k=1.0, com_restraint_width=1.0, ) @@ -50,9 +50,9 @@ def test_atm_minimisation(TEMOA_hostguest): align_k_distance="1.0 kcal mol^-1 angstrom^-2", align_k_theta="1.0 kcal mol^-1", align_k_psi="1.0 kcal mol^-1", - SC_umax="10.0 kcal mol^-1", - SC_u0="1.0 kcal mol^-1", - SC_a=0.01, + soft_core_umax="10.0 kcal mol^-1", + soft_core_u0="1.0 kcal mol^-1", + soft_core_a=0.01, com_k="1.0 kcal mol^-1 angstrom^-2", com_restraint_width="1.0 angstrom", ) @@ -79,17 +79,19 @@ def test_atm_minimisation(TEMOA_hostguest): == protocol_strings.getAlignKPsi() ) assert ( - protocol_units.getSCUmax() - == protocol_floats.getSCUmax() - == protocol_strings.getSCUmax() + protocol_units.getSoftCoreUmax() + == protocol_floats.getSoftCoreUmax() + == protocol_strings.getSoftCoreUmax() ) assert ( - protocol_units.getSCU0() - == protocol_floats.getSCU0() - == protocol_strings.getSCU0() + protocol_units.getSoftCoreU0() + == protocol_floats.getSoftCoreU0() + == protocol_strings.getSoftCoreU0() ) assert ( - protocol_units.getSCa() == protocol_floats.getSCa() == protocol_strings.getSCa() + protocol_units.getSoftCoreA() + == protocol_floats.getSoftCoreA() + == protocol_strings.getSoftCoreA() ) assert ( protocol_units.getCOMk() From 07e8407d1e3c52020fbd6245ef7c770446b71566 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:28:21 +0100 Subject: [PATCH 075/123] Simplifies protocol check in atm_utils --- python/BioSimSpace/Process/_atm_utils.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index 23aafc8db..b418ec7d2 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -23,21 +23,14 @@ from ..Types import Vector as _Vector import math as _math import warnings as _warnings +from ..Protocol._atm import _AToM class _AToMUtils: # Internal class for creating openmm forces within an AToM process. def __init__(self, protocol): # Check for proper typing - if not isinstance( - protocol, - ( - _Protocol.AToMMinimisation, - _Protocol.AToMEquilibration, - _Protocol.AToMAnnealing, - _Protocol.AToMProduction, - ), - ): + if not isinstance(protocol, _AToM): raise TypeError("Protocol must be an AToM protocol") self.protocol = protocol self.data = self.protocol.getData() From 9b925d32e66d643d2661952fa8aec6f36c166c65 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:30:57 +0100 Subject: [PATCH 076/123] Corrects spelling of Gallicchio --- python/BioSimSpace/Process/_atm_utils.py | 8 ++++---- tests/FreeEnergy/test_atm.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index b418ec7d2..ae6c5d943 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -143,7 +143,7 @@ def createDisplacement(self): return output def createSoftcorePertE(self): - """Create the softcorePertE function for the Gallachio lab analysis""" + """Create the softcorePertE function for the Gallicchio lab analysis""" output = "" output += "def softCorePertE(u, umax, ub, a):\n" output += " usc = u\n" @@ -251,7 +251,7 @@ def createAlignmentForce(self, force_group=None): # "dx_21 = x2 - x1; dy_21 = y2 - y1; dz_21 = z2 - z1;" # )\n""" - # Gallachio lab dihedral form: + # Gallicchio lab dihedral form: output += 'dihedral_energy_fn = "(k/2) * (1 - cosp) ; "\n' output += 'dihedral_energy_fn += "cosp = xvn*xwn + yvn*ywn + zvn*zwn ; "\n' output += 'dihedral_energy_fn += "xvn = xv/v ; yvn = yv/v; zvn = zv/v ;"\n' @@ -661,13 +661,13 @@ def createSoftcorePertELoop( report_interval, timestep, ): - """Recreation of Gallachio lab analysis - currently uses {cycles} to define sampling frequency""" + """Recreation of Gallicchio lab analysis - currently uses {cycles} to define sampling frequency""" output = "" output += f"\n# Run the simulation in cycles, with each cycle having {report_interval} steps.\n" output += "# Timestep in ps\n" output += f"timestep = {timestep}\n" output += "\n" - output += "#Create dictionary for storing results in the same manner as the Gallachio lab code\n" + output += "#Create dictionary for storing results in the same manner as the Gallicchio lab code\n" # Logic for restarting simulations output += "#Reporting for UWHAM:\n" output += "if is_restart:\n" diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 33ac3f678..17b8979a0 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -489,7 +489,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): def test_UWHAM(): import numpy as np - # To try and ensure parity with the Gallachio lab code + # To try and ensure parity with the Gallicchio lab code # we will test each individual element of the UWHAM calculation potential = -69702.79 e_pert = 70.48908 From c9428574383ea21dee9d9ba5371198a0430b773d Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:37:14 +0100 Subject: [PATCH 077/123] Make imports in ddg private --- python/BioSimSpace/FreeEnergy/_ddg.py | 74 +++++++++++++-------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 74d7a1e4e..b5013adb9 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -22,36 +22,34 @@ # Alchemical transfer analysis methods. UWHAM implementation adapted from # both the `femto` and `AToM-openmm` packages. -__all__ = ["analyse_UWHAM", "analyse_MBAR", "new_MBAR"] +__all__ = ["analyse_UWHAM", "analyse_MBAR"] import pandas as _pd -import numpy -import scipy.optimize -import scipy.special -import pathlib -import functools +import numpy as _numpy +import scipy.optimize as _optimize +import scipy.special as _special +import functools as _functools import pathlib as _pathlib import os as _os -import pymbar def _compute_weights(ln_z, ln_q, factor): - q_ij = numpy.exp(ln_q - ln_z) + q_ij = _numpy.exp(ln_q - ln_z) return q_ij / (factor * q_ij).sum(axis=-1, keepdims=True) def _compute_kappa_hessian(ln_z, ln_q, factor, n): - ln_z = numpy.insert(ln_z, 0, 0.0) + ln_z = _numpy.insert(ln_z, 0, 0.0) w = (factor * _compute_weights(ln_z, ln_q, factor))[:, 1:] - return -w.T @ w / n + numpy.diag(w.sum(axis=0) / n) + return -w.T @ w / n + _numpy.diag(w.sum(axis=0) / n) def _compute_kappa(ln_z, ln_q, factor, n): - ln_z = numpy.insert(ln_z, 0, 0.0) + ln_z = _numpy.insert(ln_z, 0, 0.0) - ln_q_ij_sum = scipy.special.logsumexp(a=ln_q - ln_z, b=factor, axis=1) + ln_q_ij_sum = _special.logsumexp(a=ln_q - ln_z, b=factor, axis=1) kappa = ln_q_ij_sum.sum() / n + (factor * ln_z).sum() w = factor * _compute_weights(ln_z, ln_q, factor) @@ -63,14 +61,14 @@ def _compute_kappa(ln_z, ln_q, factor, n): def _compute_variance(ln_z, w, factor, n): o = w.T @ w / n - b = o * factor - numpy.eye(len(ln_z)) + b = o * factor - _numpy.eye(len(ln_z)) b = b[1:, 1:] b_inv_a = -o + o[0, :] b_inv_a = b_inv_a[1:, 1:] - var_matrix = (b_inv_a @ numpy.linalg.inv(b.T)) / n - return numpy.insert(numpy.diag(var_matrix), 0, 0.0) + var_matrix = (b_inv_a @ _numpy.linalg.inv(b.T)) / n + return _numpy.insert(_numpy.diag(var_matrix), 0, 0.0) def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): @@ -78,10 +76,10 @@ def _bias_fcn(epert, lam1, lam2, alpha, u0, w0): This is for the bias ilogistic potential (lambda2-lambda1) ln[1+exp(-alpha (u-u0))]/alpha + lambda2 u + w0 """ - ebias1 = numpy.zeros_like(epert) + ebias1 = _numpy.zeros_like(epert) if alpha > 0: - ee = 1 + numpy.exp(-alpha * (epert - u0)) - ebias1 = (lam2 - lam1) * numpy.log(ee) / alpha + ee = 1 + _numpy.exp(-alpha * (epert - u0)) + ebias1 = (lam2 - lam1) * _numpy.log(ee) / alpha return ebias1 + lam2 * epert + w0 @@ -102,9 +100,9 @@ def _estimate_f_i(ln_q, n_k): Returns: The estimated reduced free energies and their estimated variance. """ - n_k = numpy.array(n_k) + n_k = _numpy.array(n_k) - ln_q = numpy.array(ln_q).T + ln_q = _numpy.array(ln_q).T n_samples, n_states = ln_q.shape @@ -117,29 +115,29 @@ def _estimate_f_i(ln_q, n_k): "The number of samples do not match: %d != %d" % (n_samples, n_k.sum()) ) - ln_z = numpy.zeros(len(n_k) - 1) # ln_z_0 is always fixed at 0.0 + ln_z = _numpy.zeros(len(n_k) - 1) # ln_z_0 is always fixed at 0.0 ln_q -= ln_q[:, :1] n = n_k.sum() factor = n_k / n - result = scipy.optimize.minimize( - functools.partial(_compute_kappa, ln_q=ln_q, n=n, factor=factor), + result = _optimize.minimize( + _functools.partial(_compute_kappa, ln_q=ln_q, n=n, factor=factor), ln_z, method="trust-ncg", jac=True, - hess=functools.partial(_compute_kappa_hessian, ln_q=ln_q, n=n, factor=factor), + hess=_functools.partial(_compute_kappa_hessian, ln_q=ln_q, n=n, factor=factor), ) if not result.success: raise RuntimeError("The UWHAM minimization failed to converge.") - f_i = numpy.insert(-result.x, 0, 0.0) - ln_z = numpy.insert(result.x, 0, 0.0) + f_i = _numpy.insert(-result.x, 0, 0.0) + ln_z = _numpy.insert(result.x, 0, 0.0) weights = _compute_weights(ln_z, ln_q, factor) - if not numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): + if not _numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): raise RuntimeError("The UWHAM weights do not sum to 1.0") df_i = _compute_variance(ln_z, weights, factor, n) @@ -161,7 +159,7 @@ def _sort_folders(work_dir): A dictionary of folder names and their corresponding lambda values. """ folders = {} - for folder in pathlib.Path(work_dir).iterdir(): + for folder in _pathlib.Path(work_dir).iterdir(): if folder.is_dir() and folder.name.startswith("lambda_"): try: lambda_val = float(folder.name.split("_")[-1]) @@ -287,9 +285,9 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) ) # We will assume that the point at which leg1 and leg2 are split is halfway through n_samples_first_half = n_samples[: inflection_indices[0] + 1] - pots_first_half = numpy.concatenate(pots[: inflection_indices[0] + 1]) - pert_es_first_half = numpy.concatenate(pert_es[: inflection_indices[0] + 1]) - ln_q = numpy.zeros((inflection_indices[0] + 1, len(pots_first_half))) + pots_first_half = _numpy.concatenate(pots[: inflection_indices[0] + 1]) + pert_es_first_half = _numpy.concatenate(pert_es[: inflection_indices[0] + 1]) + ln_q = _numpy.zeros((inflection_indices[0] + 1, len(pots_first_half))) sid = 0 for be in range(len(n_samples_first_half)): @@ -309,12 +307,12 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) ddg = f_i[-1] - f_i[0] ddg1 = ddg / dataframes[0]["beta"].values[0] # print(f"Forward leg: {ddg1}") - ddg_error_1 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + ddg_error_1 = _numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] n_samples_second_half = n_samples[inflection_indices[1] :] - pots_second_half = numpy.concatenate(pots[inflection_indices[1] :]) - pert_es_second_half = numpy.concatenate(pert_es[inflection_indices[1] :]) - ln_q = numpy.zeros((total_states - inflection_indices[1], len(pots_second_half))) + pots_second_half = _numpy.concatenate(pots[inflection_indices[1] :]) + pert_es_second_half = _numpy.concatenate(pert_es[inflection_indices[1] :]) + ln_q = _numpy.zeros((total_states - inflection_indices[1], len(pots_second_half))) sid = 0 # note the order of (be, te) @@ -335,10 +333,10 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) ddg = f_i[-1] - f_i[0] ddg2 = ddg / dataframes[0]["beta"].values[0] # print(f"Reverse leg: {ddg2}") - ddg_error_2 = numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] + ddg_error_2 = _numpy.sqrt(d_i[-1] + d_i[0]) / dataframes[0]["beta"].values[0] ddg_total = ddg1 - ddg2 - ddg_total_error = numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) + ddg_total_error = _numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) return ddg_total, ddg_total_error @@ -407,7 +405,7 @@ def analyse_MBAR(work_dir): num_lams += 1 except ValueError: cols.append(col) - new_lambdas = list(numpy.linspace(0, 1, num_lams)) + new_lambdas = list(_numpy.linspace(0, 1, num_lams)) new_fep_lambda = new_lambdas[index_fep_lambda] new_cols = cols + new_lambdas # rename the columns From 123597013822569896cb31e452e6523276ffdc39 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:38:30 +0100 Subject: [PATCH 078/123] Change name of atm protocol test to bring in line with other test names --- tests/Protocol/{test_atm_protocol.py => test_atm.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/Protocol/{test_atm_protocol.py => test_atm.py} (100%) diff --git a/tests/Protocol/test_atm_protocol.py b/tests/Protocol/test_atm.py similarity index 100% rename from tests/Protocol/test_atm_protocol.py rename to tests/Protocol/test_atm.py From 326c463439973b1ec8f97f6e14c0613def8fadf1 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 21 Aug 2024 16:52:04 +0100 Subject: [PATCH 079/123] UWHAM analysis now returns energy in kcal/mol --- python/BioSimSpace/FreeEnergy/_atm.py | 4 ++-- python/BioSimSpace/FreeEnergy/_ddg.py | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index fca49b1ce..b2aaa7d72 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1086,9 +1086,9 @@ def analyse( Returns ------- - ddg : float + ddg : :class:`BioSimSpace.Types.Energy` The free energy difference between the two ligands. - ddg_err : float + ddg_err :class:`BioSimSpace.Types.Energy` The error in the free energy difference. """ if not isinstance(ignore_lower, int): diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index b5013adb9..6f581225a 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -213,9 +213,9 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) Returns ------- - ddg_total : float + ddg_total : :class:`BioSimSpace.Types.Energy` The free energy. - ddg_total_error : float + ddg_total_error : :class:`BioSimSpace.Types.Energy` The error in the free energy. """ @@ -337,6 +337,11 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) ddg_total = ddg1 - ddg2 ddg_total_error = _numpy.sqrt(ddg_error_1**2 + ddg_error_2**2) + from BioSimSpace.Units import Energy as _Energy + + ddg_total = ddg_total * _Energy.kcal_per_mol + ddg_total_error = ddg_total_error * _Energy.kcal_per_mol + return ddg_total, ddg_total_error From d3701682d2c31b0febc83c470868e33d33f6ec66 Mon Sep 17 00:00:00 2001 From: Zhiyi Wu Date: Tue, 27 Aug 2024 09:37:29 +0100 Subject: [PATCH 080/123] Exclude lipids from heavy atom restraint for Gromacs Process (#55) --- .../Sandpit/Exscientia/Process/_gromacs.py | 8 +++-- .../Exscientia/_SireWrappers/_molecule.py | 16 ++++++++++ .../Process/test_position_restraint.py | 31 +++++++++++++++++++ .../Exscientia/_SireWrappers/test_molecule.py | 13 ++++++++ 4 files changed, 65 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py index 52a17da82..f3f847588 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py @@ -2180,15 +2180,17 @@ def _add_position_restraints(self, config_options): for idx, mol_idx in enumerate(mol_idxs): # Get the indices of any restrained atoms in this molecule, # making sure that indices are relative to the molecule. - if restraint is not None: + if restraint is None: + atom_idxs = [] + elif self._system.getMolecule(mol_idx).isLipid(): + atom_idxs = [] + else: atom_idxs = self._system.getRestraintAtoms( restraint, mol_index=mol_idx, is_absolute=False, allow_zero_matches=True, ) - else: - atom_idxs = [] if self._system.getMolecule(mol_idx).isAlchemicalIon(): alch_ion = self._system.getMolecule(mol_idx).getAtoms() diff --git a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_molecule.py b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_molecule.py index 6c9012c23..a9b270794 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_molecule.py +++ b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_molecule.py @@ -518,6 +518,22 @@ def isDecoupled(self): else: return False + def isLipid(self): + """ + Whether this molecule is decoupled, i.e. it can be used in a + free-energy decoupling simulation. + + Returns + ------- + + is_decoupled : bool + Whether the molecule is decoupled. + """ + if self._sire_object.hasProperty("lipid"): + return True + else: + return False + def isML(self): """ Whether this molecule is marked as ML molecule, i.e. it can be used in a diff --git a/tests/Sandpit/Exscientia/Process/test_position_restraint.py b/tests/Sandpit/Exscientia/Process/test_position_restraint.py index 542b71c54..8fc68cd55 100644 --- a/tests/Sandpit/Exscientia/Process/test_position_restraint.py +++ b/tests/Sandpit/Exscientia/Process/test_position_restraint.py @@ -167,6 +167,37 @@ def test_gromacs(protocol, system, ref_system, tmp_path): assert len(diff) +@pytest.mark.skipif( + has_gromacs is False or has_openff is False, + reason="Requires GROMACS and openff to be installed", +) +@pytest.mark.parametrize("lipid", [True, False]) +def test_gromacs_lipid(system, tmp_path, lipid): + protocol = BSS.Protocol.Minimisation(restraint="heavy") + if lipid: + molecule = system.getMolecule(0) + sire_obj = molecule._sire_object + c = sire_obj.cursor() + c["lipid"] = True + molecule._sire_object = c.commit() + system.updateMolecule(0, molecule) + BSS.Process.Gromacs( + system, + protocol, + reference_system=system, + work_dir=str(tmp_path), + ignore_warnings=True, + ) + if lipid is False: + assert (tmp_path / "posre_0001.itp").is_file() + with open(tmp_path / "gromacs.top", "r") as f: + assert "posre_0001.itp" in f.read() + else: + assert not (tmp_path / "posre_0001.itp").is_file() + with open(tmp_path / "gromacs.top", "r") as f: + assert not "posre_0001.itp" in f.read() + + @pytest.mark.skipif( has_amber is False or has_openff is False, reason="Requires AMBER and openff to be installed", diff --git a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py index 7f6bc0aa3..47bbdc69d 100644 --- a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py +++ b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py @@ -126,3 +126,16 @@ def test_extract(system): # Make sure the numbers are different. assert partial_mol.number() != mol.number() + + +@pytest.mark.parametrize("lipid", [True, False]) +def test_lipid(lipid): + ff = "openff_unconstrained-2.0.0" + mol = BSS.Parameters.parameterise("c1ccccc1C", ff).getMolecule() + if lipid: + sire_obj = mol._sire_object + c = sire_obj.cursor() + c["lipid"] = lipid + mol._sire_object = c.commit() + + assert mol.isLipid() is lipid From 52904425841fd1475f8d93dd66f2e76c2354de42 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 27 Aug 2024 15:44:08 +0100 Subject: [PATCH 081/123] Changed Runtimerror to warning when UWHAM weights don't add to 1 --- python/BioSimSpace/FreeEnergy/_ddg.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 6f581225a..d6560cf5e 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -32,6 +32,7 @@ import functools as _functools import pathlib as _pathlib import os as _os +import warnings as _warnings def _compute_weights(ln_z, ln_q, factor): @@ -137,8 +138,9 @@ def _estimate_f_i(ln_q, n_k): weights = _compute_weights(ln_z, ln_q, factor) - if not _numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-3): - raise RuntimeError("The UWHAM weights do not sum to 1.0") + if not _numpy.allclose(weights.sum(axis=0) / n, 1.0, atol=1e-2): + w = weights.sum(axis=0) / n + _warnings.warn(f"The UWHAM weights do not sum to 1.0 ({w})") df_i = _compute_variance(ln_z, weights, factor, n) From 7d51ad44a79c5290402ea8863cf9519a1d59eafa Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 2 Sep 2024 16:08:49 +0100 Subject: [PATCH 082/123] Swaps the protein keywork with receptor when creating ATM systems (needed since some systems are host/guest) --- python/BioSimSpace/FreeEnergy/_atm.py | 12 ++++++------ tests/FreeEnergy/test_atm.py | 4 ++-- tests/conftest.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index b2aaa7d72..92236dc9f 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -53,7 +53,7 @@ class AToM: def __init__( self, system=None, - protein=None, + receptor=None, ligand1=None, ligand2=None, protein_index=0, @@ -67,8 +67,8 @@ def __init__( system : :class:`System ` A pre-prepared AToM system containing protein and ligands placed in their correct positions. If provided takes precedence over protein, ligand1 and ligand2. - protein : :class:`Molecule ` - A protein molecule. Will be used along with ligand1 and ligand2 to create a system. + receptor : :class:`Molecule ` + A receptor molecule. Will be used along with ligand1 and ligand2 to create a system. ligand1 : :class:`Molecule ` The bound ligand. Will be used along with protein and ligand2 to create a system. ligand2 : :class:`Molecule ` @@ -82,7 +82,7 @@ def __init__( """ # make sure that either system or protein, ligand1 and ligand2 are given if system is None and not all( - x is not None for x in [protein, ligand1, ligand2] + x is not None for x in [receptor, ligand1, ligand2] ): raise ValueError( "Either a pre-prepared system or protein, bound ligand and free ligand must be given." @@ -93,7 +93,7 @@ def __init__( raise ValueError("The system must be a BioSimSpace System object.") elif not all( isinstance(x, _Molecule) - for x in [protein, ligand1, ligand2] + for x in [receptor, ligand1, ligand2] if x is not None ): raise ValueError( @@ -102,7 +102,7 @@ def __init__( self._is_prepared = False self._setSystem(system) if not self._is_prepared: - self._setProtein(protein) + self._setProtein(receptor) self._setLigand1(ligand1) self._setLigand2(ligand2) else: diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 17b8979a0..594dd3900 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -13,7 +13,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM( - protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 ) # check that an error is thrown in the rigid core atoms are not given to prepare with pytest.raises(TypeError): @@ -362,7 +362,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): 195, ] atm_generator = BSS.FreeEnergy.AToM( - protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 ) system, data = atm_generator.prepare( displacement=[22, 22, 22], diff --git a/tests/conftest.py b/tests/conftest.py index 45974dc8c..edded69fc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -115,7 +115,7 @@ def TEMOA_lig2(): @pytest.fixture(scope="session") def TEMOA_hostguest(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM( - protein=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 ) rigid_core = [1, 2, 3] atm_system, atm_data = atm_generator.prepare( From dd8d999d56a0cc4487045fc7396feb41ba21cab3 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 2 Sep 2024 16:52:54 +0100 Subject: [PATCH 083/123] Makes openMM import private [ci skip] --- python/BioSimSpace/FreeEnergy/_atm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 92236dc9f..8e445cf14 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -33,7 +33,7 @@ from ..Align import matchAtoms as _matchAtoms from ..Align import rmsdAlign as _rmsdAlign from ..Notebook import View as _View -from ..Process import OpenMM as OMMprocess +from ..Process import OpenMM as _OpenMM from ..Process import ProcessRunner as _ProcessRunner import warnings as _warnings @@ -1303,7 +1303,7 @@ def _inititalise_runner(self, system): first_dir = "%s/lambda_%5.4f" % (self._work_dir, lam) # Create the first simulation, which will be copied and used for future simulations. - first_process = OMMprocess( + first_process = _OpenMM( system=system, protocol=self._protocol, platform=self._platform, From 44ffd5904f9560f4a85d36284646204bac740c41 Mon Sep 17 00:00:00 2001 From: Zhiyi Wu Date: Thu, 5 Sep 2024 11:26:59 +0100 Subject: [PATCH 084/123] Fix the bug where AMBER Process will not use report interval (#56) --- python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py b/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py index 3daebf40d..bda35fb8d 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py @@ -189,7 +189,7 @@ def generateAmberConfig(self, extra_options=None, extra_lines=None): # Define some miscellaneous defaults. protocol_dict = { - "ntpr": 200, # Interval between reporting energies. + "ntpr": self._report_interval, # Interval between reporting energies. "ntwr": self._restart_interval, # Interval between saving restart files. "ntwx": self._restart_interval, # Trajectory sampling frequency. "ntxo": 2, # Output coordinates as NetCDF. From 7112c050a9c9476ca51c07191c71561a95442b86 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 6 Sep 2024 11:32:15 +0100 Subject: [PATCH 085/123] Relax constraint on single atom mappings. [closes #332] --- python/BioSimSpace/Align/_align.py | 24 +++---------------- .../Sandpit/Exscientia/Align/_align.py | 24 +++---------------- 2 files changed, 6 insertions(+), 42 deletions(-) diff --git a/python/BioSimSpace/Align/_align.py b/python/BioSimSpace/Align/_align.py index 90839464f..bdbe025cb 100644 --- a/python/BioSimSpace/Align/_align.py +++ b/python/BioSimSpace/Align/_align.py @@ -1547,17 +1547,11 @@ def _rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_ma mol0 = molecule0._getSireObject() mol1 = molecule1._getSireObject() - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) # Perform the alignment, mol0 to mol1. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: idx0 = list(mapping.keys())[0] idx1 = list(mapping.values())[0] # Replace the coordinates of the mapped atom with those of the reference. @@ -2534,12 +2528,6 @@ def _score_rdkit_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -2608,7 +2596,7 @@ def _score_rdkit_mappings( if is_valid: # If there is only a single atom in the mapping and one molecule # has one atom, e.g. an ion, then skip the alignment. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: mappings.append(mapping) scores.append(0.0) else: @@ -2770,12 +2758,6 @@ def _score_sire_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Initialise a list to hold the mappings. mappings = [] @@ -2797,7 +2779,7 @@ def _score_sire_mappings( if is_valid: # If there is only a single atom in the mapping and one molecule # has one atom, e.g. an ion, then skip the alignment. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: mappings.append(mapping) scores.append(0.0) else: diff --git a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py index 6b3522c39..27b0d373c 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py @@ -1151,14 +1151,8 @@ def rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_map # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Perform the alignment, mol0 to mol1. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: idx0 = list(mapping.keys())[0] idx1 = list(mapping.values())[0] # Replace the coordinates of the mapped atom with those of the reference. @@ -1785,12 +1779,6 @@ def _score_rdkit_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -1859,7 +1847,7 @@ def _score_rdkit_mappings( if is_valid: # If there is only a single atom in the mapping and one molecule # has one atom, e.g. an ion, then skip the alignment. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: mappings.append(mapping) scores.append(0.0) else: @@ -2021,12 +2009,6 @@ def _score_sire_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Initialise a list to hold the mappings. mappings = [] @@ -2048,7 +2030,7 @@ def _score_sire_mappings( if is_valid: # If there is only a single atom in the mapping and one molecule # has one atom, e.g. an ion, then skip the alignment. - if len(mapping) == 1 and is_ion: + if len(mapping) == 1: mappings.append(mapping) scores.append(0.0) else: From dc96c2f2fb3a2728909ba0f9c849142b42d132cd Mon Sep 17 00:00:00 2001 From: Miroslav Suruzhon <36005076+msuruzhon@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:05:47 +0100 Subject: [PATCH 086/123] Fixing vacuum translations in GROMACS (#57) --- .../Sandpit/Exscientia/Process/_gromacs.py | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py index f3f847588..dd0ddd97c 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Process/_gromacs.py @@ -47,6 +47,7 @@ from sire.legacy import Units as _SireUnits from sire.legacy import Vol as _SireVol +from ..Units.Length import angstrom from .._Utils import _assert_imported, _have_imported, _try_import # alchemlyb isn't available on all variants of Python that we support, so we @@ -2704,8 +2705,22 @@ def _getFinalFrame(self): ) # If this is a vacuum simulation, then translate the centre of mass - # of the system back to the origin. - if not space_prop in old_system._sire_object.propertyKeys(): + # of the system back to the middle of the box to preserve PBC. + if old_system.getBox() == (None, None): + try: + old_box = old_system._sire_object.property(space_prop) + except: + old_box = None + box = _SireVol.PeriodicBox(_SireMaths.Vector(9999, 9999, 9999)) + old_system._sire_object.setProperty(space_prop, box) + com = [angstrom * 9999 / 2 for _ in range(3)] + old_system.translate([x for x in com]) + old_system._sire_object.make_whole() + old_system.translate([-x for x in com]) + if old_box is None: + old_system._sire_object.removeProperty(space_prop) + else: + old_system._sire_object.setProperty(space_prop, old_box) com = old_system._getCenterOfMass() old_system.translate([-x for x in com]) @@ -2821,9 +2836,23 @@ def _getFrame(self, time): ) # If this is a vacuum simulation, then translate the centre of mass - # of the system back to the origin. - if not space_prop in old_system._sire_object.propertyKeys(): - com = new_system._getCenterOfMass() + # of the system back to the middle of the box to preserve PBC. + if old_system.getBox() == (None, None): + try: + old_box = old_system._sire_object.property(space_prop) + except: + old_box = None + box = _SireVol.PeriodicBox(_SireMaths.Vector(9999, 9999, 9999)) + old_system._sire_object.setProperty(space_prop, box) + com = [angstrom * 9999 / 2 for _ in range(3)] + old_system.translate([x for x in com]) + old_system._sire_object.make_whole() + old_system.translate([-x for x in com]) + if old_box is None: + old_system._sire_object.removeProperty(space_prop) + else: + old_system._sire_object.setProperty(space_prop, old_box) + com = old_system._getCenterOfMass() old_system.translate([-x for x in com]) return old_system From e68b763cfe73d8ac295fd5263dbc5cb93e91727a Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 13 Sep 2024 12:24:33 +0100 Subject: [PATCH 087/123] Update underlying Sire object at each iteration. [closes #335] --- .../Sandpit/Exscientia/_SireWrappers/_system.py | 12 ++++++------ python/BioSimSpace/_SireWrappers/_system.py | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py index f5c578ece..653621fa7 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py +++ b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py @@ -887,14 +887,14 @@ def updateMolecules(self, molecules): else: raise ValueError(f"System doesn't contain molecule: {mol}") - # Update the Sire object. - self._sire_object = system + # Update the Sire object. + self._sire_object = system - # Reset the index mappings. - self._reset_mappings() + # Reset the index mappings. + self._reset_mappings() - # Update the molecule numbers. - self._mol_nums = self._sire_object.molNums() + # Update the molecule numbers. + self._mol_nums = self._sire_object.molNums() def getMolecule(self, index): """ diff --git a/python/BioSimSpace/_SireWrappers/_system.py b/python/BioSimSpace/_SireWrappers/_system.py index dbb8db8fc..6a64c8656 100644 --- a/python/BioSimSpace/_SireWrappers/_system.py +++ b/python/BioSimSpace/_SireWrappers/_system.py @@ -887,14 +887,14 @@ def updateMolecules(self, molecules): else: raise ValueError(f"System doesn't contain molecule: {mol}") - # Update the Sire object. - self._sire_object = system + # Update the Sire object. + self._sire_object = system - # Reset the index mappings. - self._reset_mappings() + # Reset the index mappings. + self._reset_mappings() - # Update the molecule numbers. - self._mol_nums = self._sire_object.molNums() + # Update the molecule numbers. + self._mol_nums = self._sire_object.molNums() def getMolecule(self, index): """ From 5ec3f464c7c94e4a1fc207a1f0a43bfce904d172 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 17 Sep 2024 15:06:01 +0100 Subject: [PATCH 088/123] Updates view rigid cores with labelling and colour coding --- python/BioSimSpace/FreeEnergy/_atm.py | 122 +++++++++++++++++++++++--- 1 file changed, 110 insertions(+), 12 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 8e445cf14..b6968ac4e 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -23,7 +23,6 @@ __all__ = ["AToM"] -from .. import _is_notebook from .._SireWrappers import Molecule as _Molecule from .._SireWrappers import System as _System from .. import _Utils @@ -33,17 +32,17 @@ from ..Align import matchAtoms as _matchAtoms from ..Align import rmsdAlign as _rmsdAlign from ..Notebook import View as _View +from .. import _isVerbose from ..Process import OpenMM as _OpenMM from ..Process import ProcessRunner as _ProcessRunner +from sire.legacy import IO as _SireIO + import warnings as _warnings import json as _json import copy as _copy import os as _os import shutil as _shutil -import pathlib as _pathlib -import pandas as _pd -import numpy as _np class AToM: @@ -848,6 +847,8 @@ def viewRigidCores( ligand2_rigid_core=None, ): """View the rigid cores of the ligands. + Carbon atoms of the bound ligand are coloured green, while those of the free ligand are coloured orange. + Rigid core atoms are colour coded and labelled. Parameters ---------- @@ -904,6 +905,21 @@ def vector_from_points(point1, point2): return (dx / magnitude, dy / magnitude, dz / magnitude) + def find_carbons(ligand): + # Adding logic to find carbon atosm in sire becuase its easier than trying + # to find them in nglview + return [ + i.index().value() + for i in ligand._sire_object[f"(atom mass > 12) and (atom mass < 13)"] + ] + + def make_amber_list(l, offset=0): + # take a list of ints and return a string that is "@,," + return "@" + ",".join([str(i + offset) for i in l]) + + def _count_num_atoms(ligand): + return ligand._sire_object.nAtoms() + # if a system is provided, check that it has the "atom_data" property if system is not None: sdata = _json.loads(system._sire_object.property("atom_data").value()) @@ -969,9 +985,9 @@ def vector_from_points(point1, point2): # Translate ligand2 so they don't overlap ligand2.translate( [ - lig1_distance * 2 * vector[0], - lig1_distance * 2 * vector[1], - lig1_distance * 2 * vector[2], + -1.0 * lig1_distance * 2 * vector[0], + -1.0 * lig1_distance * 2 * vector[1], + -1.0 * lig1_distance * 2 * vector[2], ] ) # Get coords of rigid core atoms @@ -986,25 +1002,51 @@ def vector_from_points(point1, point2): mol = ligand1 + ligand2 # Create view - view = _View(mol) + view = _View_AtoM(mol) # Create nglview object ngl = view.system(mol) + ngl.add_ball_and_stick("all") + ngl.add_ball_and_stick(make_amber_list(find_carbons(ligand1)), color="green") + ngl.add_ball_and_stick( + make_amber_list(find_carbons(ligand2), offset=_count_num_atoms(ligand1)), + color="orange", + ) + # colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] # Add spheres to rigid core locations - for coord1, coord2, colour in zip( - ligand1_core_coords, ligand2_core_coords, colours + for coord1, coord2, colour, core_atom_1, core_atom_2 in zip( + ligand1_core_coords, + ligand2_core_coords, + colours, + ligand1_rigid_core, + ligand2_rigid_core, ): ngl.shape.add_sphere( [coord1.x().value(), coord1.y().value(), coord1.z().value()], colour, - 0.7, + 0.45, + ) + ngl.shape.add( + "text", + [coord1.x().value(), coord1.y().value(), coord1.z().value() - 0.5], + [0, 0, 0], + 2.5, + f"{core_atom_1}", ) ngl.shape.add_sphere( [coord2.x().value(), coord2.y().value(), coord2.z().value()], colour, - 0.7, + 0.45, ) + ngl.shape.add( + "text", + [coord2.x().value(), coord2.y().value(), coord2.z().value() - 0.5], + [0, 0, 0], + 2.5, + f"{core_atom_2}", + ) + if system is not None: del local_s return ngl @@ -1391,3 +1433,59 @@ def _inititalise_runner(self, system): if not self._setup_only: # Initialise process runner. self._runner = _ProcessRunner(processes) + + +class _View_AtoM(_View): + """Overloads regular view class + needed to pass default_representation=False into show_file""" + + # Initialise super + def __init__(self, handle, property_map={}, is_lambda1=False): + super().__init__(handle, property_map, is_lambda1) + + def _create_view(self, system=None, view=None, gui=True, **kwargs): + + if system is None and view is None: + raise ValueError("Both 'system' and 'view' cannot be 'None'.") + + elif system is not None and view is not None: + raise ValueError("One of 'system' or 'view' must be 'None'.") + + # Make sure gui flag is valid. + if gui not in [True, False]: + gui = True + + # Default to the most recent view. + if view is None: + index = self._num_views + else: + index = view + + # Create the file name. + filename = "%s/view_%04d.pdb" % (self._work_dir, index) + + # Increment the number of views. + if view is None: + self._num_views += 1 + + # Create a PDB object and write to file. + if system is not None: + try: + pdb = _SireIO.PDB2(system, self._property_map) + pdb.writeToFile(filename) + except Exception as e: + msg = "Failed to write system to 'PDB' format." + if _isVerbose(): + print(msg) + raise IOError(e) from None + else: + raise IOError(msg) from None + + # Import NGLView when it is used for the first time. + import nglview as _nglview + + # Create the NGLview object. + view = _nglview.show_file(filename, default_representation=False) + + # Return the view and display it. + return view.display(gui=gui) From 852711ea795b207b03198ccc63227c65e753f322 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 17 Sep 2024 16:11:14 +0100 Subject: [PATCH 089/123] Switches naming of ligand1 and ligand2 to ligand_bound and ligand_free --- python/BioSimSpace/FreeEnergy/_atm.py | 425 ++++++++++++----------- python/BioSimSpace/Process/_atm_utils.py | 32 +- python/BioSimSpace/Protocol/_atm.py | 4 +- tests/FreeEnergy/test_atm.py | 32 +- tests/conftest.py | 4 +- 5 files changed, 249 insertions(+), 248 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index b6968ac4e..c6e98f006 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -53,11 +53,11 @@ def __init__( self, system=None, receptor=None, - ligand1=None, - ligand2=None, + ligand_bound=None, + ligand_free=None, protein_index=0, - ligand1_index=1, - ligand2_index=2, + ligand_bound_index=1, + ligand_free_index=2, ): """Constructor for the AToM class. @@ -65,23 +65,23 @@ def __init__( ---------- system : :class:`System ` A pre-prepared AToM system containing protein and ligands placed in their correct positions. - If provided takes precedence over protein, ligand1 and ligand2. + If provided takes precedence over protein, ligand_bound and ligand_free. receptor : :class:`Molecule ` - A receptor molecule. Will be used along with ligand1 and ligand2 to create a system. - ligand1 : :class:`Molecule ` - The bound ligand. Will be used along with protein and ligand2 to create a system. - ligand2 : :class:`Molecule ` - The free ligand. Will be used along with protein and ligand1 to create a system. + A receptor molecule. Will be used along with ligand_bound and ligand_free to create a system. + ligand_bound : :class:`Molecule ` + The bound ligand. Will be used along with protein and ligand_free to create a system. + ligand_free : :class:`Molecule ` + The free ligand. Will be used along with protein and ligand_bound to create a system. protein_index : int, [int] If passing a pre-prepared system, the index (or indices) of the protein molecule in the system (Default 0). - ligand1_index : int + ligand_bound_index : int If passing a pre-prepared system, the index of the bound ligand molecule in the system (Default 1). - ligand2_index : int + ligand_free_index : int If passing a pre-prepared system, the index of the free ligand molecule in the system (Default 2). """ - # make sure that either system or protein, ligand1 and ligand2 are given + # make sure that either system or protein, ligand_bound and ligand_free are given if system is None and not all( - x is not None for x in [receptor, ligand1, ligand2] + x is not None for x in [receptor, ligand_bound, ligand_free] ): raise ValueError( "Either a pre-prepared system or protein, bound ligand and free ligand must be given." @@ -92,7 +92,7 @@ def __init__( raise ValueError("The system must be a BioSimSpace System object.") elif not all( isinstance(x, _Molecule) - for x in [receptor, ligand1, ligand2] + for x in [receptor, ligand_bound, ligand_free] if x is not None ): raise ValueError( @@ -102,12 +102,12 @@ def __init__( self._setSystem(system) if not self._is_prepared: self._setProtein(receptor) - self._setLigand1(ligand1) - self._setLigand2(ligand2) + self._setLigandBound(ligand_bound) + self._setLigandFree(ligand_free) else: self._setProteinIndex(protein_index) - self._setLigand1Index(ligand1_index) - self._setLigand2Index(ligand2_index) + self._setLigandBoundIndex(ligand_bound_index) + self._setLigandFreeIndex(ligand_free_index) def _setSystem(self, system, is_prepped=True): """Set the system for the AToM simulation. @@ -169,25 +169,25 @@ def _getProtein(self): """ return self._protein - def _setLigand1(self, ligand1): + def _setLigandBound(self, ligand_bound): """Set the bound ligand for the AToM simulation. Parameters ---------- - ligand1 : BioSimSpace._SireWrappers.Molecule + ligand_bound : BioSimSpace._SireWrappers.Molecule The bound ligand for the AToM simulation. """ - if ligand1 is not None: - if not isinstance(ligand1, _Molecule): + if ligand_bound is not None: + if not isinstance(ligand_bound, _Molecule): raise ValueError( "The bound ligand must be a BioSimSpace Molecule object." ) else: - self._ligand1 = ligand1 + self._ligand_bound = ligand_bound else: - self._ligand1 = None + self._ligand_bound = None - def _getLigand1(self): + def _getLigandBound(self): """Get the bound ligand for the AToM simulation. Returns @@ -195,27 +195,27 @@ def _getLigand1(self): BioSimSpace._SireWrappers.Molecule The bound ligand for the AToM simulation. """ - return self._ligand1 + return self._ligand_bound - def _setLigand2(self, ligand2): + def _setLigandFree(self, ligand_free): """Set the free ligand for the AToM simulation. Parameters ---------- - ligand2 : BioSimSpace._SireWrappers.Molecule + ligand_free : BioSimSpace._SireWrappers.Molecule The free ligand for the AToM simulation. """ - if ligand2 is not None: - if not isinstance(ligand2, _Molecule): + if ligand_free is not None: + if not isinstance(ligand_free, _Molecule): raise ValueError( "The free ligand must be a BioSimSpace Molecule object." ) else: - self._ligand2 = ligand2 + self._ligand_free = ligand_free else: - self._ligand2 = None + self._ligand_free = None - def _getLigand2(self): + def _getLigandFree(self): """Get the free ligand for the AToM simulation. Returns @@ -223,7 +223,7 @@ def _getLigand2(self): BioSimSpace._SireWrappers.Molecule The free ligand for the AToM simulation. """ - return self._ligand2 + return self._ligand_free def _setDisplacement(self, displacement): """Set the displacement of the free ligand along the normal vector.""" @@ -267,31 +267,31 @@ def _getDisplacement(self): """ return self.displacement - def _setLigand1RigidCore(self, ligand1_rigid_core): + def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): """Set the indices for the rigid core atoms of ligand 1. Parameters ---------- - ligand1_rigid_core : BioSimSpace._SireWrappers.Molecule + ligand_bound_rigid_core : BioSimSpace._SireWrappers.Molecule The rigid core of the bound ligand for the AToM simulation. """ - if ligand1_rigid_core is None: - self.ligand1_rigid_core = None + if ligand_bound_rigid_core is None: + self.ligand_bound_rigid_core = None else: - if not isinstance(ligand1_rigid_core, list): - raise TypeError("ligand1_rigid_core must be a list") - if len(ligand1_rigid_core) != 3: - raise ValueError("ligand1_rigid_core must have length 3") + if not isinstance(ligand_bound_rigid_core, list): + raise TypeError("ligand_bound_rigid_core must be a list") + if len(ligand_bound_rigid_core) != 3: + raise ValueError("ligand_bound_rigid_core must have length 3") # make sure all indices are ints - if not all(isinstance(x, int) for x in ligand1_rigid_core): - raise TypeError("ligand1_rigid_core must contain only integers") - if any(x >= self.ligand1_atomcount for x in ligand1_rigid_core): + if not all(isinstance(x, int) for x in ligand_bound_rigid_core): + raise TypeError("ligand_bound_rigid_core must contain only integers") + if any(x >= self.ligand_bound_atomcount for x in ligand_bound_rigid_core): raise ValueError( - "ligand1_rigid_core contains an index that is greater than the number of atoms in the ligand" + "ligand_bound_rigid_core contains an index that is greater than the number of atoms in the ligand" ) - self.ligand1_rigid_core = ligand1_rigid_core + self.ligand_bound_rigid_core = ligand_bound_rigid_core - def _getLigand1RigidCore(self): + def _getLigandBoundRigidCore(self): """Get the indices for the rigid core atoms of ligand 1. Returns @@ -299,33 +299,33 @@ def _getLigand1RigidCore(self): list The indices for the rigid core atoms of ligand 1. """ - return self.ligand1_rigid_core + return self.ligand_bound_rigid_core - def _setLigand2RigidCore(self, ligand2_rigid_core): + def _setLigandFreeRigidCore(self, ligand_free_rigid_core): """Set the indices for the rigid core atoms of ligand 2. Parameters ---------- - ligand2_rigid_core : BioSimSpace._SireWrappers.Molecule + ligand_free_rigid_core : BioSimSpace._SireWrappers.Molecule The rigid core of the free ligand for the AToM simulation. """ - if ligand2_rigid_core is None: - self.ligand2_rigid_core = None + if ligand_free_rigid_core is None: + self.ligand_free_rigid_core = None else: - if not isinstance(ligand2_rigid_core, list): - raise TypeError("ligand2_rigid_core must be a list") - if len(ligand2_rigid_core) != 3: - raise ValueError("ligand2_rigid_core must have length 3") + if not isinstance(ligand_free_rigid_core, list): + raise TypeError("ligand_free_rigid_core must be a list") + if len(ligand_free_rigid_core) != 3: + raise ValueError("ligand_free_rigid_core must have length 3") # make sure all indices are ints - if not all(isinstance(x, int) for x in ligand2_rigid_core): - raise TypeError("ligand2_rigid_core must contain only integers") - if any(x >= self.ligand2_atomcount for x in ligand2_rigid_core): + if not all(isinstance(x, int) for x in ligand_free_rigid_core): + raise TypeError("ligand_free_rigid_core must contain only integers") + if any(x >= self.ligand_free_atomcount for x in ligand_free_rigid_core): raise ValueError( - "ligand2_rigid_core contains an index that is greater than the number of atoms in the ligand" + "ligand_free_rigid_core contains an index that is greater than the number of atoms in the ligand" ) - self.ligand2_rigid_core = ligand2_rigid_core + self.ligand_free_rigid_core = ligand_free_rigid_core - def _getLigand2RigidCore(self): + def _getLigandFreeRigidCore(self): """Get the indices for the rigid core atoms of ligand 2. Returns @@ -333,7 +333,7 @@ def _getLigand2RigidCore(self): list The indices for the rigid core atoms of ligand 2. """ - return self.ligand2_rigid_core + return self.ligand_free_rigid_core def _setProteinIndex(self, protein_index): """ @@ -371,26 +371,26 @@ def _getProteinIndex(self): """ return self.protein_index - def _setLigand1Index(self, ligand1_index): + def _setLigandBoundIndex(self, ligand_bound_index): """Set the index of the bound ligand molecule in the system. Parameters ---------- - ligand1_index : int + ligand_bound_index : int The index of the bound ligand molecule in the system. """ - if not isinstance(ligand1_index, int): - raise ValueError("ligand1_index must be an integer.") + if not isinstance(ligand_bound_index, int): + raise ValueError("ligand_bound_index must be an integer.") else: - if ligand1_index < 0: - raise ValueError("ligand1_index must be a positive integer") - if self._system[ligand1_index].isWater(): + if ligand_bound_index < 0: + raise ValueError("ligand_bound_index must be a positive integer") + if self._system[ligand_bound_index].isWater(): _warnings.warn( - f"The molecule at index {ligand1_index} is a water molecule, check your ligand1_index." + f"The molecule at index {ligand_bound_index} is a water molecule, check your ligand_bound_index." ) - self.ligand1_index = ligand1_index + self.ligand_bound_index = ligand_bound_index - def _getLigand1Index(self): + def _getLigandBoundIndex(self): """Get the index of the bound ligand molecule in the system. Returns @@ -398,28 +398,28 @@ def _getLigand1Index(self): int The index of the bound ligand molecule in the system. """ - return self.ligand1_index + return self.ligand_bound_index - def _setLigand2Index(self, ligand2_index): + def _setLigandFreeIndex(self, ligand_free_index): """Set the index of the free ligand molecule in the system. Parameters ---------- - ligand2_index : int + ligand_free_index : int The index of the free ligand molecule in the system. """ - if not isinstance(ligand2_index, int): - raise ValueError("ligand2_index must be an integer.") + if not isinstance(ligand_free_index, int): + raise ValueError("ligand_free_index must be an integer.") else: - if ligand2_index < 0: - raise ValueError("ligand2_index must be a positive integer") - if self._system[ligand2_index].isWater(): + if ligand_free_index < 0: + raise ValueError("ligand_free_index must be a positive integer") + if self._system[ligand_free_index].isWater(): _warnings.warn( - f"The molecule at index {ligand2_index} is a water molecule, check your ligand2_index." + f"The molecule at index {ligand_free_index} is a water molecule, check your ligand_free_index." ) - self.ligand2_index = ligand2_index + self.ligand_free_index = ligand_free_index - def _getLigand2Index(self): + def _getLigandFreeIndex(self): """Get the index of the free ligand molecule in the system. Returns @@ -427,25 +427,25 @@ def _getLigand2Index(self): int The index of the free ligand molecule in the system. """ - return self.ligand2_index + return self.ligand_free_index def prepare( self, - ligand1_rigid_core, - ligand2_rigid_core, + ligand_bound_rigid_core, + ligand_free_rigid_core, displacement="20A", protein_com_atoms=None, - ligand1_com_atoms=None, - ligand2_com_atoms=None, + ligand_bound_com_atoms=None, + ligand_free_com_atoms=None, ): """Prepare the system for the AToM simulation. Parameters ---------- - ligand1_rigid_core : [int] + ligand_bound_rigid_core : [int] A list of three atom indices that define the rigid core of the bound ligand. Indices are set relative to the ligand, not the system and are 0-indexed. - ligand2_rigid_core : [int] + ligand_free_rigid_core : [int] A list of three atom indices that define the rigid core of the free ligand. Indices are set relative to the ligand, not the system and are 0-indexed. displacement : float, string, [float, float, float] @@ -457,10 +457,10 @@ def prepare( protein_com_atoms : [int] A list of atom indices that define the center of mass of the protein. If None, the center of mass of the protein will be found automatically. - ligand1_com_atoms : [int] + ligand_bound_com_atoms : [int] A list of atom indices that define the center of mass of the bound ligand. If None, the center of mass of the bound ligand will be found automatically. - ligand2_com_atoms : [int] + ligand_free_com_atoms : [int] A list of atom indices that define the center of mass of the free ligand. If None, the center of mass of the free ligand will be found automatically. @@ -474,12 +474,12 @@ def prepare( """ if self._is_prepared: self._systemInfo() - self._setLigand1RigidCore(ligand1_rigid_core) - self._setLigand2RigidCore(ligand2_rigid_core) + self._setLigandBoundRigidCore(ligand_bound_rigid_core) + self._setLigandFreeRigidCore(ligand_free_rigid_core) self._setDisplacement(displacement) self._setProtComAtoms(protein_com_atoms) - self._setLig1ComAtoms(ligand1_com_atoms) - self._setLig2ComAtoms(ligand2_com_atoms) + self._setLig1ComAtoms(ligand_bound_com_atoms) + self._setLig2ComAtoms(ligand_free_com_atoms) self._findAtomIndices() self._makeData() @@ -498,19 +498,19 @@ def prepare( # the final value will be set after the system is made, but the initial value is needed to make the system self._setDisplacement(displacement) system, prot_ind, lig1_ind, lig2_ind, dis_vec = self._makeSystemFromThree( - self._protein, self._ligand1, self._ligand2, self.displacement + self._protein, self._ligand_bound, self._ligand_free, self.displacement ) self._setSystem(system, is_prepped=False) self._setDisplacement(dis_vec) self._setProteinIndex(prot_ind) - self._setLigand1Index(lig1_ind) - self._setLigand2Index(lig2_ind) + self._setLigandBoundIndex(lig1_ind) + self._setLigandFreeIndex(lig2_ind) self._systemInfo() - self._setLigand1RigidCore(ligand1_rigid_core) - self._setLigand2RigidCore(ligand2_rigid_core) + self._setLigandBoundRigidCore(ligand_bound_rigid_core) + self._setLigandFreeRigidCore(ligand_free_rigid_core) self._setProtComAtoms(protein_com_atoms) - self._setLig1ComAtoms(ligand1_com_atoms) - self._setLig2ComAtoms(ligand2_com_atoms) + self._setLig1ComAtoms(ligand_bound_com_atoms) + self._setLig2ComAtoms(ligand_free_com_atoms) self._findAtomIndices() self._makeData() serialisable_disp = [ @@ -525,16 +525,16 @@ def prepare( return self._system, self.data @staticmethod - def _makeSystemFromThree(protein, ligand1, ligand2, displacement): + def _makeSystemFromThree(protein, ligand_bound, ligand_free, displacement): """Create a system for AToM simulations. Parameters ---------- protein : BioSimSpace._SireWrappers.Molecule The protein for the AToM simulation. - ligand1 : BioSimSpace._SireWrappers.Molecule + ligand_bound : BioSimSpace._SireWrappers.Molecule The bound ligand for the AToM simulation. - ligand2 : BioSimSpace._SireWrappers.Molecule + ligand_free : BioSimSpace._SireWrappers.Molecule The free ligand for the AToM simulation. displacement : BioSimSpace.Types.Length The displacement of the ligand along the normal vector. @@ -625,23 +625,23 @@ def _findTranslationVector(system, displacement, protein, ligand): out_of_protein = displacement.value() * initial_normal_vector return out_of_protein - mapping = _matchAtoms(ligand2, ligand1) - ligand2_aligned = _rmsdAlign(ligand2, ligand1, mapping) - prot_lig1 = (protein + ligand1).toSystem() + mapping = _matchAtoms(ligand_free, ligand_bound) + ligand_free_aligned = _rmsdAlign(ligand_free, ligand_bound, mapping) + prot_lig1 = (protein + ligand_bound).toSystem() if isinstance(displacement, _Vector): - ligand2_aligned.translate( + ligand_free_aligned.translate( [displacement.x(), displacement.y(), displacement.z()] ) vec = displacement else: - vec = _findTranslationVector(prot_lig1, displacement, protein, ligand1) - ligand2_aligned.translate([vec.x(), vec.y(), vec.z()]) + vec = _findTranslationVector(prot_lig1, displacement, protein, ligand_bound) + ligand_free_aligned.translate([vec.x(), vec.y(), vec.z()]) - sys = (protein + ligand1 + ligand2_aligned).toSystem() + sys = (protein + ligand_bound + ligand_free_aligned).toSystem() prot_ind = sys.getIndex(protein) - lig1_ind = sys.getIndex(ligand1) - lig2_ind = sys.getIndex(ligand2_aligned) + lig1_ind = sys.getIndex(ligand_bound) + lig2_ind = sys.getIndex(ligand_free_aligned) return sys, prot_ind, lig1_ind, lig2_ind, vec def _systemInfo(self): @@ -654,21 +654,21 @@ def _systemInfo(self): f"The molecule at index {self.protein_index} appears to be a water molecule." " This should be a protein." ) - if self._system[self.ligand1_index].isWater(): + if self._system[self.ligand_bound_index].isWater(): _warnings.warn( - f"The molecule at index {self.ligand1_index} appears to be a water molecule." + f"The molecule at index {self.ligand_bound_index} appears to be a water molecule." " This should be the bound ligand." ) - if self._system[self.ligand2_index].isWater(): + if self._system[self.ligand_free_index].isWater(): _warnings.warn( - f"The molecule at index {self.ligand2_index} appears to be a water molecule." + f"The molecule at index {self.ligand_free_index} appears to be a water molecule." " This should be the free ligand." ) self._protein_atomcount = sum( self._system[i].nAtoms() for i in self.protein_index ) - self.ligand1_atomcount = self._system[self.ligand1_index].nAtoms() - self.ligand2_atomcount = self._system[self.ligand2_index].nAtoms() + self.ligand_bound_atomcount = self._system[self.ligand_bound_index].nAtoms() + self.ligand_free_atomcount = self._system[self.ligand_free_index].nAtoms() def _findAtomIndices(self): """ @@ -684,15 +684,15 @@ def _findAtomIndices(self): self.first_protein_atom_index = self._system.getIndex(protein_atom_start) self.last_protein_atom_index = self._system.getIndex(protein_atom_end) - ligand1_atom_start = self._system[self.ligand1_index].getAtoms()[0] - ligand1_atom_end = self._system[self.ligand1_index].getAtoms()[-1] - self.first_ligand1_atom_index = self._system.getIndex(ligand1_atom_start) - self.last_ligand1_atom_index = self._system.getIndex(ligand1_atom_end) + ligand_bound_atom_start = self._system[self.ligand_bound_index].getAtoms()[0] + ligand_bound_atom_end = self._system[self.ligand_bound_index].getAtoms()[-1] + self.first_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_start) + self.last_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_end) - ligand2_atom_start = self._system[self.ligand2_index].getAtoms()[0] - ligand2_atom_end = self._system[self.ligand2_index].getAtoms()[-1] - self.first_ligand2_atom_index = self._system.getIndex(ligand2_atom_start) - self.last_ligand2_atom_index = self._system.getIndex(ligand2_atom_end) + ligand_free_atom_start = self._system[self.ligand_free_index].getAtoms()[0] + ligand_free_atom_end = self._system[self.ligand_free_index].getAtoms()[-1] + self.first_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_start) + self.last_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_end) def _getProtComAtoms(self): """ @@ -768,13 +768,13 @@ def _setLig1ComAtoms(self, lig1_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand1 = self._system[self.ligand1_index] + ligand_bound = self._system[self.ligand_bound_index] else: - ligand1 = self._ligand1 - com = ligand1._sire_object.coordinates() + ligand_bound = self._ligand_bound + com = ligand_bound._sire_object.coordinates() self._lig1_com_atoms = [ a.index().value() - for a in ligand1._sire_object[f"atoms within 11 angstrom of {com}"] + for a in ligand_bound._sire_object[f"atoms within 11 angstrom of {com}"] ] def _getLig2ComAtoms(self): @@ -805,13 +805,13 @@ def _setLig2ComAtoms(self, lig2_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand2 = self._system[self.ligand2_index] + ligand_free = self._system[self.ligand_free_index] else: - ligand2 = self._ligand2 - com = ligand2._sire_object.coordinates() + ligand_free = self._ligand_free + com = ligand_free._sire_object.coordinates() self._lig2_com_atoms = [ a.index().value() - for a in ligand2._sire_object[f"atoms within 11 angstrom of {com}"] + for a in ligand_free._sire_object[f"atoms within 11 angstrom of {com}"] ] def _makeData(self): @@ -821,30 +821,30 @@ def _makeData(self): self.data = {} self.data["displacement"] = self._getDisplacement() self.data["protein_index"] = self._getProteinIndex() - self.data["ligand1_index"] = self._getLigand1Index() - self.data["ligand2_index"] = self._getLigand2Index() - self.data["ligand1_rigid_core"] = self._getLigand1RigidCore() - self.data["ligand2_rigid_core"] = self._getLigand2RigidCore() + self.data["ligand_bound_index"] = self._getLigandBoundIndex() + self.data["ligand_free_index"] = self._getLigandFreeIndex() + self.data["ligand_bound_rigid_core"] = self._getLigandBoundRigidCore() + self.data["ligand_free_rigid_core"] = self._getLigandFreeRigidCore() self.data["mol1_atomcount"] = self._protein_atomcount - self.data["ligand1_atomcount"] = self.ligand1_atomcount - self.data["ligand2_atomcount"] = self.ligand2_atomcount + self.data["ligand_bound_atomcount"] = self.ligand_bound_atomcount + self.data["ligand_free_atomcount"] = self.ligand_free_atomcount self.data["first_protein_atom_index"] = self.first_protein_atom_index self.data["last_protein_atom_index"] = self.last_protein_atom_index - self.data["first_ligand1_atom_index"] = self.first_ligand1_atom_index - self.data["last_ligand1_atom_index"] = self.last_ligand1_atom_index - self.data["first_ligand2_atom_index"] = self.first_ligand2_atom_index - self.data["last_ligand2_atom_index"] = self.last_ligand2_atom_index + self.data["first_ligand_bound_atom_index"] = self.first_ligand_bound_atom_index + self.data["last_ligand_bound_atom_index"] = self.last_ligand_bound_atom_index + self.data["first_ligand_free_atom_index"] = self.first_ligand_free_atom_index + self.data["last_ligand_free_atom_index"] = self.last_ligand_free_atom_index self.data["protein_com_atoms"] = self._mol1_com_atoms - self.data["ligand1_com_atoms"] = self._lig1_com_atoms - self.data["ligand2_com_atoms"] = self._lig2_com_atoms + self.data["ligand_bound_com_atoms"] = self._lig1_com_atoms + self.data["ligand_free_com_atoms"] = self._lig2_com_atoms @staticmethod def viewRigidCores( system=None, - ligand1=None, - ligand2=None, - ligand1_rigid_core=None, - ligand2_rigid_core=None, + ligand_bound=None, + ligand_free=None, + ligand_bound_rigid_core=None, + ligand_free_rigid_core=None, ): """View the rigid cores of the ligands. Carbon atoms of the bound ligand are coloured green, while those of the free ligand are coloured orange. @@ -855,13 +855,13 @@ def viewRigidCores( system : :class:`System ` The system for the AToM simulation that has been prepared AToM.prepare(). All other arguments are ignored if this is provided. - ligand1 : :class:`Molecule ` + ligand_bound : :class:`Molecule ` The bound ligand. - ligand2 : :class:`Molecule ` + ligand_free : :class:`Molecule ` The free ligand. - ligand1_rigid_core : list + ligand_bound_rigid_core : list The indices for the rigid core atoms of the bound ligand. - ligand2_rigid_core : list + ligand_free_rigid_core : list The indices for the rigid core atoms of the free ligand. """ import math as _math @@ -924,57 +924,57 @@ def _count_num_atoms(ligand): if system is not None: sdata = _json.loads(system._sire_object.property("atom_data").value()) local_s = system.copy() - ligand1 = local_s[sdata["ligand1_index"]] - move_to_origin(ligand1) - ligand2 = local_s[sdata["ligand2_index"]] - move_to_origin(ligand2) - ligand1_rigid_core = sdata["ligand1_rigid_core"] - ligand2_rigid_core = sdata["ligand2_rigid_core"] + ligand_bound = local_s[sdata["ligand_bound_index"]] + move_to_origin(ligand_bound) + ligand_free = local_s[sdata["ligand_free_index"]] + move_to_origin(ligand_free) + ligand_bound_rigid_core = sdata["ligand_bound_rigid_core"] + ligand_free_rigid_core = sdata["ligand_free_rigid_core"] # if not system provided, ALL other parameters must be provided else: - if ligand1 is None: - raise ValueError("ligand1 must be provided") - if ligand2 is None: - raise ValueError("ligand2 must be provided") - if ligand1_rigid_core is None: - raise ValueError("ligand1_rigid_core must be provided") - if ligand2_rigid_core is None: - raise ValueError("ligand2_rigid_core must be provided") - - if not isinstance(ligand1, _Molecule): - raise TypeError("ligand1 must be a BioSimSpace molecule") - if not isinstance(ligand2, _Molecule): - raise TypeError("ligand2 must be a BioSimSpace molecule") - if not isinstance(ligand1_rigid_core, list): - raise TypeError("ligand1_rigid_core must be a list") - elif not len(ligand1_rigid_core) == 3: - raise ValueError("ligand1_rigid_core must have length 3") - if not isinstance(ligand2_rigid_core, list): - raise TypeError("ligand2_rigid_core must be a list") - elif not len(ligand2_rigid_core) == 3: - raise ValueError("ligand2_rigid_core must have length 3") + if ligand_bound is None: + raise ValueError("ligand_bound must be provided") + if ligand_free is None: + raise ValueError("ligand_free must be provided") + if ligand_bound_rigid_core is None: + raise ValueError("ligand_bound_rigid_core must be provided") + if ligand_free_rigid_core is None: + raise ValueError("ligand_free_rigid_core must be provided") + + if not isinstance(ligand_bound, _Molecule): + raise TypeError("ligand_bound must be a BioSimSpace molecule") + if not isinstance(ligand_free, _Molecule): + raise TypeError("ligand_free must be a BioSimSpace molecule") + if not isinstance(ligand_bound_rigid_core, list): + raise TypeError("ligand_bound_rigid_core must be a list") + elif not len(ligand_bound_rigid_core) == 3: + raise ValueError("ligand_bound_rigid_core must have length 3") + if not isinstance(ligand_free_rigid_core, list): + raise TypeError("ligand_free_rigid_core must be a list") + elif not len(ligand_free_rigid_core) == 3: + raise ValueError("ligand_free_rigid_core must have length 3") # copy the ligands - ligand1 = ligand1.copy() - move_to_origin(ligand1) - ligand2 = ligand2.copy() - move_to_origin(ligand2) + ligand_bound = ligand_bound.copy() + move_to_origin(ligand_bound) + ligand_free = ligand_free.copy() + move_to_origin(ligand_free) pre_translation_lig1_core_coords = [] - for i in ligand1_rigid_core: - x = ligand1.getAtoms()[i].coordinates().x().value() - y = ligand1.getAtoms()[i].coordinates().y().value() - z = ligand1.getAtoms()[i].coordinates().z().value() + for i in ligand_bound_rigid_core: + x = ligand_bound.getAtoms()[i].coordinates().x().value() + y = ligand_bound.getAtoms()[i].coordinates().y().value() + z = ligand_bound.getAtoms()[i].coordinates().z().value() pre_translation_lig1_core_coords.append((x, y, z)) point1, point2, distance = furthest_points(pre_translation_lig1_core_coords) vector = vector_from_points(point1, point2) - # need to know the size of ligand1 + # need to know the size of ligand_bound lig1_coords = [] - for i in ligand1.getAtoms(): + for i in ligand_bound.getAtoms(): x = i.coordinates().x().value() y = i.coordinates().y().value() z = i.coordinates().z().value() @@ -982,8 +982,8 @@ def _count_num_atoms(ligand): lig1_point1, lig1_point2, lig1_distance = furthest_points(lig1_coords) - # Translate ligand2 so they don't overlap - ligand2.translate( + # Translate ligand_free so they don't overlap + ligand_free.translate( [ -1.0 * lig1_distance * 2 * vector[0], -1.0 * lig1_distance * 2 * vector[1], @@ -991,36 +991,37 @@ def _count_num_atoms(ligand): ] ) # Get coords of rigid core atoms - ligand1_core_coords = [] - ligand2_core_coords = [] - for i in ligand1_rigid_core: - ligand1_core_coords.append(ligand1.getAtoms()[i].coordinates()) - for i in ligand2_rigid_core: - ligand2_core_coords.append(ligand2.getAtoms()[i].coordinates()) + ligand_bound_core_coords = [] + ligand_free_core_coords = [] + for i in ligand_bound_rigid_core: + ligand_bound_core_coords.append(ligand_bound.getAtoms()[i].coordinates()) + for i in ligand_free_rigid_core: + ligand_free_core_coords.append(ligand_free.getAtoms()[i].coordinates()) # Create molecule containing both ligands - mol = ligand1 + ligand2 + mol = ligand_bound + ligand_free # Create view view = _View_AtoM(mol) # Create nglview object ngl = view.system(mol) + ngl.add_ball_and_stick("all") - ngl.add_ball_and_stick(make_amber_list(find_carbons(ligand1)), color="green") + ngl.add_ball_and_stick(make_amber_list(find_carbons(ligand_bound)), color="green") ngl.add_ball_and_stick( - make_amber_list(find_carbons(ligand2), offset=_count_num_atoms(ligand1)), + make_amber_list(find_carbons(ligand_free), offset=_count_num_atoms(ligand_bound)), color="orange", ) # colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] # Add spheres to rigid core locations for coord1, coord2, colour, core_atom_1, core_atom_2 in zip( - ligand1_core_coords, - ligand2_core_coords, + ligand_bound_core_coords, + ligand_free_core_coords, colours, - ligand1_rigid_core, - ligand2_rigid_core, + ligand_bound_rigid_core, + ligand_free_rigid_core, ): ngl.shape.add_sphere( [coord1.x().value(), coord1.y().value(), coord1.z().value()], diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index ae6c5d943..7e6d7fbf9 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -47,13 +47,13 @@ def getCMConstants(self): def findAbsoluteCoreIndices(self): import numpy as np - self.lig1_first_atomnum = self.data["first_ligand1_atom_index"] + self.lig1_first_atomnum = self.data["first_ligand_bound_atom_index"] self.lig1_rigid_atoms = list( - np.add(self.lig1_first_atomnum, self.data["ligand1_rigid_core"]) + np.add(self.lig1_first_atomnum, self.data["ligand_bound_rigid_core"]) ) - self.lig2_first_atomnum = self.data["first_ligand2_atom_index"] + self.lig2_first_atomnum = self.data["first_ligand_free_atom_index"] self.lig2_rigid_atoms = list( - np.add(self.lig2_first_atomnum, self.data["ligand2_rigid_core"]) + np.add(self.lig2_first_atomnum, self.data["ligand_free_rigid_core"]) ) def findAbsoluteCOMAtoms(self): @@ -64,19 +64,19 @@ def findAbsoluteCOMAtoms(self): np.add(self.protein_first_atomnum, self.data["protein_com_atoms"]) ) - self.lig1_first_atomnum = self.data["first_ligand1_atom_index"] + self.lig1_first_atomnum = self.data["first_ligand_bound_atom_index"] self.lig1_com_atoms = list( - np.add(self.lig1_first_atomnum, self.data["ligand1_com_atoms"]) + np.add(self.lig1_first_atomnum, self.data["ligand_bound_com_atoms"]) ) - self.lig2_first_atomnum = self.data["first_ligand2_atom_index"] + self.lig2_first_atomnum = self.data["first_ligand_free_atom_index"] self.lig2_com_atoms = list( - np.add(self.lig2_first_atomnum, self.data["ligand2_com_atoms"]) + np.add(self.lig2_first_atomnum, self.data["ligand_free_com_atoms"]) ) def getATMForceConstants(self, index=None): - self.lig1_atoms = self.getLigand1AtomsAsList() - self.lig2_atoms = self.getLigand2AtomsAsList() + self.lig1_atoms = self.getLigandBoundAtomsAsList() + self.lig2_atoms = self.getLigandFreeAtomsAsList() self.SCUmax = self.protocol.getSoftCoreUmax().value() self.SCU0 = self.protocol.getSoftCoreU0().value() self.SCa = self.protocol.getSoftCoreA() @@ -293,23 +293,23 @@ def createAlignmentForce(self, force_group=None): output += "system.addForce(dihedral_force)\n\n" return output - def getLigand1AtomsAsList(self): + def getLigandBoundAtomsAsList(self): import numpy as np return list( np.arange( - self.data["first_ligand1_atom_index"], - self.data["last_ligand1_atom_index"] + 1, + self.data["first_ligand_bound_atom_index"], + self.data["last_ligand_bound_atom_index"] + 1, ) ) - def getLigand2AtomsAsList(self): + def getLigandFreeAtomsAsList(self): import numpy as np return list( np.arange( - self.data["first_ligand2_atom_index"], - self.data["last_ligand2_atom_index"] + 1, + self.data["first_ligand_free_atom_index"], + self.data["last_ligand_free_atom_index"] + 1, ) ) diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index 7582cbd70..f08d2b24b 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -121,8 +121,8 @@ def __str__(self): string += ", pressure=%s, " % self.getPressure() string += ", lambda1=%s " % self.getLambda1() string += ", lambda2=%s " % self.getLambda2() - string += ", ligand1 core atoms=%s" % d["ligand1_rigid_core"] - string += ", ligand2 core atoms=%s" % d["ligand2_rigid_core"] + string += ", ligand_bound core atoms=%s" % d["ligand_bound_rigid_core"] + string += ", ligand_free core atoms=%s" % d["ligand_free_rigid_core"] string += ", report_interval=%s " % self.getReportInterval() string += ", restart_interval=%s " % self.getRestartInterval() string += ">" diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 594dd3900..0ee36f38f 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -13,7 +13,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM( - receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) # check that an error is thrown in the rigid core atoms are not given to prepare with pytest.raises(TypeError): @@ -22,7 +22,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): rigid_core = [1, 2, 3] atm_system, atm_data = atm_generator.prepare( - ligand1_rigid_core=rigid_core, ligand2_rigid_core=rigid_core + ligand_bound_rigid_core=rigid_core, ligand_free_rigid_core=rigid_core ) # Check that the system contains an atm data property @@ -37,21 +37,21 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): ] ) - # check that data[ligand1_rigid_core] and data[ligand2_rigid_core] are the same as the input - assert data_from_system["ligand1_rigid_core"] == rigid_core - assert data_from_system["ligand2_rigid_core"] == rigid_core + # check that data[ligand_bound_rigid_core] and data[ligand_free_rigid_core] are the same as the input + assert data_from_system["ligand_bound_rigid_core"] == rigid_core + assert data_from_system["ligand_free_rigid_core"] == rigid_core # get the coordinates of the ligands - lig1_coords = atm_system[atm_data["ligand1_index"]]._sire_object.coordinates() - lig2_coords = atm_system[atm_data["ligand2_index"]]._sire_object.coordinates() + lig1_coords = atm_system[atm_data["ligand_bound_index"]]._sire_object.coordinates() + lig2_coords = atm_system[atm_data["ligand_free_index"]]._sire_object.coordinates() # make sure the displacement is correct for the default value of 20A assert pytest.approx((lig2_coords - lig1_coords).length().value(), rel=1) == 20.0 vector = BSS.Types.Vector(10.0, 10.0, 10.0) system_withvec, data_withvec = atm_generator.prepare( - ligand1_rigid_core=rigid_core, - ligand2_rigid_core=rigid_core, + ligand_bound_rigid_core=rigid_core, + ligand_free_rigid_core=rigid_core, displacement=vector, ) @@ -64,10 +64,10 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): vector.z(), ] lig1_coords = system_withvec[ - data_withvec["ligand1_index"] + data_withvec["ligand_bound_index"] ]._sire_object.coordinates() lig2_coords = system_withvec[ - data_withvec["ligand2_index"] + data_withvec["ligand_free_index"] ]._sire_object.coordinates() d = lig2_coords - lig1_coords @@ -362,14 +362,14 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): 195, ] atm_generator = BSS.FreeEnergy.AToM( - receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) system, data = atm_generator.prepare( displacement=[22, 22, 22], - ligand1_rigid_core=[8, 6, 4], - ligand2_rigid_core=[3, 5, 1], - ligand1_com_atoms=lig1_cm_rel, - ligand2_com_atoms=lig2_cm_rel, + ligand_bound_rigid_core=[8, 6, 4], + ligand_free_rigid_core=[3, 5, 1], + ligand_bound_com_atoms=lig1_cm_rel, + ligand_free_com_atoms=lig2_cm_rel, protein_com_atoms=prot_cm_atoms, ) diff --git a/tests/conftest.py b/tests/conftest.py index edded69fc..73cf0abf7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -115,10 +115,10 @@ def TEMOA_lig2(): @pytest.fixture(scope="session") def TEMOA_hostguest(TEMOA_host, TEMOA_lig1, TEMOA_lig2): atm_generator = BSS.FreeEnergy.AToM( - receptor=TEMOA_host, ligand1=TEMOA_lig1, ligand2=TEMOA_lig2 + receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) rigid_core = [1, 2, 3] atm_system, atm_data = atm_generator.prepare( - ligand1_rigid_core=rigid_core, ligand2_rigid_core=rigid_core + ligand_bound_rigid_core=rigid_core, ligand_free_rigid_core=rigid_core ) return atm_system, atm_data From db26eed5c40b86553a2941ed30b9b0f11cadccd0 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 18 Sep 2024 09:53:23 +0100 Subject: [PATCH 090/123] Formatting --- python/BioSimSpace/FreeEnergy/_atm.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index c6e98f006..4bcb80db7 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -686,12 +686,16 @@ def _findAtomIndices(self): ligand_bound_atom_start = self._system[self.ligand_bound_index].getAtoms()[0] ligand_bound_atom_end = self._system[self.ligand_bound_index].getAtoms()[-1] - self.first_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_start) + self.first_ligand_bound_atom_index = self._system.getIndex( + ligand_bound_atom_start + ) self.last_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_end) ligand_free_atom_start = self._system[self.ligand_free_index].getAtoms()[0] ligand_free_atom_end = self._system[self.ligand_free_index].getAtoms()[-1] - self.first_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_start) + self.first_ligand_free_atom_index = self._system.getIndex( + ligand_free_atom_start + ) self.last_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_end) def _getProtComAtoms(self): @@ -1008,9 +1012,13 @@ def _count_num_atoms(ligand): ngl = view.system(mol) ngl.add_ball_and_stick("all") - ngl.add_ball_and_stick(make_amber_list(find_carbons(ligand_bound)), color="green") ngl.add_ball_and_stick( - make_amber_list(find_carbons(ligand_free), offset=_count_num_atoms(ligand_bound)), + make_amber_list(find_carbons(ligand_bound)), color="green" + ) + ngl.add_ball_and_stick( + make_amber_list( + find_carbons(ligand_free), offset=_count_num_atoms(ligand_bound) + ), color="orange", ) # From 74bf7578336b217d7266b0f5aebeab1fb4888bf3 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 20 Sep 2024 16:27:37 +0100 Subject: [PATCH 091/123] Add method to remove the space property from a system. --- .../Exscientia/_SireWrappers/_system.py | 28 +++++++++++++++++++ python/BioSimSpace/_SireWrappers/_system.py | 28 +++++++++++++++++++ .../Exscientia/_SireWrappers/test_system.py | 14 ++++++++++ tests/_SireWrappers/test_system.py | 14 ++++++++++ 4 files changed, 84 insertions(+) diff --git a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py index 653621fa7..283c84ef8 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py +++ b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py @@ -1670,6 +1670,9 @@ def setBox(self, box, angles=3 * [_Angle(90, "degree")], property_map={}): if len(box) != 3: raise ValueError("'angles' must contain three items.") + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'.") + # Convert sizes to Anstrom. vec = [x.angstroms().value() for x in box] @@ -1720,6 +1723,9 @@ def getBox(self, property_map={}): The box vector angles: yz, xz, and xy. """ + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'.") + # Get the "space" property and convert to a list of BioSimSpace.Type.Length # objects. try: @@ -1751,6 +1757,28 @@ def getBox(self, property_map={}): return box, angles + def removeBox(self, property_map={}): + """ + Remove the simulation box from the system. + + Parameters + ---------- + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + """ + + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + + # Remove the "space" property. + try: + self._sire_object.removeProperty(property_map.get("space", "space")) + except: + pass + def makeWhole(self, property_map={}): """ Make all molecules in the system "whole", i.e. unwrap any molecules that have diff --git a/python/BioSimSpace/_SireWrappers/_system.py b/python/BioSimSpace/_SireWrappers/_system.py index 6a64c8656..c00beac2c 100644 --- a/python/BioSimSpace/_SireWrappers/_system.py +++ b/python/BioSimSpace/_SireWrappers/_system.py @@ -1587,6 +1587,9 @@ def setBox(self, box, angles=3 * [_Angle(90, "degree")], property_map={}): if len(box) != 3: raise ValueError("'angles' must contain three items.") + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + # Convert sizes to Anstrom. vec = [x.angstroms().value() for x in box] @@ -1637,6 +1640,9 @@ def getBox(self, property_map={}): The box vector angles: yz, xz, and xy. """ + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + # Get the "space" property and convert to a list of BioSimSpace.Type.Length # objects. try: @@ -1668,6 +1674,28 @@ def getBox(self, property_map={}): return box, angles + def removeBox(self, property_map={}): + """ + Remove the simulation box from the system. + + Parameters + ---------- + + property_map : dict + A dictionary that maps system "properties" to their user defined + values. This allows the user to refer to properties with their + own naming scheme, e.g. { "charge" : "my-charge" } + """ + + if not isinstance(property_map, dict): + raise TypeError("'property_map' must be of type 'dict'") + + # Remove the "space" property. + try: + self._sire_object.removeProperty(property_map.get("space", "space")) + except: + pass + def makeWhole(self, property_map={}): """ Make all molecules in the system "whole", i.e. unwrap any molecules that have diff --git a/tests/Sandpit/Exscientia/_SireWrappers/test_system.py b/tests/Sandpit/Exscientia/_SireWrappers/test_system.py index ee98bfac0..976a1a283 100644 --- a/tests/Sandpit/Exscientia/_SireWrappers/test_system.py +++ b/tests/Sandpit/Exscientia/_SireWrappers/test_system.py @@ -494,3 +494,17 @@ def test_set_water_property_preserve(system): # Make sure the property is preserved. assert system[-1]._sire_object.hasProperty("test") + + +def test_remove_box(system): + # Make a copy of the system. + system = system.copy() + + # Make sure the box is present. + assert "space" in system._sire_object.propertyKeys() + + # Remove the box. + system.removeBox() + + # Make sure the box is removed. + assert not "space" in system._sire_object.propertyKeys() diff --git a/tests/_SireWrappers/test_system.py b/tests/_SireWrappers/test_system.py index 2073f4b26..f57100f7a 100644 --- a/tests/_SireWrappers/test_system.py +++ b/tests/_SireWrappers/test_system.py @@ -484,3 +484,17 @@ def test_set_water_property_preserve(system): # Make sure the property is preserved. assert system[-1]._sire_object.hasProperty("test") + + +def test_remove_box(system): + # Make a copy of the system. + system = system.copy() + + # Make sure the box is present. + assert "space" in system._sire_object.propertyKeys() + + # Remove the box. + system.removeBox() + + # Make sure the box is removed. + assert not "space" in system._sire_object.propertyKeys() From 89fcc0a4592b8d3c5b72113d138404d505aedca7 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 25 Sep 2024 08:55:25 +0100 Subject: [PATCH 092/123] Reference system needs to be converted to an end state. [closes #340] --- python/BioSimSpace/Process/_openmm.py | 3 ++- tests/Process/test_openmm.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index e19cc1f40..b412cb275 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -254,6 +254,7 @@ def _setup(self): # Check for perturbable molecules and convert to the chosen end state. system = self._checkPerturbable(system) + reference_system = self._checkPerturbable(self._reference_system) # Create the input files... @@ -274,7 +275,7 @@ def _setup(self): file = _os.path.splitext(self._ref_file)[0] _IO.saveMolecules( file, - self._reference_system, + reference_system, "rst7", property_map=self._property_map, ) diff --git a/tests/Process/test_openmm.py b/tests/Process/test_openmm.py index a7968173a..f67a78bbc 100644 --- a/tests/Process/test_openmm.py +++ b/tests/Process/test_openmm.py @@ -111,6 +111,16 @@ def test_parmed_triclinic(): run_process(system, protocol) +def test_perturbable_restraint(perturbable_system): + """Test a free energy perturbation protocol.""" + + # Create a short minimisation prototocol with a restraint. + protocol = BSS.Protocol.Minimisation(steps=100, restraint="heavy") + + # Run the process, check that it finished without error, and returns a system. + run_process(perturbable_system, protocol) + + def run_process(system, protocol): """Helper function to run various simulation protocols.""" From 24f4958ca8c850b231fd67dc9bfd04bfdfcf247f Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 25 Sep 2024 09:19:09 +0100 Subject: [PATCH 093/123] Apply previous fix to Process.Namd. --- python/BioSimSpace/Process/_namd.py | 3 +++ tests/Process/test_namd.py | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/python/BioSimSpace/Process/_namd.py b/python/BioSimSpace/Process/_namd.py index 787452905..9a3e27839 100644 --- a/python/BioSimSpace/Process/_namd.py +++ b/python/BioSimSpace/Process/_namd.py @@ -2115,6 +2115,9 @@ def _createRestrainedSystem(self, system, restraint): # Copy the original system. s = system.copy() + # Convert to the chosen end state. + s = self._checkPerturbable(s) + # Keyword restraint. if isinstance(restraint, str): # Loop over all molecules by number. diff --git a/tests/Process/test_namd.py b/tests/Process/test_namd.py index 7c9eb19b7..5c2ab3aef 100644 --- a/tests/Process/test_namd.py +++ b/tests/Process/test_namd.py @@ -90,6 +90,17 @@ def test_production(namd_system, restraint): run_process(namd_system, protocol) +@pytest.mark.skipif(has_namd is False, reason="Requires NAMD to be installed.") +def test_perturbable_restraint(perturbable_system): + """Test a free energy perturbation protocol.""" + + # Create a short minimisation prototocol with a restraint. + protocol = BSS.Protocol.Minimisation(steps=100, restraint="heavy") + + # Run the process, check that it finished without error, and returns a system. + run_process(perturbable_system, protocol) + + def run_process(namd_system, protocol): """Helper function to run various simulation protocols.""" From b40f4c9fb0f5daa62beb06f58641a9aa0009e5e0 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 25 Sep 2024 11:17:22 +0100 Subject: [PATCH 094/123] Fix for running FreeEnergyMinimisation and FreeEnergyEquilibration with restraints using GROMACS --- python/BioSimSpace/Process/_gromacs.py | 29 +++++++++++++++++++------- tests/Process/test_gromacs.py | 11 ++++++++++ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/python/BioSimSpace/Process/_gromacs.py b/python/BioSimSpace/Process/_gromacs.py index 7de88ac88..adbf8fe77 100644 --- a/python/BioSimSpace/Process/_gromacs.py +++ b/python/BioSimSpace/Process/_gromacs.py @@ -2131,16 +2131,31 @@ def _add_position_restraints(self): ) with open(restraint_file, "w") as file: - # Write the header. - file.write("[ position_restraints ]\n") - file.write("; i funct fcx fcy fcz\n") - - # Write restraints for each atom. - for atom_idx in restrained_atoms: + if isinstance(self._protocol, _FreeEnergyMixin): + # Write the header. + file.write("[ position_restraints ]\n") file.write( - f"{atom_idx+1:4} 1 {force_constant} {force_constant} {force_constant}\n" + "; i funct fcx_A fcy_A fcz_A fcx_B fcy_B fcz_B\n" + ) + # Write restraints for each atom. + for atom_idx in restrained_atoms: + file.write( + f"{atom_idx+1:4} 1 {force_constant} {force_constant} {force_constant} {force_constant} {force_constant} {force_constant}\n" + ) + + else: + # Write the header. + file.write("[ position_restraints ]\n") + file.write( + "; i funct fcx fcy fcz\n" ) + # Write restraints for each atom. + for atom_idx in restrained_atoms: + file.write( + f"{atom_idx+1:4} 1 {force_constant} {force_constant} {force_constant}\n" + ) + # Work out the offset. offset = num_restraint - 1 diff --git a/tests/Process/test_gromacs.py b/tests/Process/test_gromacs.py index 5de10a95a..d81f8f14a 100644 --- a/tests/Process/test_gromacs.py +++ b/tests/Process/test_gromacs.py @@ -116,6 +116,17 @@ def test_restraints(perturbable_system, restraint): process = BSS.Process.Gromacs(perturbable_system, protocol) +@pytest.mark.skipif(has_gromacs is False, reason="Requires GROMACS to be installed.") +def test_perturbable_restraint(perturbable_system): + """Test a free energy perturbation protocol.""" + + # Create a short minimisation protocol with a restraint. + protocol = BSS.Protocol.Minimisation(steps=100, restraint="heavy") + + # Run the process, check that it finished without error, and returns a system. + run_process(perturbable_system, protocol) + + def run_process(system, protocol, **kwargs): """Helper function to run various simulation protocols.""" From 8a823b6afd0a2362a6112d555e1ad61af215c329 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 25 Sep 2024 09:23:40 +0100 Subject: [PATCH 095/123] Apply same fix to Process.Amber. --- python/BioSimSpace/Process/_amber.py | 2 ++ tests/Process/test_amber.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/python/BioSimSpace/Process/_amber.py b/python/BioSimSpace/Process/_amber.py index f9b5e21ca..aec4bc743 100644 --- a/python/BioSimSpace/Process/_amber.py +++ b/python/BioSimSpace/Process/_amber.py @@ -304,6 +304,7 @@ def _setup(self, **kwargs): # Set the simulation box. system.setBox(*_cubic(box_length)) + reference_system.setBox(*_cubic(box_length)) # Apply SOMD1 compatibility to the perturbation. if ( @@ -322,6 +323,7 @@ def _setup(self, **kwargs): else: # Check for perturbable molecules and convert to the chosen end state. system = self._checkPerturbable(system) + reference_system = self._checkPerturbable(self._reference_system) # RST file (coordinates). try: diff --git a/tests/Process/test_amber.py b/tests/Process/test_amber.py index 18a23df2a..eb66b0d88 100644 --- a/tests/Process/test_amber.py +++ b/tests/Process/test_amber.py @@ -243,6 +243,17 @@ def test_backbone_restraint_mask_rna(rna_system): assert " restraintmask=\"@P,C5',C3',O3',O5'\"," in config +@pytest.mark.skipif(has_amber is False, reason="Requires AMBER to be installed.") +def test_perturbable_restraint(perturbable_system): + """Test a free energy perturbation protocol.""" + + # Create a short minimisation prototocol with a restraint. + protocol = BSS.Protocol.Minimisation(steps=100, restraint="heavy") + + # Run the process, check that it finished without error, and returns a system. + run_process(perturbable_system, protocol) + + def run_process(system, protocol, check_data=False): """Helper function to run various simulation protocols.""" From eccf31033d6cfbaa411601d8d398ed1aed852c67 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 27 Sep 2024 13:26:53 +0100 Subject: [PATCH 096/123] Allow end-state connectivity property to differ. [closes #344] --- python/BioSimSpace/Align/_merge.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/python/BioSimSpace/Align/_merge.py b/python/BioSimSpace/Align/_merge.py index ba8b61295..62189926c 100644 --- a/python/BioSimSpace/Align/_merge.py +++ b/python/BioSimSpace/Align/_merge.py @@ -1162,8 +1162,13 @@ def merge( "perturbation will likely be unstable." ) - # Set the "connectivity" property. - edit_mol.setProperty("connectivity", conn) + # Set the "connectivity" property. If the end state connectivity is the same, + # then we can just set the "connectivity" property. + if conn0 == conn1: + edit_mol.setProperty("connectivity", conn0) + else: + edit_mol.setProperty("connectivity0", conn0) + edit_mol.setProperty("connectivity1", conn1) # Create the CLJNBPairs matrices. ff = molecule0.property(ff0) From 2927c15adebddf8f72a96c30072f1d0da11111e5 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Mon, 30 Sep 2024 16:58:31 +0100 Subject: [PATCH 097/123] Use direct RDKit conversion as intermediate for OpenFF. --- .../Parameters/_Protocol/_openforcefield.py | 90 ++++--------------- .../Parameters/_Protocol/_openforcefield.py | 90 ++++--------------- 2 files changed, 30 insertions(+), 150 deletions(-) diff --git a/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py b/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py index c94e7d349..4ac3a6336 100644 --- a/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py +++ b/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py @@ -115,7 +115,9 @@ from sire.legacy import System as _SireSystem from ... import _isVerbose +from ... import Convert as _Convert from ... import IO as _IO +from ..._Exceptions import ConversionError as _ConversionError from ..._Exceptions import IncompatibleError as _IncompatibleError from ..._Exceptions import ThirdPartyError as _ThirdPartyError from ..._SireWrappers import Molecule as _Molecule @@ -243,82 +245,20 @@ def run(self, molecule, work_dir=None, queue=None): else: raise IOError(msg) from None else: - # If the molecule was originally loaded from an SDF format file, - # then write back to the same format. - fileformat_prop = self._property_map.get("fileformat", "fileformat") - if ( - molecule._sire_object.hasProperty(fileformat_prop) - and "SDF" in molecule._sire_object.property("fileformat").value() - ): - # Write the molecule to SDF format. - try: - _IO.saveMolecules( - _os.path.join(str(work_dir), "molecule"), - molecule, - "sdf", - property_map=self._property_map, - ) - except Exception as e: - msg = "Failed to write the molecule to 'SDF' format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Otherwise, go via an intermediate PDB file and use RDKit to try - # to recover stereochemistry. - else: - # Write the molecule to a PDB file. - try: - _IO.saveMolecules( - _os.path.join(str(work_dir), "molecule"), - molecule, - "pdb", - property_map=self._property_map, - ) - except Exception as e: - msg = "Failed to write the molecule to 'PDB' format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Create an RDKit molecule from the PDB file. - try: - rdmol = _Chem.MolFromPDBFile( - _os.path.join(str(work_dir), "molecule.pdb"), removeHs=False - ) - except Exception as e: - msg = "RDKit was unable to read the molecular PDB file!" - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - - # Use RDKit to write back to SDF format. - try: - writer = _Chem.SDWriter( - _os.path.join(str(work_dir), "molecule.sdf") - ) - writer.write(rdmol) - writer.close() - except Exception as e: - msg = "RDKit was unable to write the molecular SDF file!" - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - - # Create the Open Forcefield Molecule from the intermediate SDF file, - # as recommended by @j-wags and @mattwthompson. + # Try converting to RDKit format. try: - off_molecule = _OpenFFMolecule.from_file( - _os.path.join(str(work_dir), "molecule.sdf") - ) + rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) + except Exception as e: + msg = "Failed to convert molecule to RDKit format." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise (msg) from e + else: + raise _ConversionError(msg) from None + + # Create the Open Forcefield Molecule from the RDKit molecule. + try: + off_molecule = _OpenFFMolecule.from_rdkit(rdmol) except Exception as e: msg = "Unable to create OpenFF Molecule!" if _isVerbose(): diff --git a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py index c94e7d349..4ac3a6336 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py @@ -115,7 +115,9 @@ from sire.legacy import System as _SireSystem from ... import _isVerbose +from ... import Convert as _Convert from ... import IO as _IO +from ..._Exceptions import ConversionError as _ConversionError from ..._Exceptions import IncompatibleError as _IncompatibleError from ..._Exceptions import ThirdPartyError as _ThirdPartyError from ..._SireWrappers import Molecule as _Molecule @@ -243,82 +245,20 @@ def run(self, molecule, work_dir=None, queue=None): else: raise IOError(msg) from None else: - # If the molecule was originally loaded from an SDF format file, - # then write back to the same format. - fileformat_prop = self._property_map.get("fileformat", "fileformat") - if ( - molecule._sire_object.hasProperty(fileformat_prop) - and "SDF" in molecule._sire_object.property("fileformat").value() - ): - # Write the molecule to SDF format. - try: - _IO.saveMolecules( - _os.path.join(str(work_dir), "molecule"), - molecule, - "sdf", - property_map=self._property_map, - ) - except Exception as e: - msg = "Failed to write the molecule to 'SDF' format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Otherwise, go via an intermediate PDB file and use RDKit to try - # to recover stereochemistry. - else: - # Write the molecule to a PDB file. - try: - _IO.saveMolecules( - _os.path.join(str(work_dir), "molecule"), - molecule, - "pdb", - property_map=self._property_map, - ) - except Exception as e: - msg = "Failed to write the molecule to 'PDB' format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Create an RDKit molecule from the PDB file. - try: - rdmol = _Chem.MolFromPDBFile( - _os.path.join(str(work_dir), "molecule.pdb"), removeHs=False - ) - except Exception as e: - msg = "RDKit was unable to read the molecular PDB file!" - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - - # Use RDKit to write back to SDF format. - try: - writer = _Chem.SDWriter( - _os.path.join(str(work_dir), "molecule.sdf") - ) - writer.write(rdmol) - writer.close() - except Exception as e: - msg = "RDKit was unable to write the molecular SDF file!" - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - - # Create the Open Forcefield Molecule from the intermediate SDF file, - # as recommended by @j-wags and @mattwthompson. + # Try converting to RDKit format. try: - off_molecule = _OpenFFMolecule.from_file( - _os.path.join(str(work_dir), "molecule.sdf") - ) + rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) + except Exception as e: + msg = "Failed to convert molecule to RDKit format." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise (msg) from e + else: + raise _ConversionError(msg) from None + + # Create the Open Forcefield Molecule from the RDKit molecule. + try: + off_molecule = _OpenFFMolecule.from_rdkit(rdmol) except Exception as e: msg = "Unable to create OpenFF Molecule!" if _isVerbose(): From e72f9130141012408d3ec6611f557875cb35d79b Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 2 Oct 2024 13:55:36 +0100 Subject: [PATCH 098/123] Add missing copy of reference system. --- python/BioSimSpace/Process/_amber.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/python/BioSimSpace/Process/_amber.py b/python/BioSimSpace/Process/_amber.py index aec4bc743..5c3a5b602 100644 --- a/python/BioSimSpace/Process/_amber.py +++ b/python/BioSimSpace/Process/_amber.py @@ -262,12 +262,11 @@ def _setup(self, **kwargs): # Create a copy of the system. system = self._system.copy() + reference_system = self._reference_system.copy() # Convert the water model topology so that it matches the AMBER naming convention. system._set_water_topology("AMBER", property_map=self._property_map) - self._reference_system._set_water_topology( - "AMBER", property_map=self._property_map - ) + reference_system._set_water_topology("AMBER", property_map=self._property_map) # Create the squashed system. if isinstance(self._protocol, _FreeEnergyMixin): @@ -323,7 +322,7 @@ def _setup(self, **kwargs): else: # Check for perturbable molecules and convert to the chosen end state. system = self._checkPerturbable(system) - reference_system = self._checkPerturbable(self._reference_system) + reference_system = self._checkPerturbable(reference_system) # RST file (coordinates). try: @@ -340,7 +339,7 @@ def _setup(self, **kwargs): try: file = _os.path.splitext(self._ref_file)[0] _IO.saveMolecules( - file, self._reference_system, "rst7", property_map=self._property_map + file, reference_system, "rst7", property_map=self._property_map ) except Exception as e: msg = "Failed to write reference system to 'RST7' format." From 41fb5144ce7c8c83742ef6f665aea6d803142137 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 2 Oct 2024 13:56:22 +0100 Subject: [PATCH 099/123] Presever SMILES molecule properties when parameterising. [closes #331] --- .../Parameters/_Protocol/_amber.py | 161 ++++++------------ .../Parameters/_Protocol/_openforcefield.py | 117 +++++-------- .../Exscientia/Parameters/_Protocol/_amber.py | 161 ++++++------------ .../Parameters/_Protocol/_openforcefield.py | 117 +++++-------- tests/Parameters/test_parameters.py | 30 ++++ .../Exscientia/Parameters/test_parameters.py | 30 ++++ 6 files changed, 248 insertions(+), 368 deletions(-) diff --git a/python/BioSimSpace/Parameters/_Protocol/_amber.py b/python/BioSimSpace/Parameters/_Protocol/_amber.py index bdddd0851..6694cf572 100644 --- a/python/BioSimSpace/Parameters/_Protocol/_amber.py +++ b/python/BioSimSpace/Parameters/_Protocol/_amber.py @@ -310,15 +310,24 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Flag whether the molecule is a SMILES string. + # Try to create a molecule from the SMILES string. if isinstance(molecule, str): - is_smiles = True - else: - is_smiles = False + try: + smiles = molecule + molecule = _smiles(molecule) + edit_mol = molecule._sire_object.edit() + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() + molecule._sire_object = edit_mol.commit() + except Exception as e: + msg = "Unable to convert SMILES to Molecule using RDKit." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise _ThirdPartyError(msg) from e + else: + raise _ThirdPartyError(msg) from None - if not is_smiles: - # Create a copy of the molecule. - new_mol = molecule.copy() + # Create a copy of the molecule. + new_mol = molecule.copy() # Choose the program to run with depending on the force field compatibility. # If tLEaP and pdb2gmx are supported, default to tLEaP, then use pdb2gmx if @@ -328,8 +337,7 @@ def run(self, molecule, work_dir=None, queue=None): if self._tleap: if _tleap_exe is not None: output = self._run_tleap(molecule, str(work_dir)) - if not is_smiles: - new_mol._ion_water_model = self._water_model + new_mol._ion_water_model = self._water_model # Otherwise, try using pdb2gmx. elif self._pdb2gmx: if _gmx_exe is not None: @@ -371,41 +379,23 @@ def run(self, molecule, work_dir=None, queue=None): # Make the molecule 'mol' compatible with 'par_mol'. This will create # a mapping between atom indices in the two molecules and add all of # the new properties from 'par_mol' to 'mol'. - if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(molecule).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = edit_mol.residue(_SireMol.ResIdx(0)).rename(resname).molecule() - - # Commit the changes. - new_mol._sire_object = edit_mol.commit() - + if self._ensure_compatible: + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, + ) else: - if self._ensure_compatible: + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = self._forcefield @@ -421,33 +411,18 @@ def _run_tleap(self, molecule, work_dir): Parameters ---------- - molecule : :class:`Molecule `, str - The molecule to parameterise, either as a Molecule object or SMILES - string. + molecule : :class:`Molecule ` + The molecule to parameterise. work_dir : str The working directory. """ - # Convert SMILES to a molecule. - if isinstance(molecule, str): - try: - _molecule = _smiles(molecule) - except Exception as e: - msg = "Unable to convert SMILES to Molecule using RDKit." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - else: - _molecule = molecule - # Write the system to a PDB file. try: # LEaP expects residue numbering to be ascending and continuous. renumbered_molecule = _SireIO.renumberConstituents( - _molecule.toSystem()._sire_object + molecule.toSystem()._sire_object )[0] renumbered_molecule = _Molecule(renumbered_molecule) _IO.saveMolecules( @@ -570,9 +545,8 @@ def _run_pdb2gmx(self, molecule, work_dir): Parameters ---------- - molecule : :class:`Molecule `, str - The molecule to parameterise, either as a Molecule object or SMILES - string. + molecule : :class:`Molecule ` + The molecule to parameterise. work_dir : str The working directory. @@ -587,25 +561,11 @@ def _run_pdb2gmx(self, molecule, work_dir): "'pdb2gmx' does not support the '%s' force field." % self._forcefield ) - # Convert SMILES to a molecule. - if isinstance(molecule, str): - try: - _molecule = _smiles(molecule) - except Exception as e: - msg = "Unable to convert SMILES to Molecule using RDKit." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - else: - _molecule = molecule - # Write the system to a PDB file. try: _IO.saveMolecules( _os.path.join(str(work_dir), "input"), - _molecule, + molecule, "pdb", property_map=self._property_map, ) @@ -1007,11 +967,14 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Convert SMILES to a molecule. + # Try to create a molecule from the SMILES string. if isinstance(molecule, str): - is_smiles = True try: - new_mol = _smiles(molecule) + smiles = molecule + molecule = _smiles(molecule) + edit_mol = molecule._sire_object.edit() + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() + molecule._sire_object = edit_mol.commit() except Exception as e: msg = "Unable to convert SMILES to Molecule using RDKit." if _isVerbose(): @@ -1019,9 +982,9 @@ def run(self, molecule, work_dir=None, queue=None): raise _ThirdPartyError(msg) from e else: raise _ThirdPartyError(msg) from None - else: - is_smiles = False - new_mol = molecule.copy() + + # Create a copy of the molecule. + new_mol = molecule.copy() # Use the net molecular charge passed as an option. if self._net_charge is not None: @@ -1251,45 +1214,23 @@ def run(self, molecule, work_dir=None, queue=None): # Make the molecule 'mol' compatible with 'par_mol'. This will create # a mapping between atom indices in the two molecules and add all of # the new properties from 'par_mol' to 'mol'. - if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(molecule).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = ( - edit_mol.residue(_SireMol.ResIdx(0)) - .rename(resname) - .molecule() + if self._ensure_compatible: + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, ) - - # Commit the changes. - new_mol._sire_object = edit_mol.commit() - else: - if self._ensure_compatible: + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = ff diff --git a/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py b/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py index 4ac3a6336..23c51cc8e 100644 --- a/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py +++ b/python/BioSimSpace/Parameters/_Protocol/_openforcefield.py @@ -216,56 +216,43 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Flag whether the molecule is a SMILES string. + # Try to create BioSimSpace molecule from the SMILES string. if isinstance(molecule, str): is_smiles = True - else: - is_smiles = False - - if is_smiles: - # Convert SMILES string to an OpenFF molecule. - try: - off_molecule = _OpenFFMolecule.from_smiles(molecule) - except Exception as e: - msg = "Failed to convert SMILES to Open Force Field Molecule." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Generate a single conformer. - try: - off_molecule.generate_conformers(n_conformers=1) - except Exception as e: - msg = "Unable to generate conformer from Open Force Field molecule." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - else: - # Try converting to RDKit format. - try: - rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) - except Exception as e: - msg = "Failed to convert molecule to RDKit format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise (msg) from e - else: - raise _ConversionError(msg) from None - - # Create the Open Forcefield Molecule from the RDKit molecule. try: - off_molecule = _OpenFFMolecule.from_rdkit(rdmol) + smiles = molecule + molecule = _Convert.smiles(molecule) except Exception as e: - msg = "Unable to create OpenFF Molecule!" + msg = "Unable to convert SMILES to Molecule using RDKit." if _isVerbose(): msg += ": " + getattr(e, "message", repr(e)) raise _ThirdPartyError(msg) from e else: raise _ThirdPartyError(msg) from None + else: + is_smiles = False + + # Try converting to RDKit format. + try: + rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) + except Exception as e: + msg = "Failed to convert molecule to RDKit format." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise (msg) from e + else: + raise _ConversionError(msg) from None + + # Create the Open Forcefield Molecule from the RDKit molecule. + try: + off_molecule = _OpenFFMolecule.from_rdkit(rdmol) + except Exception as e: + msg = "Unable to create OpenFF Molecule!" + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise _ThirdPartyError(msg) from e + else: + raise _ThirdPartyError(msg) from None # Apply AM1-BCC charges using NAGL. if _has_nagl and self._use_nagl: @@ -353,50 +340,32 @@ def run(self, molecule, work_dir=None, queue=None): else: raise IOError(msg) from None - # Make the parameterised molecule compatible with the original topology. + # Make sure we retain stereochemistry information from the SMILES string. if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - # Since the name is written to topology file formats, we - # need to ensure that it doesn't start with an [ character, - # which would break GROMACS. - name = molecule - if name.startswith("["): - name = f"smiles:{name}" - + new_mol = _Convert.smiles(smiles) edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(name).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = edit_mol.residue(_SireMol.ResIdx(0)).rename(resname).molecule() - - # Commit the changes. + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() new_mol._sire_object = edit_mol.commit() + # Make the parameterised molecule compatible with the original topology. + if self._ensure_compatible: + new_mol = molecule.copy() + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, + ) else: - if self._ensure_compatible: - new_mol = molecule.copy() + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = self._forcefield diff --git a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_amber.py b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_amber.py index bdddd0851..6694cf572 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_amber.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_amber.py @@ -310,15 +310,24 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Flag whether the molecule is a SMILES string. + # Try to create a molecule from the SMILES string. if isinstance(molecule, str): - is_smiles = True - else: - is_smiles = False + try: + smiles = molecule + molecule = _smiles(molecule) + edit_mol = molecule._sire_object.edit() + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() + molecule._sire_object = edit_mol.commit() + except Exception as e: + msg = "Unable to convert SMILES to Molecule using RDKit." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise _ThirdPartyError(msg) from e + else: + raise _ThirdPartyError(msg) from None - if not is_smiles: - # Create a copy of the molecule. - new_mol = molecule.copy() + # Create a copy of the molecule. + new_mol = molecule.copy() # Choose the program to run with depending on the force field compatibility. # If tLEaP and pdb2gmx are supported, default to tLEaP, then use pdb2gmx if @@ -328,8 +337,7 @@ def run(self, molecule, work_dir=None, queue=None): if self._tleap: if _tleap_exe is not None: output = self._run_tleap(molecule, str(work_dir)) - if not is_smiles: - new_mol._ion_water_model = self._water_model + new_mol._ion_water_model = self._water_model # Otherwise, try using pdb2gmx. elif self._pdb2gmx: if _gmx_exe is not None: @@ -371,41 +379,23 @@ def run(self, molecule, work_dir=None, queue=None): # Make the molecule 'mol' compatible with 'par_mol'. This will create # a mapping between atom indices in the two molecules and add all of # the new properties from 'par_mol' to 'mol'. - if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(molecule).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = edit_mol.residue(_SireMol.ResIdx(0)).rename(resname).molecule() - - # Commit the changes. - new_mol._sire_object = edit_mol.commit() - + if self._ensure_compatible: + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, + ) else: - if self._ensure_compatible: + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = self._forcefield @@ -421,33 +411,18 @@ def _run_tleap(self, molecule, work_dir): Parameters ---------- - molecule : :class:`Molecule `, str - The molecule to parameterise, either as a Molecule object or SMILES - string. + molecule : :class:`Molecule ` + The molecule to parameterise. work_dir : str The working directory. """ - # Convert SMILES to a molecule. - if isinstance(molecule, str): - try: - _molecule = _smiles(molecule) - except Exception as e: - msg = "Unable to convert SMILES to Molecule using RDKit." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - else: - _molecule = molecule - # Write the system to a PDB file. try: # LEaP expects residue numbering to be ascending and continuous. renumbered_molecule = _SireIO.renumberConstituents( - _molecule.toSystem()._sire_object + molecule.toSystem()._sire_object )[0] renumbered_molecule = _Molecule(renumbered_molecule) _IO.saveMolecules( @@ -570,9 +545,8 @@ def _run_pdb2gmx(self, molecule, work_dir): Parameters ---------- - molecule : :class:`Molecule `, str - The molecule to parameterise, either as a Molecule object or SMILES - string. + molecule : :class:`Molecule ` + The molecule to parameterise. work_dir : str The working directory. @@ -587,25 +561,11 @@ def _run_pdb2gmx(self, molecule, work_dir): "'pdb2gmx' does not support the '%s' force field." % self._forcefield ) - # Convert SMILES to a molecule. - if isinstance(molecule, str): - try: - _molecule = _smiles(molecule) - except Exception as e: - msg = "Unable to convert SMILES to Molecule using RDKit." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise _ThirdPartyError(msg) from e - else: - raise _ThirdPartyError(msg) from None - else: - _molecule = molecule - # Write the system to a PDB file. try: _IO.saveMolecules( _os.path.join(str(work_dir), "input"), - _molecule, + molecule, "pdb", property_map=self._property_map, ) @@ -1007,11 +967,14 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Convert SMILES to a molecule. + # Try to create a molecule from the SMILES string. if isinstance(molecule, str): - is_smiles = True try: - new_mol = _smiles(molecule) + smiles = molecule + molecule = _smiles(molecule) + edit_mol = molecule._sire_object.edit() + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() + molecule._sire_object = edit_mol.commit() except Exception as e: msg = "Unable to convert SMILES to Molecule using RDKit." if _isVerbose(): @@ -1019,9 +982,9 @@ def run(self, molecule, work_dir=None, queue=None): raise _ThirdPartyError(msg) from e else: raise _ThirdPartyError(msg) from None - else: - is_smiles = False - new_mol = molecule.copy() + + # Create a copy of the molecule. + new_mol = molecule.copy() # Use the net molecular charge passed as an option. if self._net_charge is not None: @@ -1251,45 +1214,23 @@ def run(self, molecule, work_dir=None, queue=None): # Make the molecule 'mol' compatible with 'par_mol'. This will create # a mapping between atom indices in the two molecules and add all of # the new properties from 'par_mol' to 'mol'. - if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(molecule).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = ( - edit_mol.residue(_SireMol.ResIdx(0)) - .rename(resname) - .molecule() + if self._ensure_compatible: + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, ) - - # Commit the changes. - new_mol._sire_object = edit_mol.commit() - else: - if self._ensure_compatible: + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = ff diff --git a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py index 4ac3a6336..23c51cc8e 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Parameters/_Protocol/_openforcefield.py @@ -216,56 +216,43 @@ def run(self, molecule, work_dir=None, queue=None): if work_dir is None: work_dir = _os.getcwd() - # Flag whether the molecule is a SMILES string. + # Try to create BioSimSpace molecule from the SMILES string. if isinstance(molecule, str): is_smiles = True - else: - is_smiles = False - - if is_smiles: - # Convert SMILES string to an OpenFF molecule. - try: - off_molecule = _OpenFFMolecule.from_smiles(molecule) - except Exception as e: - msg = "Failed to convert SMILES to Open Force Field Molecule." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - - # Generate a single conformer. - try: - off_molecule.generate_conformers(n_conformers=1) - except Exception as e: - msg = "Unable to generate conformer from Open Force Field molecule." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise IOError(msg) from e - else: - raise IOError(msg) from None - else: - # Try converting to RDKit format. - try: - rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) - except Exception as e: - msg = "Failed to convert molecule to RDKit format." - if _isVerbose(): - msg += ": " + getattr(e, "message", repr(e)) - raise (msg) from e - else: - raise _ConversionError(msg) from None - - # Create the Open Forcefield Molecule from the RDKit molecule. try: - off_molecule = _OpenFFMolecule.from_rdkit(rdmol) + smiles = molecule + molecule = _Convert.smiles(molecule) except Exception as e: - msg = "Unable to create OpenFF Molecule!" + msg = "Unable to convert SMILES to Molecule using RDKit." if _isVerbose(): msg += ": " + getattr(e, "message", repr(e)) raise _ThirdPartyError(msg) from e else: raise _ThirdPartyError(msg) from None + else: + is_smiles = False + + # Try converting to RDKit format. + try: + rdmol = _Convert.toRDKit(molecule, property_map=self._property_map) + except Exception as e: + msg = "Failed to convert molecule to RDKit format." + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise (msg) from e + else: + raise _ConversionError(msg) from None + + # Create the Open Forcefield Molecule from the RDKit molecule. + try: + off_molecule = _OpenFFMolecule.from_rdkit(rdmol) + except Exception as e: + msg = "Unable to create OpenFF Molecule!" + if _isVerbose(): + msg += ": " + getattr(e, "message", repr(e)) + raise _ThirdPartyError(msg) from e + else: + raise _ThirdPartyError(msg) from None # Apply AM1-BCC charges using NAGL. if _has_nagl and self._use_nagl: @@ -353,50 +340,32 @@ def run(self, molecule, work_dir=None, queue=None): else: raise IOError(msg) from None - # Make the parameterised molecule compatible with the original topology. + # Make sure we retain stereochemistry information from the SMILES string. if is_smiles: - new_mol = par_mol - - # We'll now add MolName and ResName info to the molecule, since - # this will be missing. - - # Rename the molecule with the original SMILES string. - # Since the name is written to topology file formats, we - # need to ensure that it doesn't start with an [ character, - # which would break GROMACS. - name = molecule - if name.startswith("["): - name = f"smiles:{name}" - + new_mol = _Convert.smiles(smiles) edit_mol = new_mol._sire_object.edit() - edit_mol = edit_mol.rename(name).molecule() - - # Rename the residue LIG. - resname = _SireMol.ResName("LIG") - edit_mol = edit_mol.residue(_SireMol.ResIdx(0)).rename(resname).molecule() - - # Commit the changes. + edit_mol = edit_mol.rename(f"smiles:{smiles}").molecule() new_mol._sire_object = edit_mol.commit() + # Make the parameterised molecule compatible with the original topology. + if self._ensure_compatible: + new_mol = molecule.copy() + new_mol.makeCompatibleWith( + par_mol, + property_map=self._property_map, + overwrite=True, + verbose=False, + ) else: - if self._ensure_compatible: - new_mol = molecule.copy() + try: new_mol.makeCompatibleWith( par_mol, property_map=self._property_map, overwrite=True, verbose=False, ) - else: - try: - new_mol.makeCompatibleWith( - par_mol, - property_map=self._property_map, - overwrite=True, - verbose=False, - ) - except: - new_mol = par_mol + except: + new_mol = par_mol # Record the forcefield used to parameterise the molecule. new_mol._forcefield = self._forcefield diff --git a/tests/Parameters/test_parameters.py b/tests/Parameters/test_parameters.py index 8acd41ff7..e9c07cc13 100644 --- a/tests/Parameters/test_parameters.py +++ b/tests/Parameters/test_parameters.py @@ -137,3 +137,33 @@ def test_leap_commands(molecule0): assert line_pre[-1] < line_post[0] for x in range(len(line_post) - 1): assert line_post[x] < line_post[x + 1] + + +@pytest.mark.skipif( + has_antechamber is False or has_tleap is False, + reason="Requires AmberTools/antechamber and tLEaP to be installed.", +) +def test_smiles_stereo(): + """ + Test that SMILES string stereochemistry is correctly preserved when + parameterising a molecule. + """ + + from rdkit import Chem + + # Define the SMILES string. + smiles = "CC[C@@H](O)C" + + # Create the parameterised molecule. + mol = BSS.Parameters.gaff(smiles).getMolecule() + + # Convert to RDKit format. + rdmol0 = Chem.MolFromSmiles(smiles) + rdmol1 = BSS.Convert.toRDKit(mol) + + # Get the SMILES string. + rdmol0_smiles = Chem.MolToSmiles(rdmol0) + rdmol1_smiles = Chem.MolToSmiles(Chem.RemoveHs(rdmol1)) + + # Make sure the SMILES strings are the same. + assert rdmol0_smiles == rdmol1_smiles diff --git a/tests/Sandpit/Exscientia/Parameters/test_parameters.py b/tests/Sandpit/Exscientia/Parameters/test_parameters.py index f42f2d539..00bb088b2 100644 --- a/tests/Sandpit/Exscientia/Parameters/test_parameters.py +++ b/tests/Sandpit/Exscientia/Parameters/test_parameters.py @@ -142,3 +142,33 @@ def test_leap_commands(molecule0): assert line_pre[-1] < line_post[0] for x in range(len(line_post) - 1): assert line_post[x] < line_post[x + 1] + + +@pytest.mark.skipif( + has_antechamber is False or has_tleap is False, + reason="Requires AmberTools/antechamber and tLEaP to be installed.", +) +def test_smiles_stereo(): + """ + Test that SMILES string stereochemistry is correctly preserved when + parameterising a molecule. + """ + + from rdkit import Chem + + # Define the SMILES string. + smiles = "CC[C@@H](O)C" + + # Create the parameterised molecule. + mol = BSS.Parameters.gaff(smiles).getMolecule() + + # Convert to RDKit format. + rdmol0 = Chem.MolFromSmiles(smiles) + rdmol1 = BSS.Convert.toRDKit(mol) + + # Get the SMILES string. + rdmol0_smiles = Chem.MolToSmiles(rdmol0) + rdmol1_smiles = Chem.MolToSmiles(Chem.RemoveHs(rdmol1)) + + # Make sure the SMILES strings are the same. + assert rdmol0_smiles == rdmol1_smiles From 9ecdb43b490c39c80374d5ec17c4eee85e6da2a5 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 2 Oct 2024 15:58:26 +0100 Subject: [PATCH 100/123] Update example mapping visualisation. [closes #350] [ci skip] --- doc/source/tutorials/hydration_freenrg.rst | 5 ++--- .../images/ethane_methanol_mapping.png | Bin 87502 -> 18225 bytes 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/source/tutorials/hydration_freenrg.rst b/doc/source/tutorials/hydration_freenrg.rst index 2b9a416d6..f6f139d33 100644 --- a/doc/source/tutorials/hydration_freenrg.rst +++ b/doc/source/tutorials/hydration_freenrg.rst @@ -53,9 +53,8 @@ possible to visualise the mapping: >>> BSS.Align.viewMapping(ethane, methanol, mapping) -The two molecules are displayed side-by-side with numbers used to indicate -which atoms map to each other. For eample, the carbon indexed 0 in the ethane -molecule maps to a hydrogen indexed 4 in the methanol. +Perturbed bonds and elements are shown in blue. Red atoms are those that are unique to +a particular end state. .. image:: images/ethane_methanol_mapping.png :alt: Mapping between atoms in ethane (left) and methanol (right) for an alchemical transformation. diff --git a/doc/source/tutorials/images/ethane_methanol_mapping.png b/doc/source/tutorials/images/ethane_methanol_mapping.png index d3ea2eaa50c9a153a0c92760600a48e61c2befe4..b9e185c9532aa904b4784bf04111eb8feae137d6 100644 GIT binary patch literal 18225 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 Q2yjs(MP*?5FZAC2FZvN}2><{9 literal 87502 zcmeFYbx>VR);@Z0cekLy-3}1k-CcsaoP)atw*-O&cX#*T1ef3hcY=Gca8KTucV@nO ze^s}>s(b&NuA=Jf-rY~He%9*l)oX2{RF!4Wkcp82005ettfV>s03!+jKv5tmtw@^A@yn-mH}|!m2##3 z2F6(Rn{pRVe0g6i@|}TU`~6x7OouL9CiwMO#P}D+?_aVUxS+0hed@qbdTN#In_t(~ z0o@wR8|UX3DyNGTf!;#98!B8MABU&DnbnAVJi0&b{(AAmp_KjbN?dww465w@$}u`+ zeileV|0?*!s_@`oQFLcfG$n9dwj2J7$XK-d&0TkD?b*~$&G~C+a89mq(X0E)>&2_| zO}s1F*n@ukFsR{~3u^WwT!x_BGw&?I=ZAa4?uM85j8G5O&X3pD>;;~I>X$0QH>s7+ z-ghky4>ijX-PRSm#^iO~aBaW6pG#^Yb_0F;e;bOt76m-!a6XJ3cf5T~o7u>($+=e! z+(_3OWKLFHG>&=f8aOA)F)$QQJqs?IU;5=7ZnLq`yP>QFlHVF2BM9^)X82s4DlcGL zoO*WOI%^gEcHe#dN;tXRfnZIW&HcpJF|x=!|$HUSf0PC7uv4m z{J81h75w&$f0O*4XX`A{mX)i!$$@3B$;5Lg&Ko}hl2cP3y&#tdLj8WZKMzdOq5e=! zUm*n_Y$PJVtn&H+_U`SMU~FG6u~ZfRE~WSD-oNZy`PVag&-cY43t<#T=3 zZ{4I{zNl}2M?Yy*6}n&5yx>FP=y6=+Thn#BE|Wuz0mJP-HzQ4MK0d-jN3HTz=%FW* ziOs;$Ti3m5eo@y|L%73X!@Xtge(8GG9O0SowsCff@48rlVa?@b;fGWA&ZJD45K4_; z;BC|5hS#;qLO{_i`S0H-dJ5h3Dcy=kA5K*kyqcOeBxri0n5=1-BNB(bG?3{JD>DbP z;vrLt$Yq*PN+Qg$MVcvRH5bz0VC12r{WBN9%KE4bB^kHN{WLS@Yf> z!czT@W3SJ27RFKL%4b*FlQr*MKtB%PtY(h+LB{xZ+m0`*?;hH`>+b(^IS1w`ZQrM#O&Evp{YvUe9nVh za_|2!!mR{rzU7(e$ubxWAKi-SSua8KK_++tNgYLk;lRk->A;W%2cdEZfO-}ZOx z*ZTrc_JLgjaH!}yW zH3x|o@X;?V?)<2lfDK zWm5ZT_>$d@1eb=K)FX}t=-eEIA@hN;*^%98hPo0BoEE(ni-ctzlieuG-H6)FtMs3? z2ZpgG0D|I^%VrIzjw|$Gz7W!#svC3S`^*Y!GoV75QFdvjTs02G1r4EP7>AHlE1^^Z ziH9S!wOZJ|N860w*yQI%N(YJ>j?In%7V3ypDm^@JD6B%%(D(e**Bygr50yTsF{$p+ zSP(7kF7moUQ%>i;%jeH}#gA~6HPq9MRI03wT+%asq&S7rGHf!6+3*pFO`ELKBk93> zGMm9*gH}$AJUyShNS~T4B@uvq3vctxNeVFH(hVaz z?L#pV=7%s(R>RlaA=!;f>ad|zP`T#dmR7e^e^E<^v*;(P*M~gIM+GWt- zSHCg9zV_1y;?wX;g|;a8ewxS}J)z);$Wre>2yJ|ZkvUUI@oKf!!b zMO9P*Ub&Ale`=s#Vc5asXWyH7`mJr}hKD+*YUa0QRr6%@?v#JIBpvBPdAsllrR1A* z&2M5XJ#vWEh&0$|0Ybs9)K&WEtx2NY%NRxuaog_)P%j5kSK-OxF;Q$dh>^&7fN;Xo z_}gXu-8Ox!m~gJok^Bn3yr4K8bys;Q_=zg&dl4+qUa|^f^Uee?DL%=xMMSEj(sS1$ z4Hynfd~z6+F%S95{lE(LQE_{v^n4do>7r*VAmyDG96eB|5jj<0N%!7_`SCo+DlIqP zk)BbXkh{FY%4RdaPG1)UMV#~``cf|mPmn?bn3VSEmvYxcN$sAVpga=cZ2jDcT7dRF zxD}N|*k^&a(=Mnz-Pad}^pKYIn5a1hj|0Jp616Gp(|lPI;B#r%Eknfvw7q;yo}TJ$ zArhs;!jErv1Omg#QdFDgML6kpgyltf05L`k=7@wc4IdWqoH&fzPU*cTUxmhqX1a70 z3e(4-4N2`E;5pLs{DCAgp8z#h3`+P?ZTRpjuB4SchRD3&*dt2mrmD|p;U21rk>p3v zjAp07{nqb)+a{4Xi&O*Y|;B3fcK~rigPDllcAYQ9s8`6+JqPd4ZsJH+>%+5p)TyEygTvs>Pti9VqP*p_z$lnda?VZm?t0h6 z@EqajB>7b1c2fW`+}n5~38W80vZTej6fz?knlSCe60wyA6ndlM22$a9&;nUk*wSR& zG$>(p8pYi+0dnGm%&i8WP^LIS{pOr55(c)jhErIJm^NH6u}zp7u>s%wF36H`#~zu+ zYsurRYAN8P!mw_Yn6`bOB%w)S4)-v*paD0+zFe8o4eGtJJ8Rf3ztkL0cLIcCY7vA@ zOf6X4;ZaR+tcZvnxaWU;x4>GqfqGh{fTl$m$Qv~L;^TZ2gi@&ILb4)I5$`wj?IWw5 znj7k6OkQxubg?Ecy}ZdZTY1EFV@FRcJh@Eui87${eWTE$g3Bo%`8eNVO!TM4q&HGe zikhbyGQ5ta(?q(7^mv~sQ452iQg*)`Ehd$QrvY*z5euY4iIaP2x1kY6T(3@t&(a$E z)y>bMT=G;Yy!Yc4S#6{o=&1-phHywc04{jS`y(`J0$rLb`rOS{3A6VZ?AOi~uH`-qEyh~Qg*DB1XPKsqBIA6QM2DHw_0$h1N)C83&2 zFjPp1iG}^eYZlhC@Qa#*AEpK8*ATlxYkES59qedmf5Hf{##So)ih`UGbT1q#Z^tZs zsn1Z_t<$rMeqZi`=cE~+q<2Af-61C$@e0sJ*)Wv)i7x@r zqj0Wr687Y99FmBskLbIJ7$0Ao6d^qC?=h_?#;hOr zu90yo<#pwtl{+KR$bODh&T|a94>gc@R)@xua_gmr&o}ZYr~!9#$$j8$$HuxGh-=(Z z%;>xaswtQ#!f{d!dn6F)OlQquw_b@hSuE&f-w_nsZd~mHXCxG|ktvbs`(i?|`O+l^ zuqw!Mq>@N-q*e&rI0Mj@BdGYiPQ_f!hk@z)XH7K3MA)dyd$e*^+ahm2Yb5q0SD`mxc>^FH~vD9AW&b0*2ZBxBH$EMtdggzc5kZ2uPdH} znY2;w!A)_}HjEz1mRkt}4SQMPk%K*oJN`L8EFt&^HbM0q=?oz!l1`_vy-rsYUolQJ z#hwPK)XAn@t`|rFcE&x@y9-w9% zOMYC_6b~Z%)m8qJYQZn1DPQx3uP?T8V@xm$^KG5I&oju8QL!7fA^uBC2q!p;pDe>( zDX-|fOX6x9q4{79__5=0XV7wYwOAm*`Udlfv zTrHZgK#Z_bA~&}qA&1)!EBBGm3NN@@3`l9mdV$Ytw{%Ow1+_2gGu#Z4xU_lx)~ zshEV*!1E8hFLPa%*aOd7N%;qc_+XV;Od@A`-I)~3R+6{S6FZ+6T#_sYBDfN; zMJHwIrbi?ZEqciorLtx-FCy;&wnnNjVbXWfPDX|>d-oicKXq{kLt85ub;^0$?rzD^ zP)S3&4=qg&c5`tEXtqlx$*pkYC7x9TTKoKZ$n!r(J2T&B1PKrnd{%WYeVcj~4uwyP z_}-qAO8p1PR%}jJgLS*G#xC#f#E;L)xEl&ta*OD}c)rJjow#7A(^@g4< z7zAb04Dt<2_yvkh3HjQ-%iIv$DU7aa4ies!e@Fy;p`F1{WgJ0yvN2b7qz{Z%;Z3F? z-`4UIXiNNbrm3vuFHIH{6v^OsfMH#>0p%2l_N1T7F8Nb-rFPJRBK^mfP-ULKORbvm z&nswjKzAd|qwMrM3$0M54J@ci@Mz8~bV+}T2c=#BaafZ%`N!Q4cgW?Y5#&8&tn*;^ zfjVG0pb^uVz}=5uRbT->eV!J3j`OpAVyktO>Vt5b%p9C3K|myq|N4&A8pcwd+$T!L zM0*)`@!+&=-Ks>SlszJm`Z2=@Qd{D44eGEm{&eBM10@MxUy}R*&Q1O_-68=BYA?Lk z#^TI_@LJQAwLBiTGHQFoAnuP7#2=fzqryBu12>9nN5le_J$@9WbnC6^N&JbB}HpOed-S?@Z`S6pD(aNwc%Nlx@==nJej$Su-8Z~+^Pr0dsH}q zx&;JmbPUQ1yH&-mvUk4(bf9R;NC(=4pB1xZzAZQBl+a}FaI`IwBS*#vzq5+Gm*CB_ z0vg5S)Cj~+MzYb@$lLJ>{F0Bz0@=e2hL&-xnpoT#@=80ZYpoCs%xqCbuUM_BQay4@ ztf(S?K{t`+rljB4ZM`63qiCkY;1jq<(YFtL>seV&w&vmHPOboF{e?1$0;zP|NDQ4( z0q$m7^64WF%v}>@@PwO%@L9oPXwyr`JO!2phzuBvxt^WcJc{Xe2n6b4Uj@HaBkY1* zqv$Uk$i~d|pf@m;Ira50^rR89LHqR~B)r;f6L~jJ>LNjx_RD1BeO5oL6Q^J_d%r`0 zeRaGkrbMBVSPcU4Si7<(-VW}fdG*Qwm|uI>>wB6MeGryZeUlLf{MR(kMuuO84jCMc zaHSGRM~c)b%~4(pGheHU-oeW{aDNgct&%~g0XsSxqt?AmmG*qp|6%BMtd#|vuaFm3 zC%t_Lm>ahyEVtX?cHF#IKI6SqD0etF(j3LP3Bm)-(u z2R{o1SRs!p3>&;qc+d`Uh*HYYP9opZ!WhZm`f4-_d=*`wZ;;!F`N96!VA~D1_BJd& z2ks6iXYlLIA$c6!>CQ;a66y)8$z#ND){O?EXvfxVtZp2fl9Z@aiwGv@0=u9*+)vQ1 zhAfv)1wo@Ws632Q`tA@>KjN2Ro1260n3}I)5O?o4r~K3RB^&9J_%=zA=r2P=hiHay za?QjeenE_mlu5e8>C$QT@RPDEYO$p{j$j4ykD+6nr%5c{E5o7m!^CfS6Xz*Dth|$V z8?O>#&qBQ(lEpyZvV=}=OkqZ2dyJ(_RI5M|EOy4cYRsEZ{!s&f< ztr;NfLT^6%izG%gcYY>UJxY3etE%K%$%|UOQof%!2b6hn$`Y$R!Q-Vr*SQ85ev@th z)^|jlYv``NHcO+Mi3O0d|2TA5!xvq%DL6WW^$)alF%?2B>w+CRA)IC0h?sWOG)1^a z%!t1#QT9OTrL6-OaAO;M(U)!V+F9u_dVxr06 zDs|jVZ!!y*C~47g;`Z9h1c%~v@1)3i&{3^5UAFXGs)*}-ufkj*j+qHO|Hxz2HelK+ z>F1elF+qqXbm3FkekqETBFAwf&>nmB`NZ%IKr4jCF^(Uffo1Jxj+R$d?c&x3C+hY7<7YXwnbygN47Xt zl+TjJE^ikW)w*vv@rjkkmV_IVRlO3)46hNZQ5}dD`*ODN28lcr(UwTzhh+uVnXCar z>2R3&mH`T}nb?XIoo@TQvM>0{5mqYi*)(fXg z96>2z%?sY#RYUDiMw;tESJOoTqThZ~s#}8mvvLijX|DvS>Ze^+_P$RJF4%74YsbX| zN%=QITebP=O6(;oPS|rA$p{dZ<=(x$ZC|Xbcx;^c#)Fzu*KkBjv>=_!elRyS<6*eU z5MZ5ui0ZlQFZ=FL^P&f(r&&Dsg!dCp-n)38J0a+j#~JTwoIz-$_Nv%y^R{+9s1Mg* znRXcX5~bg4YE%&}T<8;aI{ss{f@_&GDas~3Lo6P+#^Vhyt6Nu3~B?8=hRJ$>V+dAYaw3pSN*c~I^2&;SoDjB>{--Sxhyt3YPw@1(7 zb4OnY$kP9q81NNb74)f8Beu%aizjCp9)H`7jGcpWO|>VqJOt)U;s?%V(KjMos^NMS5zYjS4RNkyew@AMNWA#8cr8ev+keo}Ht%QWCoP@;RX%sua^MOq)#c{Ud@BaUw2(OmEZX=9Jld@1ULzf{qyG zGnBKtv$|UX_PGKwi&^J|7x}@OtJk@3&qgWx{7E!SxfRioh4}EkcGxD9AE7iMHDU6X zvZ*LDU@6S-e!F-c${Z#7|*~^V?lTQO!+KIT^uG>f-SY@Aw z-Iw=(lTr~cf?Q@6->(O-%<`6cT@V@)^RQKLWbm{K`~nv&!>;kIo7By#e6I+?uU1Am z7j4lfqokO{LIFfPNov7igr~#|wBOybFD@_y0ul^4+eS@xbw%+QX})3nM(DP-$1kQ` zD^!I(45&N($U)JH!hPKQ;_vWd0*B%P)zH>4un7thrhN~xpP{DcL^CvO;qk_3U4??r zb{qLb${;#sObzER@OeZ@aCay?iO_;v*IDNnD+Dd>ZQNvG`c@tgCrqs$-OLRAkh zfc6NN{**pMV@N*C%NCON(p6FvFb6rZnp%L&ELpuA!H~Qd03ayh1vWLew{)X0v$VE# z5~4cq=%%8uwGg7x;Zb5&0!vuh*vk62SZeqvYnuDmoAX;xi3lSLdI>-P94*~UDZCsV zoLmLGgsA?)6@dKyQ_V(2@mCW!dm$=aB~=Oukc%Y+H!C+QJByT;tp_KSFfxUpi-nbd zx}@|!As|meR5osIU;#EZPft%)PcBxFi!~buKR-VkJ0}|_Ckvzni>tSjo2eIzlPmQf zh<{*6TDqFM*n-_`K~5BZFip)s?ruUnG5PkCUCljE}_(XvNFI zZOLK9V#aI5#{x97va;gmVCOP7H~SALIVV>)QzvuFKTr^GR$B-TKL?*BpB2!8#hi-= z$imITXU@WBX%1vDHD~ALwzT9hu9OrX8MOs4qhM+J3l8sCoexY5XjB{ z??&2|F0K$u{DaBC&dT)<5&oz}05TZ}v8I3Q6aw&956D~uBwQ>_-9RpyAdrI))gO^4 z{`CCUYbD5XvM_Zsl{9s;gn+VhatW|=2yn4$a_|Un@d$A8FtM`>u>VJUkcF+4_y1e# zKZ}P#@EJ~DZ2%S z84vsa4c!%F<>qPXVku?~;Ss_W#617vih}+xMKSzOSv+kl|7Zb17z;ZG%fAWZ{U>2; z|C}(}pFQL684I%gKR6NmtHFP4GLU}%sDo@?kiC%YUz_1SIs3Ei{Qp?~sf+&~M}R>8 zcaZ-TzyGD{zjXbt82Dc`{;zfYm#+U61OKbW|Fy3F&*(z__jStB3E~BLLM}_aIBt57 zixv`CR?igxK*9O*2L(vaB!pBVxXCF=Asj%x!JsCFE)>fJ04M-*l46=(D<@sPZlrtu zudm+OZ6{I{$$rU>4$JT`?@{{*l@aBL5nH~`CVenWFNA|u%D7QbNpC#3d3x8KqY_wR z>pNL&o572jt}p_m;cKMn*2GB+=i^v{cWuFvZcaTnpTcyibAP4f;26y$1{GW4_< zYqk&p-7y!;+r2#>Ke>2!LX>tpFF!Xz2EM5wzBx+zt9`&_5%x zHtHJ~sALO1T<5&{E!SJ(uI0~^GLO|WD z-0**P+}-|D0N)1PDcugI^A2(X158Xz2BYzsnwp{{sqkZ@3efw2J*Mc*x^LD|Yrfr}2_qvPopAxjQt#8uxu%9vKWzgng zX=FrJ1SIA!y34SLUIEPoOCajaqcZp7#Yl~UXJ==rsi`r9e{B{kW&Fw*|4V-mecAWk zOujpRo;QA(f4n^=yV*y~{(c3=6fj!c3uWF{hnhOJ2f4sW%gEGpoVC9@@BG|7|1UQ2 z6W6sXb=7oqQWa?-vR7`}(qPvC;+2BT$@s=X3(~;2oAmt?6BBCWP7V%=xPu}OpGCGn ze1F*m#3-s=zZ-zMZj0FbZTrK~m~^TuYid+zKSStz^YPsYu-Pvdj&C6th7Bj4(~vba zBR!p%j0_KUOXc-O<>ANVp9#2s9VB^hF{<}DZCZR2_6FjaL2tBM7atN5BKr)1v;$`Z}|OXl79@+y5RNK$5$I0n_P}rU1t24!OEaA zI7f%wq$-nI@lppaER;=lYGiNBea;_?JbsRv65ng*c7J`j&k^+g zo)2814@LV@f4HAQffz5dL}wtPY|MonC0Q`zC73Ns10k!<_ulFEZ`Z%Im!5CogSz9 z!aT`;NiG=m4ziTe-}~Rrn}3V1yV>989kurQT^}&IHByH)ugk1$Y@9P;_3(A`Z-d2? zhw%QIBui6yr0X=sLO4^pVWq_mD`;~`isG8IwSD<31N3#|9`0Y-{V4$66t%Z!Dgt_{ zV5anZ`Y71F7XWuB)6~|7CgQ^jXRpKCT5BBy%Bq0qA4kc*h7z8S^rCcXz*!;J?`|r%J!y z=O1_biY#I|sT7g4l|OSB!}fL96Zy}miy`)9%~)#hw3;;FV237jT}%(w-aROHIou}K z_(`Q$BDA+1#ohe|`^k};o(pkIUN&UYSchrb8ZmCL{Ut~$TTfHxDl}qJ7jmS@4)5I? zQEv$-GEo?x4L=oEJ6A?`%jol?vArOCse4!-gkb*G3GA!{Dc{aI%>#J8mS@?sFoO53 zPiGwu0bASpg{**{N#6%c5dwr(xQOOdeaNqW^FanDk}8zt@;Ar9J`44Imgh9P0~35Yjq5g9i0{g z3U#yw4-@dIEz$%44agWm@x1bjEI3*)pP!_o}&11#1UFFDVP^^vbK!8 zXC_$(*qjW+-Q$7dw)ySlYNx^2l=gY`Z7B=_dZj_jq!I{sk#xHFX&B3^>8smx#>U54 zkX|76kl;j8%y9@CRksrq6sHkUlS&mcDbGF?wAj&xowgQ&*0h+n78IF!hPnaJagY7m zAXN2=-o1LvRXucm){k0(_GRi4-dJkXek9Zps37=Jl4uuID717CNZE0p#Q)qgrJT$g#-zO zg?kBk@8s_Gy`I1 zp=ybA@Bosk2wJy#JWay$esteji>hk;_Lu;wtf^#4`{BG3tSg-p;y|U@o;Sg006rGg zJ(o5^)@!5wLHF#!=8DnxQl~m%+#h(kFX5L#_$_q_8oLdShA2J>nE;BAtKxi8O$d$a z-U#3Ls>kp)^#kVfPc$gDUDil%_FIG3g0CAkNCmAQzybiXW`?0GwR!8g{T~_L`Tgpt zVM>*{nT)Ap`SkU%drky0h*+?_$jJge30}~K%QAyz3Fo-1)z|eQ&qIoBQC}3oo8m=V z@do0Yh7H-+KPyadW;zic*eU+_>;FN^z5!H5GSI&g||{RKFpbX zM@*}F3}$l`MLv%&R@aMSCdp_2N-1rS*#d*7vDGjbn|D z-wp&Kd?_jKz4!3i)tK>F!p+Z*;Irxnp)-G&m>*4y2AkvTkOIDa71pZzbC`sQZ;dk5 z>~@4h4%+F{L43;^Xe`>jAt>U3<1jM!M?lb2zOy%n-%d&eE z`Hl&NskAd8@Sgau-OSns_%XBSnOD+_@Uu?_yP;2wtHhVoQR?6E#Ka

l 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 Date: Fri, 4 Oct 2024 12:09:06 +0100 Subject: [PATCH 101/123] Formatting tweaks. --- doc/source/api/index_FreeEnergy.rst | 2 +- python/BioSimSpace/FreeEnergy/_atm.py | 78 ++++++++++++++++++------ python/BioSimSpace/FreeEnergy/_ddg.py | 22 ++++--- python/BioSimSpace/Process/_atm.py | 17 +++--- python/BioSimSpace/Process/_atm_utils.py | 47 ++++++++++---- python/BioSimSpace/Protocol/_atm.py | 60 ++++++++++++------ 6 files changed, 160 insertions(+), 66 deletions(-) diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index 92bd1934c..c049c9602 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -149,7 +149,7 @@ BioSimSpace.FreeEnergy.AToM ---------------------------- The *FreeEnergy.AToM* package contains tools to configure, run, and analyse *relative* free energy simulations using the *alchemical transfer method*, developed by the -`Gallachio lab `. +`Gallicchio lab `. Only available in the *OpenMM* engine, the *alchemical transfer method* replaces the conventional notion of perturbing between two end states with a single system containing diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 4bcb80db7..53cd97ca8 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -1,9 +1,10 @@ ###################################################################### # BioSimSpace: Making biomolecular simulation a breeze! # -# Copyright: 2017-2023 +# Copyright: 2017-2024 # -# Authors: Lester Hedges , Matthew Burman +# Authors: Lester Hedges +# Matthew Burman # # BioSimSpace is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,8 +21,16 @@ ###################################################################### # Functionality for creating and viewing systems for Atomic transfer. + __all__ = ["AToM"] +import copy as _copy +import json as _json +import os as _os +import shutil as _shutil +import warnings as _warnings + +from sire.legacy import IO as _SireIO from .._SireWrappers import Molecule as _Molecule from .._SireWrappers import System as _System @@ -36,14 +45,6 @@ from ..Process import OpenMM as _OpenMM from ..Process import ProcessRunner as _ProcessRunner -from sire.legacy import IO as _SireIO - -import warnings as _warnings -import json as _json -import copy as _copy -import os as _os -import shutil as _shutil - class AToM: """A class for creating, setting up, running and analysing AToM @@ -63,19 +64,26 @@ def __init__( Parameters ---------- + system : :class:`System ` A pre-prepared AToM system containing protein and ligands placed in their correct positions. If provided takes precedence over protein, ligand_bound and ligand_free. + receptor : :class:`Molecule ` A receptor molecule. Will be used along with ligand_bound and ligand_free to create a system. + ligand_bound : :class:`Molecule ` The bound ligand. Will be used along with protein and ligand_free to create a system. + ligand_free : :class:`Molecule ` The free ligand. Will be used along with protein and ligand_bound to create a system. + protein_index : int, [int] If passing a pre-prepared system, the index (or indices) of the protein molecule in the system (Default 0). + ligand_bound_index : int If passing a pre-prepared system, the index of the bound ligand molecule in the system (Default 1). + ligand_free_index : int If passing a pre-prepared system, the index of the free ligand molecule in the system (Default 2). """ @@ -114,6 +122,7 @@ def _setSystem(self, system, is_prepped=True): Parameters ---------- + system : BioSimSpace._SireWrappers.System The system for the AToM simulation. """ @@ -148,6 +157,7 @@ def _setProtein(self, protein): Parameters ---------- + protein : BioSimSpace._SireWrappers.Molecule The protein for the AToM simulation. """ @@ -174,6 +184,7 @@ def _setLigandBound(self, ligand_bound): Parameters ---------- + ligand_bound : BioSimSpace._SireWrappers.Molecule The bound ligand for the AToM simulation. """ @@ -202,6 +213,7 @@ def _setLigandFree(self, ligand_free): Parameters ---------- + ligand_free : BioSimSpace._SireWrappers.Molecule The free ligand for the AToM simulation. """ @@ -272,6 +284,7 @@ def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): Parameters ---------- + ligand_bound_rigid_core : BioSimSpace._SireWrappers.Molecule The rigid core of the bound ligand for the AToM simulation. """ @@ -306,6 +319,7 @@ def _setLigandFreeRigidCore(self, ligand_free_rigid_core): Parameters ---------- + ligand_free_rigid_core : BioSimSpace._SireWrappers.Molecule The rigid core of the free ligand for the AToM simulation. """ @@ -341,6 +355,7 @@ def _setProteinIndex(self, protein_index): Parameters ---------- + protein_index : list The index or indices of the protein in the system. """ @@ -376,6 +391,7 @@ def _setLigandBoundIndex(self, ligand_bound_index): Parameters ---------- + ligand_bound_index : int The index of the bound ligand molecule in the system. """ @@ -405,6 +421,7 @@ def _setLigandFreeIndex(self, ligand_free_index): Parameters ---------- + ligand_free_index : int The index of the free ligand molecule in the system. """ @@ -442,24 +459,29 @@ def prepare( Parameters ---------- + ligand_bound_rigid_core : [int] A list of three atom indices that define the rigid core of the bound ligand. Indices are set relative to the ligand, not the system and are 0-indexed. + ligand_free_rigid_core : [int] A list of three atom indices that define the rigid core of the free ligand. Indices are set relative to the ligand, not the system and are 0-indexed. + displacement : float, string, [float, float, float] The diplacement between the bound and free ligands. - If a float or string is given, BioSimSpace will attempt to find the ideal vector along which to displace the ligand by the given magnitude. - If a list is given, the vector will be used directly. - Lengths should always be given in angstroms. - Default is 20A. + If a float or string is given, BioSimSpace will attempt to find the ideal + vector along which to displace the ligand by the given magnitude. If a list + is given, the vector will be used directly. + protein_com_atoms : [int] A list of atom indices that define the center of mass of the protein. If None, the center of mass of the protein will be found automatically. + ligand_bound_com_atoms : [int] A list of atom indices that define the center of mass of the bound ligand. If None, the center of mass of the bound ligand will be found automatically. + ligand_free_com_atoms : [int] A list of atom indices that define the center of mass of the free ligand. If None, the center of mass of the free ligand will be found automatically. @@ -469,6 +491,7 @@ def prepare( System : :class:`System ` The prepared system, including protein and ligands in their correct positions. + Data : dict A dictionary containing the data needed for the AToM simulation. """ @@ -530,17 +553,22 @@ def _makeSystemFromThree(protein, ligand_bound, ligand_free, displacement): Parameters ---------- + protein : BioSimSpace._SireWrappers.Molecule The protein for the AToM simulation. + ligand_bound : BioSimSpace._SireWrappers.Molecule The bound ligand for the AToM simulation. + ligand_free : BioSimSpace._SireWrappers.Molecule The free ligand for the AToM simulation. + displacement : BioSimSpace.Types.Length The displacement of the ligand along the normal vector. Returns ------- + BioSimSpace._SireWrappers.System The system for the AToM simulation. """ @@ -856,15 +884,20 @@ def viewRigidCores( Parameters ---------- + system : :class:`System ` The system for the AToM simulation that has been prepared AToM.prepare(). All other arguments are ignored if this is provided. + ligand_bound : :class:`Molecule ` The bound ligand. + ligand_free : :class:`Molecule ` The free ligand. + ligand_bound_rigid_core : list The indices for the rigid core atoms of the bound ligand. + ligand_free_rigid_core : list The indices for the rigid core atoms of the free ligand. """ @@ -1006,7 +1039,7 @@ def _count_num_atoms(ligand): mol = ligand_bound + ligand_free # Create view - view = _View_AtoM(mol) + view = _ViewAtoM(mol) # Create nglview object ngl = view.system(mol) @@ -1124,12 +1157,16 @@ def analyse( Parameters ---------- + work_dir : str The working directory where the AToM simulation is located. + method : str The method to use for the analysis. Currently only UWHAM is supported. + ignore_lower : int Ignore the first N samples when analysing. + inflex_indices : [int] The indices at which the direction changes. For example, if direction=[1,1,-1,-1], then inflex_indices=[1,2]. @@ -1137,8 +1174,10 @@ def analyse( Returns ------- + ddg : :class:`BioSimSpace.Types.Energy` The free energy difference between the two ligands. + ddg_err :class:`BioSimSpace.Types.Energy` The error in the free energy difference. """ @@ -1237,6 +1276,7 @@ def __init__( Parameters ---------- + system : BioSimSpace._SireWrappers.System A prepared AToM system containing a protein and two ligands, one bound and one free. Assumed to already be equilibrated. @@ -1444,9 +1484,11 @@ def _inititalise_runner(self, system): self._runner = _ProcessRunner(processes) -class _View_AtoM(_View): - """Overloads regular view class - needed to pass default_representation=False into show_file""" +class _ViewAtoM(_View): + """ + Overloads regular view class needed to pass default_representation=False + into show_file. + """ # Initialise super def __init__(self, handle, property_map={}, is_lambda1=False): diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index d6560cf5e..5c17fe20a 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -1,9 +1,10 @@ ###################################################################### # BioSimSpace: Making biomolecular simulation a breeze! # -# Copyright: 2017-2023 +# Copyright: 2017-2024 # -# Authors: Lester Hedges , Matthew Burman +# Authors: Lester Hedges +# Matthew Burman # # BioSimSpace is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,14 +25,14 @@ # both the `femto` and `AToM-openmm` packages. __all__ = ["analyse_UWHAM", "analyse_MBAR"] -import pandas as _pd +import functools as _functools import numpy as _numpy +import os as _os +import pandas as _pd +import pathlib as _pathlib import scipy.optimize as _optimize import scipy.special as _special -import functools as _functools -import pathlib as _pathlib -import os as _os import warnings as _warnings @@ -152,11 +153,13 @@ def _sort_folders(work_dir): Parameters ---------- + work_dir : str The directory containing the simulation data. Returns ------- + folders : dict A dictionary of folder names and their corresponding lambda values. """ @@ -202,12 +205,16 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) Parameters ---------- + work_dir : str The directory containing the simulation data. + ignore_lower : int The number of rows to ignore at the start of each file. + ignore_upper : int The number of rows to ignore at the end of each file. + inflection_indices : tuple, optional The point at which 'direction' changes. Should be (last index of direction 1, first index of direction 2). @@ -215,11 +222,12 @@ def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None) Returns ------- + ddg_total : :class:`BioSimSpace.Types.Energy` The free energy. + ddg_total_error : :class:`BioSimSpace.Types.Energy` The error in the free energy. - """ # NOTE: This code is not designed to work with repex # It always assumes that each window is at the same temperature diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index 37afcecba..636fc1998 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -1,9 +1,10 @@ ###################################################################### # BioSimSpace: Making biomolecular simulation a breeze! # -# Copyright: 2017-2023 +# Copyright: 2017-2024 # -# Authors: Lester Hedges , Matthew Burman +# Authors: Lester Hedges +# Matthew Burman # # BioSimSpace is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,18 +20,20 @@ # along with BioSimSpace. If not, see . ###################################################################### -from ._atm_utils import _AToMUtils -import warnings as _warnings import math as _math +import warnings as _warnings + from .._Exceptions import IncompatibleError as _IncompatibleError from .. import Protocol as _Protocol +from ._atm_utils import _AToMUtils from ._openmm import OpenMM as _OpenMM class OpenMMAToM(_OpenMM): - """config generator functions for AToM simulations using OpenMM. - Designed to overload the _generate_config() method of the OpenMM class - to introduce AToM-specific methods.""" + """ + Derived class for running AToM simulations using OpenMM. Overloads the + _generate_config() to introduce AToM-specific methods. + """ def __init__( self, diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index 7e6d7fbf9..ad045b147 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -18,11 +18,14 @@ # You should have received a copy of the GNU General Public License # along with BioSimSpace. If not, see . ##################################################################### + __all__ = ["_AToMUtils"] -from .. import Protocol as _Protocol -from ..Types import Vector as _Vector + import math as _math import warnings as _warnings + +from .. import Protocol as _Protocol +from ..Types import Vector as _Vector from ..Protocol._atm import _AToM @@ -159,8 +162,9 @@ def createAlignmentForce(self, force_group=None): """ Create the alignment force that keeps the ligands co-planar. - parameters + Parameters ---------- + force_group : None or list Group of the force to be added to the system. If none defined then no force group will be set (therefore it will default to 0). Only tested for single-point energies. @@ -319,14 +323,18 @@ def createATMForce( force_group=None, ): """ - Create a string which can be added directly to an openmm script to add an ATM force to the system. + Create a string which can be added directly to an openmm script to add + an ATM force to the system. Parameters ---------- + index : int Index of current window - used to set window-dependent variables. + force_group : int - Group of the force to be added to the system. Shuld only be needed when testing single-point energies. + Group of the force to be added to the system. Shuld only be + needed when testing single-point energies. """ self.findDisplacement() self.getATMForceConstants(index) @@ -367,7 +375,7 @@ def createATMForce( output += " atm_force.addParticle(Vec3(0.0,0.0,0.0))" output += "\n" # TODO: add offset - check convesion of a list to a Vec3 - # Assuming that offset is the 3-vector which deifnes the ligand displacement + # Assuming that offset is the 3-vector which defines the ligand displacement # need to convert displacement to nm output += "for i in lig1_atoms:\n" output += " atm_force.setParticleParameters(i, Vec3(*displacement))\n" @@ -389,11 +397,14 @@ def createCOMRestraint(self, force_group=None): In most cases these will be some combination of protein and ligand atoms. Constants for the force are set in the protocol. - parameters + Parameters ---------- + force_group : None or int - Group of the force to be added to the system. If none defined then no force group will be set - (therefore it will default to 0). Only tested for single-point energies.""" + Group of the force to be added to the system. If None defined then + no force group will be set (therefore it will default to 0). + Only tested for single-point energies. + """ self.findAbsoluteCOMAtoms() # Groups contained within the constraint @@ -458,12 +469,15 @@ def create_flat_bottom_restraint(self, restrained_atoms, force_group=None): Parameters ---------- + restrained_atoms : list - List of atom indices to be restrained. Need to be explicitly given due to the ability to parse strings in the protocol. + List of atom indices to be restrained. Need to be explicitly given + due to the ability to parse strings in the protocol. force_group : None or int - Group of the force to be added to the system. If none defined then no force group will be set - (therefore it will default to 0). Only tested for single-point energies. + Group of the force to be added to the system. If none defined then no + force group will be set (therefore it will default to 0). Only tested + for single-point energies. """ # Still using the position restraint mixin, get the values of the relevant constants pos_const = self.protocol.getForceConstant().value() @@ -559,16 +573,22 @@ def createLoopWithReporting( Parameters ---------- + cycles : int Number of cycles to run the simulation for. + steps_per_cycle : int Number of steps to run the simulation for in each cycle. + report_interval : int (in ps) Interval at which to report the potential energies. + timestep : float (in ps) Timestep used in the simulation. + steps : int Total number of steps that have been performed so far (Default 0). + inflex_point : int The index at which the protocol changes direction. Potentials only need to be calculated for each half of the protocol. """ @@ -914,7 +934,8 @@ def createSinglePointTest( output += "energies = {}\n" output += f"for i in master_lambda_list[:{inflex_point}]:\n" output += " energies[i] = []\n" - # First we can check the potential of forces that are not lambda-dependent, this will only work if the ATMforce is in its own group + # First we can check the potential of forces that are not lambda-dependent, + # this will only work if the ATMforce is in its own group if ( (position_restraint_force_group is not None) diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index f08d2b24b..79c139674 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -1,15 +1,35 @@ -from BioSimSpace.Units.Area import angstrom2 -from BioSimSpace.Units.Energy import kcal_per_mol -from BioSimSpace.Units.Length import angstrom +###################################################################### +# BioSimSpace: Making biomolecular simulation a breeze! +# +# Copyright: 2017-2024 +# +# Authors: Lester Hedges +# Matthew Burman +# +# BioSimSpace is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# BioSimSpace is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with BioSimSpace. If not, see . +##################################################################### + +import json as _json +import math as _math +import numpy as _np +import warnings as _warnings + from .._SireWrappers import System as _System from .. import Types as _Types from ._protocol import Protocol as _Protocol from ._position_restraint_mixin import _PositionRestraintMixin from .. import Units as _Units -import math as _math -import numpy as _np -import warnings as _warnings -import json as _json from ..Types import Vector as _Vector __all__ = ["AToMMinimisation", "AToMEquilibration", "AToMAnnealing", "AToMProduction"] @@ -22,17 +42,17 @@ def __init__( system=None, data=None, core_alignment=True, - align_k_distance=2.5 * kcal_per_mol / angstrom2, - align_k_theta=10.0 * kcal_per_mol, - align_k_psi=10.0 * kcal_per_mol, + align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + align_k_theta=10.0 * _Units.Energy.kcal_per_mol, + align_k_psi=10.0 * _Units.Energy.kcal_per_mol, com_distance_restraint=True, - com_k=25.0 * kcal_per_mol / angstrom2, - com_restraint_width=5.0 * angstrom, + com_k=25.0 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + com_restraint_width=5.0 * _Units.Length.angstrom, restraint=None, - force_constant=10 * kcal_per_mol / angstrom2, - positional_restraint_width=0.5 * angstrom, - soft_core_umax=1000.0 * kcal_per_mol, - soft_core_u0=500.0 * kcal_per_mol, + force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, + positional_restraint_width=0.5 * _Units.Length.angstrom, + soft_core_umax=1000.0 * _Units.Energy.kcal_per_mol, + soft_core_u0=500.0 * _Units.Energy.kcal_per_mol, soft_core_a=0.0625, ): # Call the base class constructor. @@ -658,7 +678,7 @@ def __init__( com_distance_restraint=True, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - positional_restraint_width=0.5 * angstrom, + positional_restraint_width=0.5 * _Units.Length.angstrom, align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -808,7 +828,7 @@ def __init__( com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - positional_restraint_width=0.5 * angstrom, + positional_restraint_width=0.5 * _Units.Length.angstrom, align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -1590,7 +1610,7 @@ def __init__( com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - positional_restraint_width=0.5 * angstrom, + positional_restraint_width=0.5 * _Units.Length.angstrom, align_k_distance=2.5 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, align_k_theta=10 * _Units.Energy.kcal_per_mol, align_k_psi=10 * _Units.Energy.kcal_per_mol, @@ -2441,7 +2461,7 @@ def __init__( com_restraint_width=5 * _Units.Length.angstrom, restraint=None, force_constant=10 * _Units.Energy.kcal_per_mol / _Units.Area.angstrom2, - positional_restraint_width=0.5 * angstrom, + positional_restraint_width=0.5 * _Units.Length.angstrom, num_lambda=22, direction=None, lambda1=None, From b0f8e83967447485ee30960024500e359622f2b9 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 4 Oct 2024 12:15:30 +0100 Subject: [PATCH 102/123] Make carbon atom search more robust. --- python/BioSimSpace/FreeEnergy/_atm.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 53cd97ca8..9fff3da30 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -943,11 +943,10 @@ def vector_from_points(point1, point2): return (dx / magnitude, dy / magnitude, dz / magnitude) def find_carbons(ligand): - # Adding logic to find carbon atosm in sire becuase its easier than trying + # Adding logic to find carbon atom in sire becuase its easier than trying # to find them in nglview return [ - i.index().value() - for i in ligand._sire_object[f"(atom mass > 12) and (atom mass < 13)"] + i.index().value() for i in ligand._sire_object[f"element C"].atoms() ] def make_amber_list(l, offset=0): From ebdd4eec96d80465085862db963c797b9fcd0d2d Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 4 Oct 2024 12:18:00 +0100 Subject: [PATCH 103/123] Make variable name consistent. --- python/BioSimSpace/FreeEnergy/_atm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 9fff3da30..631e0aa2a 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -117,7 +117,7 @@ def __init__( self._setLigandBoundIndex(ligand_bound_index) self._setLigandFreeIndex(ligand_free_index) - def _setSystem(self, system, is_prepped=True): + def _setSystem(self, system, is_prepared=True): """Set the system for the AToM simulation. Parameters @@ -137,7 +137,7 @@ def _setSystem(self, system, is_prepped=True): ) else: self._system = system - self._is_prepared = is_prepped + self._is_prepared = is_prepared else: self._system = None self._is_prepared = False @@ -523,7 +523,7 @@ def prepare( system, prot_ind, lig1_ind, lig2_ind, dis_vec = self._makeSystemFromThree( self._protein, self._ligand_bound, self._ligand_free, self.displacement ) - self._setSystem(system, is_prepped=False) + self._setSystem(system, is_prepared=False) self._setDisplacement(dis_vec) self._setProteinIndex(prot_ind) self._setLigandBoundIndex(lig1_ind) From 7aef73c48e4acefbcf02cd0ab65cc225229a339b Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 4 Oct 2024 12:25:05 +0100 Subject: [PATCH 104/123] Docstring formatting tweaks. --- python/BioSimSpace/FreeEnergy/_atm.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 631e0aa2a..bca4fa769 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -66,26 +66,33 @@ def __init__( ---------- system : :class:`System ` - A pre-prepared AToM system containing protein and ligands placed in their correct positions. - If provided takes precedence over protein, ligand_bound and ligand_free. + A pre-prepared AToM system containing protein and ligands placed + in their correct positions. If provided takes precedence over + protein, ligand_bound and ligand_free. receptor : :class:`Molecule ` - A receptor molecule. Will be used along with ligand_bound and ligand_free to create a system. + A receptor molecule. Will be used along with ligand_bound and + ligand_free to create a system. ligand_bound : :class:`Molecule ` - The bound ligand. Will be used along with protein and ligand_free to create a system. + The bound ligand. Will be used along with protein and ligand_free + to create a system. ligand_free : :class:`Molecule ` - The free ligand. Will be used along with protein and ligand_bound to create a system. + The free ligand. Will be used along with protein and ligand_bound + to create a system. protein_index : int, [int] - If passing a pre-prepared system, the index (or indices) of the protein molecule in the system (Default 0). + If passing a pre-prepared system, the index (or indices) of the + protein molecule in the system (Default 0). ligand_bound_index : int - If passing a pre-prepared system, the index of the bound ligand molecule in the system (Default 1). + If passing a pre-prepared system, the index of the bound ligand + molecule in the system (Default 1). ligand_free_index : int - If passing a pre-prepared system, the index of the free ligand molecule in the system (Default 2). + If passing a pre-prepared system, the index of the free ligand + molecule in the system (Default 2). """ # make sure that either system or protein, ligand_bound and ligand_free are given if system is None and not all( From ca8bfdabc2f03a4959ea3cb955cb712abecc657a Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 4 Oct 2024 13:16:48 +0100 Subject: [PATCH 105/123] Refactor AToM code. --- doc/source/api/index_FreeEnergy.rst | 76 ++--- python/BioSimSpace/FreeEnergy/_atm.py | 439 +++++++++++++++----------- tests/FreeEnergy/test_atm.py | 16 +- tests/Process/test_atm.py | 29 +- tests/conftest.py | 2 +- 5 files changed, 311 insertions(+), 251 deletions(-) diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index c049c9602..7cf56cb09 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -147,68 +147,70 @@ using :class:`SOMD ` as the simulation engine. BioSimSpace.FreeEnergy.AToM ---------------------------- -The *FreeEnergy.AToM* package contains tools to configure, run, and analyse *relative* -free energy simulations using the *alchemical transfer method*, developed by the -`Gallicchio lab `. - -Only available in the *OpenMM* engine, the *alchemical transfer method* replaces the -conventional notion of perturbing between two end states with a single system containing -both the free and bound ligand. The relative free energy of binding is then associated with the -swapping of the bound and free ligands. -The *alchemical transfer method* has a few advantages over the conventional approach, mainly arising -from its relative simplicity and flexibility. The method is particularly well-suited to the study of -difficult ligand transformations, such as scaffold-hopping and charge change perturbations. The presence -of both ligands in the same system also replaces the conventional idea of "legs", combining free, bound, -forward and reverse legs into a single simulation. +This package contains tools to configure, run, and analyse *relative* free +energy simulations using the *alchemical transfer method* developed by the +`Gallicchio lab `. -In order to perform a relative free energy calculation using the *alchemical transfer method*, the user -requires a protein and two ligands, as well as knowledge of any common core shared between the two ligands. -AToM-compatible systems can be created from these elements using the :class:`FreeEnergy.AToM ` class. +Only available in the *OpenMM* engine, the *alchemical transfer method* +replaces the conventional notion of perturbing between two end states with +a single system containing both the free and bound ligand. The relative free +energy of binding is then associated with the swapping of the bound and free +ligands. + +The *alchemical transfer method* has a few advantages over the conventional +approach, mainly arising from its relative simplicity and flexibility. The +method is particularly well-suited to the study of difficult ligand +transformations, such as scaffold-hopping and charge change perturbations. +The presence of both ligands in the same system also replaces the conventional +idea of _legs_, combining free, bound, forward and reverse legs into a +single simulation. + +In order to perform a relative free energy calculation using the +*alchemical transfer method*, the user requires a protein and two ligands, as +well as knowledge of any common core shared between the two ligands. +AToM-compatible systems can be created from these elements using the +:class:`FreeEnergy.AToM ` class. .. code-block:: python - from BioSimSpace.FreeEnergy import AToM + from BioSimSpace.FreeEnergy import AToMSetup ... - # Create an AToM object. 'protein', 'ligand1' and 'ligand2' must be BioSimSpace Molecule - # objects. + # Create an AToM setup object. 'protein', 'ligand1' and 'ligand2' must be + # BioSimSpace Molecule objects. # 'ligand1' is bound in the lambda=0 state, 'ligand2' is bound in the lambda=1 state. - AToM_object = AToM(protein=protein, ligand1=ligand1, ligand2=ligand2) + atm_setup = AToMSetup(protein=protein, ligand1=ligand1, ligand2=ligand2) # Now create the BioSimSpace system. Here is where knowledge of the common core is required. - # ligand1_rigid_core and ligand2_rigid_core are lists of integers, each of length three, + # ligand1_rigid_core and ligand2_rigid_core are lists of integers, each of length three, # which define the indices of the common core atoms in the ligands. # Displacement is the desired distance between the centre of masses of the two ligands. - system, data = AToM_object.prepare( + system, data = atm_setup.prepare( ligand1_rigid_core=[1, 2, 3], ligand2_rigid_core=[1, 2, 3], displacement=22.0 ) - - # The prepare function returns two objects: a prepared BioSimSpace system that is ready - # for AToM simulation, and a data dictionary containing information relevant to AToM calculations. + + # The prepare function returns two objects: a prepared BioSimSpace system that is ready + # for AToM simulation, and a data dictionary containing information relevant to AToM calculations. # This dictionary does not need to be kept, as the information is also encoded in the system # object, but it may be useful for debugging. -Preparing the system for production runs is slightly more complex than in the conventional approach, as the -system will need to be annealed to an intermediate lambda value, and then equilibrated at that value. The -:class:`Protocol ` class contains functionality for equilibrating and annealing systems -for AToM simulations. +Preparing the system for production runs is slightly more complex than in +the conventional approach, as the system will need to be annealed to an +intermediate lambda value, and then equilibrated at that value. The +:ref:`protocol ` sub-module contains functionality for +equilibrating and annealing systems for AToM simulations. -Once the production simulations have been completed, the user can analyse the data using the :func:`analyse ` function. +Once the production simulations have been completed, the user can analyse +the data using the :func:`analyse ` function. .. code-block:: python from BioSimSpace.FreeEnergy import AToM - ... - - # Analyse the simulation data. + # Analyse the simulation data to get the free energy difference and associated error. ddg, error = AToM.analyse("path/to/working/directory") - - - - diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index bca4fa769..59faed5ff 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -22,13 +22,15 @@ # Functionality for creating and viewing systems for Atomic transfer. -__all__ = ["AToM"] +__all__ = ["AToMSetup", "AToM"] import copy as _copy import json as _json import os as _os +import pathlib as _pathlib import shutil as _shutil import warnings as _warnings +import zipfile as _zipfile from sire.legacy import IO as _SireIO @@ -42,13 +44,18 @@ from ..Align import rmsdAlign as _rmsdAlign from ..Notebook import View as _View from .. import _isVerbose +from .. import _is_notebook from ..Process import OpenMM as _OpenMM from ..Process import ProcessRunner as _ProcessRunner +if _is_notebook: + from IPython.display import FileLink as _FileLink -class AToM: - """A class for creating, setting up, running and analysing AToM - simulations.""" + +class AToMSetup: + """ + A class for setting up a system for AToM simulations. + """ def __init__( self, @@ -125,7 +132,8 @@ def __init__( self._setLigandFreeIndex(ligand_free_index) def _setSystem(self, system, is_prepared=True): - """Set the system for the AToM simulation. + """ + Set the system for the AToM simulation. Parameters ---------- @@ -462,7 +470,8 @@ def prepare( ligand_bound_com_atoms=None, ligand_free_com_atoms=None, ): - """Prepare the system for the AToM simulation. + """ + Prepare the system for an AToM simulation. Parameters ---------- @@ -496,11 +505,13 @@ def prepare( Returns ------- - System : :class:`System ` + system : :class:`System ` The prepared system, including protein and ligands in their correct positions. - Data : dict - A dictionary containing the data needed for the AToM simulation. + data : dict + A dictionary containing the data needed for the AToM simulation. This is + also encoded in the system for consistency, but is returned so that the + user can easily query and validate the data. """ if self._is_prepared: self._systemInfo() @@ -1099,173 +1110,11 @@ def _count_num_atoms(ligand): del local_s return ngl - @staticmethod - def run( - system, - protocol, - platform="CPU", - work_dir=None, - setup_only=False, - property_map={}, - ): - """Run the AToM production simulation(s). - - Parameters - ---------- - system : :class:`System ` - A prepared AToM system. - - protocol : :class:`Protocol ` - A protocol object that defines the AToM protocol. - - platform : str - The platform for the simulation. - - work_dir : str - The working directory for the simulation. - - setup_only : bool - Whether to only support simulation setup. If True, then no - simulation processes objects will be created, only the directory - hierarchy and input files to run a simulation externally. This - can be useful when you don't intend to use BioSimSpace to run - the simulation. Note that a 'work_dir' must also be specified. - - property_map : dict - A dictionary that maps system "properties" to their user defined - values. This allows the user to refer to properties with their - own naming scheme, e.g. { "charge" : "my-charge" } - - """ - runner = _relativeATM( - system, - protocol, - platform, - property_map=property_map, - work_dir=work_dir, - setup_only=setup_only, - ) - runner.run() - if setup_only: - return None - else: - return runner._runner - - @staticmethod - def analyse( - work_dir, - method="UWHAM", - ignore_lower=0, - ignore_upper=None, - inflex_indices=None, - ): - """Analyse the AToM simulation. - - Parameters - ---------- - - work_dir : str - The working directory where the AToM simulation is located. - - method : str - The method to use for the analysis. Currently only UWHAM is supported. - - ignore_lower : int - Ignore the first N samples when analysing. - - inflex_indices : [int] - The indices at which the direction changes. For example, if direction=[1,1,-1,-1], - then inflex_indices=[1,2]. - If None, the inflexion point will be found automatically. - - Returns - ------- - - ddg : :class:`BioSimSpace.Types.Energy` - The free energy difference between the two ligands. - - ddg_err :class:`BioSimSpace.Types.Energy` - The error in the free energy difference. - """ - if not isinstance(ignore_lower, int): - raise TypeError("'ignore_lower' must be an integer.") - if ignore_lower < 0: - raise ValueError("'ignore_lower' must be a positive integer.") - if ignore_upper is not None: - if not isinstance(ignore_upper, int): - raise TypeError("'ignore_upper' must be an integer.") - if ignore_upper < 0: - raise ValueError("'ignore_upper' must be a positive integer.") - if ignore_upper < ignore_lower: - raise ValueError( - "'ignore_upper' must be greater than or equal to 'ignore_lower'." - ) - if inflex_indices is not None: - if not isinstance(inflex_indices, list): - raise TypeError("'inflex_indices' must be a list.") - if not all(isinstance(x, int) for x in inflex_indices): - raise TypeError("'inflex_indices' must be a list of integers.") - if not len(inflex_indices) == 2: - raise ValueError("'inflex_indices' must have length 2.") - if method == "UWHAM": - total_ddg, total_ddg_err = AToM._analyse_UWHAM( - work_dir, ignore_lower, ignore_upper, inflex_indices - ) - return total_ddg, total_ddg_err - if method == "MBAR": - from ._relative import Relative as _Relative - - # temporary version to check that things are working - ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir) - ddg_forward = _Relative.difference(ddg_forward) - ddg_reverse = _Relative.difference(ddg_reverse) - return ddg_forward, ddg_reverse - else: - raise ValueError(f"Method {method} is not supported for analysis.") - - @staticmethod - def _analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflex_indices=None): - """ - Analyse the UWHAM results from the AToM simulation. - """ - from ._ddg import analyse_UWHAM as _UWHAM - - total_ddg, total_ddg_err = _UWHAM( - work_dir, ignore_lower, ignore_upper, inflection_indices=inflex_indices - ) - return total_ddg, total_ddg_err - - @staticmethod - def _analyse_MBAR(work_dir): - """ - Analyse the MBAR results from the AToM simulation. - """ - from ._ddg import analyse_MBAR as _MBAR - - ddg_forward, ddg_reverse = _MBAR(work_dir) - return ddg_forward, ddg_reverse - - @staticmethod - def _analyse_test(work_dir): - """ - Analyse the test results from the AToM simulation. - """ - from ._ddg import new_MBAR as _test - - ddg_forward, ddg_reverse = _test(work_dir) - return ddg_forward, ddg_reverse - - @staticmethod - def _analyse_femto(work_dir): - from ._ddg import MBAR_hijack_femto - - est, o = MBAR_hijack_femto(work_dir) - return est, o - -class _relativeATM: +class AToM: """ - A class for setting up and performing RBFE calculations using AToM + A class for setting up, running, and analysis RBFE calculations using the + Alchemical Transfer Method. """ def __init__( @@ -1288,7 +1137,7 @@ def __init__( Assumed to already be equilibrated. protocol : BioSimSpace.Protocol.AToM - A protocol object that defines the RBFE protocol. + The AToM protocol to use for the simulation. platform : str The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. @@ -1359,21 +1208,135 @@ def run(self, serial=True): """ Run the simulations. - Returns - ------- - Processes : [:class:`Process `] - A list of process objects. + serial : bool + Whether to run the individual processes for the lambda windows """ - # Initialise the runner. if not isinstance(serial, bool): raise TypeError("'serial' must be of type 'bool'.") if self._setup_only: _warnings.warn("No processes exist! Object created in 'setup_only' mode.") - else: self._runner.startAll(serial=serial) + def wait(self): + """Wait for the simulation to finish.""" + if self._setup_only: + _warnings.warn("No processes exist! Object created in 'setup_only' mode.") + else: + self._runner.wait() + + def kill(self, index): + """ + Kill a process for a specific lambda window. + + Parameters + ---------- + + index : int + The index of the lambda window. + """ + self._runner.kill(index) + + def killAll(self): + """Kill any running processes for all lambda windows.""" + + self._runner.killAll() + + def workDir(self): + """ + Return the working directory. + + Returns + ------- + + work_dir : str + The path of the working directory. + """ + return str(self._work_dir) + + def getData(self, name="data", file_link=False, work_dir=None): + """ + Return a link to a zip file containing the data files required for + post-simulation analysis. + + Parameters + ---------- + + name : str + The name of the zip file. + + file_link : bool + Whether to return a FileLink when working in Jupyter. + + work_dir : str + The working directory for the free-energy perturbation + simulation. + + Returns + ------- + + output : str, IPython.display.FileLink + A path, or file link, to an archive of the process input. + """ + + if self._work_dir is None: + raise ValueError("'work_dir' must be set!") + else: + if not isinstance(work_dir, str): + raise TypeError("'work_dir' must be of type 'str'.") + if not _os.path.isdir(work_dir): + raise ValueError("'work_dir' doesn't exist!") + + if not isinstance(name, str): + raise TypeError("'name' must be of type 'str'") + + # Generate the zip file name. + zipname = "%s.zip" % name + + # Get the current working directory. + cwd = _os.getcwd() + + # Change into the working directory. + with _cd(work_dir): + # Specify the path to glob. + glob_path = _pathlib.Path(work_dir) + + # First try SOMD data. + files = glob_path.glob("**/gradients.dat") + + if len(files) == 0: + files = glob_path.glob("**/[!bar]*.xvg") + + if len(files) == 0: + raise ValueError( + f"Couldn't find any analysis files in '{work_dir}'" + ) + + # Write to the zip file. + with _zipfile.Zipfile(_os.join(cwd, zipname), "w") as zip: + for file in files: + zip.write(file) + + # Return a link to the archive. + if _is_notebook: + if file_link: + # Create a FileLink to the archive. + f_link = _FileLink(zipname) + + # Set the download attribute so that JupyterLab doesn't try to open the file. + f_link.html_link_str = ( + f"%s" + ) + + # Return a link to the archive. + return f_link + else: + return zipname + # Return the path to the archive. + else: + return zipname + def _inititalise_runner(self, system): """ Internal helper function to initialise the process runner. @@ -1466,7 +1429,8 @@ def _inititalise_runner(self, system): for line in new_config: f.write(line) - # biosimspace runner functionality + # Create a new process object for the current lambda value and append + # to the list of processes if not self._setup_only: process = _copy.copy(first_process) process._system = first_process._system.copy() @@ -1489,6 +1453,117 @@ def _inititalise_runner(self, system): # Initialise process runner. self._runner = _ProcessRunner(processes) + @staticmethod + def analyse( + work_dir, + method="UWHAM", + ignore_lower=0, + ignore_upper=None, + inflex_indices=None, + ): + """Analyse the AToM simulation. + + Parameters + ---------- + + work_dir : str + The working directory where the AToM simulation is located. + + method : str + The method to use for the analysis. Currently only UWHAM is supported. + + ignore_lower : int + Ignore the first N samples when analysing. + + inflex_indices : [int] + The indices at which the direction changes. For example, if direction=[1,1,-1,-1], + then inflex_indices=[1,2]. + If None, the inflexion point will be found automatically. + + Returns + ------- + + ddg : :class:`BioSimSpace.Types.Energy` + The free energy difference between the two ligands. + + ddg_err :class:`BioSimSpace.Types.Energy` + The error in the free energy difference. + """ + if not isinstance(ignore_lower, int): + raise TypeError("'ignore_lower' must be an integer.") + if ignore_lower < 0: + raise ValueError("'ignore_lower' must be a positive integer.") + if ignore_upper is not None: + if not isinstance(ignore_upper, int): + raise TypeError("'ignore_upper' must be an integer.") + if ignore_upper < 0: + raise ValueError("'ignore_upper' must be a positive integer.") + if ignore_upper < ignore_lower: + raise ValueError( + "'ignore_upper' must be greater than or equal to 'ignore_lower'." + ) + if inflex_indices is not None: + if not isinstance(inflex_indices, list): + raise TypeError("'inflex_indices' must be a list.") + if not all(isinstance(x, int) for x in inflex_indices): + raise TypeError("'inflex_indices' must be a list of integers.") + if not len(inflex_indices) == 2: + raise ValueError("'inflex_indices' must have length 2.") + if method == "UWHAM": + total_ddg, total_ddg_err = AToM._analyse_UWHAM( + work_dir, ignore_lower, ignore_upper, inflex_indices + ) + return total_ddg, total_ddg_err + if method == "MBAR": + from ._relative import Relative as _Relative + + # temporary version to check that things are working + ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir) + ddg_forward = _Relative.difference(ddg_forward) + ddg_reverse = _Relative.difference(ddg_reverse) + return ddg_forward, ddg_reverse + else: + raise ValueError(f"Method {method} is not supported for analysis.") + + @staticmethod + def _analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflex_indices=None): + """ + Analyse the UWHAM results from the AToM simulation. + """ + from ._ddg import analyse_UWHAM as _UWHAM + + total_ddg, total_ddg_err = _UWHAM( + work_dir, ignore_lower, ignore_upper, inflection_indices=inflex_indices + ) + return total_ddg, total_ddg_err + + @staticmethod + def _analyse_MBAR(work_dir): + """ + Analyse the MBAR results from the AToM simulation. + """ + from ._ddg import analyse_MBAR as _MBAR + + ddg_forward, ddg_reverse = _MBAR(work_dir) + return ddg_forward, ddg_reverse + + @staticmethod + def _analyse_test(work_dir): + """ + Analyse the test results from the AToM simulation. + """ + from ._ddg import new_MBAR as _test + + ddg_forward, ddg_reverse = _test(work_dir) + return ddg_forward, ddg_reverse + + @staticmethod + def _analyse_femto(work_dir): + from ._ddg import MBAR_hijack_femto + + est, o = MBAR_hijack_femto(work_dir) + return est, o + class _ViewAtoM(_View): """ diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 0ee36f38f..1c1862029 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -12,7 +12,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): - atm_generator = BSS.FreeEnergy.AToM( + atm_generator = BSS.FreeEnergy.AToMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) # check that an error is thrown in the rigid core atoms are not given to prepare @@ -76,7 +76,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): assert pytest.approx(d.z().value(), 1) == vector.z() # make a new atm_generator and check the parsing of a full system - atm_generator = BSS.FreeEnergy.AToM(system=atm_system) + atm_generator = BSS.FreeEnergy.AToMSetup(system=atm_system) def test_run(TEMOA_hostguest): @@ -100,17 +100,15 @@ def test_run(TEMOA_hostguest): analysis_method="UWHAM", ) with tempfile.TemporaryDirectory() as tmpdirname: - production = BSS.FreeEnergy.AToM.run( - system, production_atm, work_dir=tmpdirname - ) + production = BSS.FreeEnergy.AToM(system, production_atm, work_dir=tmpdirname) + production.run() production.wait() # read openmm.csv and make sure it has a single row df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) assert len(df) == 1 - production2 = BSS.FreeEnergy.AToM.run( - system, production_atm2, work_dir=tmpdirname - ) + production2 = BSS.FreeEnergy.AToM(system, production_atm2, work_dir=tmpdirname) + production2.run() production2.wait() df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) assert len(df) == 2 @@ -361,7 +359,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): 194, 195, ] - atm_generator = BSS.FreeEnergy.AToM( + atm_generator = BSS.FreeEnergy.AToMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) system, data = atm_generator.prepare( diff --git a/tests/Process/test_atm.py b/tests/Process/test_atm.py index 78a50f336..5badce125 100644 --- a/tests/Process/test_atm.py +++ b/tests/Process/test_atm.py @@ -3,7 +3,7 @@ import BioSimSpace as BSS -def test_ATM_min(TEMOA_hostguest): +def test_atm_minimisation(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a minimisation protocol @@ -13,14 +13,15 @@ def test_ATM_min(TEMOA_hostguest): del system, data -def test_ATM_equil_noATMForce(TEMOA_hostguest): +@pytest.mark.parametrize("use_atm_force", [True, False]) +def test_atm_equilibration(TEMOA_hostguest, use_atm_force): # First get a system with data system, data = TEMOA_hostguest # Generate an equilibration protocol prot_equil = BSS.Protocol.AToMEquilibration( data=data, runtime="4 fs", - use_atm_force=False, + use_atm_force=use_atm_force, report_interval=1, restart_interval=1, ) @@ -29,23 +30,7 @@ def test_ATM_equil_noATMForce(TEMOA_hostguest): del system, data -def test_ATM_equil_withATMForce(TEMOA_hostguest): - # First get a system with data - system, data = TEMOA_hostguest - # Generate an equilibration protocol - prot_equil = BSS.Protocol.AToMEquilibration( - data=data, - runtime="4 fs", - use_atm_force=True, - report_interval=1, - restart_interval=1, - ) - - run_process(system, prot_equil) - del system, data - - -def test_ATM_anneal(TEMOA_hostguest): +def test_atm_anneal(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate an annealing protocol @@ -61,7 +46,7 @@ def test_ATM_anneal(TEMOA_hostguest): del system, data -def test_custom_ATM_anneal(TEMOA_hostguest): +def test_custom_atm_anneal(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # now test passing a valid dictionary @@ -88,7 +73,7 @@ def test_custom_ATM_anneal(TEMOA_hostguest): run_process(system, protocol) -def test_ATM_production(TEMOA_hostguest): +def test_atm_production(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a production protocol diff --git a/tests/conftest.py b/tests/conftest.py index 73cf0abf7..3dd1ea079 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -114,7 +114,7 @@ def TEMOA_lig2(): @pytest.fixture(scope="session") def TEMOA_hostguest(TEMOA_host, TEMOA_lig1, TEMOA_lig2): - atm_generator = BSS.FreeEnergy.AToM( + atm_generator = BSS.FreeEnergy.AToMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) rigid_core = [1, 2, 3] From f2ec42d7c7b427b6b253b62a322beb611499f39c Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 11 Oct 2024 16:11:33 +0100 Subject: [PATCH 106/123] First draft of ATM tutorial --- doc/source/tutorials/alchemical_transfer.rst | 279 ++++++++++++++++++ .../images/alignment_visualisation.png | Bin 0 -> 20721 bytes doc/source/tutorials/images/tyk2_prepared.png | Bin 0 -> 77765 bytes doc/source/tutorials/index.rst | 1 + python/BioSimSpace/FreeEnergy/_atm.py | 104 ++++--- 5 files changed, 347 insertions(+), 37 deletions(-) create mode 100644 doc/source/tutorials/alchemical_transfer.rst create mode 100644 doc/source/tutorials/images/alignment_visualisation.png create mode 100644 doc/source/tutorials/images/tyk2_prepared.png diff --git a/doc/source/tutorials/alchemical_transfer.rst b/doc/source/tutorials/alchemical_transfer.rst new file mode 100644 index 000000000..b80ff36af --- /dev/null +++ b/doc/source/tutorials/alchemical_transfer.rst @@ -0,0 +1,279 @@ +========================== +Alchemical Transfer Method +========================== +In this tutorial, you will use BioSimSpace to set up and run a Relative Binding +Free Energy (RBFE) calculation using the `alchemical transfer method +`__ (ATM) on a pair of ligands bound to +`Tyrosine kinase 2 `__ (TYK2). + +.. note :: + ATM calculations are currently only available in OpenMM. As such, an environment + containing OpenMM is required to run this tutorial. + + +-------------------------- +System Setup +-------------------------- +Import :mod:`BioSimSpace` using + +>>> import BioSimSpace as BSS + +Now load the set of molecules from a URL, via +:func:`BioSimSpace.IO.readMolecules` NEED TO UPLOAD THE MOLECULES: + +>>> url = BSS.tutorialUrl() +>>> protein = BSS.IO.readMolecules([f"{url}/tyk2.prm7", f"{url}/tyk2.rst7"])[0] +>>> lig1 = BSS.IO.readMolecules([f"{url}/ejm_31.prm7", f"{url}/ejm_31.rst7"])[0] +>>> lig2 = BSS.IO.readMolecules([f"{url}/ejm_43.prm7", f"{url}/ejm_43.rst7"])[0] + +In order to run an ATM calculation a single system, containing both ligands and +the protein in their correct positions, is required. This can be created using +functionality provided in :func:`BioSimSpace.FreeEnergy.AToMSetup`. + +ATM calculation require that both ligands be present in the +system simultaneously, with one ligand bound to the receptor and the other free +in the solvent. As such, the first decision to be made when setting up an ATM +calculation is which ligand will be bound and which will be free. It is +important to note that, while one ligand is chosen to be bound, `both` ligands +will bound to the receptor at some point during the calculation, the choice made +here simply defines the initial state of the system, and by extension the +`direction` of the calculation. + +First, create an :class:`AToMSetup` object, which will be used to create the +system. + +>>> AToM_factory = BSS.FreeEnergy.AToMSetup(receptor=protein, ligand_bound=lig1, ligand_free=lig2) + +Before an AToM-ready system can be created there are decisions to be made +regarding the system setup, namely which atoms will be used to +define the rigid cores of the ligands, as well as the indices of the atoms that +make up the centre of mass of each molecule. + +The choice of rigid core atoms is vital to the success of an ATM RBFE +calculation, and as such BioSimSpace provides a helper function to visualise the +choice made by the user. + +>>> BSS.FreeEnergy.AToMSetup.viewRigidCores(ligand_bound=lig1, ligand_free=lig2, ligand_bound_rigid_core=[14, 11, 15], ligand_free_rigid_core=[14, 11, 15]) + +.. image:: images/alignment_visualisation.png + :alt: Visualisation of the rigid cores of the ligands. + +.. note :: + + In this case the choice of rigid core atoms is the same for both ligands, + but this is not always the case. The choice of these atoms should be made + on a ligand to ligand basis. + + For help in choosing the correct atoms, see the `Gallichio lab tutorial + `__. + + +Now that a sensible choice of rigid core atoms has been made, there are a few +more choices to be made before the system can be prepared. The most important of +these is the choice of displacement vector, which defines the direction and +distance at which the free ligand will be placed relative to the bound ligand. +It is generally recommended that this displacement be at least 3 layers of water +molecules (> 10 Å) thick. If no displacement is provided a default choice of +[20Å, 20Å, 20Å] will be used. + +This is also the point at which a custom set of atoms can be chosen to define the +centre of mass of both the ligands and the protein. In the majority of cases it +should not be necessary to change the default choice of atoms, but the option is +there if needed and can be set using the ``ligand_bound_com_atoms`` and +``ligand_free_com_atoms`` arguments. + +Now that all the choices have been made, the system can be prepared + +>>> system, AToMdata = AToM_factory.prepare(ligand_bound_rigid_core=[14, 11, 15], ligand_free_rigid_core=[14, 11, 15]) + +The ``prepare`` function returns a pair of objects, the first is the prepared +protein-ligand-ligand system, and the second is a dictionary containing the +choices made during the setup process. This ``AToMdata`` object will be passed to +protocols for minimisation, equilibration and production in order to ensure that +the system is correctly set up. + +The prepared system can be visualised using BioSimSpace's built in visualisation + +>>> v = BSS.Notebook.View(system) +>>> v.system() + +.. image:: images/tyk2_prepared.png + :alt: Visualisation of the prepared system. + +Now all that remains is to solvate the system. + +>>> solvated = BSS.Solvent.tip3p(molecule=system, box=3 * [7 * BSS.Units.Length.nanometer]) + +-------------------------- +Minimisation and Equilibration +-------------------------- + +Now that the system is fully prepared, the next step is to minimise and +equilibrate it. The minimisation and equilibration of systems using alchemical +transfer is more complex than standard systems, and is a multi-stage process. + +First, if positional restraints are needed, which is generally recommended for +ATM calculations, the decision of which atoms to restrain must be made. A +good choice for these atoms are the alpha carbons of the protein. These can be +found using BioSimSpace search syntax. + +>>> CA = [atom.index() for atom in solvated.search("atomname CA")] + +The system can now be minimised. Unlike standard minimisation, the minimisation +of an ATM system requires that several restraints be applied from the start. +These restraints are: core alignment, applied to atoms determined earlier, which +can be turned on or off by passing the ``core_alignment`` argument; positional +restraints applied to the alpha carbons listed above, set using the +``restraint`` argument; and a centre of mass distance restraint, which maintains +the distance between the centre of masses of the ligands, as well as the +distance between the centre of mass of the protein and ligands, set using the +``com_distance_restraint`` argument. The strength of these restraints is automatically +set to a set of default values that are generally suitable for most systems, but +can also be set manually by passing the relevant arguments to +:data:`BioSimSpace.Protocol.AToMMinimisation`. + +>>> minimisation = BSS.Protocol.AToMMinimisation(data=AToMdata, core_alignment=True, restraint=CA, com_distance_restraint=True) + +This minimisation protocol can now be run as a standard BioSimSpace OpenMM +process. + +>>> minimisation_process = BSS.Process.OpenMM(solvated, minimisation) +>>> minimisation_process.start() +>>> minimisation_process.wait() +>>> minimised = minimisation_process.getSystem(block=True) + +Now the first equilibration can be run. Similar to the minimisation, this +protocol has several restraints that are applied from the start. + +>>> equilibration = BSS.Protocol.AToMEquilibration( +... data=AToMdata, +... core_alignment=True, +... restraint=CA, +... com_distance_restraint=True, +... runtime="100ps" +...) +>>> equilibrate_process = BSS.Process.OpenMM(minimised, equilibration, platform="CUDA") +>>> equilibrate_process.start() +>>> equilibrate_process.wait() +>>> equilibrated = equilibrate_process.getSystem(block=True) + +.. note :: + The equilibration protocol is set to run for 100ps. This is a relatively + short time, and should be increased for production runs. + + Here the "CUDA" platform is explicitly set. It is highly recommended to use + a GPU platform for equilibration and production runs, as the calculations are + computationally expensive. + +Now that the system has been minimised and equilibrated without the ATMForce +being present, it needs to be added to the system. The first stage of this +introduction is annealing, which by default will gradually increase the value of λ +from 0 to 0.5 over a number of cycles. + +>>> annealing = BSS.Protocol.AToMAnnealing( +... data=AToMdata, +... core_alignment=True, +... restraint=CA, +... com_distance_restraint=True, +... runtime="100ps" +... anneal_numcycles=10 +...) +>>> annealing_process = BSS.Process.OpenMM(equilibrated, annealing, platform="CUDA") +>>> annealing_process.start() +>>> annealing_process.wait() +>>> annealed = annealing_process.getSystem(block=True) + +The annealing process is fully customisable, and any number of λ-specific values +can be annealed. See :data:`BioSimSpace.Protocol.AToMAnnealing` for full the +full list of annealing options. + +The final stage of the ATM minimisation and equilibration protocol is a +post-annealing equilibration run, this time with the ATMForce present at λ=0.5. + +>>> post_anneal_equilibration = BSS.Protocol.AToMEquilibration( +... data=AToMdata, +... core_alignment=True, +... restraint=CA, +... com_distance_restraint=True, +... use_atm_force=True, +... lambda_1 = 0.5, +... lambda_2 = 0.5, +... runtime="100ps" +...) +>>> post_anneal_equilibration_process = BSS.Process.OpenMM(annealed, post_anneal_equilibration, platform="CUDA") +>>> post_anneal_equilibration_process.start() +>>> post_anneal_equilibration_process.wait() +>>> min_eq_final = post_anneal_equilibration_process.getSystem(block=True) + +.. note :: + A frequent soource of instability in ATM production runs is an overlap between the + bound ligand and the protein after a swap in direction. If this is encountered + the first step taken should be to increase the runtime of the post-annealing equilibration. + This gives the system time to adjust to the presence of the new ligand, without the + reduced stability associated with a swap in direction. + +-------------------------- +Production and Analysis +-------------------------- + +The system is now ready for production. The key decision to be made before +beginning is the number of lambda windows, set using the ``num_lambda`` +argument. If this value is not set, a default of 22 will be set by BioSimSpace. + +.. note :: + Keep in mind that, due to the nature of the alchemical transfer method, a single + production run contains both the forward and reverse direction of both the free + and bound legs, and therefore a larger than usual number of lambda windows is + required for a well sampled result. + +In addition to setting the number of lambdas, any or all of the λ-specific +values can be manually set, with the only condition being that the lists +provided are all of the same length, specifically they must have length equal to +``num_lambda``. See :data:`BioSimSpace.Protocol.AToMProduction` for a full list +of options. + +In the case of this TYK2 perturbation, the default values for ``alpha`` and +``uh`` will need to be set manually, as the default values are not suitable in +this case. + +>>> alpha = 22 * [0.1] +>>> uh = 22 * [110.0] +>>> output_directory = "tyk2_atm" +>>> production_atm = BSS.Protocol.AToMProduction( +... data=AToMdata, +... core_alignment=True, +... restraint=CA, +... com_distance_restraint=True, +... runtime = "1ns", +... num_lambda=22, +... alpha=alpha, +... uh=uh, +) +>>> production_process = BSS.FreeEnergy.AToM( +... system=min_eq_final, +... protocol=production_atm, +... work_dir=output_directory, +... platform="CUDA" +... setup_only=True +) + +The ``setup_only`` flag is set to ``True`` here, this means that all input files +will be created, but nothing will be run. It is recommended to run production +protocols on HPC resources where multiple GPUs are available, as the calculations +can be very computationally expensive. Running the generated inputs is as simple +as running the ``OpenMM.py`` script contained in each of the labelled ``lambda`` +folders of the output directory. + +Once production is complete, the results can be analysed using the built-in +BioSimSpace UWHAM analysis tool. + +>>> BSS.FreeEnergy.AToM.analyse(output_directory) + +This will give the ΔΔG value for the perturbation, as well as the error (both in +kcal/mol). + +That concludes the tutorial on setting up and running an ATM RBFE calculation! +For further information please visit the :data:`API documentation +`, and for further information on the alchemical +transfer method, see the `Gallichio lab website +`__. \ No newline at end of file diff --git a/doc/source/tutorials/images/alignment_visualisation.png b/doc/source/tutorials/images/alignment_visualisation.png new file mode 100644 index 0000000000000000000000000000000000000000..9f931862d26188a8810373731fe9d922d67c75c8 GIT binary patch literal 20721 zcmeFZS5y;U*glE~`U6Ekhy_FhrG+BB_aYDigcPduqJ*j#kuFM+UZl5BLuTkolPV(8 zqzDNph=_`4kWT0%hwuBZb8{}w#ko2+duH~U^_J&(_ulX9{jP~am>IIM@~|>6Ft8aL z=_45!m{AN2jMo31KIyS`jmbN?R3PAJgPNM!r_Un1ys(*t@5RN%VK5k-P9Gi`e*gY` zXIIzw_^0{#`PSCfSFc`^$x|~kGt0}%8yg$^{QQfHi&9cjX=!Qs1^GKWJBLSyWo4yA zB9ZWF<8}AG$iB!&Rn?m_Hw|^PORGL_DJT@GsR_Oj+|JIH&Xj%<_ls&^kdVJI6CYnR zR%G8~KaiilNg(uKu}~kVSMYG=X67muTQy&m(36ljpSapC({*C-nMX)76rFZVdm9tP zdGo}D8w|$!I_M`e|K?`RX03UjF33On;nUG`OY!fu@tg9oo%H;}X$Cn%U4ryWSTY<*ooi>%MxBy}oHXNT22!Tv^bIV3e*qq!bdd(Dg}~|FUWB zQ<@66ykJu@Nrk7XnJpIkch8MxDmkXOkJfv>t zIsa?hbEdDaflY?;xERwUej{U3w#s8+aoNMDFGH`ulxz&f4ucT~@>C}Y$z!HIuLWDo zbE>40fsOksuL)xINKXnpKkox+iC~LxA9clMpLwb|EZ(k%x(BTEheu>w&}+*dDj2#; zHFpKa_Pr>H?2`g>|CEyKF&;j-(^IHidXDPM)jU-zSGDqc7LPG6l}xkhB#{p^_JxBY zw(_?k>@OU@k-@d^KMD-o4LaUjR`i^Go^hXod7qCwXw1m_fF1_!j`XhdJV4IRwGB-h z1dH}PI%oiJd#~E}?(K)!{qua)*snn4381v{u!{pexsV;j>41<@V9jskGVWk8{P@X% zEd{TK^mE*nqi*l4k`+xCk%UG~vcdxah2eAf-K8-l>cac&HmS{262aTt@xV_Pm2DV+ zg;VaG(C9E2-VpI`h$?t{Dv9qM#7A+3vTCZawQF)HPl(x~|Ltx7t*T@l=-q#o>K$rc zm3_gW-jFis3z{H!SE=S|=JMeYp=g1+SxC@K0lws_q4LXA6ox(mdBJ>#YN!t-BT2*~ zmdSiVj5s}(ylIL$oMTS}_!Y?oAYgR`#coBzSVqi0>HgxK{O#CpzWp_`lyv3lyJ3mi zgzE}TpO3%i&4Y<%Z%`%)Fz^4X6&P!0;qZ?h=Ej$HS3BrsUhrf`+ol#4`^Ij1cIDW&#kzXy zwJRk~h3a!p0q0=A_bzpY4FfUDUjl=PYtr^05KHX()^Xl$^dk^9)wp2C8}llhr*(25 zB!onI#M`8jIq%#0WKb&*vbh!O^Nh`y}?3g!Sb^ACc zJbDt*bg%RPJ>NVCCZMU4l|H=p$kV2CbA@=+u&lg70r%$7enjyX?+K@a%~#^y*b(5a zFmOl+-`}KqC1RDweJ2GDO94|O?1OGL;~{tsGQr4ypO$<^fg8p`!@JwG13R#=t2klpcm%EbN8f zi&d+2rRC`FF#MD_;0s19aE7m}S}x z`6gn*zsmVC*~-xtVD3aJZbK4OH-An6h=jA6Yh`&^EK=M46F*g`nsaB?7Yb$+##||% zSTj{Jy#^+84i?`4DJhO!p=!R^s}&WbHmP@GHhdR82Xs%b9jlOoDFyj6{OL2RWjt2s zkN47JAqHDrhLZuhcFVwSU?bd!N$Mzx{tfB{5%hC4c66o-Oy{U;;gS<}&WzZ8c(7 z4rHc@MM5ZD!nHOzV*|vw5!37YF(*T7o>@ex`ncuXc%P?*1t=mhql0`AS z%z4*I1y1TxjZ8AoZM@q3gEW8N1-xA30i7XE2#Jw1j?r&P?0=C8stSO!%0azw#s$fdKo*Uy(Fjb+REq=8^am8ViJh_q;@MHG^HjlKpncr!>eZeez>|MA6vgX)A zf{IiMDL?4%Neb@^BJ%564zHuORHA;Zvsx2WB<%FDzwFheM}BqIFIBpUd<%dd&!tDa zs{9}`fEMT_Lbuk>TTIF~9E&}+5A)U_H^LX4z;~=+QL&vLE~_)uN3yDLPocz}u$U7a zF58CR`Dz6czJ#Y-2ag}mKLKX6BObv=W&gQFs>L3J=j3@j@#p$(@m~L9 zq8-{H_cDx+1M(SSUFvZvY&doZ{cX$d1wi#xn|J-;7C`@U{+s-RNnM4vXl?L&td7Ie zAx$afvHFWR(T=1^KuY-;N2UJwk`v{8z<34DR2a1HT<8Qu^h$K844}J^r*E3tivzQq zJmIYL{|u9!jGV8e8I))r^+3=4*I~)w0Y_V(HbNit#y%qc$*@0oHn2Q*VM?s;W~a^s zIY$%40`9#GaSwWru4^cD`n6(*&u_VAMSoNdJ*97YapuYucw5HKr}9nf=kU3^x=?X4 zabOGSc?}`Z*v=l^?&RH+QqZ@+3-^05>Q3~2Zh|a^|F8&` zWM@36TZs2PKjOaQlXh&76n2LzvD;Vh06-@X;OOm!du;urfaX)`9qR4A{F zjzs3mmhUGsp&Oarc20L#*Pma1uzbyKk930?mVkP)zrH;dFmH=;yDa}DdlpPR%r^Lw zm6Na_OD={P6#uCE9^5P>iCiw37gQgpQ$D=B>hM(^Wu>kdefG%RWc4qXx={Y_4puh& zQvh@;F1?I)B$q@L3_ay(E#<)flR!1(=dBH9=>87B8*h4_8)W6Y_TvI}Y|%pMj8<2s zq6A97*{)`SrIY?bHbS4WzHR!+lf;C%M{El#Z1aX0nuO}2q)Ve*(l0%^dtstUB9}OH z*APt!citx_I@A+856s zd;YPS9+^+N2~};{r5Ey&QSAOws0DYB4f;L$V}0hE+VF1p=P6iz?VU?bs8`5^7x-&A zti@WdSCRjYtkOq|nMx=pn3UiRT(B{`wVWUqD;O@0>VGTK!vm#a>bIB|Y5zBW74$6t#AnM&gQ4y;4Z@K0`)2kZjkgGSRT{!RCXnLzOr~v#u5Wg(Yj=f4g2$MP+Q=8Us+_jMAyT=ZkQ`GA0vK2N{I?+=GE}8 z&1OyYWsL<*zb1nJG(3S-sxp|BT}-vLpEox55kKDQ=-5G z&Xkq^@(YWi{0wbj@d{SO|tCG+lS3|kVREkk$D-{R55nE3Dz9ZcC2oBw@?71+581A={{n83PX*_IZi%IvRz%A69D;F?6<=B#7gEj3Z@or$3KNB=r zbtS??i2?WfJSMQ0)F=4;4Z44;0&`B(pW2xVM{r zVv-VZx(`A8VadrUX8Jb*;ip(u%+uZJjv-1Q%@v7m->&7&bOzRIwaK9e7j-*3J5`MR zU&HNhvG{zw+~a%-d4D|kPgx53PY}x2|Jly7EFf4JHCsgg{t-_LFx}yQGm(+dgHB44 z{zWr)`S+E*Hg1T1w6~G;BSasrQP{qOzb%KG;sM=0IjoP&WzV`%-VD^6xW}5sqCBX@ z8ss8JX7M|$3iT7Y*tzW^Lxl}qf~r<#LR#b``bpM%kI$!VWa$oKU13&BZj`!QEE}fu zXv%(_O17ZZ=CoNeJ>Xa;{WXT$J85QG6Q1qxK~XsGXHQdAr4jl)DsMRVeDY;^4n)cqeS#J$LY7veiGw z^~GCgwj#sSHx5&hvJk)PZQDAVrsxix7_Nv&AXpU1l@5^J@{21K;wk2AwskLy=pXJ8 zeRo6Di^g`Tb!i8io3iIYksQ@!J!hXZ?CqWR*+;v|Y^ZeeR@r2*Wr*~5P)ma8rG%W( zFaF;3X%h$MK1f=gg=DrIz4UwU@sNWm*&uw+wIv){!1Bj(7O#u`*THLDiy{so49Zt` z)viVTuDq8vbMreFv!FC@AKLd|>vhCqhQF)vCr&?zeOAJzy8h{r(y?%E{9rfwCA*Qa z+&?8iwe4eTH+_F7Ekra;CbF{f!T5N5M|)@Za1u-66czxlEK{+QqJh#vWE&SRh$7>5B`w@qJH&dLD#|afWGhOj!l~A%z(xwiibwXRw;)<%luX=Dmiw z*FSX51R3@gf8G~(QF`#d1f z9i8Vv{oI8TFQPo1FD+$7J_)BS@85nx1$e0Z@3odmM@LOX`0lq>fi+a~8KHrw@kqPO zK+ZI2kdd>}l`la#L8N+mB-GD!xS`jS;n$hZjs3+VzboA+qJ){9X{?#yUab$sd<5t< z>0%XlmT|M;UdN1$pBeGnHPp+%hbVy}CE950z?P_H8S*N?hGB_1yZKNW<$4QDvII1* z=_-`zu{{`y6o<{}i1JO;hP47Z9O7~nrFpXtDdFum39HND|HTIllPX;aU2JaHmt%D* zhgyXPlR`~XJws;7!sUwez$y}z=9dJl{U$uC?AAbIm;D4A)B$AspJJZ7ZqU9;{J@MJ zHU&HzI$FPXXQ_{Mv79nuDApPO+U3Qqgi3kLIVjP017WP%c(1*}jG=2iA;ld(X10t* zWNK;h>swJp2%1ON`r%=!9$@0nY7;&_)Y?;EE$v84QxItZ{(e$TG8Y@xN+jLh3-$nD zaC^Kv_LJn0`Hw%gXN`_s>Zs##rxgoPs-r@WVAP#l+bG5*n27QlSr*#xw=dF_NnXy@ zk5wDoOk|xT1S?vi8(;dY37Z6~9n&LLDAxw@IZkko$8S}0eOdBl{@%FWy>yt~H%eKp zb%w&oV?F_qBcj2Y1l0VL;XeritqwQXy`?TqCFC4%lF?$)xTQy6lYP9w?HiYr90;^O z);H0EVukU##Ud!Ys-@#{_~`()bJh##3#q;5gWHi%Ms!^vkml@}ep%W~BUU49aC-~8 z3S+{m70t-ruY*}shHKTLrpeQ7L9G)^(gY5{Az+_MxM4(D5@=6|$JszjVddD_V|ryQDIS~!tC9`!cRyNN);po{%EsJ^v>b=Z8`m$9lfH(hu!Vl{us4YA_ z5DSUY;*)J!JJd^t*6p~t^mSKIG>34}i_({PjK9t%jl9|z1cXBW~VIs}hi7B63V$on}r57PRJeEr+{s3Sj0 zi;y=Y00FQoH&lh(dr9*bfF!ddC;sLbC<#|3*yR34d*No4OF&cP5o?}35b$C$L=DT@I;^98$ zKflqCzl@4LyJx5XKVHe9yhb0!0O$JA;;GKa=5j#^%Whwj3=fv2X98$vnES(1NIn#Q z#7eT#(d(YQrD@j+^mZz+i_>;GmsZvGyL)bRO>_>sSNYCL>HAQb1iI4U=Klb|`jVES zSsFa;fwh#Q0wbgkRIL#bW=ow$o&X@|4OQ7gZmO=pvO(hA*SGk<^?~VL zfl02v;sXy<5~-h$oA{N_KyLQ>d9^-H=;T)w370QBOAXJnYPUbQN`zde5cv-|pA!mX_64)UWwNJs<@n z*QoWK&bWRB)|s*M)uZHSEjZU!jgG1UE`C$t>T6jM~~uYP1`yd(BV#v>^G%>k+2eQ`#TQ<}mK1^l0@T3}%zP=SJw z%r>?CUcVKx7z8PzuiUe8Hlcaeqn#WQKzlyNiV{(!8&nttnw7nK04ZN<8NY3xJ5zof z7Df?3{rr9CtEsz_Gh_6PkOtK&q2!}_zfyRm`%Zy(o%AuHrSbxQb49YaKL2-o^*M0! z(W+fO=sP?gMXMQ5bIgtQx@I_byXIVY#08^HV}j~Zgdob!S5pz8@rv*Auk~LlB?lyM zZ}-ObwQBLo>UPHX zXUkdBBHRRV~dj0mr+#fux9$`Jox9BsMU$|zil{LiJq>D8qe4E$$J}qjFosGeoF5%ke=V{kgzcB3cr3Ui~ z#|f229@buZrq=@fxy1eGSN$7qy|euuhwMbxI!w=__%~kz7~gn)%>#-@cepiw{kplEK(r#BiECWCmP|p>}zM2u6 zpw4vY_X2#DZ2=^?V{Pv2thl?#|9Hg;WC1@D&Rox-xk4y-BfH|Ib(yQ|?@AvWep-1| zhd1(kbhW#)^Jt&z+ZgXXN)#4!pCFR@3!OyFcCY{4ExUTNGi8=@+~R}%Ao=k;&z577 zxqYl87*Ma93FC53;}H|M!h38X_bjB`%zr@JO_mZx`OG7-@_~--od|d?iL5V>?MP4> zL;KTKjOCyjm4C)mr!&o(r0D;N{A)_;ISyy%Jlt}NUoN*zFnzVQX7!!k-sYGp`KFFqdzoRe+{{&W zh5tC*M0xlE=-oef%1Ha@ukX&zY@QrIaNyU?9Ffo9)%tLu&S)>)dX{M6jT2+ z5HbYc-|xHf^R9moca1FM9mRHGsQ%CUj78+Rwc|<7xCSsBRLN3dk;Q4kCH<$^wK0m%$S`7RD}H&~7QV!k~>k%xpV)vLC2TiyCRK>Cgvc?zg}BpAJwblFine=mLF z*6;ib8 zYu=*nkKA;+lby|%t7?ivdtYq1LoNPKXnh=@Usq3~i?S2ehwqE|U+}3|h(IzMvdt7xF zX%5l%>II)gS?}|!Zj{g*+qc_xlv48@Eole!v9oVkO~h|VIi=Kf&TS1J(Kd9OSj(Fo zMC!QEB|g}!tc%$Xk@4F5cwBkBdZw~%^zJy8T|ytJGsbh;x*}T^cgml;BEM=g@j0f5 z50gDh9U_~v87@{hVz_O|>({P=o4UiZ*xyKkypnsp@vlS=K*08$C@!KWFzyPxhz zSXKGXqEmsE9#Zr+vzco=Jli-^I{F2)(M&GBWa4W{lT2Jb`HGbF^K|W+#A7puyivL5dLH!SO-iudWqc_B5_UT9!Lr!^{GgJFVYzorPqfa~A|n2HQUr zYDNEing%Qm#)*7=@eP58>>0S#51mm=J|{+3X%{li`fRCRtQLb0$jl0nv@mzIQRv0AZ}RA@Todk z>4#+9Oy_fNEAS?5E8aw!c@yH`FwL2Gj=1np@@&li!O_~AHumk!pXMZSXKS-l3FV@& zXT@H#)d9%MksM!6g&xrA9(%-Og!)NXNTfG@zGY?_akON%oPBQd*b_38sd!XG zEWHWMzL<~V1g;0~7Ayp-N0?iVpdYoSwn0W~bDjdjJKj$GZ3l5S`eD}(9nYDLlR$ zi)m*ff0SH5eIEYqOP7ic3^4+|Rs@TkT|ISefP~j#FF9Cd4}PTM=b6Wd47jGKeX|kA zRvL1K|2e>-5!)K1Vw6=OW&Uo6n4k-ZgPO(7IPRx;zVsj!fCpqXKv=TLBFN?fY$~4t zOABbhQ0_N2nhR1TB0)j_y-Z_7^lH?|L~DG)qwjZEqsg>4(<~VAvm$o(`cPeJA%6~O zt-^5O?lt%g8P}cy?k7xyEYC!!LPfre5pgq4wLtyCAC=B4naci$=5cKj@eKD($Vc%1 zZlV>?3&YAWr|!RQ>*(n7BXS}=m*y7;U1ZiuHazR6D~9c8NFWQCJ4|BoIttUg-+!fG zr|mLWV){^_{m+3{2_^8uffC+A$SPUuTBzE%%Bo671R?7|IycK=g(!peO|z(?Xxl>R zCODf#U)prU4VPher#7<%KCySJ46L8RIN7V5XQ6dAdip{kYF|Y<+rCfj?*$jjT)8Wq zU7S|~PjcxP9*$x=bMuU16QXI5E9~wx(EVQMrM2K`Rfvd7OxN(C76WRSi3^qUk6o33 zUE+U)ExZ?d>Y5&DQklYnVndgq2vRb3?mWm&<5X5zYLXizU%-oS=vJ782a4jwK$OQ=nQXV&yJBsf9ps(igpulbku3|A2 zy2WMlzD1;s@aglZcQ`r7TDu44-Mq3*<re@cyU_o5bJqzY8^&XpUTlSK7L>Hi!$ z*Xc2LviY+oPo957fz0!tbq=|vVYnJfKkEVwO@D7u;N+yRN$m)aVwYBUf25^ex5C(<<~krVyFkYWclt{2LcZfTmB=4a`4M3_;VZI!!|MLQj2y3{VP2B>+X>m zA^G4EW=?Sc&07KsqR%g>K=*!zILZXvSN6CureW;+c`M}vE4_eL`{kO@nSCAQCyrbgg_A@FoCcSZo$GAV<323;jOq#lxZ*>OSDWA)04 z!@VN3gjOh|~zYelUydeRANC~4w-Jzzn!PB{#7bLD+R(M5>_*FC1HS8nM znG$KnOt{YO?<_Afyt}abu8OgEl@Z)}mCDk(P{yrJEKlqgHmY!jcJLPxZ0%Rd-m&Di zAwuiUTCH%Ox&AgI5o^*u22uZ9Dv(LY`%SMto$5tW*YlmVm4hkspbx~)#3y!uHtHf% zSK_c8qwx(?WYv<6coNCf&K%`B{YVv(0329CU9h9crY$DBWp*0byZBr=d zfDyFXl^s=FX&Pee4iVdU{qfP79uS;zu1uX5OHRGh(pFEZme|H{EKi`7*FC{IYV-$p zjOMz09T#3c@ZK3MX2sKXZ)>5@`=zX5oDAqfL}vs6=?8T`{N#LAOXV5woOjNq#@KK` zVPz>x*yA@s-O~V<46dqVhI+VmNF1fF5E0}_=JUnqLU`d-RGGZgBTBJRf-=v1gX1Y! zOWl~=6R$hSrcr#+rT#-=c$l!IdP;N69W$aPBdX^rjC%g$V~=&)G`X;#mGZu-{#Oo> zGB|Gb&6D8UF_<$mf>5~*Z?dhCI`+?du^42H5YhObbYL-H|{w$h|Dl@@o( zhdtV)Os2=NfF+(COGB<9 zT`gamXhtg+$Gv+~tDz&5ruS$Lkvqgo#@N@4_G$3G(myS8JSD2*OU~gO*B;nqM-r0)U=#nG2!uOj4AU(lL1tT|AR-1SMvb54~=;o7g4XaNcDp@9nzUu zF~6fI9o0V=qp+n)r-dFk1<)SaK5drMg%qn+OG__8CGS65e(OEiEr1Ra5W2h-H%_Bh zO_&tiGzdXFDg+_OvJt|U9$rD*tmWj_CYY%2<0G8DJ+Yf#@FsdLhaRLtw}!hbT7QVF z=Yh^$$z>I}8U@wHIb9JP7qb7Wo#9!+V=96^H&t4*;3I|Zd~Sx9tr zSA|qi9)GfYsohk3tg-UAJ0W;ukgw?A%J^Fqx)fAFglob|2g`GmG1A(h*xN{-oy|(j zQT-(Vt5ZKA~>EaZwR4w;y@v$>q2<><0 z7$5y-5Yt}J}oM|-UOXYjf+qLE7|97xaHJ&)K@g;-gCmv`Ap=4A2_`ymBBUGaNb)Y4w2{s+nyzKY4RpDVM*kTlAyPc^Vp^ z)vA}uZeeDpc66JhABb@jw(yVZ-UGgS-B}VlYWB1Z9lnO)hkkmJNFQ$AGPoNniZ0`y@3xz^TH1H0NJq?hd-yZ0MgyE}aPH@g?pW8H8Sg<< zOPEs}pmhGsh^AHZBD%WAdo8ckR17D)1uP^_d z{k*%@ta~!BR+4s-;ljbk7%1&`NP-hbv8!KaiC|OC>^`G z=)T9-6IuSAR2YMuY-84WodJHH9z3=iw07mSdQS~*mOZr=QJt-rgm72YBkN>t(rU9P z;*$IPAxkr}gytychZ64g)|azVlX_@B*fW<)%O3_(==90aj}mXmD(!4eJoj_0<}8{j z^f?{EassFB{xBXWEVzN_6Qv4WO(C7XckXg)zQS;!w7bet(wgm7_f^iy@DkKsv>+xC zl?znw=7Rp8v{xHPf!ek!BP3%+Ok4#}=g3nYzOR3o?sdQ17Ev(stvDFs%pD4L6iV{%IaRAo*3MVBbJ!SCtm=CSZefuDQ~KbT57NzVS7}qyb7q9m zg`tl`uPENt+CJ@K1C6{M!7ubdT4Bu>I3xU`x3caE;fL~%F>b=cPg+$eUz%TC{SFgp z8MrPzV_zKHRb3@&I+*?(O7DnxiGVx@xGZL+n%NOcMJ zC!PaPj@F*B=uT3*)}vmy;P0!LAD-s>NA^ zrBRs4<0E-d916<)wRi<1`G4kKlGm?^xj)VqHtQ6`jAfgQ+0DPR)(3Z)Sy1Yelh^?4i2)yOkRm%J=R<$;0~3&2>#-Z6=Hm=21$ zET^ULZ+C3t2Og?B=W2%*E>U02c(?G}6{Sn_e{pv6Bt!O2-%W+~dG(Sm7v;Un%Lb;2 z!wb5xIj_L8jLYV;4A%rOhUM{1is;+IWkS`$Xco#@Ln-D|e)g3I>iq~@ z+3Ubm5QiG?H*y~tB1wKbL`hLEvTraCGpbedtVR51{rnOp{g#IzfR0@?OCUScO2q?A zWR8a)U8Eubc2+fu8Ll8rzje_fMJ)w$=Ie$}vO6AT4CUFgAvfYd9m=ASDu+!95?0~% zvL(~qrADTGMX_gAtUBY9xWit%1i|GtrrPnqBqz9s(ltQZixH`(*_jw8B0tH9B_nO* z#Jyet*{emAP~~qpW!)=KriYmQ#_EeVz%MJ0-E9<%GWUb|zqxDzrfJ7=_Qxnw;{H}H z?9Fk`k8XLty*~xj5A1nvD5s$-eA1w%?@l~SL@SpsS;NT4%u!!M%-OG`yjJK-9~&`k ztT9cCfV4^^8O$AWA@illBlc9S$mGjEJS8eszt47-K)b#tHKZevjPo19o~h6)K(){f zh$GEZh`ji)k9Ao%7iL6lwH)BIjz-x1XVIc|18ll;RUd1;_0#S=N>6UTlYVvZ~G|8Pt0+Rb{nb zOl|9BVkr8nU)@3V(~$$(M=QE-!AC^%gS(FI7yjwy_vY&SQDX{1oy%WkaaT+%^XFp_ zZi|IpZ-Ti$S1sQC1xi+3EYNB$hq-~a`={?-KMeNA$2;t+PuxIqs>lvj#q2DYp?L)9nPi}iq9%_z!eiQY< zk+#34`c>`0iwfYLMCpt&XXhkmN~v)5(8T~mW)n9ki?n$yuApj~FG^isMDs9_@2JX~30Mo{C(c>FJ$XUU$mDGeBd>tLc^(K4?$2CWiYx@WtobYA!3@ z_YV+lQ9F<}6mF`-dAPWCjaX~p#Ayzi-=7Bd^0LLFJRdV5p9>xU+GMDn)v{X}# z&OK1WxG`(XsnQ)4GRiNqyD|D>o=)<~X7XQO{uu{;@2oA1GLrL2n`!4{%|B)fj;P-4 zXXC4Kg!jM;ty^0JD^0bp-e@|Ye)^axFWh5-cB4#L9zCenybeGdrb6NzLuEJsPA~`2 z*M2JhGdULcNb=O^?guCLYUeNKh6gUOUh@!WP=VAPw-lJUkKCx1zyYbP{i?$OPze9# z@hcd#ZLdFG`wXib4rXCz3~rqP{vMhJpIQTn#jISQPy|mkdp3+)5VNPApjLfW5MtI) zUDT|s*9RRD7s~}+&V+wuJdc(XMB>D?zM*fhPtddJ2ap^JRmO+H`7?~9 zMH04-k12RjIb7SxG#;;kfb3e`69^>S+kIA79jT;#3B94`7N(3EJXm`3;*;1F`jb9Y zxXQNx&wtN;QU87<4Zb5u6yxGgJ9VZS(+y27*Xn{%V>i7n5Q6_>e0GkTaLGWi)F{}| zR;cOT))>4n9Vq#%wYHl98v$N+x18Htk1=mTTW+|zh1G}ll1hz^<@%Uha}E;WeNiBn z^NM*!u4?AyxOYU!UFhSAZ4YeBa!4T}ON(vl8k~78g;OWb)f$mF6Y`@iib5H=L>DhA z0Q^OJ29{63=S)UeFjH{wylkfTB>{y*X!@vlnTsxNWrg;U#L^itjIJ)-v=u&<%y<_C z&7nuVw5U$WdX@9v$jqXF0KfBbr$qt6onTfo4#zVruQ93apGr}zhyt$^Atcpb;5C*T zv>{G8_iSFYC&bv%-x1qtFG5D>6fW>Y_=r~LpP!vt*7Q@?iN-{j+Q*~AJhwM@pHg4+ zzDoovV=~VtuZos;b&_)sIG$qF#e^SJ8xo-z40Ywl z|IHU!fa?XzsIMwF=}lK&@GwL0S3Ia)HV2)&8#` z%`D_^%+{xJgWDJQqripPh^bI`P4{WkuwqHu!xQH1W0;CQ2&@41Il=97pO0Su_Mq&} z*7%sa6JBK%OO?z_zenW^!QDrseBK_OMtKcy(Q*J2*wyns=FEg|zMR1PNg{l;H}b>L z^#3>`1)J;WF8Tnxa7VYq{7(W<@SDEU4lI8zYCDL6%HaffRM-6ImP&}@a96@B4{oZ( z)xC%K-F~>ct)`Qyi0BgA2(pbGx)P*}^p=hnag*6tmHeSRJ2UbW zDgJ->6aw;hr>mH~=3{{7nA>7nno}JxA6Ht?H-0&sOzgw)4y}280EY}Xnb@u(YQ+E7 z^kECNwYu#6+ilV~x0i|u3N@@wluljT$ZvdZ+ZDE)-4?%>z@5ziS4q7oXx}+>4v^r2 zr3XcLjyy-%n8?|35FfLUPuV>`aeDqfO{N6<*nEw;W07O~a%-vogKg^m{6dG8P!;%U zsG9maBlo~@XSBA(hnKZCZrFd8D zjJ%Jc6YKGxjw5A>7zZ-aX3bvc-C+PoDMp4gaSfpn7iQYPhu;jHqd8!IGrKkxNDm8m z^tc66(Pb~zjGHFo&-^=Oiqf&sNyvbiv3-(7LYvHhcR-($F)$VXr?6$s7+3ca)uidn z4iOy$+|aeCPIjGC)F9{&wdMfW#K@n&7s^>iDMf$rsNhNX#SU{ZGQ*((j${47)g00@^#zkF-8FRuXs900|NhQ|zR?8ZPdBr(XSfBZYjNfP_ zmCQ2$V5ba`h!d<#M`j9F9{eJ4I5beqmSy%`BUw*g$pX!B;KZGl0h*I@W!@klFFgq8 zzF)_i9tT5F4JoYLA2^~+OweM7UeEW@^`dqa5<(F#l~4_+pdzgg*?ri4cPxx%r!I@Q z6jod^Y}WJ-T_JR0c-Y|b(ZkEvj=uoOM=;BZx@D7wyi3H1Ku>iUghNT*y9jPiQLm(9 zz{vuRgsz!WJvB4K{a#tR%A>1Sv0f^+2Dc&*qEO4xjhKj+teAo_#)LDK+t?-di0llW zN3^^qSRWSMp&|4o%bdx{3o42Py96umu+lw=Ag1}~Icm*pWWX+eb3I?fv@)jnw75cl zF)rAn0PMRX8;)elPnC5j273w2RJo{N?NT>r4+pCh+82lVv$qePB zS&#c+ThaF;NBI{X@7z37LC z=dFISZGNg^CaQpf+!iVMZL1J=YqWa-z5Yg4L5w<0MDti>=4T(7T4F=Xy5~^`UNm9O zQl-zE?5s_3(yBEGjB75eJcX%%RkN=Gu90L`qp00qL|$1P8s=y?+4RyK9Viw zDLu}r5bpR!4^(G0>cpt-!h=|36`LPA%(04JBti;pd_wlj=RbvgJ7|Qkn)4T+Kfxk} zi0Yv~rtD|Dqo*{O@s+%niZvIGxL$ROOgfjUcIu2e76GE&zwe_1Yf$ueq0l|~*ezTf zrC^!#^9ccpx1`qH$KBcFuK@Qz%9W^|FrfJEO!g;w|5Y<)JmJl%*|E&j3B%NCY!UMl zfUM*Al77~npvLtq%U)6;+@shjM&{^V70n5#g&y<*fo$~2L`oA}W3tYT{EIvwveW53 z8R$2AMXyixi$x~`1N+?n{1+fB6uC)%BED?aY(EK$=0)iY{uz#<%%g4Bfp@qjLevT2 zJA&j!GwMfoO3+c}FsAE#bSHLMq_1i(^wX^ki%ooitw^Qd(eu)V%n+JNMZ^W~5srtn>Dv;%y^70viyPU6EISHEpI4G0Dee=zBgYEB!2(s0f6-e65m}lIzhf zG99yk_SYKLq>ilJt+90_Bpg~-T|2bTETDMUJWN?<@6xmV$vM(Vi!0mma7Xr4Zpoxt zn*V)I!&HU#-(qWXoBDq5*vd^KCPE#7=s>+j+e5JbS2I`o)kMB+v2ARnp&i-)iWn79 zDMb_m0t!Lw$Yn^744^@vMTQWDKp-NM5ox6_ASeXUgek-%RG3tV*pWd22O61^(16Gw z3M2@Kgdu_C#dUkVyY5@}4|pH<+Gn40R-NCe`cPH-uKMOWjT+*}=Zi(bNvSj-&_=dJ zX|Z$vfnKlxxY35-RRpTndpM+;PNrVwMI@Q!&Q+xDX^)cZdeErFWjN`LTa(>($9lmJ;lK{|cL674=n@+}KUxH^L@wu)ve$~Zcl;WDj;d1iTw`H} z4XiA%?c6=0o?SKSJ@joW;{P-06~kf*yT9@6k<4!a&ndhZlf|$4HGJ9@bwsKM8VElc z&Q(AX`m!?cQdw z0YCeVkXa3U$T=>3g+O|$gUG_DbJI{}-TQDIl;k_Md0IQor)axRJwY?9sOzXi*RY2S zt*vi;2;Pz3AM^IA3>HCA-n9HIO79&gX@lx7q-OnE@d1N!56VCmR=uhESs0SG%F0=@ z9-(#2S(6NWR98Qlo)qL5OP;?uOSN?tjjXv&&UdzxHAeK=qr%jhdy%(E`L9k^rH%WaC35u$1neY&{CPR&|ZDzh!8P}UJBy2 z*H^^o#X>DyMB9G^uRDO3HZ9mN1;vBd2uX2h&+n{R==e=le%E9z)CFgdR0utg<+Fag ziQ)iB1fM7C$6$gtkJl@6{tPNX%-+!w>2_?Q9nig)m${oBc{~T-kq+bu4w?EM&1qD< zHiaTr8>X zIWMUQwsEbzem#$lS0Y08rl>^fZ|6*nRyy*xePnrN#dF=K+HNja*8>5s&8eNaHXd_rdzc(Yk<-r5+ zJi!r#fue*EP~t3_%y_;jk98-cnn_?Ut=MM)qwsS+hiI!7qLL}>#d*3eI4oq}sgb!) zIu)lXM{ZCH+&&J4^gW^EdwBl9iygt9wP)H`i`W}P5JUELOxk+YS4GMEK5Nlmzgo*N zZO+lZxb!syGnl21P@1|yL8d1}S=c7^7_qZOFJdNH<_A|Y0|0B>q<*ygarl))-axpC zJlk`#^2Hp5$8-?=c(HPXYMQ2=>ga@5BRm&$0=oz<$<>q5XrPPa#2YZp({hdg>ZCeD z>i@MlcsHgN_b^n+-N!p7FPUnyVgSuTJ4!>?Kt%|hIn%;ZA9k%sVtJmPczm`}-Gmhv zm52?5xqs%E%U*Vre~iWQ(D7ox8q%?qHY}{bI5gKXv{0IvKdGwJ`P2`2rtiv^&Kc`v zlENDf5V&tQStLcp)rcp`u%M5eIW9- z7VT__v$I?ICY+5kyBAZ^2pa!Jon{pmm-2>(3}SKYKfLk#B3D6e#;-lzpa19*@)l%UUY#IY!V8C2zYSfx zS7TbHgV7s&*`Nx(7gxrTcZ63Yb`C20Zev%rB8u_;a!MJe|HG4)OVo$^Zg7;>W=`#Q z%AuniGG|m{LCf^_flBDr9)Be~BjMiCDe-XYzxqwn|%XTHuQr@i%>PYOev-`*ujPnf)TKhx85d0K`Wu1s zWcOZ<#NNV~g=2$Pc)P_c#R3bQlg8!41qUVDIK{SKFE9WjP21_1 zMNPlZ=~-O_KPuJL*6{9)6}IJkBY8CKxCPiMZ?rGBO>pvc(5PPvcU?q+j}WuT@WN zOcx##us}VzoO>{?6$WwBld%)O5CTn0E7CJm6U3UfueO4+Nk^Bd+6JUjc2iP701Cog zWg@OD@apHlT7_|`z+e75@zdJVr|-tbdol4OkmLWhWh3hWXcmNy#-F{fj3GHu8YsBe zpvBV@2fx|kywukU8@Ou>YxQYNb%$K(pd3!BrQ-aT|nPzmxsZil@c01Y09EC_m zQljeC90`jLiY{`-e1X-O8Pi6Qba;J>&})2N2yA;JVW~dcJlN@hSwt?bNLz&awyKZD z`RGr+^9bQ&73sICSJEo9Z8e@QsIr5E=@`t{nM4*;z77FH*Wc%i1~(r4x+qSRCr*?f zrNj`09F%%u{r3Ex7F8YSLC347Vd-icsI+liO)!jpB7Q2E^NqoOVKVRUWS^1dyU60QvIgieubX zmLQSAAzWB|jq5ZPgbkeF)~r7SHSA9#mLYTgXo!MAI*wRWoFY@kwdB*p8 zZ@fmr6#{B{^ns&BnEY~4*uWfE>WuNdgDvgg%$sg8m*z@Cm2y-P%*y|gQ8pEJUKGqT z;K?xGl1@dw9!1oE`a>S69W+?q2<>WsyXs^KU+Ujq^12k-Ke*NarB}Cw z4?Y_I`IltR)#z9+Cefc}qg}URT?8)aHd!5#woROfEswH{RlK=~q0ChVokQ52s($@e z9=I!*cUaMJso~IRYIo3Dm<)pSCe`e5mwCL(_n^z4_pH1a^Jx&DP)7$19RAAr0mIf0 zfNd62w!Mn_39IgzL^Nv>4w&j2mYnf?0B(#XPxi{=IUwON*i+j&Bv>B0GDE7NOm@T$ z!;y(EtoW9)CtJM>>1=S&D1V16O>B3r$?^AfjDDxH(qljrO!nlbbj%miyEcoSAqNr< zyt1vnO+A;f>)5hm^4q(g#umoPWF(|F0jPJh+o!6*1;Ka2VY1w<8y#;S+X!|R_|W_N z4m4qHYadr2+2GQvB+27c`2^-Bxbe)K-Ljcj*X}gz`0|WkaCx-K@bw2fiA@9?GPHN1 zm})A~Pp!#p|0o@!8am`*ig^T5kpPh`>-NpPM7Pw2L5BQkyi~d{g*#X3la%-{vgVNy zkB~n3$v<&$_VEsK<%TFuA#U8`sdo7TPyEfc3&~?MdGVYo#;Tdga zFS1;~k?EJr<)6loQ@3Dm1y3m43p=~9wcX}K_e`o5g{x7x0bgt+Y+ok7dx2lq&TcGa z*pw|&63th+AR(+cC+nDOo9N*oY4Hi4_CLl7IZuSbfk@P~@P=ZLP!4v<&*_!?nNT`y zZrD-Z$tuDov}Y4&|PCP zMqZ1G0F0wYM0x?xGq%RN7|&CZ*0JPvXKlm%B5!J4wZ}!Z7$FdhDiwj;WrWQz>QiLz zEOx-GSz#Yddge&!48!KRXlke!Xs${yKs_nl48S1IeYd{4;4q>1s)Tl9HHyG*mU7oP z-)Rs44Yi+~8f(zC)V6YeW3@%v-}vvaf8qZkQ}h2#rcV1U`~Q`x@xQA5hwMM9|68W+ z=HJ!-SN8v}X{88d_@mnRPeXgIrr>48^*5k~6=ZnJcNVUqq9W43H^vEp`lZ6**X#cS DXo=?y literal 0 HcmV?d00001 diff --git a/doc/source/tutorials/images/tyk2_prepared.png b/doc/source/tutorials/images/tyk2_prepared.png new file mode 100644 index 0000000000000000000000000000000000000000..df34cfce59a805fe3e050b60c02463975e2f5922 GIT binary patch literal 77765 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 literal 0 HcmV?d00001 diff --git a/doc/source/tutorials/index.rst b/doc/source/tutorials/index.rst index 612ad44f6..52c92af05 100644 --- a/doc/source/tutorials/index.rst +++ b/doc/source/tutorials/index.rst @@ -24,3 +24,4 @@ please :doc:`ask for support. <../support>` hydration_freenrg metadynamics protein_mutations + alchemical_transfer diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 59faed5ff..14eb7d36d 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -896,9 +896,9 @@ def viewRigidCores( ligand_bound_rigid_core=None, ligand_free_rigid_core=None, ): - """View the rigid cores of the ligands. - Carbon atoms of the bound ligand are coloured green, while those of the free ligand are coloured orange. - Rigid core atoms are colour coded and labelled. + """ + View the rigid cores of the ligands. + Rigid core atoms within the bound ligand are shown in green, those within the free ligand are shown in red. Parameters ---------- @@ -960,19 +960,32 @@ def vector_from_points(point1, point2): return (dx / magnitude, dy / magnitude, dz / magnitude) - def find_carbons(ligand): - # Adding logic to find carbon atom in sire becuase its easier than trying - # to find them in nglview - return [ - i.index().value() for i in ligand._sire_object[f"element C"].atoms() - ] + def find_arrow_points(center1, center2, diameter1, diameter2): + import numpy as np + + # logic to make sure arrows pointing from spheres start on their edge, not centre. + # Convert the points to numpy arrays + p1 = np.array(center1) + p2 = np.array(center2) + + # Calculate the radii from the diameters + radius1 = diameter1 / 2 + radius2 = diameter2 / 2 + + # Calculate the vector between the two centers + v = p2 - p1 - def make_amber_list(l, offset=0): - # take a list of ints and return a string that is "@,," - return "@" + ",".join([str(i + offset) for i in l]) + # Calculate the magnitude (distance between the two centers) + dist = np.linalg.norm(v) - def _count_num_atoms(ligand): - return ligand._sire_object.nAtoms() + # Normalize the vector + v_norm = v / dist + + # Calculate the start and end points of the arrow + start_point = p1 + radius1 * v_norm # From the surface of Sphere 1 + end_point = p2 - radius2 * v_norm # To the surface of Sphere 2 + + return start_point, end_point # if a system is provided, check that it has the "atom_data" property if system is not None: @@ -1061,49 +1074,66 @@ def _count_num_atoms(ligand): # Create nglview object ngl = view.system(mol) - ngl.add_ball_and_stick("all") - ngl.add_ball_and_stick( - make_amber_list(find_carbons(ligand_bound)), color="green" - ) - ngl.add_ball_and_stick( - make_amber_list( - find_carbons(ligand_free), offset=_count_num_atoms(ligand_bound) - ), - color="orange", - ) - # - colours = [[1, 1, 0], [1, 0, 1], [0, 1, 1]] - # Add spheres to rigid core locations - for coord1, coord2, colour, core_atom_1, core_atom_2 in zip( + ngl.add_ball_and_stick("all", opacity=0.5) + + # Add spheres to rigid core locations - first the obund ligand with red spheres + for coord1, core_atom_1 in zip( ligand_bound_core_coords, - ligand_free_core_coords, - colours, ligand_bound_rigid_core, - ligand_free_rigid_core, ): ngl.shape.add_sphere( [coord1.x().value(), coord1.y().value(), coord1.z().value()], - colour, + [0, 1, 0], 0.45, ) ngl.shape.add( "text", - [coord1.x().value(), coord1.y().value(), coord1.z().value() - 0.5], + [coord1.x().value(), coord1.y().value(), coord1.z().value() - 0.9], [0, 0, 0], 2.5, f"{core_atom_1}", ) + + # now the free ligand with black spheres + for coord1, core_atom_1 in zip( + ligand_free_core_coords, + ligand_free_rigid_core, + ): ngl.shape.add_sphere( - [coord2.x().value(), coord2.y().value(), coord2.z().value()], - colour, + [coord1.x().value(), coord1.y().value(), coord1.z().value()], + [1, 0, 0], 0.45, ) ngl.shape.add( "text", - [coord2.x().value(), coord2.y().value(), coord2.z().value() - 0.5], + [coord1.x().value(), coord1.y().value(), coord1.z().value() - 0.9], [0, 0, 0], 2.5, - f"{core_atom_2}", + f"{core_atom_1}", + ) + + for i in range(2): + c00 = ligand_bound_core_coords[i] + coord00 = [c00.x().value(), c00.y().value(), c00.z().value()] + c01 = ligand_bound_core_coords[i + 1] + coord01 = [c01.x().value(), c01.y().value(), c01.z().value()] + start, end = find_arrow_points(coord00, coord01, 0.9, 0.9) + ngl.shape.add_arrow( + start, + end, + [0, 0, 0], + 0.1, + ) + c10 = ligand_free_core_coords[i] + coord10 = [c10.x().value(), c10.y().value(), c10.z().value()] + c11 = ligand_free_core_coords[i + 1] + coord11 = [c11.x().value(), c11.y().value(), c11.z().value()] + start, end = find_arrow_points(coord10, coord11, 0.9, 0.9) + ngl.shape.add_arrow( + start, + end, + [0, 0, 0], + 0.1, ) if system is not None: From 8ea5dec65512de248e2c9fa16bb631b02e4abd64 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Mon, 14 Oct 2024 12:04:25 +0100 Subject: [PATCH 107/123] Squash thermodynamic cycle image. --- .../images/pfep_thermodynamic_cycle.png | Bin 3228824 -> 173451 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/source/tutorials/images/pfep_thermodynamic_cycle.png b/doc/source/tutorials/images/pfep_thermodynamic_cycle.png index 7a5191da5aa69d2d990626e5480a3f1dcd2becd1..75630f96fc15ad36497baddbf26817099541f49e 100644 GIT binary patch literal 173451 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 K3;+AWUv^aE@IDJ+Uc%k}$)TqDDMO))mI0jML|y zw8UastLZQnp?v!CYk7G-l&VigNym5?VpfTs>j=x#Xr;PIAAq0n@$&Xk5O5cBJ0DNC zZ@z4{gW44qE9nFeM%67WREB4?>oIF-`K3dHq;C?-`g4XHv@gi2bxTM%l7ci7Z?%I_ zVj!Y|&IV-Z?tG10e2s6GeD5@T-B|$Cir(-m(E1)vr0;juEuZ(%`K26x8V1*pw-UIXtE@xj zDA5Wj;ALyRnI@x73Qy!i|5Os6 zGbAl6e9np{K3)^68_kb!<>>m?m8w_BN&8H(ZG{WqN>Gos`5?0UaZ$Z~E%V9xd5^H`j*$r!MdflFGPsTkBQQ!E zN~VFG^=A03ovHP)m#F#1uLlZi{%irbfnFw#IH;VLxIJj&6^~k{loA*Xfi-7)`#WWN zUw#Lo0soy5ur0H9!mdY_+4kPDlyG>j8s`^@dnW;!Sf9O_$uB|Ax5F}3DhLry5HjE~ z8_znqgRPxM0y-Pgh7EcIP+~IhKY3G%kIdabk~UCl&~#@ndU5j^lDFY2$IH9ZF?^2L zWAGabr}bIy5g$ixeh-Tpoq3AX8CXlvA>JS_w?AhBpr^B`*9mL7fugT~@A<6lxX$v& zo3gI%C^>5=Eip1FXHq1IiNt)JS`0TzwP*$f%P4_NrRzvhBvbo)8Z+~!fNWfm|Ma>N za>ahXpQ2@Fgd0J>DAKz_|3W9XW3n7g=Ac@=&l8ueFoc4yZ!TNJj8m49s?-J1JG%^> zdFm8GCbI5ggRx4Lf-07(y565-cgU^?%fIUBYia8;VvPmU)WM=CgN!~0VQ+%NVYtJ9 zz=LZQ&6)c)VhW*4iKP{hnBy(V3@B+S;kViED*8 z-AM@E){0f+u5l|> zUu=*;&08|Q)+%yBP=c3E`7xQ7Sm%eX@aXBcp69_=wLPC^FI;OZNaoj`wYLjipD1*^ z5!m|yy$ZKAu1*d?o;BsiDqLP0%_W_xC0(+CZfJsKWUA0Ih=PnYw_BMz99Ck*%c8q| zw-X05-7sp$Q-OBry4~f!H$7q{8u9OfL<32rMx)sN;5fpnd4FNq}C z1b7{tZB6%+js&Vz;Uwt;s1)#r0J7iH-}%3t0?}=Si5190jk1{WY2G2Y>YTljAt~CO zr2{RR^bMGpLxk&2Qvz-VJ`0He?VJB)Ld&Mveyy{mrRF8zCB3pjv2;yT#x6sflDd34 z^jM%*yR?oWhu*RS5MH20==27CH0 zm)$EavGi|d-8$bg?LEeHsya@~ZjYb;u|s#gJal!QWqB!98{H0$PG;W8F;4K7)qnXq zMeUk0TtZ@WAB!?3iY%4`uEr;-u?dsKRu`VXGIq{VW+5hM#>K)}o`mNXn_>sozxsqnKi$ zyVRww%e$b0nueAJc0LdmR#IB!0(&HByttAv8MsJC*zcYDd{2rdrT$oZ9yxTHP&ZTT zPzKESpLr{qso1!l*WvmNm%4V2ZAVq@@AsgOFO96wFmQL@%rGf(U3Vz618`8*Yzy~P zQgrZ-PtT62zg9DPQtDhFQ+Aj5+mQ#8K(Lyw#P^Tycj#DEO^!1#G5mSOIQq&bz5U@1 zkm4S??up*7%MB#{^y)PIwOtRf{$n=DnDH#N;r%TELmIrWsWPES4qcHs{y}|4iJB+( z@A9(P!{!4paAll4NLT3o%C-5oTdW=F+($kct5K77>5S%}-bVCNr_eCwXArD4c+F24 zk*k8IL5AF8Jx-x&HYd4yHee)~p7K=uqg$c?pc^wWO-)THeEYTuBm*>WxUTW}-E#Ro zAo+dV+i&sk2t>B{J7R1IEVtA)c&J#t34^+YQ6=Q!=Z?2bU!Ltu6SqTu<;WK=T7;}Y z91PM|8*Kb95F4f(p7gl>KT9n+uf!Vz7Fq;x7EZjR%?#IDjLdmh;QPl*^A4p9n$Bm zX9eBTyk#mf2i(q58drxVOB+dONys>%9iV+zZVj!gkRhu8_aF8I&6(o{Ag8MpluBoi zX9@_|#xKs}Vnb3?vsl?G0I-<3^`coZE+H#NBgnhfu93|4Xe5c_cl_;Jt**n?)bpi@) zww>TsVh)jZXwy9Xb$I&=IqciyLw@|G%d8hRGpQ`OxHTAbf3iyP+#Gzg0A>B0-Wpe; z=c!f_BZ%nR1A!x&N=6lBj9b^k2GL`;-=CdlJYGJ&seC#M;I9+_y-$7IT!3=w&E0gH zc1~^f5YLVhk~1EuMQT5T_&czegx5$EplCzrJAO-7g<>!nc8goPOBqa6@-f2Zv;J56 z3rlGMbh&zWGUfY?>waj1V`yJ3G7j~ZZv@P4Fd~Xq;5cz(8t#Pj@XO-4t&OWbW-`~q z{o88w+o}EAy*(CO(BEosK)gK5dirZovNR$lHc@LrXR;T0qNSzJ@Dr63#V(lv zojJH8)?AwyuheKpzR+xkbP~ZjkyWRioyX(j;j;7av>XN+da`E^P!PWVC2;dWI`fP} z{8W^m;elZ+phj;tuoiUi_eyEJvg0o>KfX=he2irBTi{AcTwX2Fq^6B!4Y;-(xp6x>K#S0GIGJuaN7?J+KU zd0j^wAdQcXj`qI3E*~EQ$nnc|P^bOYQzn308q0oJKl*qDm}?(`H$p;xKi;E1u49ot z4uG9C(SB2~EiKQD01-hFkBe%pX`xw9b;Z@ls815G`jp})%a)f%9v+i7*+zSM8ZM)C z(_dV!#q+s-JcJZ}{)UfWjGC!qdoJ)RabXo|O*_%pnoQw5RAdmWR(4-6cV)bYGTrOJ zl|!f6XP~m$bAc{`#i-@~=F{CCUxA}j&u4*e^BOPkY>|Kf*Od+4+`6gJ&Cl~Hh6t}Y zKK{Cwzmk!I;*+6j{x}sOY=jFW74$f92$fnnG95F7$o#1FS9^=3B*KlYRX1YUOqRhg zTxBs*d17IHRZ`Nv*3>#-{+v;0$RTm!Gp!Z#LC%y?)iV3_Wo;|V`h^s1DO3zu79GnZ zN>r4H##lGPL17F|{c>~ah@Vb$AN*Ac*!_y|;$hP4sN&!9#$`dGS9b1psq3NOAd;#+__oR=F})k+U7u@ zI_d}H?Ja!DuL)gY-S)W;^a2S0(8Ci2KkegL1b(ZK67}*we<_%7k1yWuHM)4+oI4aj zW{eo}y9-a!g*ny&^G?vN#C28L$u4Jk2ZO`Y!$N*1bQ-#yPJr6LqH938^zUqPhcl=z zTF`k);A^(zfv9Sf3Q{9VtrA5Hlopg6VR16wRIGo(0xm~EzoF!Jhap8fuPQXhXqp>n zePli}nBO6!*6ixh2xFthMstG=ZfJR^%OV0S*&$cN$oU(|uzKYlw5l?z6pD7$U??*q zk%eV&ph_qCQz+Y=I#iFWY~AID7`}#P{IyAA2Uk+=h5bsD`bN zv+w+6z4c|*$E&o=Y4hPh>Mj!p-2wV@_+s+Z@7Ctx_VO3ig;ZX9fvH=;HcB?uCR5)J zI)m#vx9r<0rjIj?%||LfKxLIhpmD?ou-E=v92$6^Rtr7E8@$GSG05V3+CRTJm}~8g zfWv>9mX!AYJWAoC9{br^XHRCC;TMJsFD5Elt-ph`{X;gr5VZiEigFf*JTD~8KWj=X zj~X{S#ZY4O0TPuDMp&9+vw$jz^7W7xCTEzn_FO+coco7~=cwJr;X-eG6#t=0_T&CZ zadzi}-UaZ$>XQGQ|3ini>v}z4Xnx;q!~5=j75h6qy;(v)??Ud2W%?4H4Vq0=eIO>~ z!YRR}rg#I(qK0UcMA0o}bIX>z{AQQ&!I04Vh`sM^-J6}!JN?ykUo>gDNU1>l)DZGn zN`&w0XI60CR1pD){pk1ON1>Nnq4qaF(Ca%=74muAqS>(f#en&)i;CsZ-u%K5$n+lN6G;WEwC6Yu>f$ly9rt}EdE-SA|0yu-tRvP84#vhQBSv&JWae>T4)In^A&RO;GbFI{?dRIq~NTMxw$U!wM#bJy)BJ( zUYBWft=@JN^JfA56JR_HAo#axjQXywuC}+Q0sHo3W+32JPc2c;ftBq;j`$rBElNm0 z!Pd-_4BJ2Ec_27xu|r2qnwRobkNPGOBN#)u%ou!+ESW5yAr1mTKt#iT0}978I2x1k z2;A4SoNNypZ*BnMz%h3*&z~H4znk~@&W0inAEkkB?sfT50!#1l((P>^{^(a>!GEoe z8t$VEr_HBHw<;i30!W1DYJ0mMS`>8s2zwb^w8x}ihStYKDCSQdQLc^Tl}&&j-Ow}2 zAyv@&K|kJ)N+a&CT$|fw0r6OZQR`%3@&j8tzkLpLG3u58M{vQJT_1*9Q>z(5df*{X zUSN#T!;9*^in6jCfX*H;jDk}L{f*DTb1W+KMT1?V((c=R($Qb^u-3FA$o*diR?IqBWKnB%T21sxE4)o8^uHS^wZ_!B5sXZ@h4GD>E$p%&xAvV15?EIs ze3;NID{~{aHfI{}C6)TWp_5E2wiVVOqfnQJh78Ajrb8CiHZ*}53Uzm}9|+lmlxoAY`sTYv!t zg>SGJHZmB4Et-h+nBt3RpRE6G0S+A@(PMI4+>PHi+9X*SV0j3}HP}JK-XmB+fuqw< zTWt9LQJ{(}a-y{s-`T-b?ij>#2}N;)pN-QHg*G*m$umxEdlP|lMBa}u zLXSHhM?T!iV*=HK9%D^*!;kucHmts%2aE+`45ORD!C-A0zYHPM>v{fQOy+y|1JVK_ zqDIw_Oq|PNN1j(IZX!d-W*JA;Ne4LLB5%SxP8r9Rmk%p-=JI(DS}CIT@a$Wz<&u5v zl$DIGNf+h_p7jeFu*vEa&J`d%VY;El|0iWyl)rLal zavlogZfZzD&vs<@D{spK7Zwtr)Ov0(S+wCAEHKQPitckT z%PF$LEO|00W`SF&aN!(rloGY+oyi;lfso&P^O(vF)`)CTU zeimH<9Q8&2wMV?Z8%1a}0U|K7u}S{hali^+>3!UDhqqJ>@Gb_zFro!pXyM2LAk=ze zYkx2Yin>aog=slA+5mAR#W<4cwEQMmY)0moj!>!1!N66q=iqYo((Ol*+GHyuY1sBhAInTv(s;Z{a?`(LU4qR@s zsav&87t*+M;l-+t><|@HM_;m8@m41tGeV18R-r8)Rw0bm(8V5_kerXun-?Y%Zv=0u zfv_P#P$CYHW6kC{sevjaMrQc-64`BI4pAw7h zvR(cuiGYG9DTkze)5bRC{e)wY@fVPt3RebCwgTN*zx6Ajk3jD)V@b_Sd?lhK^=Jxx z+A$)^7L+mP(arHGS(nqr1qJ+t@Ey*dmH$~;*;tuM=m9yA0m_xSOXO>b1oNHx=A8M{ zvE5*h+{L8#>70aw2Fq)HmtLDrt5(HOB3I;0Q>LuNnVzFFQUp({Kon&jFbh9w-dK$= z#v7#AI}v46?ZvN;;e?z4uC#G?@Db25Dyj0Ve^!*T@bTMD%gTYRq-9P)=;DcO7}(AF zO!BXMAi+I4x#3Ay0)HSfw2*3Esb9Xd7wgdf#nuRiGgvN+7(&rN!M;=%h@UIGSKfvi#P&ZL zKLI4ZcwBbct;S~9!NMV)Dkat;irblDY!?zs8}T%Ufx1okF-Q!gsO5%|HguriM3i;%#7zQeIe;R$HvS%R{h<-yR>`7- z$E1H8w_xP{c!lS*Tf?=}H8=%P=9|#rLMU+>Qw!4=vGaT<9er?i?T)y>ZoNM00)8{v z2Z;Jg1=J&g-{ow47PagN2ngPG2MnsdZ*nfE-?a0sjS{RLx0z9*kVVCd83g1)iU)@V z-K(-fRk?WnK;>?fVqJJ9K@p}nigH2@U}?{uR#sLz8xeNRp4%8xnF-g;wIR?-8->^jO-kI2ZG2eazuu9oXib~5JLm?|{66m4RC=*qX3Cfw zeh1g;GilHDg^zP4FvyzTeH`vH945IU9v8p00hl(~fvvd2!efyG`F6cKQ7LvW{(SUOBz%!%xj6mQeJ zGCbe=+x#frI#pT$1!xc8j(ca02JaP~d7zCSj2u4}qB5RjC~m`DoQV0Q6{lzAz4aEA zK$tQ4C7$bTv`Gpx}h1+Lk}E&BfNmrMNh4l6kW z1A|6wv+q2H-dj`V^(Qk~H}o~;6RUFXPh)PCElc-JPcV}q{y=Bee#O+Re(N42cF3v4Y|jiV~P6j-Pd#6+J(q+BAt4dvqgYIEbt_Ce0k~H zho|3sL&O-hR2j`Ts%l+)-+_&2?5GW1VJ-yK*fa@dHBcKap&ElIOW@$8W9GgTxnv-u zQVOOht(-e;8*H;wvC(OAw0%{To2xgMSX$J0XI($@*+gX7mX$3cz&>WI4=HBMgWy0^ zrybV&zR`|pP&=N*lpmU&hJ+bijDp}(Tpc2KmQ*bBvPc}Ph=>xZt%ajj*Gh>-IhYx% z$eh;HEw*u{oaa5bf?<06A2@D>-0iwz@`R30zxvG*V2f#&TX00ST@s8dQTW^mKU?(7%M;{mXPushKfB!>uj}BdXL~xX^7bnM zBi8IZ1a`|IRdLO>N}bK^sSD>`c{FvH1wLPc(KDC>VTp|?NR7jvMru|d+oE|3IGZgz z=P)B8f7vXZ1STc0;e1~;Rhl$9PBW@sw2V^VEGn`pBDCC4qIQ`)IR_SXG7!C)%%Ia| zIg=LzkCh->_z#VUD6F)!6u8XE%gZBt`4SbaV7t-evT(W(UFGTQeAYB#j{*N19WWd_3kKP5oW^M^oztL%Ooec~D65x3(%-wN&D^J0@C&w0*OqJZ zhuz`%LxDY&u*#-oyKQgT3U^3AAz>dDMmH-9>6qx z)O)CmkS#pzXk7_-_m=X~(;8!mfSExioe49-j-~R#=rQ+`9<{0GV5LxuTSld5)v1-D zp+Gi~&Jk(43lrFsTWKHJw4bW>LzQN)|1^XX_uN#e*<33S|50DR=|0H=;ythF)6c;z z1)^@>GeO=DP9Im%Vp)tGHyEu@;bp7rk*Jk=e_&aMo0W#yy)42^4RlUnf60^-R?6-H zTTPala;>VY>}Wj<8<5rtgq#9_!t&p~snaF`49E-obsioT*r0Cs=jZ3ciEItV#I@Cb z7U1{CWYkR=JbE`GC5^(7rQmw8no=XZC@&)MXtL;*}$@#x=A=9>FeuD)^lBn6l$mWK9$=g zcjx*`vL20j8@u4aqNgkRX{0?np(MzEh0*sXd5b={zbN^t>8JfVX3w#tN}!SPk!eg* zIFGmW7+mf5vgI17@U>F^g23CbDWN(v5ME%ERs<4d*FZ-ryfKV_sHwD{t}(Y8Xq7v)CtX;%}<>LyLn^1mPH;9>F^hSUnyEJ^3FyHK>U{pWQ`=|Bn^`fQTET zM^I&Zu{XHNqS07F`3Hd|s+xiI657#0e%S}xq!ZE&Ajk-;>1WBHsEiY)A-Vdl zv*s(IDU^Ad;sV(ekD>Y7RuW>5y;MGl4Bp14M1C2ca5XeH)9~fU&-LCQ>tV+Sefz&_ zo`Tmbhc}m{OqcuYrCm?+ClOyi1%@aW3z>RTz^7I_IY^?Be`pz$AA*-_yK2UT&}$jK z?3!>EkUe4HC{l#NAyRvKY0K0!;K0wuj=JURx1Kcg>btR&n8`<_8nR<7MqW`dTY-Sm zP)Dk6Q#FgR4o)ajy~=98k&-hI_Tc;q4)nu$vM9yZZ$myimWM(3Wq zd;^ES*F%I4X-l2vJH0^)7iY<`gz?`g6?Ry@ONM{i&h4Oez@3E07 zqOdY$P8yk_J1ZR#f-a^NT*N(Hkr>GRxdDY?|FbALY1A(UFzUKATw4iU3n>;&{%P;y zSa`LzykO4&w zNksZh)@L__pLJnrV`*mr3Pm<|ItUQ(#Emnc1Dmy_=JRF44b#bel*TosmJqF@!Ziqy zE;w+MC(M7tl#8W?!ouC9zuixo;6*TaTV)gcc$yOQL)ce{1TLa8TfX-|VUJj-e3*i^ zmc&5xrIL-XA$U;{QYr*LM|+fGwVKe|5G>)Ji%Qm~fA1b_fg#*SyWFmmh(HMDW`oB< z*}~ak^+ub=+5F%6{e9JZ{p^giu(Vj@cxq^`!CL_XoCCaUb{sQfyd^x2rrrKH>R^*G zFf%q^P)4WxB2zM7H2+OVAd+B<{pGrH>-^jtkcFE#VIIjMOGBzGOCeO?wIB2ie<)EF zN}H~7=Cqrk;iEkXa#a?2fS+Y!xfVV!|I@}FEInr<;In@BB`*ZTRax$53?EJd7#iL$ zTV1!^Vsv77saOoRa(4J33%HQM?gjis!zf|_E+t=c+w(hYugTq)?lb*>bgv)FM!y;L zJ05w2jEKCidWa0}_NM1V6r}cTU;-9r!)!??NXPptFj|>K(M8tl3gukt_)_wzPft!f zCWt<+fdIze!BhoZOvlv0$WS3QnB3IRq)?RrNUOQcV`=#D7iSuOouCLx#iz09@%d8* zJQ9SYML2|CrdrTiu2*#dJWel1lc{rD&Fe~p*w{eiw^p0&%4Pi~w#hjBi*ayjW#eSy zyot8W)a@+Jc50@4r_a*?fE8%oi?BGHve)ta!GZUS5&B8i22&)1ydTsT8vj`CYclYh z&K3`5=$`c?Wa&R3zXM~S-~DLcDCzGLER$JK?zYYdulapEuQWmccNqar{NsSZt=msd&jq2-Au zb~;5P$KH7Hn0D0hzgZF{V(b%G2HAWWuYS^d@LYQrA~ratZ9navgf&)3qt{ZZv!990 z^+PK6BU{Pn$b=ATkSNNgAjfkD$o(}*(+TyT z@&s#Su8>^+$)C+F)ryzDTr#E>o4*+61&<(pzpc^PwB>UbVI!KSh7MuSJ!hAOM+uRZ zYXY;$ZMZc{5R1Q+g`rQ;{`18oUS+eYMBnDySK=={lWf-CKh~T7oY?ujmT55QwKe4D zn>35vq~=vugY*EG?uteBA0WtA$NtaV^O=3e$zeJRFQG=+wR~a250Tn@pAx0pdY&~) za^I!XVeEzx7nj8q?OA4AZDM*+ZJW?MTjc-8)K>t-5p`J)4gtcTLBrtgPH>0d1b2eF z1b5dE+=5GRx8M-m-Ge&>2=2_^+1-EldsR>rP)PUmd-tAu1frM}DPE-?u<5kq3$>O&nv&S>XpMRWU9vg$-j zj^51%^kR)6S8yy#SI47!>KbitRRmr!L@}~Ojc(ay5FBz#r&l&F5}$3EtEQ^@`c1Z9 z6&Um=p<OLPR+U%Hf*e+yzA8ZzC zznqpTI3woJ`>0s!^FT`C|D4(4Qr9BiqL(e~|N6Vd#ib>4LC3}}1|>*@E_v9rZu!r7 zJ6zVKKw$a~?~iVZf;?OaESRrhWOd^eaIo{ce3kBi+dtU98w{2ILpNF*yigdUYziY;n_pI4@0+z;vuw$I z=5M+8PaXB|ZL+e^0RT-5?|;2JYd=xsb2L`AFSiO(RhA=$6iUiK#FSSktferI)wQ00 z?ctL|ll_|4Vu!oF_s)$lba`@MpcoSsRyaH3VpMY48x1gF3IgRhb}EaIeM^_ht1jj( zrm(-NEEbrt?J?=^X-P}_WzK;{WD>dqjt~C&o@n)9Y2x(fVh@TfnmI2_VRQ3&+}`M; z*8#EjAGYF5XJ1xVwB*& zw!Y$^z_%gV-swNeVYc1fR(jvYuTa)4&ycaOhu&t01XY;2*nUZvACLXMP0l_6QwT#9 z&|5J`hYbqIUoa7popP2HQm<>EsczhShio~C%psa4p)(Jw5`Y(nT}1myC$e!Of0=SG zzF0ER=HWLj-6Li7lkj+|YFvzroh5#7n^6pXv&%va`C0?jsl~A|(EIMMxYCgNFG;?8 zJ(Z=&Ov*O)Nci<9ObpYORSY*3;)p`+06KyQKb|d`Y9)A3Zn~Rd))oCJ7H~`EQ5S6=3&dnuJtBv7$j|c(_^&KvV@R=56 z%5_2q6;fM6NuUDCr!C_l8aJ=ksZ^AgkBNz?&~I}Co_-1nibfqfYwI%AQd_-dr}1O1 zx3&#+#L+{5!RqtFmG8#np7VoGXF&l);_&tLHRWjsaHx*%IV&kC)oRI8c;+-yN+Wz> zpqDpi!AtzG_jFG!w<#`LX)Z0r##US7zj-e7w5*mBrfSU-Dz?>ekXi4!vtONaibF*2$Y zO)&2-k;hD-sbFAA_a;*GHe>V*`@jB;f_q2exE)DD>~#ou%ka!yFJ zXz(y}`*Tw=pdL?5$O>lJf;UGdo)(mV^WI!g0v5~>AHimThle4m#fjvG_jB^q_w)h@H@b68|twt}-9RqwE7C1ZXdTbV9kgR~p=1mCT$i zIg7umv{3X)3&qG1qCN=xf6M z{(XP%w~NP^GkVA+`MM`E(CFz{YO=kYlVCLIGH&Ytv3 z&SCTVcfPj{-#)zl^#6JP@viFU#$NE)h4e{NQ(EZf;W*MBLda+trkD@s>Lv5{VN(B3 z6fspTuPM{h!qBl|=;L*2cIWw5OrH(I2FvNjMLpN84ZZ6w_uq{>@izslQc(ac+-m24Go5^uMQ3-N=L&bJz0@${0*({@_7<6Mlx(Y?_$~TI6qb-6<_iDcjeW{ z_1`EW70KnCcXQ;G`}J^U5)+eMZK81uzf2b!9^P#NM$`8R{yMeBf_N;)yqEo<2&mF| zL+~TiYqxF(K8?pYV!tX?Sx<8o)#m)VD1nX2>c7$K+wW2ZP6t`;>wxO)-%|_pL_mk3 zO^X8{NdU045?w@vnmTrxcp z69m-oo=8aGKj^XLFu1vWA+0$S!Q?xlD*jYH5A0mPEG0fZers!sNw?|G@0NO<>bgGT z-)Oxx8s&o5Q{u+>15TOa<^{AS`@3>gm6dj{&krvzFG$3WB0ycCsi_HUUk(oE!2Jgv zV;p$VR{tEDe>nW(P6mCGPW|a1lM7bdUV5I2yyl0MQBvsA;On2s2`|KVA050$zjr}% zG!d+@!S8X3@ZNFBzCi ziAsCt=~;szXlqdc%N#$+!I;LH)xksfSJkNot!_8RkzTl`?^o)Q>=;z1dU~d&9P3r> zxWCiFPrZqf#X(jEVJ7j4w@h4e@>Zxzedl`zGZ1_r9svxg3UMN_%#8t)J$Cx3LfC*3 zJ<6sL{>aKcyc@*O_)q3W1bLD;c1w+)dvT#CZl|H!+x^i>yjvmS7=qWE!59V&mMZ@K z&?|0vdq98)fF$?-dO;v~{XEYW4?^dt(8;WPv)rJ{$nouvo2UHaz03 z@bh0(=KI2P3!t~~Kh_Pm*6%p(hPgnlffQ)rqrIT9NJK{Ju1g~cRP6}V28jF;Gb$31 z&rTgb*pZJb2?ThZx4z_$-A|L__)zSe*WY7dU%9l7k7xQtBxtqu&bh;~5 zmhrwC9%g^2cSuI!g=!#@=jk7*p z8^4vW=QRt|IBNid5IT zo98r=267RUBoSo!Z5%?OKu%(udQupjTD)YG3~p-_5-m@8#Taaae&x9kPB?^(T%K=y z+OwKX-@|KthlHBuxih}Zi7r>wp|{HfM~cde5f&0i)Ii8gDodK-q7Ocghj|sajnL5u zKFO7K&?UG+#|Dv10(W1jp^)N|* zso=>GoFYE6HmDi}vL=xiVNZ)$**knT`BU|D-U(DD3>0Vp6lb z&z`F8hvyZFR^AHHZmj9TiNT!^Y2;VV%QJ_8;(586n|B(prAd8uW0NsDFUB39M@m&b zM<4Gd+dF_`k-_ipOZa=Azn9hiJ5R#T)4RbKQ)3>U7x_)=RdTjFLt;2|)(;$lhF1L- z6(y{6TU7Q}DL!%#Wr(E23NmEjY*|Y+=DREXNH&D$&kOI=Nbbsxm5*3QQg<-D)Wv-Y z$x_WlkwxaKH~8vyHpk$~0r~((Tvzcj)mvI_Ay$gtiJmn*M{iBNpe%xHU#+52FQxLT zul^Ah^`Y{-ge^1Br|_jXKncK*->x13l(c)LvG!UP`$UzJp9PIc*!WTWeb$c2rEWpzcV@ zbBex!v?ejOobmDVoYW8%ZJXla;_&eB@|!4HPQu3Y^mITK3k*Gg56tWN*w|DmH5iiR z>X&VSFY4IMhK+v{YUOXSBZ2n=o;6?rn^h13T(!?0gVKl7hTDIG3*iGT8{ltsMz79I zM^LWF#p;+lV_q7@Ev5yd;@oO|#fRQ_-H1ao;$Ey z9lT3iVXJ7Aj5nS{{SF0~JKz#zh(e^%+Ht5oJwaAig}I_rz{VAt&Tqn_Us~aD-;<0X zsKtnr%E;%~(;ZasP3WkgFiG}6VRe_E3y&i?h)AA4x&#@;f=`Kr*;lZ8*J-|o2XJ>jWT zR;&1r^7cRL0nXxdr7;EmA-AKPlS-oj<6W<%6C-?aH+=CDHNjNmca$guL<#wEIXGf5 zIuTFhKz23;8nNAIWE>X;Sbb zH94K&OJk3R90Bh~FknLeF@zS=ju(klB|&lH*tkbovEnA_jDEFe8p!qamj~dXNl1&{ z8LHv^6Ic2BHi!AgA0AX$H?3_p5ylN>7GyA<@6&&LjzIZ3`XzM*Lzlm@u*rPw-RngH zwj%E4?EkPJ1ptwV^?XGpej+YB|ARH@$^kznk9(x{!2 z)dfKm0Cu8h%75cuPazS&fYrcdoC}~SFBraD-bU6&n$&vCL`su759R%Pwa-u?-CSRr zvTG~Ii6_z;JH<-s@W@cS6OWKs9%`)W4Or^;?(!#3{AFt|aR~&YkVMFci$gR(mNU%G zpag+3Tlc2wVvN4G%)>u`7``z^a=;vJ+H!1cjFS);IYmd{B7d0y7 z>KO&W<)qu;$@$QiJrZfsr)>&YJ*f^V)`>i@ff!cJTEnBS(?Px+jxw4-QYkqw}-s%7L=TTe)8T z0E*cJ>@+X&uj=}YpsAFiD#h82qm{bC_8)L2DkeWO2diWWh**+FXGJ${es(fm7}R}j?!2k=-!%Dm zNR2YL+0On@0Bm-Q@nH{-jvl&!-1+=>9hUwZayGuek=`Mx2i7O#pekgh?jn1OkVL zn~!-HA+kssZHY)5YPXDPr>+-U<7zabQxtBb6HX#6lF4agbaEY^6(@Cgfs_KfWSq1- z*pe2xukKg2d4(9nsZM%|7eSW7K$%0{k;83(UKd^Wf^eB3x|v&O&QPHO-&RaSkMsB=cMIIradY0VSFk;)lrs4I7_Q>TPz?n z%gNxcWeijAY;E6HnC#WaOeBn&2|8za2o@{@mRN6^i9?GJD@NkH;kw_`>V((HmGNN^ zg!gvoGeF7sA*=tq$6{*HM=D%Mi~Vkxx)qAlx0fXk3g;X{8mazs;d2Rgvg=Y381Cy?CiWbE-8rh zTqEr=zX*&*Ld3&+6RH=7ZB9;3M$`|%a%!8+yVXk>A5i+^XF+3sXL#Dexb$HO8;q%d z=uKCW&3eG`piNLD6Q388y8L3~py`lcSd;|2nHilGU0KdUsDcw}{MpOP%g5x)!2}6l z&9w2^MnnIm0NQ%9pF?`J{m%cdI4S?$95adL_5bGrsO2;Zw)>r{$Pp+76U6q2(IF1 zU}pJT4sQU85r7hoB{@xcNeK?y`j^2(3cVj3`}5>i`YCG1!^h{jth|bUCx%1lw)Pu| z=WhJdO_0zQcYdc&d@TQ8J z+BBApSST#iS7IoMIZ9Y7C6P8G?(#Iqc$5ElXs&v&;3&lf!NBEf(UEBkQ$(&tp+!0? z%$3)$Jy(bbM&{8^kI(FQKb+3S@awAMvWjBo4r|fYvSo6GZOb8iK&uX3Pb?^pzQT% zii4PhkkF}E-(qUnV16K@fye8%M90vebTWvCg_D0DUk!Lg4{n#GqOdk|l(=|6b(T8| z@VM$8bDw{8h6VIM#tT1f%TNY1e2x~&o7(tL?|Lxl(3zf|BYd(9u)O-CS*R;t_iR$7 zD)3X1<5ZR5MNp{_PYSs$zwVlZxq>59^A!>f>?%WX@2O4b8j|D2`^ub#g?)keYb8p# zP$arZG>PkCi>w>NjkZe*sJBDAd85u;aBOHz=3Lv7wgq2H0VXEQ%->I?{)%+_rFlpH zl;J>VDCx_Pbk47F>Y_QMjk_KINP4+Hw)x)Z)oz9=6+R98w-Xm_tqP@Urm#f~!6Gsj zXTwrD`C>5ma$2Z#tPJRuCMvK9ZXQAW2WM|qcf<;DjBitjhtCGUZ5GW7Hk{FrV_nT&;sa=kD9ypSzdOpL@^%u~}$K_B|TU~E_R4brrmh)k^dBnOyl?)TINegF2WNAy8Y9eGirR6tbjP%SO2m81?u4$*3ZtF3K?7US9C zg9i{-*$!>*BL3Zo9l4%Y@Q1X4b}^;6J9wHk+svW>yg;6^vZ+;ROoQZJ@$${V_ez-A zfuZ4L{=xrd`byYqu-d-sEQ4rz`8^|k974yAHj5QMm$wuQJko_A9FeH4R8V>;eSX~A zG@|RI7csI1Hh4Kt#+0wW{%JCM|CE$9b}g*5l}#+UB%F<9MNWW>-vs50fFnil5vEaT z4Wz-!5@2wLUdNlLDDrm*fi|YfzY2}9;zWOd#UT`Az*>{_Iur8!QMTe;dH(JAjI#hu zRw(RI(DU)=?7FmG3H>Rv<5>UPhK*&RybOLa)TcD<1nvVdu_(k8lR^X(f%r3qTUYa4 z%;7dVQC=fzSvl3$O>z(_q$Uy%FCT?fRivck95zi9TmvPQ9@IAOYNdC+o{mp!0fBy2 zP5j8joJV1Z#e7q-F{^8NK5~c4&#$w%=KhXx^CQa(0y44NQYOX0#LFa$KV1f~n=@Ty zd3kwRSy^c*UE;7ry&+}Yg+O&)9$Dh>?v8Yut)6))5O_2FNX^si9VYTzsfh5+qrty22>Yx7-Q)-NB4-aj6EHdYd{Juf2^ zUMErCIEa&EK+A1sSL?Gc+of*x2aN@YGvL?P=Llr7&R>pC?ugY%LN@7M2CQE#0a5GrvGv$ z;=lu%`&4Kn=wM@EGdYrs3lV-=E-KFaGV|fD;{=N)%K&~3scJ8PtpPxM3~ zXai(ZAQeNSuJKC|i+KE9nf^H_5e&RUB~lW42rMExFMLpU%m6(iyhI8pCO{*$jxh*C zVT1i7zgKxG>MeaV9g4eUkc=&TM`u@oThxzC|EaJ7Ma0v0p&H-dn*z3>PQx`Y0PEUK z$Z0R;5AlCY%y}I=fbOhX_}|4#llI2w{*5l-C}~U*4Z(@9DU_g=4@pKivO7T>J#3}= zEcyW?C!vSKN-feH5^Ifbwd(!;`5^dee;m;EChjN}r=3c2fA2VQXf|+vxzRLqziFj; zUv+u+masS}lakFEPX#NN4J!yz0)LY3^J* zP$-^V)OR^m^8eimkZeBKceoDESn$}c%yqiC+Aq)K+T(wHA6m+3#()zSErFaLf{R!s z<(7aZ$N8}&Miz7cNLv+$b#@Xp#^P^UBS+E%C@&FMk5O?!5q;4C5TkfevH&wtum}Y9 z3kW$td1$Y0wGDTndaSTxGUxiCB=bpVFFyQz>nqeA9m^_hVOQz<`&JZOWp)uJy@l-$ zF+oF|S}Q(wWE-6ZgGVRiv}jFTlQ>kJ3nnIR)U{gl)YSW24rAni#=(94V)3KD+tH&d z5wg`vlGWgQ?>_*LyE?}?uQNJeKAZgDV-W8w1B0bi6KG~`la4bA-sB2XeVP14P8%;| z6i3VDd6;v9^jC5N&i;u%F84Ro_c~qSP@RP`0RqY2;f+@<^A{+IkddfBx3m1!9Z{q8 z!R`8|nxc@Wwc2b4K&0H*IDfg>OZ{iRpK9QBGzio(z|*;8W?kGVY?UQz0cl|6boSni zpnw}Ol2`~3Af47JXKV{71IuW>U1_r}w-LICRQhu`t@xc^J^sy=q$v!8oF(hu56+(= ziOn0xWvD?;0I2l!>sJTgCje)^|CQP~r~4;32}wPz$8Og=z3p762U(N}D_SsW8JIvXtF&Us3cV$N zW1&(S%tjj;6B6;V%>!d(Y>tRoYZBVfX7`o=XMoQu_ctZDu?YmSGJ+jN3`JQ|$%9o+ zlR>Yx!^cZ`7Be)Qnni6PZ@3F^IBS7+dY^ScbvFbL8UQSR)R4ciws!ieJ?lqIjCmm~ z2WPxYM8x@%jt%+9o^$7UxbeMlHjF(GhKb9d!O6v?54dY%(>T85fsfK zywj@zUelv2T|WC`>FDU_=SEL=8}4_DO2SuRL{L4QC)ITsGwLGi@;Fuz7;}gUY(~L* z2wJiuC24*S`vFmB@UKm0MnQCp!M};E(`6`$ zJSG5LSoMnHYaBdt^**28YlVb>Z>FMhB|exP3PAZ?UN<{pnnfz&qaq)ml8h-)k&&KU zfFIWLIrMd!$-i?RUrkeYv0-%XUkaYfTR}$TQ9=@y9o#pe0P1AQPLMQ8Mjk{s)}kgC zIuH&MIHz1YS5E$b&*z-urC(g4sinHr1ocwK-za~NYZnK2-wmY6Bz3nl5f8CScf|-H z(5uEK(k4f>=rJb_|2yW}{?tXM%KUEGbYSVc-&O%|%-witzdZ)SWq;@kP&90Fn9_6r zyOIoLw@y=v)*}N7vPvTETNNd{kHJ##+}(KSN&IcO^{b-3-GN97IYPeD-T#ISi&tKVSRO&_dT4SU4me4a~!;u-?XDIz8 zL=TTh1L5ww#Es^iIEn@T!h*F92UnW0;(-HkSc5^d?|u%6%8aR;WMY9BsQLM$v=~M= zO;zLM#i}%$zJv?}q(Z`zoMkBJkZ_P;=%lgZ+(cjkuwoZTOncZ1B+bD!X!v}JY_w5P z6qX_=C<&0L8V7<3vO$iJw?WSA_SAXSHd7e6jm1mTC=aknFLf9G58p@6Tkf)FyDn~g zh3gyur)Y8U-dGJO@_f~@=4N-mtfce&L+s~Dt^wMjv=*Q;Q>I1BsuQxsiSGA4@8C%t z{TE{oY~Evfv^d0r#^yzHTj8Wa{;$t~0%w1JACPQyaMa>pzC0&Dosv7ZehA;$TQkqk zAAZSD&CU%W4;Twz&y6NW4T62C8(h?%u#evIe)6J=6_`m&uQcA#)cDjss``s&8=Mtyz3kI9krB=F<98MS+RNRu^cek^=A;O*8?~6r*tNk^P z5jyCFTTZPqt)4UB_4M+c;W5g0G(|vHQ`3ERP)wEPy_*-%UILwr?uh+5|Z?A7BQZ z=;`UZ*=r=|R>W_Rf=RcK*a^csYcZ2X`k79bvPgN{o(~l7ZCzb&V&9)eU{W9>i}eP= z;1waK!61WS0%4G0Fja<}^grG|Url!PGXbsvXBdn6?$82^-Wo!O-@LM3Nse$uFC-=R-pz2(dq=_*5b*CTGDOha_xpgKvEF2es&OrH5DT)GOVA(NOP3|JeRB9K~{P!CA}iCEgENN>@V#99A@UqdpL-E!tn94+gDmI;K4 z5&}y*w4Kt2Nfi|%E)R|ZVYL|GC;fteAkGb`awT69X6W>@*dJhVMyFE4#f)!8PbTlr z+^N6i)J$f3PiFg0{j<6P05$&D`d~%;MOPbZYaaXGbJNq3g)lNUd!Dj`PF~*Lz^6XZ zCj+OcP^P^b;6n3Hg%0>GfG@Cf?j-<1kAi{%_jg=Ob2s8*Ek?gTpGkFFzgW4u-|dfo z-?+e5*U&KV*z%Nc-1+K%v~pjks~%5maNwa>0*VWriXvYnMU@TWmOJzo+$k1iVtspD zw8_K}gIr+1*qaw36k@EPaMRWtA^aRc(b;+368(BGXtaPt1xJAzxw6Hbg|PS;t{avy z7da`ml~oijmpu2C5=7tugWrF7N;^DbWGqVlK!IAbG!?*>tN)wr#Udtv-7(2jMi5zo zj2?T%B;MP*N2jZ~t)M?er+EQ`=r(jR2M6`XXOsU}kEtnRJR8sNP`6F%@OoI`0w7qJ z!4a&#K2#j%2H+W)_5?Eb(J}_6D>rCZiazJgt=k#chxtsaTkmIk3)O#dI{%TfGD7c| z+0GWb6Q|198397YB(UKkr!(2_)H@Sw z>u5DM4aWEFqNK?qBO{B00^~ltHGU-}pl7 zMgcyr;Y$-OtZT2Amvgb-k+5_u0f+bPpN`uVAZ_H9y^G7n(8Cx2;ZF>7Hr8g>S{pm; zW>dIM78>0eT_S7=kmHf{2k#dSrZT3)QH?}eKq}(SU6ldtd(2as_|%aBTJYpe#+@a~ z;~9;MPyE3S{g-<-i`AMO7Su#x@A_d&N=&RV(?DQHk$FO38}g&U``F*tXZtkN=(zO@ zuy;xU(q{d}O4tA<*=Diu%aNelMtOcd`QP5w;|!BpEzbT!4!t~OWx0n=($ZXVQLJdK zrWmxLYS)ygPs-Dpn8usVdBk)nzgRg3v}{NQWvLS-3L7=#Bn?USx^=NX(tUc_8WG3Q zj5oE8vn&Cayeoclx}PhlR7JsH6`X1{M!eb5v1N;_m%036pmTTynADs+Jce$|EM?_3 zio9F*S&+`iVN-UXe2vzV3P946xxft#*3?O3hl!{OrtHMX(w9Abe|yyXmj7>e7VAn_ zJh}wDam0WWLWCy46e}z&D=aN+03Zl`S+yhltWl-s`QYHk0ln4zSao?Eu4XpiRb^== z0gD|3VguD{AxeRiMc#-?&?ciTu_J9$Vxf$qZ19Fo(TP%*5*-)P6GgxncDoqTaD4~I zs1TBr|5OgE`<6^6-C|713^ukAnR5Nz&7#gb1Y@);5$|n;CWljpG971xMKx<5q=C+Q+(JZ3;&bL-3Ew4*Vpwp6D=z%8zpvI?Q6C4n(fyB28me= zA23d3Pag|EE_)ZxWwY?xV+U|D_@V|-3jq@fU_!60u5K1XmpU3L0Sl5VQsw@h#cii! zXJ=<)V*`diKOV8O1k9!CaZAe`ezyE9;!2k}9EovGR!0kwLI$b(^AcSbTa9#iqBsZ- zW5VDEi1z8Aa#xg;EHOV_eJ}QRxk0sYcpf#(Z5KLZ;8Oz!Ce6T`1S%tg`tiXql=4&p zMG7sZAIU6nsdmvHZLX%6>rYibB`hw-!*`?gk&ktwNr*%>cPZNZotI$Vf(MDw+KP(g zfpuw9irl z&iiv8g0C+(p(St0MBo^-n^qiWOqNnvnp{hnD%A#Kg?DpU8wM-}MwHxx02@j9z}F+X6ujT{n@{ijpuHN#(aR_? z?*$*vR?nY-P{`koR|{=?oKj{Q2@m~7J6YGo-i{EI)bIt!zJ71m|v(Pb-f|W&*Ooaj9xsRJ$Gye(ME&|NB6*@^QpJd*6cNNOlJm zw-hTfID-i}fJ_7yCNf!-jg1uFr1q2iSU3r$m6es}^|bW)XdBdco^#g~FDkO?=fWJ(<^M1~h5V%4FP=wn5T?l%$2VM&$) zUabJ23P4SvFe84;7(T*(gCWShQ#v-4z^p5AShOhVq;=W0=|>%Py1WJ&t4Uu(Mn;Ay zdt`)4(tC+kT9H#rY(mhKj`Wdt>`sU=K7j)Idat>8C}Dq;S>$C67$pfg`iO^~Ttqc? zVM3Ht*fK}(ZW#z?9!X|!XnScwW%>EHlqN^uuKg+_!_D(f%!-%cdqq9;67}?Q5F3xLh$^9c(zxj+b+{LgSIDm8_l%y;MS43Ykfy8I}}Fx zuenRj0aH27RA|JK`)mP}GUA=^x~mY*R`yXcUDX)a1@e4~TvW+)1okSBo;eWsR_O(-6tSJVIgfQ&AHSxT~|jZ zUmK7NRu>f&0TgGzW&2bgxL<;69UWod24*TjdESw$DV4*PG)L^x5NACN9NxYt#voB+ zL@=zFk%)vD0#jlD7H38`CY(vyG>m?_qM7PM#MX=^^3x^vq6KQvpeD2LnfFGP&-^`b z&ba``?+Tzn`Tj$Zgxhw>jZZg*4H*9)9M6{%5fNETW}mj&b4CJEdTCPM>&KI7|Hq@^ zNuj4dK)8E3DLv75u{_67rsn5k%`R&zD*~XHoBsEW)6(BaK4?h%V*R4e1rDuN z$nbwLT_Tg~<55#afs1hdqRbf5F93O4zA9v)qpm)$uK9ZVS84L$D(67>b$3?(n_wl4 zlAKa{#jN(mG~%)joWzUY^1%JV8xZeXm|G0t45JN2giTk&BV`w9{F=;=p$60fBUm!2 znm=HA%-Lm_h&cIxgSz(ghdUy{weL_fs7Jnk1jwkuDN(jduV&#BuYD&EQkK3lGmW0_ z=AY%_EVq?Fr1$tpe}QV^{}$TiHzerv?Dyc1kGNJB0$kv4MgJS$8!T-)}oW>G>>bLotJsu1sZ;Z+A*M+l$=8>T}okyZ`kCa9(oE zl1-ud6fnK=;WDPSd$(m|ej$X3i3!+PJvUx37fP8m2xXs%*?0^3> z)N@-de#^J3yYaAaT=bDHy$WAYNdAX2b>XLsN?f*FVvrl9HsHz+Kb$@*uDOy@_4C?7 zxa(;G0Z7So05FB`0+M;k_keNlMLk0m;~d7MqFvehjU^^ME+_fd77Lf?l-I{Hn}JvY zmw|MP_UT^iND1MN+D3e!1WT;`{Y(^DqBx@w)n$-qC%-}rn;Ug?^$-a$-PI=Zg!E7JxNAu0y{zmM1ZXfZ*Xk0cJyK%jnqm>~ zaCh30ePM{8GIsTOg?TmibbjE@MYD8zthWmbw(Yj8p0}S?B11o~qf4^^4$V#gMcb zRXfyZO=gvDSKTIC&%{bsSJy13h2}HpARLu6-)BN=DYRx;8pp=kAj|oH?>rQ_SWRd~ zOcZfn`4{u|zT%8Vir{`<^;F}a6tE;telIMgsTraZkIO!UY*fh$_n^Zb*JKAzA|0w{ zc^xj zTD100c##;}#`4XdN7uY zeRrCR_OSDB%t za^gLpY5FF#Ka|C~2yiy_JhnmsSuZIOA)zAwQ6WJ2a|7moZu*)Mmk&Pl$GaU*hu+MDJ_AaS!Q?59MN4D+FJTs?v*EHWkRaa(@>D2-gP_Sx-Y0-wd3G z&6ETh3!4i*u;on?35uzki&3H|H#FhzS-y#rBH!!*3;DI#yz;1VcU-y_Of~6KgFtUY zQKK5cArRy$xY#ff%`f;7ThW}31Be0JRw2%%zn5WrLv6WlI<6*O2CRzv-4fXTbBP18 z;D;z&zs=yCpUKNY<{EQd0aQ331{E7{#8A_-d%z;IGt%NTFQnPTXj%>osX6427%IyD z%vMCZ(T-rS0K%2sVRjL6GY67iXb+e-`b-M%50&`@( z<@0&z%fnsQhDD#4f|-}c*PfwN)Ib89Tu6+g>ruKGA(z}CpZdTr zI+4_EMi0{=6hO;gPOCt|Di z09&y8DPf=zuVVRU8wyw-{LIfcx&OOWAoXI^Y30*l?Oxcfk--6Hv z{`P=BN6IMR9u?*9fA8s9P8ml7YWQEQ@Sv_kA~uCKPN1B=VA5=;&}!KRgam+kpl!R} zG8_O76C&Z0TJ7+y%|AupOZK2!-Xb-qAtRe`<$fHw4@`=Z+xks$a5gsW*61D(z)C?z zZ(@VEh`yS^zD}qlaIq_Rw?Ra$UqPBuQTgl3FU@UTafuf>T5c0Ya8%T70O$<_hP?)% z7qV^5vNY2({=LUF*GXP-$1+jzKDKTl9|DVF(p8EEE8}mP4PgyD;MHP$*XEV06&8Y; z&73;A%PV_|TsM3$zQApH3U5gLjl_Q`Q@qP_pFkA+yzkxxXKuz=8xW1w4Icpt>Xw%w z$EPp+1U$5V7Mg(Ww*A4+k+`_(-(qfM{dd_|(R}|)mRJv5#lA$Pb>H(fWpmm)QDzLe zz(tfu2`zPFYx=cMGao63U0}f~lro5tY1;S|wA2LG=u!=|WHQ=}m~>wY6XTq*mm79| zyxeBz)|WSbI`nlqJ+jDp_!j=^v~3~$!D1rQ-KC6^2VnlTx0Ka+tu$B_NPoK(7}Qag ztJG<<-Wy3SbX=(DaQ~rd-5Z9U`ugV*@Vm|}XFwK55`n`H2pAH$p5pM&QJSIy7>-ED@=YqN*yR@D>qEs-HJTd{>A1~!TaDg@FEkzqywMYji*Z%*;V z+qs6=P0X)0s8xI51e1%}@FC|B2Xx<7QbSCr6Vo{krsxuBvV3Mrqf>+p-;V5cG7I{B zs%x5JB3_YYs$dJ+{4Z@HjA>G|7AV^9#f;57ZG$`Gm zbV+we3aEf|cYllbT<3ew{Ng9qwfA1@dG16pefUx=iZedop&Mopq&GOQ%~XmT1JZVY z9CO8#QBDUXJms}>! zAC3(%u*M%#BVr+^!i&b~gT7mIJ^FWZJ+8PM8J0{Pto|DG()L{2@74+~b#OUsA`}Fb z`z{#w#rCOS?D}JQ>=15)PT6N(^v?O6i;Kn<%9A5;3SX>; zKYNTyVp2Q)evB`&j>w;!r!e#JxjELs;8^mRUI3I@59q*n%rLm>++4p{%T?wBmaIJh zp3fD{S;UCDT_+!a?}I7FTbzcavZOYS$o6+xg?B1IHGQ z4hl09AJn$K_qSXbForl9!@~EGInMhd~ujzXiG`mwNSl~l7y`?Ih z)Hs*46bfSj6szqVCD=MM#@jM!Cokunq84tP{AG{=PasNoU_Kq;_^8)m%bqm(RMXog zeK<79%B^SNq<0!laprAIjN6(&3Uw_?1Qz9~us{Z3V9Vr7i#8(2#=< z0e#L^L)q4si47nMlX1%D#szcJqQSotm(=gvwU9- zU%bm}lgf)lV9G<$1JI#ubPz&>zO}8ri-KCmbN)#A$;nSgco)NOHrCe%PHqmqQ2twT zoBu2=ak5k0axxab~Lcr)|2UIO$W?YiJo^W^il~2VR0UYq6a4Xj@eCom<+Iu9?GA%MA(8X{vS0GrSkUr8AZ2KIZsSys_&W*x{Y{vW;u3C? zy#RaV*H-vHOEj)|WZ&A6G>1oy_~1)MA>C6MnNnBYl*q1!G^W@gQts{qa7kCKg4!;f zlJsxV(*&rxXrDCJO)JT3zM+@ef2sAEe*4k){D$U{n3vm6TZM>17YcTyX(DO9OBmB( z0-YQKN~~%!Nf;B#1_=7v+a7%X$g|)Z7pCja;R^lXJSiCxikDBVh-gvRvLKbe-#2^g z$N%K#Zw@nMtlAPNLq&44lLtbo(L-8-SU04s>TEQ&Kuda!(XYQ2=8Iu>K&xQru(UuR zuDiX7Ym}HSB+j>Th0#YF5G(bs-~}kRDu45?u82&7l#9!A_q&CJ`>?Q0y5nCg>9ofH z{23Nr^KyT>AJeo||HMXUB2A%C<|Vn<16 zz1ReQM~iG0JbS>&TI0^3q1U5fHSlZiqr@np9}#CjiEQnf^atw9AP5c?0*1m1%L-$1 zK`Pb1Y!sPD1!#P9W+pzv<~DaAwMOODlW*T91!AB>OGWfQs27@Ypur+y)4D z2%!J7JHwvbQ<}#UDt`L`e%nu-GjT>*9l_?Fu?AK{LL_gB<-eD;BZFq-6c(t&tobEj zJfS4<|zO|H(e)Bwe9d%jHII`2+vj{kwwi3PS98!9^P&4w? zv-Y;9cGl5$ap47b&*%srRU~y}%f=#LP(2_x?iK|9ADA|OU7l<`;Pl+Q?|cJ}2RHrE z`SH*9UY3B}zZFytHP;-nZbjzlDUALbwAF zIl1x%7=*_WX7w+zWnoeWzk;`f^AOw%X$IN4c`U?iJpzuh4Kj3j$TkruGSHOXArU1X z6&vAC1V^DvbuxK`?SstYeO|2E_~>=js#9ULqW*k!e~RGJr zS4;v9B5K>Ivc8km>pJ80%_sONMGC!4gnSr&Q0q@`y>h+EE9XBT=JZJzCYmF{Qs-SLlL%jwBIRtV-eX>Tu_+|>ac_*l)W z2`1o`h>=6W&>jg6VUm#-xDpMf*eX{9&aZF4x&uLqor7EUg%LkXZeou8lh^(K>W z*;-O#L!+#D3}PVuS0Jir?jg$I-u&)6*Bp+<%fSqA#x3 zBr;!oJ-YB-0h2SC(X`b+5KqeqPz<1S*_tl*1N8+04vS*ol><$kSMOZV zR-)H>cSHKXa6bqyEp>p);ooqJ@oCXx6&Kbx-zz}jicTO!tRKe?tOD@` ziki+e6gwo;h2kU$ZK=!N#hSq>){wr>DS3W!*Wq=j)T`@to@pbWokg#`n+5^}1|kH6 zHWwX9$`YlDq))w-;iwE=7a_~b&tGk>esXtvc7=kq`TAq+&w%16E7JPsSdaiBRkg+v zGxiWTwm(+MnEopUyqBf^R#K{Yx@`y)oR`NT)XFccWM_U|Ru6EB{tfE{BBNyuL2FDN z@aQSuBm)uf^xf}gcMEmrCZy42a00 zw{4v~p;mdL2s5}5{`+L8c?7alKoK_lwzxT?_)kGb)v(vUWUJPGe;2ROh(!Z+f zkO_p4EUd)MXaT@6NakKocQI;KY6PBQJ%}yd?<7#MPrb}ExjZbnU^L4I8-~F0h68Bm!M&xu?TFmK`X==w}8Vk!A z+ZUjZ>E|;eZAlnd$5m5ycDMC_$G|Ox4Zsoj;^#o6B!0eKJ<G761Tz_D%=|b}CT=4bgxol|ZCK2qgfWS5i)3+Z*K9)Hf zeO>o3b9jNBKV)C};AUDDBo+z-hbWU$@_wDu#3wG3j6O>WN=kZzLS|f-zIetF3DD0~ z4+O#Qws?;Ah%5$Orx&*KHlIb$+OMoPvlTOajmNVxASPF`l#A>Wn4F59nFIPY+1L%1rwQPHaTS3xnGTNQJ*u1+L7BNQK2*g~=T$Aq&wmrX(k3 zS4Y_8pM#;u|0;+HXhWpTz?2JmEQ~;&QuT;`Nv@QsqW|n%t>jD6~!8)OmF5-Hh#Fou-#v_W?YRE}~?Z0BBzPhup66F7K z7A+mwXFs>yT0@8`YLQe3vd23kA3j-JSIbyqnVbs5lD5DVf)$XSa_yjC$-@$bC~7_g z(l64N=%0wa%g{;b3Z{fOXk^f$L9prlVXR1vQxvSgit6f#VucM$1vDas-a&KHcy)>d zUT9W=ED)X2QKB|oAASLM$t|(UwVn57_qLGXG-wpkkXaF3%Sog3egVPl!&`@JfY0x~|K7;0th=J8c;dDn?N}Z75=$Hy%_}rK5ziLOyJ! zsQp?rwRawsp)sC)#3EgkE)z_L(54MBZ>K0-Ebjg%%uIYG10D;o~;eN>*FL_pOG{hBu|b%+)62VhE&{m>;h6 z0p4V<`|&?&Zi{a4fULc*=9i3{Jx}^ciywKM{{h3z!r8tL!R=9dIPqfv0fAj{=QHpZ zK8^UVx75&@sT@-&#!+4tS$5Pc`Glzs_BJwkS}asTTnbwQ+qhT`oG`^*;5=5-Q}ft4 znZ6HOxB@2v3MLhNNqs?5DT9x&pX{=~tg<_nIU)>3(uaSUFVBn-0HMMm(p_i!XT5W&Q=kw%~Li&}pq1 zPT_9J$!>qlYEXwQ$x?v}K|piVk|P}}*Buu77n)zR@U@sJEptAB{RF4##F=x8T)|++ zkAsviSY4WQHMk$(wKCcNm=U;fO01jsl_hW#`+^@rc^#?(-`fA-n+E?$$r7DCJgiQ7z_^dlL*CNpS>?jzV^ls*I-1{}iHCWjT=v~QzKIZsArt&e}S|efb3oWZE%eN$(z+9oI|V5Mq8;~$?X%9+>uqU z1XD(hQK>j&XagkSGLqJOV;O4MbO_1HPmRiYHiiyKZ(qzNnfJM@DXHwLxG!GzO3(umpaHM@h?*>4ML5@e4}YK%bneC-F$DR1@5N_Rf<6*h=yTu)r5%{K_BkPH6# zF_K;}@$ci3$<3AD(<}3v?-t!EA`BnX&4uT6v{CZW<02MV(hFaV$VXC6r4yu?G#zQY z&)~M*+jwI0;%?oSCZ%d1L6U!S9^6tK;KcYHIRD1$atxE;ws(*|M%cGig-XnKJi$_A z12a3fSAXlux886O?A!O#E?B>ttEvuHKB|cS_D3r!E(UhC6)-F)&jmaWi6Uk)^t#z= z-S6U(sPq>8*JI6YYGoDP_6)rY%`NSery)9TDWJa9T@#B42ci#=+ZMFXy{+Y|I<|Eu zM4?v^ESArEjJfj^ei-?%@ynAGYR_NQv)h0`7yy-`5$;Q_BTW)RCe1I+Jl;i#Hi)Z9 zM6y+7Z+&o+NvI8s{Gkv5nJL&Efmy5C1y7oEks?uuP)#u~ECVD}iVD2=FDa$Mo9dRh#W1nG*oBVLRpWU4@cm{&e@M|psR_uU{=RrXTfQqmL^*#WN- zmv_(pHHQ^)ZS1wTyDk4y|NqO2lm@+k*Y)c1a`%4j0kY789vTNA7qF{179$|9or-o7 zo3^#HvwQs-h^peaoC-Corg*D)x^*pPp^|W@B#?mug_U^b;~a414i698Wcp0$v(Y`V z9!!2>GYsxz36H~-gXNyD>V@y_T4`8Fu$!BO`s?-Q_(`|j zV%5X=a7`w(vbr`I3U^UZ4m2cPxuuc9BfP!E-is9)kyK`NN7 z@YoJzSTM{wL;6XElbH?iGfcd0v~;LNY=-FxEMEs={ckS7QbY85PG0&v;q>#rIXG4T9;rCBfEm z|8EAm!nV=d5uLL@xe7byK}uM5gcvMY4;Bt1k?-A`==^5hh28Vk@kfPBXNCAP+K)Kc zxXesf{ilCs^!_u@UiTrG{z=P_hw7O4oWyY69wf(EsNBuHdhfFtHaDlQBg%xEq9;=V zx;Nr7-=hbG1rk96D&-nCyYOt2*!8MFnix2gDJ+XKnG2Po}MdtJ8K%wh6a z%pCAklz7$nSO`mOtecb5=DdydUaha+pqEr$xG`*Xc&*Pl+*}Ty`(@y zSkWWY-&ZZmLUO^u$uPnYdC4wm8JQp0wAoq9!s_v})z*)jS3o1RPye*a(>2UBs=JWo zzfBngfs$yLQZKWM2?jugvH!zSlrO!fT38SniU)8MvPtbMk|~{?*BYzf*a_*DVxlcW z%OYVmSIxrHmxDr0Cp$8DR?QzqrilAo4&RAoj+l7u)JoiRjfh|ilh178+p)1)C7S=D z6|90l0>`?NM`I%q9{=uw`=8>ZE~iN1!{{g$Y) zNCpTRJ96%czmyW3C_E4@EQ6BIqqj4q$=I*lUN;v7PJQv}^?+xOh8Z;8(|E4SJ}^Gt z70EF0y=xraJ^X!8EsEnMcBxb?>nCquqpRz<*&>Y*5$QFB@x6I+`?BsU9VEIaz(7X{&3G`Wp<#f6LMU5|H1M(!mFkNxymyd-4dC? zkc0!1y&1@`1f$*_AUFX5*^}wmfdwxAGYQM3lU6DTpxY3;y0S@kIh=0LZq;W^E+XtK zN=x%1W@Ugz^di-2m~v#}sKsC3^nGH0L2z^6b}scN(+}ihg~nfGBd{SvK_-0jb?tR! zo0itQzv$fpIK=2)q=>loPZn0&jEJmlACWz66q>1dM6qSMk97aRT~zulONth?G_k6i zF2}!Cn_NadAU8ZrxyzFxxFWuR1v`LHCMQe93z34uLvWcB)gOOEsbG$aS9ovw zyb@oEnJ3JRSc|blNyp)@ayW(qNzPJzx{lkT7qTZ1ZeW@V;q%X;G!>z_r1q(3?jZ&L z&1-L*=>J7I!Y?f8?~SnF=f3E%HYB*zWIaRyLFCBLB|gvBDAWYf7z>N#$>$$ImrW?{ z!>PGBF~{GC5yb?B5KUHMsCYHwcvuH+s5Ej?zp>1Koou>9Z(?z=#q(q{ic+xUu%8Wh z3;+XiA?3RoQLGKHS}lp&%5l%dCXf45IhIyh-@ssb;^4p>#3&0)Rgf8SrEsmG_2zb>287}EcnlDxiOID+&ch3LZL54!8JL9S;&X+p5 zZzer$r;kHz^gEyV`P^7^7%jB4V>A|APWk~M$Y9=A@-{*yzGht!fbCoW`uV?Olt%%7 zJr=)#ujx;2#LCZUr@YrhobNQN#2E|`s50m<479pf$C7hT)#7uj`Hwz-H}cmqy>_Kz z*tfSgLMkmbLkT`ADLYhdGd@ulFyld})Em=rTgiXV!s6l0mQDlgoO1ih!F;BHNB2V; zkfP#uvoQWQRx-#$_l^~6)=Qg2<{Xq2i#n~Z0}Xemsow)E(=Q)iG?`lNpn=%4jIEveo($)IgBKfI zzMeZOzHDSddYI^Vn9wtxlb7Hi2gEg|zXIUN3BgH!rAQ@fWf z1v=X0b#}Cg46>?YGudGw?}oiXUdyVo6^)mU6QNOC+E3MX zIkmJNS*M+{eX)}bu4D(KWW{mz5dk7X>zy^V(T;BoyVaBVG>XZADX-nwgO0i&)LY(s*^<1 zewFB(E1$j4laFG_B1EUD$uBOc7t&0qM@NfTp8F1m>0s}G)Lp-mViOMCiY!%T5Fnl{ zas7t?oJ?*$YfFH3y{gZRZdk3G$4Q%V_h?|+5H^;6$q+AfF#I6CEzP%we3s>8t02pd z(C7jMDyJRjFV#=FdUo7#`huDCS!6o5>*k74ef5*mxvf-?g}SwL{Vz1lq3_LBKn|%% z{(F}4GJ$=Uu~0^VzYXh*Kd@)u?DVnbbU01R02hEL`lBi!v9dLbDi9EP1WD;>cJw}ym)lPp-NcAlC8;fn(qrpGCvFD<%J;)Nrb&UM-T?y2Z#3mDzGx;0X`1Wr2YX; z!|5QttJqloXMJ<^xAO8**S7Y|+rjgLWlVf3zIUUssYS1+-vYeswe4ntOnDF?51j8u?NlEe)dq@9=hB_X1+7m?$9F+PWvA3e;vbzRZRbIcW;{F2kv}Ha~hza-DqY`)Dwg0y0vieg(ugP1_ zWMm4ZQRQoU5Dp5e9<)mGH@7GDO;tcJZ&rGHXS}h|2=U16`C2RCNIN0%rdwKuyWtX7 z;M%7SBq0$?XWJ)9(YB7MK)62!0~&5d8igqBQd*-=JK8LnzBOYGWBq>TPf!fb5L^ z2LYD|*t7#%33g8a z`sxGH>O+!_vByQs{2Yc-rZ~qVyFD%-tc;4nyEs)|H56yeiL+Z}6xALyw0v9-IH-l> z%Lb#OKU?eT>zhN^sG9k?7;)6Oj78B9)EtO^?G#kfN7){DMThUMfwpC+n9?LEmG$Kt zmrdINd~#G%1erMkU#*FnrfuRBL;E$x1FL zHZ~48MI{RK$Xb7-6u6SyY|Ngu662r>W$7aQ`2qz@t7Mr!L6ElTOqit`+nYg)hWd>* z8NUB~uXfH(M~>)x3k@&cJp1giTJ6|Fv%6n8tskTg491yDuFXu*%aQlO(J(^bGrKzs ze|)>za`onNLAl&v4tLf6D8z}=q^$V))FcycVQ?;WX|*XjimFyLX@vRPgevVwD_WG1 zw`rTrMKv#`N$T7$spoGUuk7E9U&ZXD-_$8YXccQWU-wh&)J;v|$|?~zu&CsQ>_+3m zzg1>igSX)v8H3DL{eF9CviNR!sJz6t){-cz2bZ$OWZZse6}|U?@}N~biLNPT`dt9rFdq|_O33&6yll73$Is7w5(C0`y$Mer)nm_|7n;o7M(i{yRre$6`e{#xAk;&658_B4g7RIgZqUtG9C zSY8MPf|Zj+RG~Jj19@2EkCRn`%obXnn0N+89G}Z$ZyvwCpGhaj*6C(JwsROl_?OJc z4x(D8Z0;(lv4oceA!b1X#l{z_ch{RW4!#!aquB?L=nLdqsx^?#n)1}E^=Me)uGRNs zfMY~_n%B{>jY)<`$~F>51S=Z9{TVlQ*FixoOD(wbCj_3_=`Msx`n;OffkmUK4KU%* z=`i79gnckg+_kivBnzi1$^cUQ`kU;K7`uh4iwD!jg3ePV?sFXg?Dnt6$L?}+pyB7M zC~^_4hSBv=`Ya`yz~EhnH$&HT)vI27>0>=JWE+L8oO9pnsjc^(Ydw@KDKN?nGQJpk z(HP_B&~VrDw)Vkg_7r}>y%MfkF&vx>Jel5+JOrQ*p!M$R3~(&&lQt6W`|V&_;;YeR zzii1=$SA{bK$sPhZa-~VdboqdpwdrElu=>uV9s5t}y>4h=VO+i(G z!^+(z`w!qq?~dcU?zXLxVF z?J>H|#c^ml2#q#W+vFYI&)%(Q_hr??2pyF>UGO&zAq*#x?2;+C zj~0mP1=}x}w_AL=AKpiZUVH7;-wcape=|eC<|Ges0urUv z4Y&)drb2NGcmwiB8S+@$A?hUx9iwsKDAJhdvL3a~xleRn@0|*k==p42o_t$+w>%S0 z44e%aAjNHX_yra!UKWb{mRBuVoKhiQEf#)i{I622pYo3a`kTv7nw!>Zi&E8`#c>K7 zFv-NOKW1KAg6|pFg+TpIw|nc=0>Rh~sHcRg4}d;d-3NP(%&qMMdPA)TJB64hRU=ZP(4$7{#`qX#*xU zM(FQ8;0TS}Ph1}uT`%t^PJ0U22eg-Nm<7cL&Ff0T5wSS_$X-YRT(we{1QOTJ3PdqGd^@z^k%XZl{t69aPJYm??|i1g|E$PBt;4Jk5+Vju zNfEn{7AE}f=*>d|9sD&teU^LVcU*jT!T-d7jgI&2bsiYTftK&h`F@=KR?F@q88Ehl zv9m+662|q3k*cTe#>!0_Y3X;bZBjIk6I0mUEJ0*sWTLmGrl#U@JGseuynm>a-{@s0 zv;z9g7^Gv{Wct-r=Wd1fJTf`or+=JrysF4q&yb?znQ@jKp>MvZP^pOuk!Q@++1%rq z8dlX*fRJ<)#QQ_aC_`INPgS>^M!&g=zS*MUaXIgLVCX$K*3eZkB}CFtDq$1^@)B#@%Yfm=Y4Op0jWTIVj}Yd zH}ouME&BVJOO#+UANweEY{FKjah*3e6Qw{r_jG%cg-N3*n+(!UkA$NT$*Cd`ums@m zJh>J5nYJ@OwfHC^-`oukh`ZN5`<$K*4~qh?mwmDEp&YJ?;7>Adngs^lL~P)6&5olB zQZv+E;rq$pmKk4Igg;S87yMhuA8JL@i-Itf41o?J5D3&@wHHtbg#LU=Q|qTCCc!5| z-!4TiqpRvnl@yVabbS;90|QBj0?HcB3!mK9<(5!pMBurcEdE1uaxAu2x#wR*O^!(k z*}ln2oxfxK@}~7hCCAlOnm+bcwJF`MmpP9bQweS&&co9f{~rl*-&)9nPw7tmg&=u} zLc$lIf;19Y`L%|e#Bs|)`RaZ8Jl!(Sz2mft{=(UTr}C=fgB1?I$AP5X?d17mpPhct znlJXS##_6R=d5aqHftUjj4gplQW#dfn=3>MT>|aZuUBPy`N7g6s6<})K*rA$&21Tj% zgU@g{>^TxeUG}3Uiw;RgjFWb+_dr1AJ&F+ zP_ZHZuBG*PNQFY;59L?y+|tsWW<#fnWyH2F|MOKUvtzwD;qu&@HZIwp`2-f$fSKvD zJOuHsV!-mWm*IEzZTS53Q>j6TNw8Gk2&pGFqx)o58>1%vE5=}q=V8)3S+Lpx$W-!6 z*Ho*t!oEqX_yv;7t?8#X+Y`?CDbBMYNj_(yOHoWv!oF1}AkK5)d9Tco8@4Hp1Hqj- zb+KQm7+_pG%9Pj*vZdrmQ~(Fq-pEA^jx*!ehPR#u^N;K~t~7O24uifpt-pTX`(zLU zLd8!1f#!PwN?VqBk}4@-{>o;CXSuEJN!?g%53UNOKv6Z^ZfjHTV6#qZ>*iGaE>Sij zr+Tr(%#l*_YukvljY{kZnrZUWN7hlL)M{Ugl*;kjo;z|t=f9O1U3GkXqio?7`~A8{ zr}=nXQ92YCRG>J6{E1*Crlag7@l#-~iQp8w+xnXEX=i(-Y$xSXp9b$^G@lA-pLJ_1 z$#LUzEL6mq7o)6zqG%ZgVTgZRz!Qjb@<99P8*VY*!S$4@-5WDKf!C$L9XZnYyGcpp zN5~*dFpHrhsq7J{fB}7Akp$0%cz_}s1 z(79QA+a5_@3y~sCU0~pmf!`t=z8rQ_F^>ro!3KPROvJFmIh26rma}8@zeKaJS}v5EFYY`% z#eItP=BZ7gJlBbwJB_xb`iC$$Vfc01$b&QoQLfom1_Ul)f1 z#n`JIes^al_ikw*{^tYhsamdFZA}dTA3(eG_sw%c+O#25*gNA%jbmd>2BKJhbVeEN z4^v za0LYl`b;1!455okf&oF1DPm4wEzCq^4pd-?;B`En;p{%_f3R1-*UqSz^hn5Nc>WE@ z9_}RdKk*s(^-iG=M19 zaj(xmmrkGm&Scx6LtydxTR|!gYKe)f*}^kREzHIHg3ZpC?p$wHbqrIs255XHdG0$> z-O>b};^KwV(MhmBd*}@W3Fa);b*6!c8K5UUOk~UOz1*nXnhKSC2ZAckZ>sNnKvV(E zk~Gh&@w_yL7LS9!UEe_6Xb=JW_g$Ommb%-Y_aT~K3&1Wg{MW0&x_R&+gENJ&ww?M@ z+Kn+uzItI%5o_kiv(@;ie^VAQH{R|hBWMIq9S^#ar~vx~R;}=!#jB8IA!q!VyN$I^ z$H%J*^NqISDd{hIDM#YfM&L#LK_&dwI^xflJf@9|>Wv+#jXq+*0!m?6AHq}fot`n#gxqcEk?@Vd2Ms2Ot2%d7n!}nS6NRaiGK#KBD9_M@YOElIFbUr#c zU09prOk%Cig_83}KFe#VVY@x-x%pzE!oBp9=6h)P>2r^qsgLVyINU)puGkD6@`=67 zWGF`ILslU5O#+*Kr}~+%+o^9guu(U^9Mc$KH@*ftp}XA{vz2rFsAgjJCaYF@yi11= zHXP;3;9YENAIx7dpn`5x8UvX~?D8h5W&6zU{N}FdR>IGBX9QGPX5L+oj_0#wc)e-X zqNmh9J5-LUWLnj$1cVP4ipy|n?b-Hh_2N?c2TvOvkb?uXZk+GVD@nQRl?0W5WVkK# zQYD|r0-_%wnJ8dcNSJVCSc(6xZ7!JhJ$ng%5p<1mGL*J&)!y37$IO*T zium10f!t(KUuMyqz_^R$O-7)LD|)SKI0{E!U4tf5c6)-?2WyK@#E{(AolIOVb~O4B zJiX;liT#(Wu8J8qLnfb^XEJb_2QL7|xLw(EKWyg`3p!p`_Po(;y?yq;MAvtxR>`8- zV49pxM$(%O8W|??k{DzRBOuRZBsFLD3ZO*5%Ks&&S1P=qRkaO9WrXzs4rRwlGc~}h zbD(@`cb>8&?gONLG`qt@WA3*%CG^qan|-aEo*kgSn_qL{WY>G3-vuLo&BR)f4S zNB15ZkA(*LqXhyVY&DvvS19fyA-BQx^IJ;d|NR|RGQk2t(CJ{S*X_;O!rkBg#EfNX zw_e~R5pX|F<{45}&Lc6PyzKraxlU=uV?_y-wB+Gp9~`rNNr<%d+1O)WsC?(q=n2y- z3Y)pJmr!7ns^d>7$f9SxBiQNjTjH zP978lgo)6;-5Te1&b4!H&U!fYVIod~`jW_wLH7&}SG~|o!;q#<{*$0fU4NMzGC>@f zHVVbwgz@39cC$j4JG8S*&pE-rC{)!0$-Ewi{5r-LCmO@+`qxr*&W)lLABOVSnY9u* zNzkGcvdIW-WfC@d0{s2A{MF(5rqG=ntH{(Cp3SZD9|Dk(7*uK|9msR4IV^=e)|BGrX+}?G|%FV^lZz=wSgeJlUu>KGT7T#bekx zn)(uEUk%Jwt%AU{EeVyW#xWUcGGRCT?l{yiT~LPc@i}et7QYEFWenuc7+LCAlO z>;K>mmO$!pu=m;HQ|&3+;|!O3rM{q`Gc%oODPAA~SK5~23C@fZPf~wgTy`?Yo5iXN z0>37Ea2z8mdLA`qzWbX5Vj0dVdl$UiL7)?;gaiXEKzCEQ9^K`eEbXVsj)(zuUYb%8J9*s!&o%(&A z&ls@oj&z~iM2$hk@<$=@r$LRa`px@TlGM5DZ>nqTNjrJ2Y3GzOcST(Hivx;Hh7@MF z{wTA2AU?f6c0d3OVn@<^#u>WPfr5(TCGyAJZFa~&ZA()zh(dMk%GH<7Xl5~8l{H1F zMS5a|k{bpOSfel#WVK^PAIzf`5ZJV|fFfjM5ZRi%jrqBaU)Sh)#{q+CGnmW+E~@o! z03=@p_1$&1Cs7O3X{gGvr!RZkCVx*s;z+B4O;M-`2!;01O8sGw=fdH2Up5=~5*22n zb|^jPfb{KSWFcD;w4$zIRpVpNP@(N-ZG5p+Jr_l@mgdGatLY)Xv!zxwjU!)?96j3y z9QrO@iPK^=zaK7nB9)`)TZNof0{DL}OSLwzzmiL;CFITMD?SaoR(K8RXZ-^V{nqJHE?jf2`Gcesie9b0LB3%X416lt$W#|lVaQwa5g($ z6(y!@cv)_4`q)Yj^gG*+J)TCROoWpY=6H%|>KDd_slw6GSyIarn9OXwTLlua70p0N z7Q-klm^&##2gD*#FVZS>w|tOSOW~#4F0c57=XVMAlnXC zT4quK1xcQ&x;?B&FvIe8Pq~ zWu%${9*vmy@%|X*BbVP;M=$R8RUpo*1G&PxWp6C-AlD~-vJeQYY)d41xnUQ`ZXL&; zo7^6Mm7u;_-c=AAK_e{XkLdL}BQy)V^%iCrvm;d`8g)5c)oDVVz5dGdqW)H*dY&d>}R8EYZMh$<|Qn9SS>%HM4&6sa?>@^y)Z@SK5E8Oh!b|3I?#97tdmcMuVNmEQXLXO~gqTzA%{uM->2!?!V)4VM!y zB%Z$9>&1OJu1`seDrpLpg_QJRKj72Ed$Y6f{UEM~Cgz#LAm_jJ+?b*vO`j86a3uX@ zGwUy%bM_q5n&R@`(j$A8KqSXz*Y+Bd3Ka#GLoN=nsMX~CllcPbizm?Q9gZvcy>oSv5`(OF3?h+Hw`d`uKBm2DbX zIR%Kq36Qt?`t>W2Ujit(3#&}r{K?__2)8OWPU@#_#~^HK4=6){A(km=ptAPRT8Phg zrKcL8#1Blo$H+A}la};p2;+c)42zfv*ad;syc=!r#%iTEPUEZ6n7`_2wyvD5JCsTL z1&R!pQKGSVPt$SACr_*d0HuYWO^OOvZ3iZ!YPW(&P|^>eV-oh zXvWSyMw>( z8#si7OJ}*nD8aaU-&y0Scie($)65HBO2p&%KN%4_0tU>BMfX;pQQzvVCcfhp4-2n@ zM7;5_<&_|kk8%lZHax#s9AOC%>|Fj2GtMk2MKs*pYV!$PP6eA3n0o@38kjMehZ~yK zP&JM$RH;uDc9$L8f|k8mpyszFhSG$c?7@vIuqeOl^6~SS;`(VbclwBbXXXz*fwGRu zfjwwy|756UUcuh~*eapUw?1}f_Dx5IWhgG`fbX-y8CvVKwSNl$Gv1A;d@)f^N*xnze?$;4Z;MN;n-Yp_bIyt(#sT zGen>&H;6zij=Kngh2n2+izCdOB(@Vt#dG~sHv0c0MSCB=ba0RWDx+4ff9@tm-xj$- ziMv%UcN`p={-tI{QVKqT+&IY>DED?r&FV|aw2~xz=xRI5{n2bEKnV?~6~OH@FVtjD z4CDrbg{{zWr&AvnMz>8xz(KBwuWqz&hyXVgMt4k0r8(~Vv5_k?VeS?LjuZU6e+)OC zZKbr96!Q%ZlciLtD&}g1CNt$yB+ZlC8jTl?*YN`}V%zf1grR(vZLxkgbFI5P_A#lN z%C1!uQtMm0jaMq}G|nrPT7{drF(Q{q(|1lfQ$KFGK7vvP{}gv@<7>+FU-O)=;!vb; zx<7=Wm{~tlT~)kDnpQJ0J1g|M-k!_6Ayz0vz{uDQVST}G`G^zyQ6MO^FnVrBO9AwL z{fYUc!(V=X=@+?@FF*_&2m)I8@}>XbB)jXwV!i-Wwl;_i_9$;qE(GNVs+wl-NXvJk znkSy;`-0TEGGcERoAj;*SL`^KW>-Vw-KYfQSgb;#_J|P`wG=$7lJ@qqT;;y2iSHmi z+ve6Z-|zT!OnAQ6M(LC$4$Y^I1&pHR#6sH!vx3Fc6i6sgB9N((%mbWRL_jg6Fh?ze zadxADC&^%eN=R5L9o(e5^p;3DYILsQ_~HR5IU1)fuW>`l0O93Y%_|Lm`&Sck584<* z=-SA_a<(PHq*zy?UX>DUVIdQ<^q|&GM!SA`-H_k)K%?m3>2pMAb8~qD7)V~p-vay} zmP6=ZHAkA&M{J#~SFO#fjLTjVMxYV>6<)6@dv_8@nkZv%yLSTqr~>h%K%CZ8S@$P7 zH+s=Frg>nMR~Jri{-c7YJD5thu0S&2)JK9yt-0oMH6-TgCets#nC={9-g$!vooA16 zHhfn6(M~0RSd0^xv>tqFj#Xj;j;*gssgZ&GujxJvawf-7VcV}KUEfCq{4CPC7e%<& zag>Tt1k(9~*fDT2ECBWgSiGdfP8UtYMy>`WF@ZGWN~xXT^6-r=fj-}<>){bWKix$&!tfY`Q5(KZjDIPp9jL0S62LY`Pw6m0>H0<5I zsfyoEoB?ExYZbVSY1PHghUj9e=V&rVOCBm0euLYAqVED_Y1a>_X+;!UTGCOOqh^z< zqj$YS=ie?&9DH>BC`}wOtRIk);*9>p>mvH8h56k6|1ouzVNr$e)}Nu9p+j;A=~h5$ z2(>(9Cpcjsn-60km=t74(8UO=4&H7f5JR>eEA2oUUuUweCFJ0}O#x-gVp9 zmg{@tQ(o|(~W#jBz?aQ{rBcge$F3GFC zzi5H6bjs5;qx`XY0at@@7C$9T-n?v+Os5;d6KHO>t0y_=WVKVrkq1deV0EX#44TUL z^`ghavzP8Q=CJp^33(oN`Cg7ZXoy2GiNuGAUOXUab_28a+m~&ZWxpyHH0EF;+elgu z{E~YAtj(;H9UJ-r1uChI$w~*oHIYW=Emuz&xjR=K-SH4HnvKvYziAWk|GOh0;XG6J zKy^&jbMQJ3+cE!OI7F8Jk!yK2IzyT7Wr)`IPNmKUqslBrax^q3qtVk&2PtIx;6kmg zzoLSt+Q>4W?;T{W>O@#S_8wjz_{0)s=pjQed22CP*o!;GS+;CGPJ^OSrC8%=Opy71 zKHH{pfGz?eO95HoQy>~HxobBReKboDWJBfaZ~&+Ws4Y|i0vPL_=>HmNS#Z%eujEV_ zNjUrhWC$_-%$qRsdUT=aN>F zheZlRtBsCFeJA5$e@+HBo7@;bPA^PmCNsehM#Kc)u+n28MM-E*K!t93yV&)mP|!lV zAo-cuzVRwh$F-2X$uT^S#>{sg%KOBt{1NUCFwI}o6C^MRF|?v%Q*3d)3MDdSuDFkX z0dK;3|vnTUKYRv}6qe{~6F-=8jj?AiX>-*1tZ@T+g za(|1)4b;4b`YvNH)x_slUVK#Be`0o=@C5mB?V|cA(X1H^Gw=lis}ZRgy?~4ts;qKj zx=#mpTg|BOoRSf=Zux^>@z|!ZO5fom?lcQ)kTQZZ)yNNCEeZbD##2`3c7 zgNada`Y5I*EEx^1UbXmQog~X;!k(3LnOqeV;Q?Z2GtwZU?$@e4?C7&Je%o*SrtWi^ zm$`0yPyYTvpa=wOy1$frMwL387a@NW8H^<#B_#<#;w>QYRxVLbwlmP=qV>2r0%7nB zZ3i;-i}q~~?49$wI@;I&h9&~e-_04WVzt(N>!g1Bv8IMq*fFoFf`0F_)Q~x*Oai<( z{oAulg|m0eOjl?@9>m&r+o@QPQ6qL;weX7t-!pt|+9Ky&Qb|b^Vv}7PSS%GC)IST^<4W%`4E?|pUmxHvy|zc@2jDz4=X!mKp6QMST; z^oS3cfH?^;TT|qlziWMWJH!22ly;a{wKFq2Q^K#MNRLF2Al+&kgJDzL;Ec-4(^>c= z=;a18^4*kEaNeClt{)*}1f^9;D!?t%JxwcY&W zKf|`Ga(1qk_4CC$&qMlLK=gRO4BB{cV<#vrb^R0sMyy1GOwcYzL_$bUN(g1gb7?8$ zU#cg0>LBv7%(S|BJsLcocSL%%fSW{nvnHxugxhCw=FjABhGH++i@$N||Lh(oNE2DWNt)@n^r0QkI4Hd(G z>tqtLigD=%2tafI!o;U`3&gMC^d=yD2#}i4amWw-{bcwuL~mpGqc5i}$qcpj*_|AC zc`bB!6Cf(7flv&T=Lx7t;bq?8-3c*RJ*U`oL4}VC;XD}O;UyRuw zYYJ=qovx!($n>4(S9}g09@`I1j}zp5tyeHFBpg>WtH#Zq?mlZUe-xc$Li!B_4H1fh zf=V0-fwh-oJ}PX&Pc7W5>D{zaEY0`@{{4dmU7WOZ<>FS3*2`@7+)iCj8aWers-(7} zO(;q&@RP~zRpm4iK77dm}oFvGuVh7G;fT9_I=~ML}z*DJoi;33+a#H zIPy+;5fYRj-tY{tI@<@5Z;85p84MCW{a+1l6@g;*@ihzBn1KXcS1{NWTyoq1a(nP? z0w#A5IYrtlMs+H3G}V%%hO>u>1F+QVRv>!txXopuP!s~NXnXJ|JT%q--#`NfcSl0L zv=k3El9q^7*Avco?gi)9FWHPBkmo}$)KKA&XsNwcW4_5Y>qWrx5Cte*d~Xm}0pval zIMHP#x}`*~=wTCBr~Ihp#)(b1F>z8G4ODKDa8@?NSb7CP%EW@HqqN)I*6%c zKdQ3MktR?e)} z%lwrWY-0ZDt!gx~SobXnT{Bx%Cn6A4X1KSE_`8>alTo=Imfj2UgMGl8%ZSyx#*MSN5IS;QLEE)5Ki56YK0EV`*P1!1EJ(Gl z)cavNQoD@Vh?b6yWp2CW`cE#`?8O>n2!(Qiv_wKuXf(vX=H&TubBT7aua==P!oNu} zr-Dz?DoO(qNVibS5CaRVc;5I8A{ESnfdh+lLhZpo-`W$~+S*l`uni4LDlzc?u9chl zlruxwpM$voC?N%Ap1N*fFKOqcemfH2K}N!md;0u^7d14rkT4jD5rU)<91Sh_B#WRo zrp|O$!*}%%6cnHV%6qwh3t-aTZ`%|1U-~C@@#7@mZbz_bSyjM`1Wt@mD6ne(<9-agZF6&xZ6v=k>v1Fb|NSq>QC#&C0BM2DZM{z4mWFfS7r(o^7)QgtwC$`G$pR#w zc@BOcm(;I``nHb zyw8Pf*Y_vcE+tE?9ci|dnDnuXFr?4|6dc7Dr^S)&H?ZKqXkxIBLBL)_llYWW(ig!J<6GP2$IhJ(R-SrTj0;a3yr0K~>V+Sl^ ziw*S*v|qm#23vO>4)@_5H80PfeG=`r5fUvYk3E*p-iaKvyBN+_t?aOHvO|<<0Xe$cnOsPvUPcR_|&314e4cZ;#VJHQ!_F(}b)~JZR8|G9HBeEt-f8 zH_@z}B{eS0XA0t{D=8`^mJ%YI56~Ds5_xKSv*&Pd zKl$F?Z_x7re)I4Oy*gN3XGZ&*ZikuQFcT9ro0otLCxDjb6$o+7@jnD> zkdnatO2y_YzX z(bk>=q~)kZhx@N)z>bE^)eO3hJsWL+$D4ln=9PH%HF7sO!?$eyfeek0ot@%u zh-t~GU{Y2R7)n078S(X`sgbgUAXab&%vEl|ZSf26&~T{gu>X<>?Pv#F50~cndKrqfUEF?TGPmX^Y_ zYcf7gRAfC;4+08-Sxc@lPPcSIhgzmfm94Gq@6MLHQo~_q4HkA`n~^ytl&H>qY5vSf zR=Y)aC@_Q&^T&#qOvM*ksk}JW8U4*tjNgh}zb!}x;ygithZu)EGV6EGQ0(xduUoW1 zfe_M;$CW_-TMK|A>79`St!_ZB%_%F-`;3Vu{WZNv6q+9{&!VBdwb;A+$LCj6n6{zI znaXP0Z|YK$vp?S#v$E(Z*8_Gq8rpQCWs3;0x_NM5zC66?s-+iEUOI+`0cUP={%4O2 z0|4VH$KZ4hXs?UxUcUP{9Llcrd?~T<)lxhq1$=G^lA~DEO)&W)7LlS_C4Y?dl5QH2 zE;&w>t0ZAI=xMs~;<9t4XVc|z!1+v#sT{TcKYAcA8wWF)``1f9CG@AN-`rkNH!U4q zy;B>IzWb+}E|4!un6X)_Aaa5$U8{qspqvC}J;`*&2+p@wkHj1cRl>?yh*gn=8*`mSO`FQN@A?sfUz3cCn#d!pMlzD}$o^{*Rosy-Q7~ z8*2&2C~rdu-hK@<`XL_!4U`=pi+`ufnlkxH&AH42rdaVd;Cz~vmd|oL=RW;@M^jUC z^nRw4=HCXxH^H@6$zi?p10l37&00wW(i-Ff?$$`-5TOD(BT52tC?OAIyxVPgQ~j-+ zi0g&__B+FWJd27QA@YpQ{RDF0|Gbmdb#qx!UGChI2o|zH2K^k|luKvCdo-y>yF&qD+up<)rUd{)bAprNE}1+qS1hXz>-aliz7GA_cM^p$)x z@{5W6%E9g~c9>M85DyQeJ9uT%z=Ua=M0j{=*VXXxmJ(4^ z=&p~VLWs+Nj*v-2-_P2q+N*Hy=~@ut*8B6bF}b<9IS4PwKJgXrGQPdCWnKi?A4?1C ztyRf{!d9sB`WAfyf{nKGr+}ZcAJ7erpcMx$pz=@k0#tZ%e|dJ6PDGiT&l`5UVt9js zBdG?Rs2i_}<1g z%=zyu{Q2_-2&JFH6MAju+kQ0S#z?M&8Pk@E@uk7TyCba$J4Y`b8}k@|#L2Z0LqHYr z_vn*nBm|;=Q98tn?1;T~=1!lKuyE6V4S zj18OhTMc6+f(nZU4`msX~P2Cr5?d&?%quEKh^vfFJ zzL@Cl_Vn~TVBA1Jgy9Y7A?&j#b$5Z6r3t*9l|gPHNW+~S&k{TU=(j`B>aMPPz(#BV zZOnPlD8!wAvh!YPSSa?Z*i5Ow?!^oWX2IGE~nbazRS z;ZKxh0t25}8890`Mj^!~2>2`F%8H58Q(&yF1DokOm_rf@-MZ5t^+gBm4PCBs=t%Tf z;(GfO9V{6MRzv_*XTVWvaCQ9fr%8$n$$H~+SLYOE7!N1AWhQsWY2vJRZgc-}-1O`M z7EXTqjHNtf6s}-Vz-O5BX4Q_ntE58nA+ugyH@bo(hgM#<9M+s0Eg&O+M}&_zK3l|N zKj6c$*W=tL=?Nn{Fv%-L#fb|)1r65XNP+UZ{%*f}p9An$dxg7x*^n)H@8Yi{yt%2u zeDzzgd~K4`v&WqQriH?Nr>055m#Z0MxhGFMT7HgQA9US=-xjCxP{&Yc6cI?Mtypb2 zLR*$#ImUg)$Y}cZM>q4Y0wY}?a=drL8f;NqKIUH@u;gGIu;+L7C}6Ka>zQrcRPzgs zO~)!x+7>z$1Xd56`V*l*g7dTjrE*^K$u{-LU&CCtB4iS+qi|i8Xpwo_Y|P4={GQOo zc~ofy7-@2v+}pS7-?ciKredayv6Z1Tfq3f`0x+H)3R8_Ml$f9aIytH*i(^C99>v7i zr|gnf-yLPspVk-13@lGVJ3^Kk-?1r8r>e{7Cqec34-qy~I+S&Gl1rzHA`j!mv2^z} z%*P+BGPkRc0he9T1=5pjWP8zzBl+$3v8o5F44)9s?DTY&JmW>iAT#~&@G#(f`~yAS z-QsHNpRW7W`FA}j+L>n}(slFw3x4hcS zuzF~fmu!@oPqJa}`TL8Mw%UVceN5}lWNG-{Z8 z`DMbt(dm1p^J=b^61qwl@;SGYs7Ctgv-rh~$$p$-F$I5&zPuJ=oottxqV~}9tE?tb z-p?B~$82|({9TScmt>4dT(dBHlbYEp2bdEo8GdoE?a=m376`LwxYFqHiO()xA5J|4N^IrU_47i@LAOMvb;5Hy zoj`b{%)G_^RTw)$8W(p1$gT&$H^#l8z*_U3R>EJ6@&rWVtoWXc1qB6xk-7}L#%UuQ zL>3+_wYV4=8O_%g@6J}+0AWv6qx;RjBd~7eU}IZX?l<9G6i894+EwHt=;l+QM}c2; z9<*}72R5Agczjp!%{1n1pXN>s!jJN0qIsE>xkBkwz|v|aG&jfdIBLT0u5Pvc zCK?RL9hRD%!i4L{qGSsLG4331P4UI#F`lFc3olSm4tt#G(y3neT9^9nCwp|@88q6y zc5&f{98M7$FH*|sC;zTw;(_plzgY?Ek)$(t^Wsi2r;Ia8a1}U^yZqMt1?_7v3;S@N zv@#~1=_5!@!Z#F*lyZ~X;+d1Yl~VPRo@{!ddOH$jJoOD8CC{=*aij=>@5sHH^$ zadma&Fzmb;c;pZx1JAwvYw5v#>AyMO>30o4VI#G*wLp>vlqc5_YgJiw?> z6zsL%k#atyuuFUf^@P*juExkHywBD*QR1iKd#G~`p&BqH5|+cspvYOk)46c)U!I(FI;;;- zyF3M+!>1}QZQ_R|Weiyjy}TsUWWZ}-&1;3dnp3aUHww0X?|1q4A&t~vH?@BDL1;vD zGe0-iROlw>;-bX%LO%r5^fE$J z;IIafPY1gS{3_G6qwPDJVsZ@DGgw8M{gK$j*)E3cl?^aBRop*~%tj`$*hok;YL7!C zVsvfE>k+-|8|6Gk1XXL7uxMB{;@>WAcq z&L*Y{7x}W)8f!NEd2}<9OY`h9lt_a2ApOExRAYENj?3=tC(aQ$j$8&FNNgmc1X3KG zTrM>6o%58wk0Tm8k;tnX3!m+I<$#Al%y<@trz^+25q;1M#|55-K<94W|LU0e@V$g zYeLUYvHb&&NazhEdrRkC9OHFve*IGp-oY#1C+G{)d%ql(4Rn2?&`exJD)y=(J zyD(EsuS7`QJgVw#!S zW{y?N=4tbGW--}8mu&6tAwcNz#AgPf!gk`(Gq6)!OGf8JPW%YZ-wj^SixmHS7g+mCZjCAu;Z)LXqP$bb zmo?V-RGRGt<$L9&fZk4j7f=CrUZP6?Bshq_@CI%K@TfL+w6ru;qCWGG9}jZkra_

=$0CCQ-HMlg^vbGnN)Z~~XxNJ`y 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

-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 CV0F5$;PO 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ξQdvVRq~cG^_M%sHujA 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 |JkqsjM1_WTg3-Ca(6xCF7JR5+B*C)BrwlXA-@ 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%0Ay7DPd2 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�Z7Cq!}kM|k&y{-2_8aX0O@URevmq;i^Jq= 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

0K7AF7{zhd0@9_j1VIAJ$LK~BhzXTA zoT8@y+bUczZg@>~06Z0OUJ7Iaf|(}{Z^2UUP)j(lgECN4Ugdv2w25JC+3>%n)PK&@ zwRaO8sY{TF^aJpSoCZr_P=iRtYitw-b8aHAy4~L1o-QIa;OR9{p0C#c1Oq4GjHSJql_@w^CU~-O~>;9$uyQwd<=)H|Ym>0O{_#G%FwyRLr*fEWN{n+E66XPHE+xT|q9eMim!aDi= zJs#+a8WY$}pd03~g1<;4$M~{HKSu-;7M9vjMOaf@yr*gD^Kt6Op#RP0>B;jc5^Lu} zIsjfZ-Ji6IWviTl5!1n-lY<1~-!>k6ExJJK>$x*j;`cs?-AzueUiP;>e;>+MN#|pu zrxinvP8T@u2RCBtEWyjQSHKUmwV|HKBzeZ81Oth^ZVzve=|~S3;`g)S%sj^Z)hZyn z3=7Y@M8U-c3-@V^rzc6{*It^mt#ga{;f{1}AnrFa(zn4>^b*ie{8%^1C6B^lf{?ej z%TN$E8|AVXNdYgg=Z+lk^0{5IsjASevj80aaTdd+CQJAA2^moauT-_UP~~6CnglhKZYC`piKfwn6=p;_#9%#B)iAZ|OnA z3k~vlt_Kw^K;0z%wfTb79%qYYNz<9q7tABCjw#rMI3i{wlmrBVwG8`dh`nkRPE?kF z!`cdtN@+=DCOar>D34%mHdB>L<}vLlwys;LT{1FWc9Tc`b0(lKJxNEyjTWY7Dae(+ zcI0KP5H=G9%5JR)Z{fQBIreX6GdiC}9l-7|{%65$W_hc#x2k1&m`ol=e>G(LqqIpc zeTu?I2|r$%d^8!&4wny{Z}qgDeh}yvXbSN*w%_S}JS?2)V|i0mPUii4aO3Nlnso`? zmtl(F*YXz}K{H|*Cf%r5gt1t->d))3Fz6J20~@8x7KRtOASTrUh#OHFfmmVqMBGM| zzN+U#$x;};&wV!i;LgG(8hB{s@Z6jA1RIUV_{NKVz$tj#mH?Tci=G103d`mltk-_! zQBp<0~_$?fVF4J{R_d|d5u|BgkMM6grf-aJAzh6Ud7|fTi*0cm+0#5It zEcM!9@W>;D1qA>_Tv1hF(0p;bduD$^U1yo$d?KJ(q|y!&_UGZqlsL9yz0Cu05bk! zbC$sKuGsVbE*rm?i_SPB=HF}on^pAr^-s_K&*Q7tYmbRlJ_V)kkx}-&0r+|M{8pak z+xYHFW;Tx^sK_Vc4`>0h`EcVNpPas6DtdyE46Jm@)(sv(SQ;D(=;We4;N=ajv_LG1 zmd#TvF>G~vd_46(-8)Eezv~Bi?Uu)mnu_+-Yu|oH*ujKd&m?ot%vVsU`>V2SBn*#Y zxTiiC1SDTyyu0%1dw*IK)Za@e3>hk&jS?zD5p2yKcazhde=mpqFXG8rbeevRaE*QE zwbRqmN}QBM-M{xU!K-XYl82c1RCI$52nSKY``}WcQgAb{s+ERo+u9EKRn#_f6Y(XtR@yW^T58rwDktD0B^h?!{8W{l z(O$pmJzejlrY;lO!EmQy43#A&Mh_Y_IB0ysR`k~yXM~Y*n&T~%G*PgFxQ+$^LYE=y z_L*O*6n-uu`%$t?MTuO3t?}Y)t@pcJ3#&0_^BMJW7_0;d8c9wNSMdFy8w*81rh#Ch zhnx+`Uwl!M?mBv*7No$=K}8IQh}C^95qsskT>BtT;N>kcE>tfIim@zKJjX>k+b`$l zv%Kv`3rX{AN$?{Qe*DhPrrYH+cNX&TH*{3+Ik@6?Z;nkZ%P2zQCYS%}ebpQ=>ep#fr=q^cv-F%^x+;(fo z$eG-*XoQq0iM(lccuH?cxY{pMe^zzgJX9-N?4=;$4%JeJOnxv%mRpF{7^;Su2nxh~ zPtI}0n&$#RPa_Dtm!3c+=*A?>GuS9>A#z6^&zN90y}PgumAl_{YQB9bh8mZ9V9j;( z8+G%CPOyPFGo7+Y09H5rWO_)T9JY)pl1pJl^`J$0VES{~tU*2L%jX8Z1M5Hq;nb zZI-WETpbGQN^E)WD;#_eAI`^LDpuqtKWp7mLc#z)=x)^xZTy7v#ooNlNXWk zlr%L-6BA=!$%r-H*XNJX$vsZlL3sBW)H zHM)K+r#XtcvAVw-fxx@nWpa=LPma=7H4@!s}9!{k>Y z{1B8|2+(_(MC;IFkk8nO;#<>sIy=+%^BOL!0Ha|qIU|Ui1!CSDDPhvfV-kKy(1@-l z{F3ELYC0c7W`l#bQ%>F3fjxq9McYt~0JnyhZ=&pH@Ywau1<%y8?k?4UlfpCtEf`2vVE zjr3l7=})cpY=PZzz;_s`FgpIt9lMf86879Ts2tq2tn0IJCkM?tEjG!*=SRC_!lOA7H3-_Hgd?V7RIg1R(NzB*;qabv+3<7UOZmQ@2qi zBNM-|%b1R{;WNGz$4h0nM%lgAH4VkLtHfhuXulGArv?U9W~eWQ-7Pee`)b1(~utmm#KzT{j^7R&N<704ERei(m~%DIh6^fFQ7 zpSTECMfb0gJJaIgN*9Y%OIf}56Y=&%jxDY$rB^@oPwO#=vq%XRaaTv-^61@}&h05B zy6VW+8n9>LoM7nZFigLHEj3j(-<`hvxKqhT*34$4rN`yzw5T2*h4aA#CA#4C-3U=! zumrc>mu@7;mo1d3Ju6%*HCROpSVZ37K6u!&4v9rfc%HyV?tB=0L&ybv{+8QV?U*#FAyR)9|2Rn(6D#U@_!|WHX_E-3(1L`@=5hCS*$@9cI_9eeg*_ zf?2Bz=`*EeyHb+n>7kn7`KP;|f#ih=Qv^6>Wj1+eR+N7LlG+DEkZ4uDd-M@nDrbp` zWT?PV{8@JDM|`*zkD3Y4M;t#0DsOqhqxhVJ&zU|7TDJ^aEq;E*E1NGrIM`1Uyc_^6 zDLbG}MJPHip=G}?{poSN^8p->*y@ide{<9Z2tL%qU`m>()z;1DAD9RPJhzc>&_dw3 zJF0p%kf~zGM6PBucUS%H**Y#O%IZ=twv&zhJdE{$bEom)Cdo|qY)t61+^hI(rA{oK zxzuDw+#x}+06ScoHQAe73MEy5zg+^6oJ)xTfavV(j_;xz>>XA*+8u=;KXPk;$PQXu zL729oyd3C0<__ilA2g(TdFG9|09@+vYH@At#52=w8HNwbfO8}giR3EKbNRX2dM+^Q zxbf&@f8TSwQI(q*=1uMVP*Bh&vHUO%^{}R%Ihq#`@ta6lG1$Zuu!`w zRx51!26C--M;HPGh#C>D2Cc(Hj~e}!CmEHimqquGk2-^LsYKX=|5b<3*w+J}XWwxF zF6aBzcKtZb)47NapQiKtz6Ck*CD{Qo4V^umQT^73~PaO@%4IP zacW|V=dA-Tc0VOuwH+=@A0ZNag#r^i1{y(ttVvoJ#}ouP1o7jW#VL+WEHolAgWR`eQQ(JGqW!b-sU@y^+n;88 zTuJ>v&eIn|{+xI|)_TwP%+~6gP9_|gYVapOdMhAOJV!%ZKDdiiHQpQ#gH&UEsvLk% z|1J?TmJAJ-zE4afgcJXiz6e!Dk~BTzzQ%oL1&fo`EI$?}8iNC2mxL6?Vok#@L9mCS zoIbAAu!xb}_AtbIU7z@()eB?Uf#E3Xr-QC965iWO98VcC90N}$#q#mO!Dlc}_EIN9mGQdVvqQF- z?qd;qzGbs-HlO2g#wYjy7D~Sp7&K1+w+Bp}s_%?E&CRbF2RO$Q|5YN`SXur0?i@{C zB=T6Y94M-KztJ@zB7GsuMig~NR{({2f$&G`^+_rqV)(7eC@LaSTU>jxcm&`_>tz6l2AZCp&yAnC%@%$sv9-^D7`kvYnX_hQh5{07 zpg4uNv<73Jcrz-?*1%9}qW@!0#NFkg`>5+YC@DI{XZ6_x@4Xa$$KP}wk)WL&a0JLf zY#pFe01WRa(k`tq!%w9Md-7*r!fj@wkkSGKfWBvnYG>+-D z85JEOnJyp~)V;~UgjAcg;#gpwk-)1#tYuLJvM~^(c^4IhCyw}Auf38khK4tT&?Nf; zB)7KHA(iPPG&0Oxc$!@S9G_5-!xPLozv#tNVT^FH;}^WOnEWl1&TA)FjyIPxF*kSB z1^4pdA-VITYHI*mECqqdPnmGPcByb_OuQ;>0Cz3%C;5Em%T;l<%cUlaDc&nL8kNX8Zm7m9F}uM*x$ zF!InOy)%Q4gz_RN5~L9(AuUMDOLBiIlU=gR@*l)YHpYthDOi>K3>@A;w+cPj^VTFeis0s-nbRkJUm%oi7U?r8T#jmwtCAc4;Y+8)A+@8xcR_eF9&An;# zsjf?dom{Bifa@d6qI-K<-dO6W;B6>XG6T(!t!$9cQ>>7%9#an@{6qk7Go##2zYVx3 z;?pF)GLWi)fwUJ$vVU8NcPQ;84Vc6?rv)M z3PNg=nbaAHE}lRh0>>g@_SRgD@D29LKLd1pxN0*7N9E zQie{8tuBZ(v3jse51?QUTwhB<#4&><1ADvcy6mh=5rnwj-%O0n>g(y@T4RO~e$8d) zrlgM5V8s2(5vyo!_eXd_kS^ib)^xEs)VOdx#tEv?kM<4A$ZK3j; z-!H`sUScUspR9T(vFIm(?rso(#311ZJO5mAeOGbXJBhjjjPE2pFdrF*YdKRR=L9j4 z7oejAFG83Z3>j8g^m)fKAGZ#8%7B#zEh3A<^Xz%$(<(Te4peu(U>ZOCeg*tS<^5z? zcDndjXvBiR$P=rT)2Ye1ts=b&G&jWH|V$Xn6Ma0Brus#2HPzMig$6p>1;awa3-1oRi5~n zJ9v5!Vv3ub)HKDza(MF>=c|(9j+mH#Zy!3~POns(N>RmuObDN{GvMCBA)@iCHP6n? z?Fi+%9xrD&6<3Os+K8;j&AT42i@jV3dv5O4{aRzod+52QZuS+Oh^L;5Rv5#m9}k{dEeBvv@BKs0P1$`q?M-4`8k`g|GMvW zg-*@yK4OROfJ$pw+S$<92q=L)J(6OdRT+K~yfSdXU*;G~oEfMF8`zo}4(zWl_r%z7 zQE$uA3vZ(w#ul2)9}mYxn!#q}{Z2A`Z$7DNvq4R^1|m|o1dcqy55hQJamQ~Eh_;ox zrrS@qs+XZd*k7%&(Rk(&1rZ9h;sT=HOf1d)s3pXghX17p7gvaZlDw{Y(a}u#5jF(; zM|v!B&&~=C7Ee~tkVGvgGM;sD`@|E;h!de9;9JIy@gFOs4hCog`8KPn=Kb-KtE%wj z#bE?~)mqaikEA^X7847!1y7Be`8@|$T8u>(^0rbni9Qo6+Vmex`oq-9&&5H?sd{Bs z(2#~xsmDsu)nTwP^WOb_zWq#AkPuVlYj*%rH}CoQ3W>{Jv?MCd5TU6oO+bRNc{nKE z$g)c+FUsS64n2}kNpCzhf|gg*n#KlhoN=-$R|dvupdz4R+(@wA`^-(O1iuTCjT9TWM^gL- z&65q2ytl^xTVC!ouu&bW5z-?uKZ+>T4TWk`i9Fxl#>sDiA!m@G03!l;!=G=*{X4+< z_fJzD8Y0V+ee*{+CMRoVN3PV7;dM4*kS|mNUOelUs7uBA;eqbSt0&LQT}@@+asxgU zoHY;UjpwJUK!9-mSJK-*qAUIbY#*ILG8M2gqok>ljfC5C^FzavG)h}q1c{;)_x(r) z_1@JaoRZ3L zyhg~zkog9$JDuF_ikT_$!@+}>4`44`3-PwG-CZmMkm>-WBqc1YdfQ=!YCre+2d35bgEcTn3Uc$F(qwJ!8(q1OBb2ck9w z$*>eHx1)ughK)UEr2-^>Nl%;sG7w%MDz$KaW7=lobJ4*u|Mvfm&M1))SRVh-r$$mG zIa}Q%(C=w8qD=cCjdpWkZLI^i&JPX_K&JU}f0~H^&4QC~8u=*wa}BFz)#I#uXlahX zr=BFm0<_*g8M*ayksJ)>f*A&lejrLc-hR77r78ecE9(z^kuM5WR#ls^(GZJNv!2d| ztI7>qwUK){Kl|Qepds{j=)1o1Hmk`}*+$MN6Qit#+g<+d47wTxqxE%kz=bkDqZR6~ z3_S+-OR!a)57d_JCjfWc+u0W#cXe6omocx5_tw29_ToM~Of-53S2kP;pMFqr7jk7c zjK}e%0|`v>c^w^{uz;UmWHdW@?Ep8)_--nB&F`=RXf*cYYa(DS4rT{dGgYBu?sZeE z&Y}@BP6a*pv|RO9C|!ZcU4FhtR^JP*Do~K}QBf%$*69nPC7FK`5DU2}Z`d{V{jLFr z=br)uHm$4ThZFY>V8u-%PJh3_4@W~)BGNg{*~iS3-2ggD^=!uD3JT1DUqnGL{i$E< zi39AKMZB+ku3OjJ!G~UyTI7w5p`qdG+M1D`-baFvgxb3OhvM!rL^l#k;A+@6E3I#9 ztIf?l)KNDw;yte&UiY-ySXy;`Ey4FTHB4t^(Cf#WKwXIdRBi~z!~lON1>83b>Pi_a z=R8d$wQlk7Sh+M9%0Y-1?2!@59)9qg_IO!EjkF^_34C-V;`lkiE9|opw$w}7YPR-^TEN?y=m64p@5}QgC`RB!~Tj;=n&c?8L8c|VE zN=a>(&wkhU?#WdO=C!!d5~hvcN{!;|3v?3b;6k|3f$Yn#xUraqBR7_CCLCggscAyN zd2DWTcp$oPZwt~Ng@qdc_O5IX|cC$|X<6FV$ z$wEVgx6Cz{iWv3vOxFK2lKmScdqbrd=TU=6Lm^$YBcO`H_2<{^c?0*$`Oc?HgG~~Y zznq})76uMcIgNWi5Q(g5FL&hTZ$Dt{2|#-Z>W*zGF!#dn?-C{zqFql?G=^dv&XtBG zbN&DU9|*y#YneU(P89RH1{ac2cpIPf0Cq>ORYfk}US_7X`un|PsAguuj)4SS)OV?N zZFMjqjRC}YFI`?RCYr#xmWHHD@ZNF66g5>zV)tSxPuZ@p2vV#esN}|>RbFt|B=`9P z1G!liPEf@o(bf7RAspF?S|RAomaA$^{a!)>=0kZy!{weHEm@4Q=XN3}$(#gNi96ur z{0Acho2SRC#CaM`g$h?1Y?QAiyyux~v%*)%zZXcZROpap@>vx3u~xJ0~S5^fx%1e6|-5zF!&p?H|}wt?C;iO(I_$Bo>#) zzP=^QcH0k3fM84Fe}Xf3$;~07%n*VcjHdQ^kKXVdsjPY=B<}D3qw1`qqKw*hKOkKW zB|}JeC>;VaB3&XNozmSU-QC?t3P?zI3P?*Ujg)kEecSh(cb)IB{L?keT0GC*cU;%+ zinbG`q#h`gi1HogYcPmRpjXSA7_=|gk4=v-#Ny{%w zi`N@O*P|d56{lUR-_;k~*D$XoLH{vn)hsY0dZx_P%10!v{QXZ0SVzZNG#K99sC8uu z_;l>dkYxi|n2o9;L?vnNFQuACEMWAf+IhkOIYH;ZI5yvWDy;VidBa&+eY*&Qw`OA0j zVaQJ%dO3QWJvuQF(1IA_Sp2jDe(GDmB{5~qB0T)l_f!tY85m?O%lZ@-cRo1Vwk}n< zqO#7oKe^I4O)$ii72^gLY%%K9F{S7Qd5qV! z6@{ml-mK{qJ!;z8z$R5?zt-oP`~tArufvmAo_y}aR?~GoaNoj#u~UkOJa!6G0G2W~ zpSI8C;^kMp4&6_hOeBIPtxB~y>>E9GijNN~>~Gbxw=|Qx)D;uRUwgV)@2_uV-_C=q zQV~D{B(-T=g;BHw@t?|?zP`H+X|SF@Ih%aPaDoA*JShW4uXr3$g=r*-^tVzzJB6mb zQl~m$xK1`l_U}^Xo&#Vzu-nf$F663c+!-v+@&0t(a>!H1{Wyj_`;?S-uT$9E%1W+y z5~8n>-0@~d>5a>m3g@Y94;?<|FR<6t7M7N$m{rk;;3jO{@Mypy=UhKYOBn<9@oJBa zl=id2_O{!CxrwVv6>C*|0nRF>y5S!8qT$ZEhJS=25IlxDd z6O^4iV3hn)PeDxh(;3J?YlT zNsc*eIK`MJ-S?+mc-r`=*kZW^{Ad+Wyr!;k$_Wfb#f&mOK8vT6uxR8bxY7Gxh}H0% zW@!H=5tT+7xfD{h75A;0B|m$UNP{2A^)VES&ip4v>XD%0mXwT`gwQ(SX3vu5FXarR z_bR&Nm}&b3be#IWSb>P2Va7F_NfX-yQd^1A3Eit>UBYDmA#ng2ArV`UUsYLZZle?@ z^mma(bB3lempfCf`=kBr`U_@sDGbGUIwqvxD#RCx6QjP6Njy1wrv*7LuaQ3Ife}j< z!||Mj>wF*}@RlRo+#(1zSUAesCHFZw+`ic{^2kpiI*ZkiA70NRmMtDi7Y1C*GL@_3ghgPV(vwvwy$7Hka@C|=c7kM z>tv{NJ~|?Dwfb~WrUiK6k^WZ%%8%8zTLge@F%-_)T4b={!zRLqh2vPZD~NPG+Y1V`q@}}#Vja1$mUwUu85t`BCL~b}`>J+PDcaRb6Yx=fhTU~XylB08 zK=r;I6&xb#7wGG5xjo+n7g8kP^{E}U-yZziKg*lXe8wfC8?bmLZiadBneYG9h6o)rK zk`W;%+qiI1dMPSIq_=F$M@tt)F1`ngpD%rx1E%efBLie1gKS~qtcVPThJ(0qjfoSd zWVqGpKL;66VO+k*Ts9W2bxTdC3ui|LJ^zg4@$vC7Q&9lzxmHiHs4+Q(v^W%CY&`Do zImn6&!)bPZp5pq_8~ws; z)UGvG^b-iMmFJ?9p^`lnLIXd!E0P_pws7W!H&=~)Pf34F+HsWZ>*DFufDkPAl`how zyC{x2kP)A3kkV=E84%L|${XYyQRa$>SnlvY3>+Q|fov_$dsmE$PF z9dL!b<(5B?5={6;m=NdowZ6WtwV>N&?lj~n=gElhAzMiE+>CWbfH3m^jkdZkD2@#e4J#yzSyXiKc+g#)|AjThipqlyMI?PiVK*of{i4& zCB1L6__Q=LfSK|F6qH#GJ0%ZJ8@V1f8Z$sR7$;K*QXm?@rDY<`V_jq^j1xtGB=PlV@-m%K)X)H?N>5Vy;d95+b3KBO0JQ zmU!b0mc6>_ii#`EFR0UtwlOtco1D7vz%Jb>I*6_p#6XVimOEQHTe-D0L_gg``aeI9 z5BJvdGn)M$zXd4#gK2Q3VL^}rx}Mxlcz^%?`Qufzw&1_3@e%H6YXP}R?Fs_&Uht=p zHZWM7?YKCXBzG?Wqp3d;?b$>le2wf_0SK2RQNixR}V z>iBM;YPzq-2c5e@*2P@SSVd*Sakj}GN0=PV36F2;mKruQFBVd z#CUuMg#F(}CSw(wBN=A95@wbU7f}rlv&@B_kz~RaC+i7%x(_zi=LdG)O`@E%_SC(U zBek2M2lPMZz89(@LQ<*Aa^d?rUt_>!ho4Fn5>pBj(oS@h3@}ET^Ot)k z84U`*xQ&K{&`~e$?t3h>Pt`z`rM=mfVbv; zCEzIv4w)Nk7Ge)On3*1fB8AQKKB_%vWj-4{tfI zqN~X3Sag~w?*F=GOVNHz-+W)tv>(D@*mrlgCDH-n0e5$H4mutm^8E7vwT`Kr)1|Lg zPK0P;_6T_-S5Ik3KHJ%9g9-A5k>#;hN2J53?<_sNZA|ENxH|}wh}F&bpKQRKLTK!^ zhvMN1EHUU$@JzFuXL26`=CtPV!^G$lR)5?(*!QI(QllWvxnu!&sln_)mfpij%D+#E z`Sb%B{Pgxt=o1rJeT?LyEtk4}wL!LgPhwZC1<2^Gm~*ci<qp+&7ZOULS0GJv66Zo@pFnnw`e}k0wR;f+zs_;{&EyUc z1YZ|_S`2NO5Td#mL!=?Sk;!xlF&GH-RQLX|Q z!sIgu>PO#5Tq&d&4pD1M?7Ay`@(UGpn6HTJjon`Kno-T%qD& z(a?5M#6z6~<7ZS-pUPE=ME{7EOKc98=%mG?{^BFC=ltcf*|J#)IyZ!R*J3OhNzNnL z#l=Rm>~aq>#UL;A@P+P24i9a@0N;|f()>^LS8hg1JL}n5j$3V4M?EpxKKGAg13Lh} z8b?Bz4I*yGCEx&uhbtO#fQ9=$VI4kfuPo^5t4g?GoVDn2-|Sp>E^lIP{$2ywL0NX7 zk%|z_0BRmUJFC!Kj-AO0eeO)`gOfvBzu+u};FOTF%3GNO8mPVE?60L?!FY2N3x!68X*8DVkaH++ zlrb%OOv?B9Bd%E=Of=*$I_FjYUCxgJnO_6}R7Xvd_jq;ki4*rquET_3XBr z$W#|BawPHY$gogs+s;t|M(!d+q}6M>G$~H%Z>wW5Ego_c2<~{w zI6avTkX;0oY-vk(WrDTw}> zV@bV_3ZiGR&B_6HW6(=iF*YZMvGVJeir>m02h{mok@0Nx_gH&A9t7pdo6*2Ta#KWv z)OW5c4^ut;XNhyR=L+2*1aw~Jx|>t)@XB64eY0sR`}AkeBcJ6An-4HJEPc8yXKCkg z{F&PY!aN@4y+qFvxmlH^2jVykD05ZQ13r^|VLr6~9hrt7lXG_Bua=#8|6O1!6Qp!* z$${GwoGiy~cOnyM!ebfW?~*4TF(!Q3YE!s~wJyVif|g0Z1jP!~W<&6e<+WLC^ye{ovdIb zor)2=8xmDeha#pQ$e4x`D91-eKZ8@g&*V{NW0RK}hDhw698UJGu;$kU9^S`=V}=FK z$q@z+Sz>CP2dENYA5m{TuL{ymP43g(U$!?ES0G2S2g_jGsH_ta2H##xyCaiV5fJ+( zmkG%H3CE(Pl@AU7Ts_QN9_S!1VUXazqGYXefAaz8-jL%5R^OuPK9mc-XtkU3sZqj! z@NfBC^&E!82v?YISd`ULhy_8P(TpY$#nMXqJ77=h!?U+Yy8oop74}E|`PKQc=8NfM zI^l01;nfi~(yV9o{@k`1klmkUrlJyrca1?9i~P!W&iIQ!0!f|NQ7nF*1PUZmD)wV8 zA!i9fmjNYlx+oVd1|qOo*vz$*lrlOjT-o=-E%C>NFBb%TmWK4j^1Xs(XbN~3%V7W{ zuZRcX!F@uTi-VWVeTx3~355twBQ7*o5-w!?rFL8$Ro)!!*{fAgHDB=;sCWf%yf{i~ z{V%D-wWKpLMH41MCf`L(yzTAnms|f(9aeg7O(&5idtK)ZB=qapUmJr-D}VPyE!qFO z!XL_3+_TLw=0|Dq++Vg{dG<+1!8q{8E4Zo&pFJy5Hh-jR+j6hBK83jI%sMan;y_}JHDpRQH#gh8ZeO2&-=kPQ zUjygF-dx-6;85iqP$y~Y>UyuA{^qfq8TR(9-}*#INZ7FSsmuU|l?oMQB8(0MP&%N> zQYvwQNJveb19}%rWosUM`8Z!NI$8@zr_7{V7Uj_-K0>gQk?TXk(TEY*@5eARwFM^^ z%mm5Jd>8AQ>xGr^!kEtxi#``vHmRGH;02OM8d}OUznGqZTL+kWd=X|1L)IS2n7BC5 zlrsLzh_fB3K;LmPU1_sey&+YAC3XfXA}{A1@s`p{QEyhI-;2ZVYWX$zHjbpkj2Ce7 z5Cu3#5u{jxQEq0g#KbTPuq^2bfIV>6n2VSpfv%*}o-!*)W$rTcq~&!i5+WsrX0oy7 z!b&nBnz{);S?S(Vo5$rrP*6~hWHgLj9}d)>(MLr+FjC%+-?dm&hr#q~C!M5(jyjrH z*aaYJyx-T(d;;}f!{c8`$IX$DyzmFZ{RM4$(Dsuu+NXj!q|2TtU5V}5dRQB6at5>d3m&l2j*NJee(xJZZi1U?}J|AOvY z)$_iRCgCX>oQeYxx#BsJ>u!1yrS)WI!n+u+GUVys^196#O+kS7dY5Ad}_4gnLVUwFL@Axd&OM`ZO+_e1o)?umwC zkJQa@1ZS!noWC+Z+O%Vo4j1D2jleJxEtHWg{QKH*7I@rv zc$z9a)|Z+<31wq#jlY0~+LLK7Jz?}9Xx>Rvk1Ej3HIGYqRf*9)x+gN)1pT8}5+n(t z-oe242`Wx20QDrZYB=<`+NKJ*p8%QjYqul)@;awNX!p4`%9nzZTOMjo(dc9sItIh_ zs__6+tmnU6J6|3=Y^?csoq&z9z}nfQZS%DtK7#@`*4pwy*98!cT~;3A2D?v4GX#}W zTHtlQifojkq2_@4Hx$mn4F6Ful(i;(5$;i*lDhmX2R_R+2Ki6BbwS%M^9Di0&qMWP zxQ=vcc;YCvEQ14;?4q89Nl||!&=_IUP_HYOceBP`6z!#YPaZ{&_41k092Nmx%zswyljs9=5}AXV2$;FRLsHWyGAVEk@pTbGJczsja~8%gk zEtJ{)#PqwCnZgMbFO#(ELIK7;kWWMb8>z;aEtf1+8-R zO}rWnv-4-(E~j&)Cnqc&K0W{DD8PQ|k%!<51fCJa3N44L9o+5r3QH?->be^cge`;h z5;+NVsl;grB6bBKF3q##1t;S0YB;sXI?tJ1sq6c=;022+6p{lSK( z&2^TCk0Z7aM2TKV%`F@i8Hy%Gi9JY&R^SJjdR_Ml;rhZ)Ql=44#z?!?v6y(rf~q99 zbP#<*7GM4)W;znY7tTq*XoHr)1ebiJ!I$uY=|$u-f={f!tRyLww7o@xaJ_5Hhe|uf zvK}u@AH9#oiSBoZIsmwNMCT>g>i&1X>x8`ZrH&Kp_`qW*+v`H(?a^_+SXNI5v1n)- zm#IYlH!wM#9TR!<^w#Z4WFi96ADAf9et(pGv=Val`pTZ$Gky$$QW1*+`b?uI5GlrPY1gNG4 zZ5fKwm`$fd~pRpUBu?arz#rW5C_)+2lrU<_x6~8qkT_T_Dsr%3>2Rt#vaF@B zR`(>POKZkhL`x8+Y_~B-{;({e7IzUwy-jfa#YL=PNO%MnG3mw34*)qRnkcaxoZ)7- z(Y*KQy>YrMCDm-On%7cuJ+$@l7#iWDa1jBECbwfcE|+PQw+->?mE@ey%oFSXVCCV8 zn^Ce$ONAp~P$uHlp6q=cE^wlk)wCGPmn&j23`ksYr!4gQN||knjEK+!dh}kf%wT;M z1G3QFs6{%eaw%b0n;X5L(8>Fj3Z*8A>ihUjpZ#hzX*fij656OgR~w*<1E~LL=RFh$ zrIvxEy2fh^zsCb-{68aWQkt;`5hPAeJYj%muNDMs%N3cJ-utWFs(k=6p?eU!8`i(p z-zfzqnn!;rD4Or11&LnhHm((3YI)#PkevoqKdi+>od2r-WWFEVFe7x_(pp*y7uRDM zUu6Aj7!o*@O%Lx8TZtq<@TU)!WBT}`sY|C^r-z=_$XA~^jKtsQum0g(xSPFWOx-{f zsn*VGH&bu<-oNjIHVEC33mHW<&`jU^5+6Z?*@!K=YAJ&>{ZT|`K2y@~`^*%`PpV{x zgko_+k<%9L4(3NI%7Y!+T~DJxMf95YK(*fb@l5UVpxhiw^*oF~4dyPs7Qv!*bLsPV zo>J^}U;Q$N=Q@My1+mCOBy)QuKq(MryZ#uFnWA)EXxh;lH)8vC^(zCxPFqqvd0hP__8i@ z$gU%E>i&()L5`zPzddXg=<#>{!KAHt1;JVv?Cd3|<1Q{-mc1`JrKj3UrrN7vEA5p8 zP-Phe_*Qr%hfSyzucaXIBzNFSUETD&tCh$7`7Cf*Q~|EW$$>FQ$2kLYQ*xadeu!B9 zIIzLHj-=OtU|?P9_pm4lkc0yjwR>CIbA&@>gj(z}B?LNa+b8vV3?irirzuooVNjRKx1r?p6Pe?Moh$+yHYzzNe z?=cW_*}#JJ;+3?tG8Bqqv{{qninM2WuzIRlMbIh(-stb;{!Yx9;TeVwOIRwTT=TMHx7lr68DNl%Op>@Lo9 z2ru5q6mSIJ=Iq9@()L&5gCFXF2u99MOqgkoR|V*5$Z#kuq{cOYogw)m`QqXNv=(-w zKuRWH_A~db5_2|fo-aBAK6WfhlN3NS-G6lo)=a~StG(Ex-1>0b`HM4IW?L2A(zSD` zElvIP*&*Rh7R5-u6}LW9B*8jnUE9bgz0Xa;eDG6JFdFhvZ?cicL*M`UA=Wl9V0eWb z(L4yPfG&3vo;Y0E#`AMxCcpJhx~(1|7J#`~FKQ`U3u@#X$gMLd@IM3s{6d3PgH29W z#G>;*bpjaQv*}i^hy8w6u~>!6A7X~PPWMrq4tdcdM0PMriX2nS3OO7zB@{@KP)L59 zo_{6rMX;b18$}@I_?%?-yy08BegDi<^oU}cwOxld5XVgO0Scf#d#Xp~_ILB*tdpM< z4_3DGe}nR2=$hBp8lyr+Mks{P*>p>|=m?w(SwCMXxAqUY1dVDHXX+2W33GB5bM2;N z5@l>lzItv3k6PNHU~|F<_jL0=3s|sjYBh=4kX$t3D9SjG?xR?)asj(w#5!tevNvXf z^>qzA-0&H4&%d&Vr$J3)ueBzBBB|z;y5_(c#d7+t-uV_(ySz%0L3oRcj`>Z5YvR4B zWH`;1e^dS2?C?znITlJk4;e0nZ>@J`k8kMSJBAEsT^!u);*TXJx;(C4nm#A}uJ^x; zJ2?ckGurGEH*u2WHrAF*tO`IbML)|b>8H->^4oZsJ2s{9IA?40y$t;1ab?Rial2kmKW~V1P}M7%Tf$muwW1;T4<*v&F@!^$B-Xe z{a8IvQ8X&np?|*K?$x7Y>kNvF`(FV3!!~qty5{rZB?|?(L3)YwwAIvHFNIzC>bRHh z?lpjLE!lr#oXoPazKdi63$AolC}3Egj`00! z1&T6kKDl?vRw^7lJeUo(HT@kIc>q>K+w|9K69F?HK@>SKFt>sIY2d}#nD8Rk?sgR%{ zYCzZMkysBqr0dc}tpK_b<8#xqR+Gd2WK&$PZe5+@f(aVJ~h9`@9&%mcdv1a=tv7yVmq`8za(NQTBRU+Sj>04yW`l zCrx7O2QjM=#OuzRi(c2+Ja>a2D5nq^#Kb#w{y2P}M&;08{diCDc$IWIb_g2T1NepKoNiLoaqL(<+#>*>juUdfbeq$Bw+;q9-hc-|153yrur&pbRPwt5j`cZ;$o}XM9`siLi45q1# zYBzj}Ta1lV$ktSu=2FrmC}CVa`7>F5XdCijp6VGBjK5(1==htNHuA7UGX1?a00N&+45yHI%7XEgJe>2A`%2{1U$tMR`t)}smZ^8{;GFjGn;O4od!=MDg;EP zG%UHydJN5~W!hC^Z8EJ#Vm@K(4J;Pc$Ef{ob&Fb-^49S_)V`vH*1@murNM&30=y=8Wv zhr2e9GBDD%0TYtK!a^mP$FLbS3|s7^JYB!5au03h}b5-0yhc8YpZp^L)HhtxDWw5XLNk} zJ3eiT+2tbVE8|Eqx;N4ow+t9Cwzn(471}b$MEH?$I13!TO9Q zPlb6}L&236L^oeVL?QZhcErj&%E&nhH&LKI&k*j^#%PAQ-e&ePxJd+Kle&OyV6rpI z?IcjLobGXfane88Rwa4c+t0CE?n=y57t_yO_6+)Me%0?|mi~)ftFEpFuP2BFJI!dY zxmkT`J2o@~P=afZ)>#&p2aBL7$((8Sd3@*1{;YmF=_y8XMXuo zgtlc>K$A(aGs%$StyFL4JEbi#EL&f9~oOj-3@8oDZ-{+|_D>2Zbo zlh)bk5i?D9wQ|3e>lu$_fHl3=@{Pn6Iemh3KTt%#uv|7He4fQB6a)KG8zGAtFj}4@ zmCe{J*6VQMES9?QYbuWSME0(Q<>|L}8cIlTyj(+LVdar7jEnOF;q0j- zR2&I#sr|azdYk3!xoX@Um&=kJZ;<}sbsV8L%v5;M14v}_(G<6X-E`Z}cN5${`~QM+ ziw(NGU1e;-tCgUpMgBrK`z6gUK2*Cz$S4w3{1+vcDtjJ05QB8aHg4KuqasTypn)YaD&rDwe9iR}uA@sqFt z5#IafvpUkO&)BwgOOBPP#-X9+RW&Xiyx5t@Jyc>ws0-FVD_fPbd*g(N&=BJqiy>HV zQg+)p!o6!F-4uJ^&~;do1MwDH#DohVEiW?=i9 zQUSU{{$X76eCz9UskL=o^eatE>*sZvB}#15&Bz*qx&{o9NNDJRdtO__%g48Cl;Y3= zW}HvUKI_i54hJIw%ZJxXj@et@*<+{4v%BD#jOoYv@Bvpex^$C&nV&q)P$=%vt@h3B zYO+*_$c8qA9?3vd%DchFCZ#w(|DR{o`{K8$LR%ON#K&wGzk67@Z?bK_-duED_PR58 z`~%w;38xzn5cxF&{p=<*3Uh2tA9UTn1KuDd4V~?$D4Y`$uKRNzwA5}d1cCpj;oaX}E3iC|Q9-)ikwD!aj=C!Vnn7>xhuzAK z*T5+b;t)+-KWw}^xEd&{Z2dG)Nc6ZY|LE#wVg+75B0W!OdHJaDDGHs_d|>G#4K{!U z&+a;J4qd-k(`WmVnEH{)SlMtA^JOa>ZF{=x3((i-9k9;=zmnxVFEy3;lkPug2#Qsy zwF0y3P-YIgWU=HZC~~iCU{HLJbXZzi+2t6T$*kogvt@~ejV(KzBiB=&md-XOI~l+v zq#W@tsM7z`-IFvDGKxUjb6>v9VDKm$V?)E9XZ%%Ysk~4zS9ANhpWNf*TYvN77#z&QkwY1b_yi3JFFk+3S)vQg?G*W zG~yGXm&V-CFu0olG{BG#jsA3%Tk80MAXpXtVr?UioTNO z_RhxU0jJrn6`KZbMD=>bVnU0Hw9G{yEf*aF44&$bpVf>230&8PB9T2Igd;PORl)HP zx-_REeG$776R~pC(8f6qpFrL>n8@pF_)U(sL%A~l$c9(L`kLX0u}J8m5VSBf1S$l> zvl3lALo985{{jML(Zm%qt+Mx8YxYdQoYosQ+v9Vo(cw))iA8QpDKHZIBbI>0;%xy} zzSf~%e)))8?ablr(5Vlppv9GOitb$#OY^sq-bKr*KNms1?15dKU`6LHEMJC&*G3}NY4t%eFf zTh;PzU{W3(9vV_6=q<5upuTt;#3}h#6sjMHQ)wKhU>-pe>mceS!({mE1G|)cuFGSq zyQ9eU`da#v+nSncAG?QICS`?=6@Se3EnTMQ6ho$c z6CO~Fk7W02Tk3Y(=0$(k8L~k`` zH5pZI{>IHhe0ya@;;YfnF6q}C7?_xcH@|hn#e+mzZnOVo(E(Zx@IE{j{=_Xs8_158 z0YvIlz6FVBhNk|3M&OsM&zvFj-dESuU}9h_dEf4Xn`ps#Rv7eWz1LegIoa6{*qJII zeRT-T-lkQYC%%XEZ(C4ANjNvOgP4FG?g_3*2DwzbyBK+-PPP?^P=^@m0yrg<5Do=A zeMHwk*g^h@y!EdzC6Kbs#nQ>}mFF1TkI(`fd6*LFi}%@;>Sg&R1A z*VlpfG5+fJRS}Q8xKa=8nOQ_MY5$gSv`tcc(IX&$2I-20K+wFI@uYjQzuYp}M zAwJ$=(Rp@nv8DK=bLmwQbwd#$&d)HD`FO|%8jk9O0LjPi=*ZCcC+c{zCDa9^fwuwS z9Y6NZi@EoIPdBw7&S{m&s@jb&73xFJi?uqf%$0ksF;)<9!=R9Obpv1Ik1Mq-y?AJS zNYY{an02+GZdkPI&ikJ*uuh8PGnictaiy>eiaZjO1tEetqugwcaN^!g-Oe6Jr)c3uFXGXUk^u~-2wL68U-j~H4 zVDs_%`gS=>2E7Og9gkKjmhz21k{&Wc)9lo*sku1}2uO~(RUq8*r1(d2_(}D4rh;vI zyp2&%kjRiMrXQV30rV!*YqhI_Zw7{NOMc{22tLIb)5i7Z=oYp6Fj-yWcyoE!;j&l? zZn8^Y=zf^sj63Aq%HrD(c)Ijxcd+m#05yg}ki18~h1IBVOJ)FSmPT@Y;&{vQyDWL^CooznZxX=`rYEUfey;8=HBT zt-o`16hDgZIj|~i)z7kPBq!$J;2d&ETyJN5( z-vTE&<3LCl9W;-r+I`sWFP9dDnEqH5$|K61Vk4_H8YBe}f*EQhY2haFoo1r8T5{*YdiUT1o0_`Z>2Nety#D)d0KuMYnF5VQ z<;l%nOo?~Gdd6bEG7W|hF?`Wfp@>WZ@uNwY(hxXImeRK|76zf6Bw%h@)b@bTQg9nx z<@!BQD6E`Nt<*pbPma&tkd=-wobDrePeAu&#<_m;Z08;0Vzr4t8S~>vK+FZp!F-Er zC5_eCOoa}9xEN==(zl9vw7}D(zXp7+5G88;1y!2&(3P3<)gDO*9H5M7VuW50Q(rF% zZU6Rf4ssmFmGXxp8DND6Zr+eoeGEW37r7ngdLU}=x;s!hrmSUs_%niseWhTI_ptZxf4|5Y37ZWgvg{KNR@)UZpsxg2KX}`Gu|1_cB=v{i~0EGMaeAe%NDOKV?|! zC@3m=I2vTxB_;8`2ZT5&*->c(YULF9rzyL!ZYMgVZOe7vP9UEVVdtcbAZ# z#OhheOi4~I4S!`Z_2uFImSR_!ZK(8jM^69RD+EH0Dnpnr?so*)TqOQDf4f*nJftvu zM1U)hevPTIcghYrW=wpMFaL~1%6+IiWzTP;&$BqgSgD3~a!V#sTeQ9VR z1q6tJ@YK#XaW5aHMxj+JzarDEqw?zB7u)rmtBs^`2-`oNG(koG5yX~iOU8sAGj+7u z^rkUuJc>*U`JBb7N~LL$Ub|&Ld=dD!cqQWfQIw3~boy`XQZaQL88$XHk%gb9Ny|@r zjFdjVRZZfasWrLyn-H(|SAGDa&(7kbccdvyst4r zCiTY>kXzK4PlM48*R&xjXo4^?Z0Ra|q}orVl7Hg#;qtE7TNV-Gu+sy@!^21Sr&^f^ zr;#Z+ph}-l{`E%`@dJT88ZHqT_j9HL@L7_Amb0wcJeC(;9e3gq5)vP$|L;`??mUQZ zBkm-(_2i~}oD?mcu-lqEA6?&i+39!u7+vq)VQ_J^)Yo71&n~XGczpbpI={c^&(-(y zo4iHLjL37s7i3IPug*@*wrnFMmL0DtmQbssPdnlG0;{@GFW+1=`jFRw^?NJJ+6(Ui_K=uLb9xMH-vNL@&(>_rECXbny=C@T2R znY`Iy>hYzF`BFYt*Wgg8qa5I`Td=D?mpZ9X z_W2avCihNNN!g3Zd_S{6v*^#$=7@+9ot9FPjM0{r?xB~>M}4F=WPt978((sBbJI5c zp<<8KRfe6~N)cTVsUA7L+3)B=QTey36^vN-F!tM8W#eA;YEKAA83dUhhbFgdRAPpP zhP|U%be6Mik6jDr^9}YLv&z3%Jg$DB+0Wz2G8LjX7isY-6C$F?nz*AS@%Ch8Sr=N8 z%FGyDwazZM^wiDjW~HRKTIj`da&hT-ZY1?n_*zW_;d*^8 z51Pgg#uCb2RZ^N|+J_1w_HSyZc_Znhn-kLbun$74Gg{H*VD@p$xw_RUoTUZ+&Ce@eE=^ zbgGc_p;Cw+GZp9N7F25TziQ0_IikaS3Aa2rX?JIB6_u1QZq7dFw4=RW!=jOc>W^g1 zSp>Ig=rCk+<$rUK>@5{n9?P&F5GT@h-+21;QpDpi;Atl)h6^0NqWKGSU#$?)b~EiI z`XZYQbLZDZ`P$jo^tn$K*^g3qU#)(D=(*S|4;0hrRfiFR9yVSZ(iaG&Vx0`#TYjIu zeyQ!XVGOP*>4hmTOBLZKEe9f>*(6`cajyslNrx8VWlo(AJ!yZ?ThSw8e&W+{xccq6 z3uXi@L_cz82gj4$7EGqL|E*!7LEZVL!?JwPLXL-AS&hUMLMfDBs$`%!?M&C&a`y#ZV@ z*KL=}DV(sv_85kCVpQaU+Foqjz^n}DL)R#N`t}bj? ze!!QXtZ4ibuIychD{3;@+FV=fG~O!yvhD1nhsUjkX%^uT1C`i^4|V&DzE?Z=_EimS z(9s`)VdVYzw@Awc0Iyk6GJvZo@SeMnz-w-3VgR^Fdi9JOL>jOuAZT6J#l02`W8E_E z6M@Zvro-|<#AHnOn?o;{#BPq|`1G9f;SdXnp+!R}MFUrms37{8g33&Vk-dM&V~F4+ z-`qN0d*yikajk57xB+t_fUZ~+k9bYa=dzdOy2zp5DIF)r!^gMmzNG_D7WX&LmhXHT z&h~X8W3raJVW1+h`c*~6BYYk$=&j*tQ?H z%$U5u3sV7d5^!E7CVo|KYi=rM!;45mY}~{-V;vpY&byrqotJFWE&0Ssi7V>IoE+Qz zjRKK23-1kWTp|o1t`o?+`o)2--K4-|5$I$&3_=`P z`L{qMf=;^yasnbNibvVSOYKY!2P<$9CC<}}W6}6QlL#;)eYv18T0*g!IC|eFe_%*m z_8%e~wPZ2P%)Pk6PmDeoY;EF^CQ$!Z3vlwY{mJxg3U9I1#pe3v8R^#|*Sc7f_sG&R zNME`;rJ$m8C>es}G4aH>E%~1dO`h5r0yZ&mTH5j@u8o{9?z$eR4P zP-6{jY;025nXPrB!h(W=;$l-%V+4q4JR-6$pvdetSL`0UMM9as5y(j~u}h4bIX(K_ zyWX9-^l&fx9AhD&>(z7$)AP`w|pRE@Uv@QpjqcQm_BdgT*g});~HCfW|%{0QKoZ zwCf^p-+P>m_iv77bW}Feo218*P2HT2vFxPHw5iE1(8Rt-Re>TFz!3TAwR$0t7azbb4##F62&%X`y?dw-_B5BCmL=j%OyW*VT7Q>1Vc044^@=SLsS6wf z4&cAh#Vb*7?Fxp)!n-?pEz8O`<(<_Q9oK+4!;5)j>R%SE)-nMjNn+Y8O}C$c9DzT< zU{h^sx%mqe?ep9UFVv>Rn<7FAk>e0k(+=LPHrFMm3Z_*%w~Mlxu9P>3x)GG3C5UL~ zd)yQFl(dwrbjUvoB5Qelp9>ofeqUHvNGelpKOfbu@IY0_&NDKR;4ny5;R%N(!;}&6 z=7mVUy~>!s*l*L{`7ZmS`ESbwcJCw9x=eq*oT1iu)wVr{GZ=|MMwB&ag?941U+>6% zvU$(rk}01VDD|`)Wbh1!tK%|riA-5<@4(U3674AAWoRD)P6LJemDBb zKGk6+4KoUkwJ%4!5=NJ^PJ`83e-)L9rSY3epAq-9C?CxQxD*gP96j9X3Ek=5S)v+d zrlec~Yv1~&$+FMm6WewH1~%dR+}zH!WAS`@9c6(OQTE8~|6%GaqpIw}cI`zkLZrJ> z5Tv^iq#LBWq#L9=U351hEulzvBP}hBq_lLyH=n)7`|i)5{Bf`b>%Ql_uJb$&Ye}iw zOMSWS?;~w-30ZJK>jh;*=HS%b{I5qLD_eiKA$1jaeL*m9&qrRzkt`p~egVox3OWY^}Mu6Qj zpmS~aTwqm_u_^hx&M3R$xVN5OR^h90$u1%xQQL7df$=!<4vV+|znirDeM~W97Wy!% zFr5b0Fjc&Mv#X(O!t@c3TY%VfKb1b;o#+H-?zQKCkKhS}Lh;e$qKqRhLw%NefH+AU z>PeS`h#My13J1w5gcCP%T%9=SxPGqgG@W}L_+PQ=;Q8ZGRp9geDeyQ>EAjasZOc&l zUrd5*g!%)MSjW|%7{61CDNz>^!wfGg=<1oJ_5HMAt*F>1b!t=7*Y|x!xPD0~`k-@S zqdS+M@67;onxC=WT`65BlvSH7rNP^PiGPw=2)zyt%Le9arYZuPcn)f*>WOr#Lj~7K zOk@zz^qN5T9IIXSX~WAUKB6xGfAB^YYB*m2)t%cKyCz`M=4$A|__&hKBCmuM2bIu;Z&D99#E z2eu>&|BgrvMu)H7SBPTkd0OKC7}NTEF}~Egv&(pF5Z4dx?I%s=)x(b-!9Bq%t@uO? zYs~=%9dkSD>u_?0t#sDb4O|3-n&(CRg^Fqh80O++=#{8&k~nl>DZEs;F8bQ61=v_p zF5c)|ExRx3ma=U}6oiI(-`Q1=HaZ>fZ3_p!C-ib{2$qH|xWI=&HWV3;qsHiZm~kA* zQ?-tRu6#@;DWCqGomkOt1cJN5wveZ$yh_1f!Jj->C1#1N9K@b~pV>L*pyzuvd8EiT z9$dYSuQ_c{&l${~PRrRE0@WeO=?>YO9PH_jy)kG{>!87ZJdtf+|a; z_w9E2e3d@WU7Z>e6O%d>6*o!rtBNPxP(K%`yT5MXs*FValoUby{neO6xGukFQB4bV z)A;Xmh))998(UgjN7AZF^MDt;#eEOZvtK^1qlo>kvw5p;-MV&i?QQVKIm2vr_eF#x z^&oi+$4=AALCY}F=JEiMhCF#DUbhtduA~X*&-8NA!;Al|@>bJ0WW?lh-ychuW=e9h=?sejkl#Ip}i3Dnb3BZk=h`~0f@+)W_*M~c7`$j>z55iE3C5SkET2y&OL;^GYF4;Fptal|gWff>dwD7TG zvGF2TOW^AazGMNQ%Vc~P1%|@Gs^*)`(#}@Z=l+NNh~aSAvc7uZEeX4-`ABP+tOe^ahj|CCKLvsXC0885~Q z`qU>kEpK#t__yq@;LY zGmVeW`e7T%j&RIw`8$#hqNhXof$*>0obrx0B8y+XL(gcmI21#JkEWO!SqA7!NH%q_ zw5X(_R1MVsvB#UHkBp$&)V?hbMfv?kx7Cq+hEKCb=X20|cIUDY=|yj{;7FSI^`0%4 zN|Q>BY_4c5Epb`>!G_6&Hs8yTpzIvCE8SA{OM4HG%g$AAzBjV@8`KRHFny?+^dA`7 zI!vvbz7dguqdWt8i;ldN?K)pee>ukLwR|~}Izj;7)lggO+(+XbAbZWHZ)&KZ#wtMv z4~Y{u!=l26i$YBgWB7rpYCmdI3cNBRj~B+-OS%KZoAng8rk~82+=DY>k?5spVd1GC ze@8By6@S7X8jL4RzJ09mf27!C68=1j%=qqLhJiXw-Z@E*_!)`x&=4+nI} ztKzJZh#vBmYEG;4^b=j6OO!d^r9l&Ey=?juaR7GsnORwPV`PV5zT~uY<$wL?^AzIU zAX41al!0ZoH2xS))7L0~EmO)HhDBsEY6Tss9L)jiHf=2}5BD&j`o7qtH1-;<0d?#K z#=z%D6;WNY#S$BRN?f8MMyl1i(AeHXZvT`ffhw3_^R095{p?;SRPng||EF0|Eqf)c-LSq2;Q zh9~Bs>J4 z{DPR9yR+;b44o^N4b^IG$)%eDPdXgO47HlQz&3_5@XW>I5iWgaeCUMN@8+NJ(*~hv z{>f5%6rk;lkB^_lob@Y+dY^T7tr zzrTWSQHy6>bUVx}w^vDIhvdhP7mB}8!cUR$=rcEXRqEh;!W4f`myjhb`-pe!V z9TVwjIap!{)?gP@0*d>Z!kk>GVG`A(v>2HY442Vh|4PR63tiC9T%!k_AZb#GD1-Y4 zPX%cqgPWu5!6q9Xrdpe41M6Fg!bx zD7f$EJ1H}*kJvrYRImT{0@^L%Zdg@aZD(&Qe2~M1j*gClaK>{sqY?OuZLQg5b7yLb z6|`Re{*6L}mxv!U_s{z=GdXuT$To2=`Lbf-yfd=*t!u&tAn<02_|6Tdem!pal%I6P z4Av&CTS*G5f!FPzr(y(xyhle4;HcOj#ZB=AggvC78u9{S86lfFUn}-!&_a?MsQ#71 z&33EH!2K0BJOV(bmou{^CB?b^R}0r-&d=J*6XWB`3F>Ni`4e8U?d}&vfw2Xl1j;Cs zfyqp&itM-zV(Y*#F4nqReR(jq>~?R+?4>5(JjSiGn`75v>^Q|eTq>g-ag1h`V78T5X$#dTZPMl_l2&^G(9Gu{S?(SLy+>D-`pW4K`Kuo`m z&1(ks{dzV3{!iq|?v06i@NuL5D*(_DFM=?Kg#@V?P|Be5@{O%6&Y)3o&*rZb%P8xa zH{2)L^7r})iB)u=|w8DJ5gr{m@29sxgdAdeZA^%gC;I_PEDFP@1D^znS3JB$1s zv(a(a%R?@UE|3iK9a`YZx}I-3cPo}b84{o-=*J00>dVew>!z=3cw4sFEkkh(^;o|D z;mgIv1t3+j1u-QyZ{U9OHq${ef>K5~gMYj+bXEQZJ<_Kp!%R=9%)T6c4T2Sp%W3N> zAtn{8#dgY#G$O2D`nzy&i&`8o@!(2`_}Q^w`dKAe-=orlZ2RU}AJ`kLODn$QKOV+` z9LlqkQ3ePaQutmZ+6B04_?m0<4|sU8OnKedDBdMdeBgr-smUlkOE|3ctP~#zU1^KI z-HZ$Wr0&aC;&DJO>ryYZn53SB1(>9yD_}fUKA91XkD+d6B8vuj!@*cF0MW(Ej^d?0 zKGDUKRjOHOsd5_`Um1DN&0Fum_U3BG!VJ8BRFUots}r!fUR2);!`wnMHJ!tMv^>ss z!QL$F4Kf8ktx|^p+U`i4gOCXE!fG9vgvS6;8WdHZQ=+)93r-Hzgtmt+ddVt%gPLq+ z*yFYQoPGOd8kpXK172fFNYT&YY&8)akHPQSnK|Ji=TWDKY?LOCAEmiu-_tPS{b3M`@wi?S44*H84_LX&%ds$hQC8 zICpBk+}YUJaQZE>u>-`f|9W47VNm5kONot$58j6?+suYStQ(bi5%*tVf0i;6Lz_|M zwScNI$L#R*W*|OW$H?euD5)P*PoA{24ZWMx&dVdQ%)oT_$1}&$S5N~T<5Ti=x?H_Q z-+6H;1~IqKvSKIVR=U68cnDmIRi5USw|RxfsdSELY(^AesasLOz{p6+N-0dEa$4NF z>2FH*rWld`RhnSi=z#?n02^B81@2^Ja;38x5}<|K9=yzP86cLHZdaVflWa10lRnZf z(8%(s>kl!v^_rBeI;Xk)Mic5v>$NNzL;K_SQue%4o~XkBxmf!qV8Z!B3o8wEJlaR&@gG20E<^5h&!penI zTRY`@qaiGuVT&a_yj#KR77LpJ9@7(us(OxGcG{u#DWT_cj+a)%skh zoT!)4Te`8dT%D|0$w+TI+MSoQD~%cY5HMW+MWSF;ZnAu*C7q})Z?UAa*d^im$8S-# zkV6tt630B6RZ=ph4ljK$mrzlzG*h=8Z^<%Sud&L(ZZX~X7h|i;iMS8nh-4ahV=+Wk zOQ|=+)16mFhy-r*yE#KH$+j^7)CM`*Dr<`*SfD|qgOjIe@#RcqHm&H8(Iy{_HsNjX**%8QV`?c<1l>k2|72rAwZmoQ`ErzV1aN36vzu7*4~WsEZZ z-_#D6w(?{1?*c-G3qM}VPS#i4FQ=Cqmp#PIbm4joC-L*>yGo>!FWQNG1vD@RTDRynrG<-w+sp3mb14o6O z1i>-CEsq!Y&#NN~GPv}TP%JWY17l-K*)ssTzC9hJG;Z+IJrQjO3EL6?f$)!hY;?H4 zoHx2(aS9wEIhY{Zm%Frs{M_NC&TvNfMAY-U$A^4+O=qd2gTR8F-SVL+_-%xt`)NOz z$1K;|%>x{`HmgxvX<^}ESMbP5(~tF8LSMoQ=6xf6_pXHHCx6!#&s}mCeWDaOYP$G- z4FfpS#Uxu~a~&5#Od@Bn+Vy)1Cp7=eo3&M(64Ymaru>Qu=2tyaNb#QE%)|3{?$N~K zV{!N=f;bX^isEK`x)NTEO@?%J89FOL-V@0ImIPVo=Yu;h+f&W~lKq3%*N3{Drqj!} z=%Dg|H>e{wtbDN8o4>@9kU17TP;Q2!#9y491QjQfgVC#YQ5nF?@@K^aHP*kc)WuoS zUF}r)6L0nOFY9Z~(|fd{PFlr$m({{I%{8NW=iQO$SJk@2p9X4GvWpNk>VxLF50ROc zSMFc#>0vq9mAzT{t=imbxwoIjia#XXo`g(T(7=#;_alMN>aR<P()ZU{@ydX;V|b@`hPwXXTm&3?nd6x3|p`9QoEcST2fS`0FojiD(G+k(b7A%gI5JJ_Lh$U+V zur>)q)DY=Ss0Y(wYI3exhkbXxb$f&J5Y9M1*47mYTvYX5iOpA8H|F^Mz;V0apvbpJ z!d6#Dv*$x=BBv94q9!e!|LQoNiZ0@GMz>En&|f>|s*`Zh1Q1fctE})F>G1fP>b#Vz z^27_Kh%U6(tQ!AD*gnMaSiMkHG0Rc*{y%}8e8)zK+5EUhiF2Bt?GL{0;$c`zRt*lm zZO5`Kl2A=;?HYsTDR!8e`Mc8MVw)_6Fm|P66QrkUObqf>s-0gNyQND<4G#LUC1rT# zQ!_J7uG=w}U~gP)Xy?YoLx0KGxaM=t$``2b_zEzvb{Fdpz|9WE!4P(FY={9#v&1eW z!&amTQy%Bb9^6u8B9fGyu9KxJe1!&&7f(7gRIV{0Qd3*&I^z|?bkvlviYfv|0 z6MmNLA|w(4sxq}NfUt`Z3P($-RkTuXC2Myh5HyBx9bR1Nc~2 z2)?A;JqBFpVpe@(YZsHrj~%q_-F=Yo12{Evy_UANHo#u_oA%sVY_D(Q@9z&N^P`#b z?kB5nr@6&cMy)RE%c8{H0O(P^fx3sjx#DFa+3J@DyAC`mtul>oY zd@_eP-UZc7D9DTmiHu|?9V^SLFB_?9;YQJGLEy>wgCH#U6{`INC<^A^5h2kK)1c5) ze;h1`q-4-^0tF&YWELi1Y|^PisruAZvHS25NpOyi#;{&qlXBYjeZ!6^q&wD)>z|vN zvK*PeX>~uC``Ve5vS90~uvlFOdwLtuXk{@|$rfBuku~ssdV}~e;)4-Mtr=poJrm11 z1GEb#I7J;NI4S`|1c)HC(ZtTlG5m!D$XYIm7ddTe<|GDmdd>QCCtq!C9PDgfAI2xw zo*Uq0_V7B`pl#8cge}457}n>uqLY>3c)np37Wxr>IG(9A=s)-bk0ptX;O_cF%(Y?C z7fiE%3Zb9E#)tRQ`-QO{Rop}+I}i(%>Xj!n#DT{_=#iC2gjeVeMnjyj>4Hm=8{*$Z zgsA@i^E~{054V&aV<$egj3phcNy*8SK7YGGUFSO2YqcEA)^1Dm*%{PhCK~<-aiU&@ zr>Qw>mY%R}sV>#`u92C$f+7ZJ?H)(3JwAD<2nWb32QM9UoJNp3HQ&yGDFibQQ$6Sx z<;XG4SCx~P^A2QiP!}H_9vU<{uB>;50%9(BlX0gf+j@@vkdPNgiTwVp%z3geErb(Jv~8flRO#?sZCbKb8SI(tA*SfcQIbz?qO=K61edlF2!uL> z9*U@rge*yg)zDA$7HS$Z#iX;cjhcsxJRbW3@uE*UfZ~~+-2u26k%0kDZJ%BI z2y)cQ&UH{wOEO$EB-B$)<%?!)vM;JD>fXg5(Rleof-kjgziBj3Hf>AQe_po-m|-_-s+$i6w&QTxb|jjS07n^1bBH=euk@zBjzf}m8X54 z8u^h{We~~PdYN+O{y$j&OZNl(&7X+T_*(K3;#iUnOb|LM@VT0xQt?X_)9IiWSzl-S zS!umHi{tr9g@dFuuQA0>7-iONFZZ%!6UoyL8{RZKN^1`IyLi}#i0iR@)b8Sk9H8&(VC>DXS#JMS_g?*#^j z=`eQ>G2U;O#}v1$AR}G-ciI={{Epyw2WCHN@^3$10p{f~%UWJ;vViT(tN6iQfx##= zYAgYRx>HKlpV;zDkae*CNR2S%;hhWQe*SX37C6Cf)}k+FepnQp%rMqwwbS^U&lXJa z_?ACzQs(>kfJN_{mE^p<)T|^>i-4+$lAigysjdAXDeuK4mV|0)5&tMk0a;R&d{K=O z#Z0c4u1bnLC`uc%;aT5E=r@f*=Q0s$i07I!b z5P6G~IC!|bgY%=uk^{)?h(6?Aul>imYxAar>jE$nAanc1rdCW>Tv=WYRyMi{>D7Pd zYo5Ut_T>8R%ja)w{dT$p{e2rHDM{cI(1r6l1~^s0nHn4maQHR`-# zsR!+?(VvDdIz$CDs8Z|-&|ob>gc+iG-Z`Szc50=A$!kA$Z>AYlM4Wtl-VJ~+-CCwl zVBqEI*;Exd7=P}krJmR65Kxe&k???P50;y4P`fAT;sWu#Ox{Bm(7JBLYsqTxDy!j}dNbcc7=gbbVB_(BZ#(_ab{qNYI`E zVxB+Xh>d!7XGMJc`{_jO^P4E6b~~9$pTOyeOPryZ>e~R7AP!PoW_%0vA#AF! zvc8Pap6@geIchjW9I4-L~U9A0SlJ0dkxq7;<6Yg`aK&c&^`(bCFoNC+W_35eqG2w&6%FKvR@lhvJrvAQ8S zT(>V?590oBzSYkQI|6&DGcZs&{ZJ}+SkCO`pXqM?bEtsZs!p@*?ZqCKYpomHq`9To zdY|oiT-mnJoId$!_Lr$tB69;xO*{-lt1+L;=s`*$t*Z9}DnuvfH@28FZFl=$f!8I) zVZpJHB3g>beEb`K;j58aAdUh!RcR)CNfTJ6gE{QwoKT1`cSTk;h)VjmyNEz6tgVHF zLOI@T6uA!yZLxU#^?#X*zowH@W~1lt-%gvkzt$Njp=PROxFTlVUTgYRZf{`hPh1?S zQt0m$q5!fyTuXdO)5cmDelzeqxYf?}%v{dhBX>I-Rv1YLI$Zh~fHQw49h zi5;sQzVlPD_R7c2*!+9Zp`js!nETSwV%n)WnHP23bJR<=%im8x~QZm9R2wb#ks)eRjzwtio@i8@UoPNh7g8zgn$Ihe2|1*KDHYQ{vC%T_zS zcrIZ!oOJCazZ1RqRny@u^L)Y*mJsk5V|;sWtSsc z`i9cp?bwfyos~snxg@T(yb9UuYVOMr9Fxs;Z<7itqEc6->p7}2;TY#QLv;IeXGMtT z;kkM-2Z7 zISE%9^O=iL(hQ1|W`~hzD`L?b6he4Cvf49Kf9>kq6oe31%F;^ zj@rJ`Y5}*O@(J+?9!~eH=PC`iU7Jhuy};4)sm|-R(bGCmN+QElC#FyiRZ=#7i4e^z zqr`tMbJu>c?Gz-30fMV>#q)rvBprPJvbn6sN7yQYie)$mI$kGxM<)jd3f2ZH6&8yw!eS;l^sZxVX02_^ zj07@5%o|8n!q~BlO*T|~Q7)7jQkXDoR}(VqFa|m#sj#kSZW_1`a#24euidD4vAQ>6 z+(`aznhM*kv(bsuQAtCE6;n)M{ESsti3l7M$>pn>=9^8_v%5Lo@0FF6uOhZ%TTWxw znzo(dC)ldUIX>P*r8t!Ezr_p5)WfwF&dQIHIgc3`z9Mk2U;b8MKE&1T?L9fweOtdt z)%nUuucr$b8Fw(6s3$eM#8C`T6n!M!EEJJ~NvR6@701Ji5J$+f(us16MMP)kGAh^7 zMVqWI3&plm-|wW%rp!hy)&#aMeneuD-%-r(K6?Gv{sEiiiqBt0b!fz; zrq5CvqTo92@dJue9#;(4Q4)Usz~ShJ!|T;%<7dI}OQ3t3Ajp zzzf+Zg2SWMURG6y3uaFYrt^PQm_x4sD3G=P8PCwWz?=kp{PFpm9DICyOC-;j8>csf z9sh0tTFzmu!|nF0csI|jgFKeJzKoA1(p+J}_v?;&lxz_kdmXOeLkkv7;!kn|t#-$w z{r?6gKk^?(WzO(4wY2{0L4sb)4OsmE#FYC+U8ZRrD-?b_b53yP6Mx+F%nV+{TqqUb z{mRqs-xF0_Ky444yxx)f$}9fvsN zML{a2VZji);xu=wk04l`djjT{(@MR=Ri!S#JH0in>TQ$(fA9H}0UxmTF(Pq;;Rb?lHKVmb9|UyZfZvue*_ z5vhfEJ#p>P@+hKyKJXr;G@o}+SxWF;qj^$xbfbVeVfkc4d;pFH$^F$#1R{negjuy@ z$evE+P8}|$@T}WPxU-aM&CV|T7*n>GDs$gsI?d2wM=C{qkzGf4-v($b*uYb#{zSVc z`=A9}<9%-81O0&dPCrXug6Zc-XzkfqO!w)A>leSesBJogJ>QOZbf%f_`;vn+8L&)`=*;SdWnaFNoAi_5DjwKLeKYS!qK5TASy*BZu4p zfp^_yo9dkZ{3v2&;P-q)xB78!y-!WM562YJC7F>fW0ly1`M~BG_EAE`sT6-~cagnF zyo8=HALTDD`Y+&LCy<32tW5_?ahjEk2rqr3og9w&SVtZ*v#9lyMy}84(-yabr$zie zCrDM0sr2ht2Ql%TP0G#(S}aXr;ptVMB`@E5E>$&sQFlZ=mmx&XaR?;JEkz!#_M1Gy zw5*gke8%S#2F{G&YI%;{1~+tdSg6fHv=ojSGiw+s8aKuRh9Zj8u$-h5pDdz~)6cT+ zZwHhUCO<+Vf*EMvG%+9!1l#meJNveRqDehcz}XZ!gHl!sISC~m!xIIw7~E1P+>nxt zfs9iq_S$&E*fV*pSvkvz1luQx+ifgL)c#V5^Dn<1UTFqm+t%ExYTsGFkb(#KkHLf! z2p%lya54qV=i1yR2-EgjIvketg6BvQ$@R25^)Ol5ZpGh8Wg#Di&pzA+241kmdwP0u z4h#>=cRYul7`gQ0dwY9R<^&2P%7S7_>VIay)$0I&<8cEPh3Qh2_(4hkp+EKXLU<%W z*8`UOJmUj7U*=MjOYN7A4-d(>KO`Kqs8_G2iJ?I;PEtZxSyCL z``C)S*+9;tlEt4uj^wddZ_*vN+yy|uFwVR?hO_Nnt7i^pMkK+Q{K@>>P|rCk8ej-aKz@>lofS|Gml% zryb^2Qj(Xes+U@4AcTEiq~=Mr+~%^%`MA$i`fyj>I#;FN35*Z2eI!7Y@q%yJ`Epjf z^VYNus1`o{8RWCqamt#5;eyorX>sXjo>CTw78s_}j>yrasK;<4iBkWblx0o@)zV$3 zfcy1*Z6gXX(+4l7)~cqPSIEIb7H753P4<^l#kXk66o&j2eOTp2T<|}sR82A>(8xHe zjPjjq72m9&w)%hk+j79DEPTv!&-CiQe`VFx@6|=?{}CSxaYd%Q#FlU}e|u1}`bg@< z5^%NsLR_PBSdib_oB;_QCpx*m-0uB#Gaf zyfX~JQzLSMH$xydLik{UL1fNA6Rc8DHx*{exzQzw3Bkfc5I2E}N0Ed{4u~VDzWN7& zKw_gXWFr-TuSiuK1B;kYR`NDw|6EW{s>SJeAzdj~kjJ;tRkNkF^?B`*Px$F(8ZKT_ zB?DfdpTc@^UGaywZMXeE#%`&iRe?=$Zc2Ghvh{=?=*Qn>k=*e*hEyyLmroalMrORj z3uDFj%mWuRQP21jcNmwhCp+xhvz}{tcxc1m7aBg2A*NSlUylS;ryhof^X~jb zgs#b#TNq1iKiK5uR;-b7^m&8ZAvPAAZ(gJAY{kx1wcL-0By6=9-9%Z2O)hcBuao@? zSW!J%QhWQlZ$gv|4r;zWvwJ#xPjC|oZ5M>PCtTV4*X#?3FwXa?4~vs9ZYpeeI7%Xy z9x8E~VogXe+s6iET8?>S?q(9=(o#+OBy%rPKyc$#|oCw{eg| zXYEC6TL-+oOkR(OU2iE1B4k1XCZ^&G|IWt7Mo^ThsR4SY;uIUs0e~)5efGpxV@@@L zfy^i+fdaYcbp3R%U2Wt)aHui<{Chc(_T3HgIWcE1Cz%N%q#y`6E;Bq3p5`yR zd^AZkswmc^hoKj6OM!vZ=2h+zIvRTQW8m{i?yKSus{dM=UJk2%tFlCV{E6a&yj0uX zYSX;M+-gV|QzmsjP3>cQgKbNWEuTwD?vy+MDOL47cNx04r)L^o>PvD>UT*D5MV@1q zP$iq+jizhlVmH;~Dmk9}WI}w^2&@`(#o5`()02yslSDyjMZ}nWe|mDH*jfJ}DD?$V zDdIFLfil%ha41{^#;M;)~n)zmnhg9>?C z&CQyaXszY0qX|3>b|tyGu%DEXiySv!_o!57t%ea*{Z0gH*gpj0J5gY$lEZ-GhUX9u zJ%`@1YeanslN3E_9`zI%k3y7sdg+awwrh@Re*bSa!HqTFL1yAo3JZKi~D&x$6d z4W9~9&A!*k$Pn5+jE8NTf)d^d_KoBAYI{d;(Z#D;2_`yZc z-BWh0=T6HWzk!Uhf9Z{gCE;)#Em1lMcsdsX z2~=+Yg!D&zH#-nZ+IczV^j{vQ>Dz~KT{mTs+q&hCZx9?w4D614<7|kKZkye9a#qee zSJ>L?iV6$cDhu1bePhoZ)=9&U?(^~SK|}wP>;3^P9ESY9&2(kw*9%f3E%L`{Vhb2{ z2o?=aG?R1(CD{l^>GYmv;FMQ;tpq&-A*3Lh-@J>MW9Fu!Xis)*TFv~06JF5AF*fJ0 z@ax2UDw=8b5UQURoH=eIwQDu!AC|5_cxcn7bi@%MuDSo2PW3b;UwUn6vfr(|)!MXBS`s0a;#i*kW6 zJ(takyW(QDH^v<^aT(hF`xU6TjAR~4m-k{%rk5jMS&@?MOcoPz$YvcmoJA4{fCT~v zwO2N#=Y^90C(mvQN;KwS6%ot1>^`3gJ6o$9VYjhlmDp|Wv6y!wukX;+W0h^CoxZVc z*E_AAHjW9AERqKN8!>)aQ6}dr;iBAD`emYa^lo6MAQgm*k7s;^D{ zAO#uaVi3RO=Pt$m8w5>+gJ+LJnBK+i7DA*c2qqGurp08=@r=)~7l3>yP$h;BLL?#n z$jqKG^y-_cuEFu|)-g!|myIxcjwrs3?}JZg8|a_li(?p->t4%PjS43?zQH9nz73{X zx>#0>LoL}oT4?)hy>@)+;nCUr91K3=Rj;*2712wK!9a`qO(BgaHVaWiwn$-NWC;UN$SEMY+1NHd+AeKFE7(3xsi-CWXExdCL>9VZ>WY@Hjx zF{bS3=*XF=OovmhIo#kt??FT_NYFl$NL|9m)_dJ@(HRs4M+At+CNQ^w!FaJ_z!tY3 zdtLLe%@z+hzNwVo(^MFe!JBajkQ^&gXbJ$=*j+F;pHfTSriz#Yf&~bc->oO|{86s( z@$kZSwm*kzVj;!^am*A6^s2t6U!C=EG&VN2Q}|?)`8E<$Bxe*x0s=dJ?YGn4zit~n zV|O>Foc(Lf13iX=YtZa71UEI%8#?&UwE%b=i;GzgAvarzn<}EGeZI!guh#GpXQb;5TK+b7~L2OaG1M_Nt%Pw04{=WrUG~_{YS3k?b zq^Ygo&jt~~y?s|ko6*{LX*}z<+J^2=-qxMoQlH#Jtqz-Bpyw~?cUtQ$k85;O1*b~W zi@d9g{Sz`!vODM4`bawO)MUR|v{|Z5Duk50I&LVWU1R+C`+r$3`6IgvTy=ttj-ejrN2M~S0VGY^RSLg&mtoE!~h2TSSY4*z>! z+BEsnX_S{_I&B{&L&7H-Jl%Qb_%1IPs5{F(_Fxck{~Tq7rKj!5E+dRWa9qSO$$~=R zHT7J^qkCYS7JwRx0H5?($5~mHk~jBab`f8*D0PQ<-&cP^rTBN2Sf~ z-BsFnbu6i?UF0?_zp@Z1B8qb?9B&T-$I{CkT&JG*D+&Ey${ZOzYIwv1@!M*J(U=7R zA4RXV;82l+xtjdv4^Qj0ZQa{n7+^LFmz>t){e(t7J*SL*79_XjrFrrKS@`cYXJYHm zQHr_WIzmF`Vz@NrX$wBX@f08{o8G)kAPr_DMo8vBE-Y<*scvH;si|!@V%5VLe$*U1 z6ebx>CZ|A+m@Ejt<>@8S8=Mnk3QTm7yE`6&Vc&CtezCJg7$A2<2mkXwzT`Vzu662< zsYrUDeE#eExjCbGgs#7>MAH&3InEy-CTzmk^M{= z_S(}`BS4TIzO1dx;NS(>?H}WUk5Bg$K7YccPj$wN~KRT%da+8c$7!;?lW7gcQ zZpws{K;VqO{xW-2I0;4@Dvpje%Z;5+DuDq-0CCb=y#nMX?YE?Bzkk?yN$cJs?HcmC zZ1g21;V@bLwNsL6a1e^?6%cz0i@tw(2vY0Tgre7qa=LrVZWHzPv}Q7#nJG4lAa2=k zd!@aHAz(d__%!;=DV5=p!%n~LPiP%xv}U>vlCr0w6mr58&x`ZbRprF4E0@M%-vXZ> zkW_ZJw*2mQoTQJU95T`@UB(~8We%e@i~Nnl>;Kv7-*lV^1eGVUxdC|Fk_sc32OnX6pTrwC*g z%Vi!14^k8CA8$(eJH?NjTuA-v3)$-JyU_#1P6Iois+N2o>yk0haGC?w#hwqvmOJXm z8?7g@{112guOC^L8c~YeP_&ndx0%(taQjPAqp}*h`FF`MFj%;vep4xmL8#y$XdG@* zbRW$ACkxOQ=6&HEv-$y9s4$SGV*v3uf6afh^GTqDkmBdpK(1eU2-xz(MR#o$UOf#Z zD*1WswUnvATK=Cb>WF;h{r0yr>fWJokDnHL`{H^%+=vKNacBrNmtCu?4Ggl^`Ci97 zV3h}AS3j)ATCS^Gk01Kk^cJ(S-gnH*PH767*&AuSXgn-JhKwV)Po{1r)d9^>oSBUPqqhe(P#Sa$2zx|b(v zbbs;AlF<}5fD5rI+p8ZBI>Dn;4JMSO3}Zipaw(4SV?l#{y^m4*%YyWinCay-le0k- zLle0)Dh5w5vUsc_ElL86`!gE-28t$8UpFpr-AuSEP__VHY= zai09AnTf!s5&!#_4_A$y4t91U6KsD^POjU!8jgA!R3Z;YZ?oy#C~T~r-;uU?YSmo+ zi6`?R>@}8&r@;Nx@9XPJ>3iq|;2+TrOO&y^^LjOgtykdNadh~XNL}Ot5Vs-!xk__# z$g1j1iRk2*q>HerGZlIH__!=UP0Vyu$_@>QSa15z`hY3vjn{t-puE*p>|PlR67E-( zFQGLW&Ex^6h7YT~1Glj6zszBzJHF0FVOYR|l>C2PNZ_>(CNxNhQCP8+^KI4eovI(9zZ>jFy(QWAZl*I`J-H=f`?g ztMs|vQ@F9d@p|5C?Q*{Jss77X1T1D0?f>}D`JgQ-WFs=~5qRD8DAsoQey7DcM_sTb zV=2?fIMgC7IJlpOWR&`YM)ctOi%J_f;#h;gUXQ^fhk%V}#?_JE1jL7~i!n6OJ&F~h z^Z3L>7lWyi;>EgnZ#lr@hfKjZai8o6sMPM-XUwoNy$^3s*AsZ`{~|tLYubGBybtogPTUe39X~0B(}eOo~-Bzeg4?ua2?UG za+OtRSWmbNQRUN2=+xtiYX zzD)AurboczmElIT4x$oyTe|7!bF#xDWNd`#;9z{eca&VJIF1>~qAU8rqF-INw#~9A zCC9Dm5|sCN9TvE^!UG=QzBK&uZ*xH>E||Mbth(Q%KlND5d-$)Z(BZ^w{`TaC!WZK~G-4oNxr->?MZ`IO&9(LJ zPzOK)=R16k8geQBa{_+@@2~3W>RS~Nk>~Q#n%kLDvFHAYcv7K;s;Z+~=}&W&x|_ZM zHgbEZ+C~CERAS20Ta;3L0FN?$BbG}}S2Yy#d(WMjkh#*P12;rg8c7Vyk6xZ7f2Q_0rFu2+&t^e`E z4a8cogUV!3yK&&KY~$=d(v{ZMHN|IsZwOV;Z+*I3yADCeWl&)oWjj9nyV_*)m`@of z#m-@OS9t(l7{4cE!GrRxzEB@dVz*X*?>liL7Zdt~B`W;4h*C&+?EesDte{(E&rC6Q zm?-m|HWgbx>*h@B*&A!bR;Ia1N-8QVS$r)6MfTk907h-G#h>x@t8#L#&wjG8uMv~1 zdQ{b2aEUpgeh5X$`zt@(d{q=QB!qnih)W~6oP{Ymp9V-LI{y}at$sS(uP0rJ&Bna2 z!WpY7uJ`cn-_CPj%uPY$W+Am7(ISD9;@_!*Y`bA3+oRUgSmfX?81$o`yO}4(#Kg5* zihR|UlsPEeO?znjO9;vX+om2KC&8J|`bSRc@)PGha)&&$l2Gglt8grEZMoU_KBiQy!4bq{*@wg{fCd*=-%P}-nKOF1R&dKXRKk|MqCdC~K4(^Nu{C`+g^9SuI; zjpEY)qe@=O$5Syt!SVaI-u==^=S)_;da7U zuH6MJaM9f?H*!#yKwbpH3H6NXp;8hnXnihs+h20V&^}Y2_=PUcSfcfwoVFF+|6~*A*2$p69!7 z`l@#(C)F!QmZO?WO3c(%f)M%i2~kD%-f9?)_Mu=$)YMj-eQRZ$LQWlx!NNh=WQ-c* zAyQ?c9apq6CL?i1$&tu4iaR0?(&>>Yis4vV-nei@8tMs?A*-R!4nw+v$D?pzz@hoO zYS{jB&F;S+Cih%{%XM_gTeD2}Y!&I3o&6rf(6H}0rvT4K(~{diUJt>}E_0c$75XO|f_8!+lrn^`=9bcTrcEnj1Q->}pQdzQ+6PlM zXKrJCn?C;5WxfAbj0dwB1k}nFuHa5Oo)=u^GPNZN%+P2kj11u%t`jOHBaZ``HW5Nz zP=wW(>Y6t-!S8UCHWR;^l2{w6vwp!$^cdGg=gUJAq}5`Xn#IzsmS;moOu@CJls$;qGL)0w`Anx#2k8+UKcE5XL#Y-`b)>aTE2g~ zUvXE-ln*f+OdK${o%CP6IWw?Zs++%W9%$qSG^uwiU&D5+%kup==@CQUy2N-yV}{vv zYV194C5V^p243$sxw3ZiP0XqP{-eYE2Rg>KA~6O|0`c1p?Bohz1~*Hs#m$s3B)mY_UQ3Y$DCF!PaH?- z;^nX1`l?$u1P9(Fa1%w#3hg*hIltm5J>KRHtCt`t7Gz7RKERg7Edl8SIqHWqDeQ;K z_bV-16M#|-9zz|A49`=r3&J2>Z?f;M>+)nsG!FjL0Lt#1C;(H88!tRq^!fN;j4Tju zuVyNIF1nc+?f*0ZF@+td>O=IrS4%F`kd#FzR%6wowCDPy5@+k*;u7FZW%z>XE}4cU ztVC(=Gj*PyI0|V< z8l22iDVeLU6FBELGaO$X9P?X42R$MV%VG}?57E!ajWL{4GvQt8S;@|Mxg#W7s3vhe zbc7l=Avg6QN!d$}NOVbD!yf)T`H82WU)hY#U#<8ay-zd0ySob{#Zfq3l+1e1L>HcC ztZQ8!kK_cQJtdV_37&kHhD(7JOGOpc_d9z92_?yo0*-GY&$4^8A81-!lgH<+BhIo= z@8ExUL+ne$UQ|r}PBco+Id4*#tAh*Hxoc;b5Y%o3Ty;|(EbK5YBP{~Fb5Y!Pk|nwk0g|FsJ1#_ur;F+;&IH(-@kkv?uh zBy|vZqMlkc&dWav+L81dj_Hkaku40gg#R7EI*7y=S8fXYg18rG1?$+vrAqpSNth!$ z8PJZ}+3-E2v;;hC|6`8Yk6*yv!f{_`iVfWRCV#@t0$f4F*t zCCwHT7eU_Up}a%^K(6j?Z&_Ga@)C^7_Z4`?H)+^^pz(I#Nc7_!ywL*S+cJ>R1 zpGa_)uU@O=-hOxENX;LQ8aL#?I22l+>D$RSKdw#8&q2joSNOBBFHTth_r%o2!ZYgY zB`NIbSu8Ss>*0Rf-0+m60aKo@Ktrb?CnLk6C_LIbWMN@@<z*f(-b^jb zavs{c;fCneO~-c`%#^=zhunjt8F;y~96;Rk{ZRFXAJ3l4;K72;k`lE(vSKPjXw^tG zkfbrwi(;T{f1}z@`DBq#~90^YHW}hE*o0iL|al ze!ofYb6y`~q=IW`KTZH{9EzlLOx|Q`Ci^pq=1(O$T=_)XOv8>o zZEF9HCJu=V@e^DQR0W1CD~F^Ph`O5UzcJbyPg6lBhWpCdoUMF$Tkus`h&!eZIt{~9 zAdAY)C!C^zI=v1kBvgc};L)9gS-de|DI?(|<7RoIJtNQYncc6 zn*P@wsqDGhkU!0ztyu*5;I66oufF?F*^v)XJtM(YirX;B$;o=@f} z0JVm?DPk1ZIF`VB#=h+)DLQ@DJInoMOKW-t^9t!1WUY3_f`npg!n}dP_eXW{+`;8> zv`7a$4lz+Zi5+Hnd!7pVTa=R78=oEl5ToFjZ=pS;ipg1#vl1Exa|2J}UgHprDs)xNC$S<1O=6!w0bI6j5a+ zB=dIR2u7M^U%4J)I%Aeei17$=H-NpG%^ZLM?1pZ*W2M+bIq65-L)%Co_}kso}9^m3w1qMn%N`9KJZM&P_w#8%XjE1p(6EWhoyz_Xm9t9ZD*a2XSKSmQrNL8q8?@*RlIr_79V z)6*^Qu^*`$u9iWY+%&`LzpAQKsZyT`On!(QrhJx(^EPV9+^D~w%RX!L-wm+E?tO1x z1kzExnc#l%eS;i=EW}O8bsm7UujXs%l3uAub|Q^9h*P-Lqs--dS=x#j?Y&RFPtkN#c%iE-UnY`l(AlCo|t9@}=T)Y3W#{DBzsl%ayx9NP;{W59%Bpa2^c^W;h-XSBa(^L`dVPWgIU#wYe?M5>HX5`Wn2a~|F9P#PlcjV1H z#c>Nv4K3sebl7CT`=Yo`$MDf!`{&1p2u`1yrYbPbA854!i~+HK;rk1)NPXPmJTemc z+|@_5gZD)l)`ggAByCGm)Bo=G4_p}Eb0!+&95|9?L1G6i^?b6`PYLO_tgUorBncPX z-tts%M;E1&V6!og567wdR=@ch=fLOGw|b@DoqALj5cfRmR!wmnXBVb4pH35&DbvM1 z4k`#N-Iwk0n)|F$5dqIMGUWf=kikSBmQ>k2PGe*5x$$aM#q8=RfASa8s7Z45j`Lym zR#tG%&rDX?j2(iEX3OayD{vu|??}^rl##jF`E|VaMK#NJQi0JotTZo%#~tQ0D&)eT zOahwO7f(Y&p9nlV+fD~d!0nALUYlm-n}(5xcbS1*v-_Csnt>HAObw~Z@mq0X0uK{A zyEq6l2)}wYSLVI77E0araJeAPR<^XT;C*-Hf4u+nSoD;~wM)$4M$?)gII#oO3yvLrO$T1qwi1T&qi9o%@k1q#pIxBQh7mI*=Q%M(pz zLj}Tqw`Xqqvk!e5TFb6e(Q;)s`H8wUmJ{x6XJy*{`>AhT`jQOaUHletB;=xJ{%WZA zJN_~1)i{1jC7qcD=FK{$z%YR9%hR7$jFDO8Co+>bA7jb~U3#ttGInq^#vqIhF!i5D zvv8L0+U}3GHxla|moy*wEiisBDk4p>VvJZn@ljvIr0=0cVE*I;g+~`EFhMYbcLULe z+$ldMdF5i=)NR-wQG9VRunx?Kf6eeEb@VkPjn7K`vh$J5XT={VLcc~0QiP4~NYKD7%^@3u zYN9BlQnogZTX6~-cjVX~|1CZ)rm1kYozGX%$>}+t$Rz81)KO6x@t(IlI5exu zvK9XQx;%PAKM9}y%7n#xX}@oTk?-S~oI9{I3^3WLmt1omqOcJ25xZ(!A|ghDPW_Mr z+6C#@`K>NBWe0!Z7*cy_#W{NkgY|gf?A8(s`d!2-}E^``@vTVcN>s4ok~2EnxxXb%5JScE{}Ht*4CM>B-Zw3AwOmS0Mr zcjK$-IS+sa>n-uSJx+iwxI7egd~lm%_wbSc;xmBh>j`jS;L9UHaPPFL3bfqbIaK4^ zSl~0$-~KqCkdkC|)nBR0El6q6jKtpLV>iVm$(8u>2hG-ui$dr*NDypB^3TQNh5;)x(N&C0D ztSeWTUG0^b*yKv_#{cvqp92r8#TXTbhrT}Ljz|p&eg-v`Je7{~iT+V?DDls>1R%`D z*3pIu`g9+!(S@jH3;A9uFtS_eO<*`0Es9lCPo6fNDw9I3oz-&A&};34GOpqe1%_Su z>Y7_^TwKmVT>XEZPc7+3X8CRpzg4B;H6L!C3B5X6dD_o@V56SS*myQl8bi=DjN(rE|XCm(|J)Xk4}B9BT?)pS0cVQ$Y#vS+x*>&{1P$i& zrdLitBZnpF)S#;w9*LAGO$|f8;4o2$CT@O%dQpKaeTtydyP9(zDbLn9d|7E+l zct-2DQnwX(^{dA6DC_ojKexu)AKim2Uq0%EGvxsBgBe+!JHH`G*~WRJs*nH=rV z)wBqKm8I_(y5bOar3fua5Ur$p0&I+P_!DH+fM0X~BFLTix{0_2qZ^GS1j~)@TLH#7eu`?Nnd z7PM{t!|6}hLQ>LX`}$(&J+@0t9S4ASe*K%xWhALFV>lWgX1jn<_Nlq)6^JqgC;HWu~#xMY!d3i&sSNC##E_$Zqq)T!p4fE!RV`LX@8oUa2MQd^}$O$REBNl z&!5}$mHTb%Ur(RZt+xk$WO)58>Z5em+a(?ma@QBoI}AZ&9`$VSK@%-$Zf?fxN)hw* zl91?#OG~3sdtYa#-{Nu7P}Mh*#$N(vxWdAI_ttt}+cg2i_9_yX5;HhbKjS2s$bfv}^%oVsd+-ds+e7X3M*urf3_hzdfZ&^_R`#HG6_h$ZJY{dQ`6 z+z|{pc1ukf+S?Z5SE;!y;3REqya9)?&F{vYb376q+;FK^Q^{3$%1W!SU8J89=*>#r zcV8r2WHa2BOQ%Lf&Pb$sC1FE+$X4osL{TY_E&@bcuJKoK1pG1?sH5L_kq`pBEG)j| z<{}B67Me+a4`hbp)k77wzR;TncjF3vhhv2$Sy`#Ag~PmwAwD_Vo+$0{2v*RT9K^Xm zWinWdHTI={#`g9$NPAWGo%Bw}46~BskxWGWFit|%=l$hiJ3vsB?0wgoj;4|FtYiljFG{Z&qZ|f#o*RTMXamuzmge(kqM&oqSCucxoAyic2GbqnO1<^~hrk>sAmhe-?wSoHEfs zlqCHraIz5fnMeyNLKrR=#u?|E=T`7cO1b})4B2!fMaHJ+`=UrQ?IQeb;w*qoMErJ5 zwSkED$4Ge*6@zbaap~hId;JIZt~tM}g-|r~Q;=|D&hKkn^OSf^JLe=KDTeb7+C#FD z!8>V0`#o{;LS%@m%Q75CnR4Bcvi_LPD8-D%_s#DQIFLel`XFdwJ5ETVdWs(N2npbB zG6JyL+1MDcIa15YC4sV1|2-uG-6m61>tZ(6hxHxtT3Al% zVtDvbNRS;pt9%8d&dW?;*m;gbPk`Z5 zJuRfX2{B(@Msplst+Q~N=iMTWy1~WdSEMx|Eb+7Btg^gRJ5w11B53T3A%JI==h|Z!4O~z>znfCCHV% zeD?Qi$}g6guGR0czW>;n^C1Cn-hee!wr$fqZ{#lzF=Gvsk#cVnCALt-HHv6iDg%>!A?8%3vN-$^+*pO-vbh5qVWfOl%a+b2 zvbo_TD$XwaZ%p{O(+Wv;P%Yj-Wn@z=EG93 zLkaeY?L|C-BqSuPG3Q^}pSG#j3;J&lel=cmx-U1oo>cGqo%{rI&YD3v%gU1bN~_0> zB3DGh0}ApY--!I^MG$;GK81eCMT!9#4pl_pimSU6j5C$wRzlcVG=0SgcdPraY*^Pw zyNb_5I<0X&r9)&7?YVY4TaDfrv5e+;Bk?QUj!o^9s6Q`tCK6RMnd^%iQhr+H@FlsImC1==RSIt%RFRDXI1zTBIuSc&z& z?*f-m4((%EkScuT#!_~yadU2WiFJl*Zr^bOACgC3 z=0=ZqCKAf+bbs=eh{MNap{@YH8URtrq|xrH`hQ!zBZr4Bpr0_t8Hkx|Gylji)*+H2 z$OuitnBwa?FRjFs3T33llLT$D?qG8VRu(|xIq{&t`2^>GiRH8Qc?VQri@WZQudkol zz9dKC#IjPDOba$bk$_9D-LfanQM~*RCr=;Nea5P`1M%9W4+Ti1CD+-4-zFoW* zIWMFtMyg?Lx*{K(pP0;R68BaYMr79h#$pL#tof61hwW&)hcJ00LkAGX>FpARwvssB z|7o(BgU}-JTfGR(OUydQ>@pAX&iZ%kEUR&m<(iBgP?yPe`!2aQKOY&I_PL6}D?v~@ zNhzyO!jWEGowcAtvOMfLE%U2xnWL^lD>-X{i<6^3YC`hwG%yS!Zq&9Np+<}Vl<_C( z#C-84%d#hK@5>f}W%+5oq}l1a?iXa8)f5Igu&A1ZJl}djBGjh$?he|NwLQtBqTYXM ztiCy)(-}oY1BBk_g5T4+66e!xeZBocTkhQf@@p-vY>7{3B{nL;X$VO#LKesSfZI&UiP_PViCH>Ym4WsuMP@U-fI(L&+7A2yI8vG(4kA;u?m0!wXH<*4 z+WqTQ8$;RBN~*D2u_-g22zHfJ7h)U)60kH=?J_PP(3I|OySk(_NFzr%2K zaZT913^>}Kd(@zt4#R@lovIm#lgtzdt%}3(h!^W@U#F}%i`9^< z%K4aKhzJD9hR9K-I3$-RpHHM~KAIG`MD7E2?HQH-X>DIN0Fj(9X8YZqqjOxF)(fs& z8F=pHGgAB3Ov7Z~5o^f8h4r)4t6)Rsu9GN3>y(CvjQcZRy_*OsJ=V@$MsKc(F(44i zYNQGXW-n5;?fJOMP7R^7U_F9-eEgZHO3Xe4Uh$#T{&6PSp!wY9{YO5jp|(-DtoMat zQnG1HLSqJwCWZF+>{6pm?BWz2Zox(#)65prfhk28@oAVDNk&b@gPv}a-^&v9J;bh- zHR8E!*U4~dziNGb{bmqsYV-A;x;y|uC+%9VnNz|N;VG*Zs0{%@wDR=-I=`D5RcS20 zC(wF7kz$nA#zi0ncisxDMB%0}41ngXh_-W;MtkN=QbEAXcJfgQGmL_tP8vtds)$hF zGxesjEKb7*EpI!wneG$()7Y$78J4fN3%>r@cYl1Eo9YUj!W^_aBNV8iuyHiP9=a-f z0d^*00Xs8vQfPY$mrPC&QfjCq_o(vEkJp02b4~s`L>0VW^ef?3xgXD=!qygga@Jh7 z>3myyu?@_&Sb4Cuc4`%vqSc53-5Ca}y1EYkv}>NF{_*VOR~rkx$FfL{MgUPQ7wdF< z;GV1mU`}EPT*V=(7i>pKX`SFIux@?`4fkXe-*ZbSbVS|>F4N9W$7i|>7Y<3JC3 z5Ap}H{Wx(}n6U1^6g5Tk^&svdp9AxbE4WlmOVIP&_Sgj{YEPCK{gEQK{gBKOqCHVz zj+;mS%aV$*tEc~aR=NfQ51OhZI`!xccrp!uH+ar%|L@=8;$oi_10eT+!x8uy0jmO} z*IIKu<#sjRzSVaFT0Jn&n}O{E;6~g&bt(RR;Odo)6+8U*bF>LGAA+LcMCD%Kow7+Q z*l#-V&{IquFvaLH{Fm)o?-@Hs0Lmr=Eu_0s3^5dy24!QZK)5d#TjaPM`}Y^0rb1@IaOocJe)+%G(6|_v!Zw>Eg^cIu&v}}3kb~+r-8P>a(5tfa zL+j`r3t{cQV?|`Yc2bk5)B;ESWEf@_44o$=qN%Ib6-w+%gGHz~o0m9YnHZ;D^zM4S z#q$i5U^KW~9XfmfP=S@3Q6t~Fa7*BSy;^o7c5}yO3H(dX_0@zTERccfT33MpVqR+K z^4`3oV6=cOO4RBeL^fh789~H;`KtadHy2*bDLKV$CMQa!w<+52Q;l;3%G|*z(w`@ng6w|s9g4y)9 z_~~97nO|@RY;=?LZyj=Dg%AJRSezYt-(QrxtglVH+&2)*;nsPxrPvb<3qt4*lVP-a^h|$NwJuGCqy~ zMY-1cLiFlUwCf-N0V%@zE@>8f_G3l^A&#{)W=20`6ry$|&4i%Fik zotG-72rgY(7-F0A0Jnzmr3BH<7oY|vsaqeQZSy92R=xZG&af1WFf{zpy>eP#( zDlt~HqPV+Ob;;p*HPX^j$F1HUK>*#|wGKoB%+Iz*K!0pWvl1(1v`lV%;f5fvs{?HZ zRMNNsIG%z6IM_Y)^?$KQM=*^-i8J5`&vAp3-h~)BkAem6_4M1=dqA4V;xSVM82y-s zx)fWnZXF5&IH&{2bFj#_jXgc zRhm(I_L=GjnL|e}=2!oM5?v&8m6#X){K-q~3j?L3#{GryE}9h|<}z(g-W5ft)f-Sm zTL{w8heYAiO=1MvZnKK3NyJAfbC-n=MCfJI^=4?qG!M87wA^f05OLfOwO*-+taXF% zJSc4O1G{Fq56Y|YU7_!#Z=K`G=ym?Zit9m$--qACu`v9%Um=YS>)$mf<~Re z7Fk}~|E+m;9In6x;H#6!&{b|YG!3O;(rSL^z&fz*viH{S*TaQM+YwOYtN_tfDY@cz zt!FNtBr1yTCk(h^fot}k58@Adss-6@AGNf!UZ#(j^8Am}DD$=ZM^`>O2kWCmSV$*9O0S^T%CvY&}1Dk+KNBNP)K`Yep*ckrq;v#3H4lF1YK zTU6n{&)uZOnQ(9QTLpdMA*hfPL`mr}7mUcjqaNr=vzuI9$^I|D)2=^%{@my8m@IuR zzg@aA9Nlr>Guz#0VZ*Q|yc{2O{Q0H;B+W%=(Kvn!K${$rc zPsnAvbiNXGT?VNyDw>D@1qvLoh)~PPV3;%<3Wwssa0L;Vq){R5!6?SBAVnmnT;db0=rf@uQezq|i38m=_u=;9~TK~b>i`(u{A zEoSp9H8ok^dB**Tcjf79Q|NLaGXHc_=z9aoj)>lTIlxZ+^;A-{`@@ZDR23k4 zf??~`J`E!6>lDF9FvVqZoAmzro_op|;NmwQ0x3r_kdyGiU4dxi7F!1MC`AI*%vqZP$^*T@R;& zyxR{&B}GQn4A*Vq(c+@Lt?i6Y45WE)Xe`?4TeP6~n!AzGv=f#!rKQ7H4>T~69SBLe z7VZQW20&M&{q;3wmd1D?{mp*6(yKHp#9SHHA%uPB4`d`9XvP@;jGFS?P-QcMyD7h& zRJVu7sL++~lj!V}bnvk%%W7B{7cRTstjcO9+fKb-#jY;x9gb6rrH^oYXt@SxTWg< zr^Q%?zthPVtr$&>^%({Ps%A(+bd44zPm=(;MfF+;U*Y~b{yY`S6|jEyxS=WvK<=Fg zkP9c_qT2kLqA*s&MGU^{ASK~RvsCid#oNSv7`Ib*C8#ocoYD(=$AXFSQ{la?4wOQo zkxHP!SX6+Aex$=N4*`N8u5vMP6^SbzGP=G&p~X59U{$7p1IK~D|G`O^upzFlu8WQv zD$Q3P;R4da$xb{@xpC?uJxps+;^Xxg0XL0{>R%o%IC8GVeG<49RVs`ZZ>c?1jl3PxCb zvQk4k$y^k2VN<(XD)7?TJLNBxW+Udoc;)&cQ5ev985~esYM1T|R@!bpv!`3oHDGW& z-EIjidAy~K7ql(d`Ud(=w zY6_0)1)d&(<@B*(#kD5_aP{wx<4B?^3OSICthSt`Omb>%VBwb6{SPTiY%}TJY57Jm z)WVOeZq$N~s{ld?BKdQE2i2t5Vtfk+|C0FmUu2zw;C-FyuFWYNpUX4~!J@t4xgagB)!&Ivme8E1rGUMnmgB=wA4}$e ztaXfM#_`YUG`wEYC=Xo*Q6Tdek;J{`FVoS`(Z0R`Nl$GirW?*~AZtF%{Sw7Me({Mx zd5_o7(xQEUho3tem$bVPk3KhQ|1f52?1}ED4LO&Mr`E#p+fnA?gY?Via4A;F$&fJ1 zQy&8q?L;Q_vU1zt_%fSqP%W~zzF4PnU^6?DefilkyD9Nhf(&J+5EJn&4`N)m$OvL| zS|au!SNkU0_nQ8IW4frn-?v&(-bJT1_#ZUgI1H!zPt=EC?7Hme`=zc;vA`*6ouQ?oc&o(lr+sX)bA= zs#YGYYW4M}ji(UtFm!Tq^7NFc_)y#GbwS2$+zqC#m@T1hi;mriz9rwQOo65IeT@<= z)9S`4RRH$>UA5;r$Q5PDmw_|haU%o}_N%xK{!~t@0We9Va47=}cZK}vkmo^gwC7}G zx3N^BUVGI&a|Zqo;IkbQpOJ+#cJ|VKQ4n;P_EGy5YpEO*F=q1k-CqYrM+1BHOy+vj z=VftedXl3X&enPwN?IZUf^K7OT407bpBdM^Ya2G_2@3anxSg*XX?&6I z>gE`GQ+X*a2?J{F%n>+EoX$oBKvI!D3Ryb|H%m%{$|7oBlb$HDOy_4oUS3{XTN_A# zi}LnlL3yrs_VTOeZRO-bkM8ncfc2y?xF`7(Q|C?hR?lLNf z1l=2a$5LxMUkw6=m%zZKsR&w+?F`y>zk@IACXL6#?R4sfoh)ah*TohlHXez{&?tFU zYC)zUxGKq=hU?nxLq&Nm(a39&gXy!er%Bvi(WBO*<)^katy;*2v8^;M?m#{*EQ1$K z4JGG$cqW1EfnwQ^Ai1wQ`%jKm<8A&qy)!F5M+uyo`g$pbsihW^WY%2d7v`l*c+upa z6|@uwa7hpyUk8vOz)$HgzfxZM%Hl!k)`0e$2Pvo54pXoXmZ~M8JhZkFC$jn=fS^-;|h;=p{{qxRGFaD6~ECPDGjzGn_%*KmtT=6bQ6b zjtvap0?YldlWNZ_n2TBnOn?p90nMx~x#~ z=uF81@U0jb7j!$^ffHG9Cr81tQkg&+-lp~k<_g!f(lO-X{4)A)e|f2?#O3Pp-y_kH zut9J_=Y8cMkYWF4e#P%qo^mE`}zVvOMnj0U!G^%F)=ag>&BzeF_)n749F_Vqk_qPG|E$47-eqm zT7BTzU8=5skt&Zj(ZHSi>$a8@blHO~hEbR{EPlYW;C1FJ(0vBr0w99>5jaVKoAUQW z%R{`}W0n8YBly#;sz+^EJKY-tPw8=rlwb^%0OTova27?6utt;7Ec)& z4KO~ty9*E_hB^GM1f&EswDptU-w=k?xIXvq8iqvAO1lya%^WN?;zM{+m3K3#{T}5M zJ;g+1-BSvOo>gur!%=BtKwK7mC+lwd6E=tS!9Qwd5**IeD5Y#~T^kzA zoKyxQ7c}{Sc8w^71sZq}A#5cYkD*Zmmsn$>Ge{a|CEZ4|a_;lpVbk4#z;^cK4ezh} zujqG|Wp{CfcfS6ueTcjIkUnhwjl^&`2G{^=-SQZBJtoHdmcdHoSgw(ozf2x&-31kt z*9`_PPmd43+V&WhCV5(3Eo-Y0jCi2Y;~M2a(F|Yp1;57|k}=-D{8%dQT@?}WMOAF? zA^WWU*RqtN=y`vxv&GQkD1p`=#E-Y6KUTcQvR85w5d+==lDkXx-J*lvS-Rd!%qS$% za`gAy$pd)4m(vG2yVOqN&jv-Gx6LT~n!$vrePo#T>`08;d7#$^DUUp13R97dRw6iZTuG}E|SR-5h) z3@7K$j-IBHIT}`{7P-XVf)a*0uO)^`O+fg= zC8VWsMht;cC=~0x+A?=hTT)th$&JvC!w10)LKBaC4#`QVD>yu~H&iCjFs$i!x%XJ) zgV(=2(!RNDNl9)y49V65TMEzo={LO#*b7gvbid`Zm9{5@3oVHnjukFXG131cQBhYp z!%Ebc^Vx>}6D@&hueg|1RrFvJ#HWA(%^#e&eW%rz*(f{rV1OkD6i*<%KAaA@Tpid% z%hKh_Mqm0Ge3{kVXkNVmBQ7la>YFX>&PR?Sqiv%>V0`qMKm)qZk$Yn1;QwhZ& zJsolIo8lWW`9`|1ut4o|-0|MNF(0(qE&luwOUi2weqOvhJq$6#GIhH{(K?D-B(C%G zy8kc76cJ+UJhq_(_1iY;Tcu~}f9gO!7{m^M23<2-XD1lbb;8xWEj>LyKR~iSQ<7{% z(so3B8BA&tVg$yCrb9py06G#9BwX6KKkm6A@|smj0nnP|B{&A)#qIhVdB?!ZX9e4aA1^M6tP9oG(!q}gX2$g?Oj3qYj^nGc z#bk+QMVhetAy{5DnDr&y-rhdlWIv^f`QC+MXb9 zr2LlcK?;TZAYXm5TcO3AQ2G>?_4>8&(Y1+{)n2^M{(pBF3oU=nq=BgD2zlS_s-@68!`j}7Bee% z%U3%hPhuRyy!Z+c2;AOrRDlIE0v7=x4iADRZv|a#7lhEF z^#%l*=Xhr!1w$o2>tFgJtsj3i!WI_C%?J}T!IO97$p3e^do0q&#J&~YFqwgCA}aR= z7IZ=Hff#f-wKTqj4AaQ(L6i?Le}xlh^L?m>PF~{G)Wpozt3CeoS)rwa*WRqA>f8&3 z75kL6W&giJS9TZzOshU`eE@VTbg6@Bn2w<+-I%3;jD*5<_`NwNu zYz78ph$O6oG?D=?Rk_zK!<6=0Ee8in8XsUaq2dFf7QClE_?&!xX8!chL!50A01_n< z5)!y_YKkG`b%7OZym;5e-;5v-u$Ge-r?aPreK>pH|9Ur zooqDOmiHtM%C6%SDMnY6v{wWM7KPw3K*xE2_d>H)xn8Y(&(V|PP=$Sq=Un-AXQ$-o zgv$fS1accr$cq^F$b5W#`%TIgfMu$x4IJ z6i5Vl`neMs)DuyG8*iQFYx0}GY_6HjwCiJuujx(dNB^wTe<7s-w3^97NFTN5?&j3% zbZ(dJ?r{7S|8r2^*z$OfUW=O|I9|?KMVFcgNB=BKnS&^^%AJH(>gN6GWo@I0YKq9l zBq_D2+tc%5zzE0}8jFezpZHiUY2{iyxtfExAZL`8Wpv0p&rtwqIUEj4zmN>?gHb{4 zxadDQegCDg%#6GHNY2g6!<_=B<;I=iw2Me=v@)jrERWmpa@)bu(poeYdeVR(l30fI z_Ea3nln~r-XJN^pK6G@o6iaQiKoUiJSLU)5!+?H4Ty8`(`ASJ$>KkVb->IpLBBk~TCrdd7x4R^MxAX{mm5tD)fAO(4f)WIlQ^<(kRb{iYWlJ?)VJB+>j2XaC*!Jz zlL0T>q|7cq5q;&u;^gG)T?1-W0@||%deee$gbI@sLOCH>>_0wLNv{W|#T$#}e!}IN zR7Ym$YGrSJ9ygJuYc?N@5r}|LMfF1pISqAOes`$wd)+&-8jhlJmkvk)$zJAr0o(Vj z?*!~#ZA50L3z^7%V0PmhunWBq4-x&ja$!7m^lk4djs%Obe7IgMOI6_m+gHXhIcdI5 zSJMBy1qL;ixZGr7&b!!t$Dew8dwuR&LczDE+lnI)QYzPL^aA`CaNCXTF_y>ys_=yP znQ|B(EfrT9p;3`{S->|#WxN3~P;I(D=K!{YUpzcZec$K41LotFMYP z)6?{L;c8N|xhEdf<@<-ft3HJRx{bK0ap*HO^=L}r*=n{vCt%(O?5_`+n#LruEMFzN zl^MDMY|88wIM~=q%geU|o*`R5F(z$D6F>uZJazX$;xc#r=jm8?-2tcHUZnfONz5T& zeWmTWUIEnS<-g_m**XVc?a-L1Ju$7adT-RJM}ow|CUuqAB{J?A5I271!{M=uQ;=xA zFjwa>u>QgYW+Nlz6A`&W%MDE`)z;;2V1n)|wEGZqGd614^P|3JH%YM9{ zVBE>$O?7qup}+9|Q1zB!RkhK#_a-EyL#1N_(hU#Yol=4{NOyOqh;(;I2$IqvA>G|6 z-Q9g|&pH3=ye}WtH}-~W@3rPV=N#iV_$Eq5j&*y#%f#T#l&KbRQbUFz{%|Nyh52kq z@VW5ouc$0W9h{YP=bLMaYD$Y5N@|L0Ee@(`3H|JcqYD-IK#2M%|5`9@_N|&e=#U6a zpXf6CsR$8fuk0cy<=E0*4VeZ$(81*(kvWI#WQ18v;%XrTTw)2^3-`$PA^bJuM3=3o!Nu^k^ z&jdnC@=Jss7QfG06caw`z?r+ayspq^v7S@JjlK^RUh~_TjB1Z!7Qe;gt;5}z;s4vI ziY0sHDnducL5W}l+%hLOH_w55oQKQfbRd|Y)P#mh=Cz)XOetz6O)oF|^iw7OzF$}Z z(?y%H91%`V5SfjtW}t}xy>E>U%bk4yfTj7RB^_lwhe-u4G(t8tq<}tXtb58;@~~;% zc#%a~qYhJz5e8aJFeVT)l$4g*FCTV-QNiOkCqS}r9H5GvE6Kr|)2IYv^vnXP9%`T!EsTu@+gSv0Pp;~*g+5n{8bB1^WOfhd9* z-CI3R1Ob35XI{pF3|<#Y2Zyu3S9ZW`Mt|{c=wCJM^Y zA%yn|IZ-*x{Q{GKm$lNCNj%j70FBTwp$JFCj`Q`=T{9)g|BSI8XI!hK4{uE`{SDBk5iM7 zU3_gsbwN#u;mGg%$*`~bF;%y+pse^!liQK!A+w)mt@{}jyJ~oDp(DD}|CKf;2)V56d?%yOofNa@!G!b#~@VR_oo$Xu{t<2W9oX z4+rTKS$vfZ=Khr^u&cA>hP?%HZ`1Z5PKDE5(;e4OgKoxkIJdEVZNs<1XPT}5ec$=>>h3NoUdQ3FI$|OR_A&S z4s5W=f$4g~HXI>ezK9!YBEenH%eKs~x#H)oS<2Gr^XzSRuuc5H_xb6IIvN3fMJ$HK4AkL|0t+hSJ$?=)*G|qKim$=YOcjxwo|uD=3iOCK6^S{@MS^7{BiI<21cS zd(%gM%X>|;twa?m3nZCcE%=gh|I42kSyiQhQCzvVx87D;cO0A9mLBKcn5YmuoYoVk z5je(LW-eP@eO+bW1&c|b9Z0sz>2w6v%%{g4p_Y3up-;a)&jZa10U;t5`Hl|#-7&Iz z1KNEmO%b}T?w8t4(a12;hBY-kD;iqbii62YkBb?JZ%GXLt&cA{3|rj5nC5icun`67 zBo_xqhSN3A)>Z*Tp7zaG@%)6S4RPy-u^16^F9gWz>4(`{E$^X(hQ8!xZRI&r~g0YG)Zb5Rq41VDT7)}?0 zWpYi;rGC+0PZN`mInD{}=|y!_3zQ4BJ`Vz1PoBGDf1bXe*%0xS|8_eOfkUL;cqN^~ zDMJ+rr#=*hgo`fBW_>Itv~#N{<$7>k2t3pLS3~h7vt?!w&RU=HhV^g|I`A8#UT+cP zkUwhZGh!*}(}YgFJ)indjf}gHIN2hkFh;8ho)KSX9G(_=^?pD@k?&}V;xP@3$~7KO!2=WZ8^6oEuQ=4cY4XWn6bQmfJ^<*l z*Fc_N5CIAT#*C?&%(fSA;)siB%YdK{<#$Pvv>hv9;YjIVt(zjgx!e#|415NGh3L*u z#wa=@;RvO+imBom0&ZD__C^+kzX)W5Uk=5xd|VZ!v=&HGE*w;FT0aDQAqg!jZ}zKLT-L*1JKJAD z@4>}e<1`JH&cFBEdFbGQ9SaK=^=J{J3cnaI*qq=2AMkO_@isEW|uUG2u;~cRbbi!hg?_}8WLFY22 z$}+t!KGcK_=-4S8l?s0%!@}M;PH4%6zK!|ZhX)D%!139iK`m%40MaoOKQn|JzrY=#wQv#y_p_pbk&&I)PgO8r^Pkior{u+|y+kG2S~K2pC7#Q$HR z^>gWHms`=?FRBK0;>7o6|CQbEkIL#md9iioUIq9!Z{^^DkUYa_)`e$B%TiJvZffRI z(C+@-$@8FY{i^T7P%1lkG{fbPDfRiIv^sS5>}(Is|MsxrcuUM_IhClP!{gW$7W55s z6$KKLTPdIW#=JlwkJ_6uC`$=qR$BOTJMBcD-SW0*5d^P2KfKu5I{_9+yXe=b|K!&^ zvJ6vz%xI%W!Q16{kh$gZ91s$!626#nfS z4B6>Z(32)edXzVyV~W-uA&j)`*_ozppobGyB`^j0|SZlNetcx1-&Gsm>0}h zTFR)IZv)^ZbsP$D{gWWBj+)gsOFyqoj_g-VcJv<;qltaz8yqGhsY#iOjd z445g72p1>9A(b1}pWZ$uCH3-Yr{lAue0!haJTYrJ!tb(BgK;+mrdXgu9Ry*>)EO55 z7eRjF4b(19JfzQXqQPc#qdZis_CDvnH&JPWe}J6#_Me&&R4k zh|E`_MKC5K$5v_=Hvb!pcZ|&vntQ$hcYm6zdsDfrjl+t7DopVU&Ja%&GmuZQ9O7-} zhjM7Wj!PtD@%b6XIrzhiS(e9f@9av0Vdr*F{Ex34;VFryUuClW2^VhA5VZQaHJX}j zy5l68lbHC*f8CHi-}Zt?YKnD>9|~T3jlG~Oj7X9CSw5g(AY?WZzRwtn#Fk2nLk_A> z)TGU26D&SNL-$dg0fKJWLx&{=FRE`LW?%fsZB#mm#>*#BkrwwejiH`H8j8p6DjzSC zsXYVEAnEk;$9>?A9^v^pkoU8{4*xWz8kFRFXmNDoP zJBm^ns6u@bYzylgFhOsod4gR25k|m5F%i>}>+zR%h=Qa!g!aiS_I}`XxI0f|Wc1n@ z)dvIQDR8EKsg`O>04TD@QcbRMT_CWoTrtZIGSx~OQet%Wvvck=-?hT=@* zJZsOV95^K{`xW*l)W9&C_?bRDq9VvU#i}<~?lHukx%gFLdV5&mxrG>ebSGy^q7d;Z zVf#~;p8qZSWv_D|U(|T%{n#HE{N@)J??F=;XqlLp!Q_hOWuW^VX*FCK@EGOlx0RKs zzoA(+NP{b}(hjIttu`9v8{}%KemvXBR=nJEnLy6wbJ;I$`RNIYe_>@XODvhQEx8gT zU)iL}=7H}TBzHNit=GR}^7PtB8rIc?VI3oAYT`S7SzJwXO;IuHRpqNic_mXleG(-_@izQe2ZDDowE43zsT6}Eity?xl|5Q#6bN7JkZB*_ zGCryDwnOHp=^A4Do76?7Bu48EqF0}z(iwNB58?(*ft+S*a?=J#p&rkonr+)QDs0eG z(K;nIXt*@XMIhuopQ_-oyExcho8Z5ep$+X)!h#08heTqocy;V{1)vx6KyxHv#W%Iu z+H~gD22Op%mD{o$&?5XhHpxQ!M1@Ex$MAaOJU5}z(!uTdu!AgcTgdbXI*{}0sHjJy zlEy|40Jl0=zh8*Ok-fhN1^O8j-fjus@eB`t3Vs!}WoCn_Qq~LvrE>N413EKK#F8B> zsD?nVT{_UpkIhKONYBJvf7DP>K>g<3dx*I>l1(KiKAG4uJ2_@9tYn|EJ%T(I)Dadb zA65qIJ*3}A&>uG#fkjfDjwvK&mp(XsfLUAnj~h$YTzyHutjqE8>U5o(-%jgtj?bxXj4xXp_gzgfbq0&YTqXI_0~cU3 z@2K|vA1lwlW5n+-N*7=Rf3D!*oC=1e89bvHheD^#t1X^gVaoH)=&@hEnb1;UFjD!4 zuy(MN{EGqb0mWj0Zz0R$z8@@w5;T%_mUJ-th!uwYT6R|C-%kSLT}ef&=S1+vxA1VC zSrd47;c&=_lNmBQ`)aKsb%Yd-SvJqpMfOVvi1^#mf7vcX0n4|c>JeGW*LV~?!D_A0 z8nov!JH1BN;ihFqKERE3j0h{JnNd(s@OuWocc1K~T0A77-+FtY9;RgBUw$hY#k9qT`PYH0kNbn=G&q^ZCImLg2}LcfDkj1mY3&YuqVluy|P_)67{e!lF@9zBE{=sn;IWx!$fSJx{g4# zC&hxo{|#WtDWBWd#wXqTi!8QIUteFgGG4n?7Bbsbd-?-{APk=aYq*dgZKT4JnHeX} z@z!C|f*!V=Y-dA{`D|c7z>ZV(_wUDrgYt(4LROW5=4W@ax?&5C_PdXqaIb=_zkISC znfxCufDMay=T+^yuh#X$)M>8FyZfgE_qq=K8l!?IOE7Qs{nqxLiq5^mbt@1DykT zAZ$$6zohnL0jQqnGpgPj6y)E>bY6#r7-{ES!|97->bCi4ux~mRwuATEBo&r&lzQqF zB6;d@^G!icnD?_^W$kT_HO>JOufMRdkQy{C2z=^Poyj-XVK2>?-)lXqH+z#metcnZ z1(8utccX4TCteypM^^gUzl`!qmTN?`Xx?Ve?QX!(nC78M6T`O={^lt-a*hC?7+@=B)Cj$P3DRr=8S*T{V-1D0V>WUW_`=R9@+`0Xk>ms3W5J+x zbC{+{7!_{rBp&@-Som1GRp94)KJsv}GjzA5X_f^>w%5z*?q};%^-B(J{DwEAyg%jk z1}?G5;`qW623K%m2(K4>=Ap*rvRESIjv=V+YyLSLy?Z}bVQg%)TmzC~k9R}W+TA9P zh5d8F^2*t48Hq7JBqd{s4LLPPTVf z%yM#at?{1{{fwNwUoXDYn60k_{5m*cS@&geQtg&oqo<&{l_n2?^QVfJp)J_E>cSbn z%O1jzYJUGAHKQt#m&I8Zz}!`Te8{eI>|XdFco)p>GnPaCwZSHhL_A5F(pi^FK_FJz zyobw*fn+h!|bp&ZAjReI7e34tDrwMH5?FoB9z#8SkaqT z@Q{eS!i#e0qF=v$)z$*A`D9&u=$eriV@XQ$A>wc?4x;}BIJYG6)H^%ZaB>`0+VCyE z+su$7=NQ3qu?}six>jk zv3W%?zljU_o-A*Dd)M-E++6MF{9GEZI5a%GY-LjA3=-7@t9lY%A(+NcWBr%P^ybDw zbfAcmm_rpmb&>C|Ns)z}y`o|NC%IVYr9&+67O(j1v{-)^5uy1HE!!qNio>}Rp|cA9 z!^IaR>qv0|VmvO3eG$3>qTbYp`o?IXYim`x6goOb1hn|Q#{VuvE6OXf5Q}tXt%WJY zC6I!1F!9J>XkXcyQRW?Im#bA!3tw1etm4r~M8w1_ZQ}(mE3n&+e79nq-WUvO$7O*H z)qxv^>r)+3`6|AiUD487>?yTSDf6d8#l+oTc!P*aGQKV=DJe!Bir>#cyU7+~Feoa`&-2x;@qLiG5Nh2vn-zTA`63lb zFn!~reYy7|*B&>V9)%9!G-8R8APJXO8eu{hs{5g59bp0Y;AdHxW$|*{p|x_ZYbB$S zEVdh1O#7R5%vd5J@LimLm+1aeDsSul3U*Rq#HAcR)O0`8mY^^OmRqbFfZW)O+tKLB z;d4}k{oB!^EgTixzQ2XgOd86Q=OFa?BYl#e`>)z1fh-O>5sO+IwEE+qFhN#~?7a*f zLWIAZ!9?N?EbXEr@1lszYqv7}mbfs$qwLOW=LUGOzHFAYnEC3_OkNjRQ`5rPgQxm$ zP7359xGLcG1(!AL^|$zN{vdxujTYn_$M*w)g4k>X*iGHd8AV5mLkTSPDl}yG*bE*x zsz*Ue3FsTYF}KZ)ja9lH?T>rQlVKK>lsxPl*nwr9(+JNFfU?u{F|#>?yZckp7Uyq> zw0MM%Ls+6*>wMDD%|i$#X!*85#y~IEs`uo<1+nX#VRymSSND#MGlwp5sIrn0xA|C1 zXb&+b=VB{0)jy6YWBn2vI2?-)2?7zq2cE5j=QmHmm}l-wW0yX0*aAwjGPL+cwyUPV zMJOrR1BP+3vU2)hnf@x90RjtKY@y}g@T>f!j8hp>+WV#W2iB$4A0RftrEOb1xq0B( ziD1P(|9f<0t#zM+TDUvE`VW=`0U@wbgo+W@nDY}h|vU44^dewqi`=Bu{=zhg80ol1C#un)4W zoR4J*350>t&e_0^B4Oe}Sg@IX%=(OA#uIhz*d%p@_kC+~hDAkLq1#+Y+ssw9k3(x(DxIC#`dt5~V{5`JWJ0A|BkdCVHc=UIL zt5`YG4uz}=@rtlSU-Hg9HS-%SdiUQT1Z_lRxel>PowO8#GZJ`o-vpBCSDjWT9xOB? zL}qKTIdj~kVdEnrOE)3>r5TKUt~s2EsvD9QXfERC+oc~tDb;IWX*7|u(e|>x?fcHU z!Om9Q%%Gh^ISfIF$SdcL$4>l=Kx2QghYMpA%xkGrY(DgQ8~1v2z>0>!cK)|ulgqLT z*W>-hhqrp(Yj@Nc_K$8RrM8+gEjI#~N8!RO)Xh0vqQtQ{u_bCQA19E6^X=>L#uF=H z8=-Vc;u#QRN?89(=^tgTh}==s>^U6q{CCRRp zP=G5ap3Ay$F@>zX4uYDeXQ2G(YiW57PtST|RByJ~u_yp7-_sGkS;if}vUh#|iqF33 z{~Tn!_&EZG23m}JEpXOSFQIhOi|FnXE&0=JMBsWKPE~emdviF&L3FsTY_U$`X$|8> zF@=Sko&935Vj4&@nVNRjGq3o}Kr#xjwylYUdh(Ny!yhKT_k}E$tq3(!yD2yk^%iU{ zLAj%rmzJ!l%W62d!)HVk%}qp&F$<~Yppc+Ni<|r3-?xJk8zsH z2}5J$-^1j9qiG?ico#Qrw)0g5zkacL*(YgRW{*+_+tYTmaH_OKFTkMl9u_AD!dV;J zd94ZjuHaOlXJ-BfVFa6Ml5gDrXHT;OwIrQY2IVaF3&~H-+TAJC(KQK=#uc)VJl|qg`!NWF#B60NQ}@DkA@vDy z`LZOPj&7jMkt$Ke@9BV@YsJwkI2GSWavPQCuzxVxGL-QAs=FEoW_9_u=&mE~YrH_H zy~VfX4NY=Pis@wd2{^^*20lw%7>>&3=B}|Lk0X;tH27up&&|vhNbO2I101N!2QGN7 zk8XT&086%$o&E68e2kSkpVt#P$jlVZ7X=mOVC+flB~#H^m=8U!r6AN`H_Mc^t+^WozDa`Noc zh{We0Gxbx*yo=*T{3`oBVfR`&Kp{UpG-2~f-8f9F)^Hph*(Nv*-vK1B*bhig)BckrmKbar)d}=0))i z)V(rmDo$4!aOXe1^5izlPAA9uzW-b`HFbG0!gm6qH!Tm$?*Jt23mU1OhQ`hMQu2Zp z-}?xm%l(paGz8efwaD(zO@(&?zPjwenBh|aZ?|6@OHK4#Z71p!CiylR@KN4+KmMU6 zZ8=@PP#Mttk!4AsCl00T8LvA!+vsK1dz{~&wn|W0y{q~Tl7~R(MK+gRmLXm*k<$>y zNM>eg>iqOHz`ocOsM*ONUREVKZYhvN_tx1Ih?D(wBcc}&V0qfjLsj*UuKY{YF<7~S+ua}S=`{r~TF@i{d zX`wwHf!B;K^%CEcd$02HurjH|{h?eP=0}F_1jcCklgZ6|RcUhellDWM&5p??k)Bf8 z0cA=JF0dMF2?B+3!jgP^)xhQ&=TQ+Gt_~L3tCLLg}Uz*?C->UV;YYu@r_cOv1-x|xOP(GtG(r1HfHO9??ULccr%1cboWK{R z@}x#VA%#jXs${rO2Uy7=1Xzi}@*t|bOmY@^fnjR=zWlO1c?S~3g^W*WLe;B%Ut`UG z`y5rx>ic-j{S9bqIhvUYn|sl9L|qUHRp1gaKGIl~Ho(25Q>m3-Gl;>KD~RdveJdJ) zIffP0n`bvybIk1L@%vY?!?lM-LCu9v7f2J!^4xzZZ@u67mh3$;Y7q+?(u z)bYisu-0FdNTqe>d=Vx`fGne#g#{+)&-w`JBRTAhWWKZvvXXBPKb#h(@6>cbwOQ6z)m#FQpz#KW$oT)#aCXcBWRFE_ohQ+$781MJ^RvX_=U88AbEE z&fuG^-j^(LS(l?Tue{a!HRiXO5GY1XjW#*XAGZg~vA9ig>M3HRGfzjGDhv&kg~19m zCJVz3V-@2{E&gHl;P|alANq;A#;|++Lz3O|=A_B&(|YKIpZ!RNwryEy>C(=Kv#YD% z`P@c&9al1`qj9%CD^_lNLa1U9JGl(z4GYH+P5ozWb*4x=EiS{$N**U$?(N;ZhdeJ| z&v`1)yAXgl4;9J0SU|BZ+}@U^#C{!;paL2Qz-p68jFIhcz}Bs^`8MLN11X7zCt*(U z9o|7RHQwHS<32Hg_Tl{=?>$F!u0@}GcdSxCVf;}{qVxLrNK`p7Cm90;{ooouIlOx# zSpgpT_kEJAF8o{n5DMLxFm?%$3VmwvBlG@b`Z-_#_` zHMTV6!2a;5U$|ZWlal+()6FPohGMBne9pFZsvWDqGL|P+8j~&BFtiD}(F+vF9_N9t zP}0)UTD2Gd{eAQmzt4e)jY!D%5ukhpUAws3RzCnDp8bf3@`vm>l7t+3Yex?aaryT+ zg%*}+0N*Aj!K)&l?y5#f;I;qqOjiI@@oLb(QzOg5X^@9aDLmzN*goN6Db<^Y3#%>j(MbQ#t*Dtv9X=dMns&lvxsH*VAk;iKz-hpO`iEyvYfh9bzziOO5al5x z(T7i_ zgak8oVT?KrWvxtkRs2@=eu=RpSFeoPp@2Sy=^r2#tkc8}hHajgl|~07L97(U-ETz6 z1gf3)W6yjOZNPl2blG+9qtMHP(-I}}Nc+=&pQk>J z3FLba(Q>LtZyxhsR>eDdMKou>7cW2x2up!Trc4FMSr#wGTHC@9M}&Xw=A=!S(*400 z@*2~hwtyX1)`LH5rpe~Wh3~hfW?-yM?{7(7vTuA{s6tQ-+TuGWNn&3eDG86xv;w!) zn_dv!sq1q0(Wob4uUY!0%^(A5R|~dT&;JO+8%>+g)9mMWS|Uo7&&A+`+|DaSOJ$u7 z*p4b6KX%7}c^~7)#MZYM4*OHZLJ#xPz~iV5;@5yb=0{c4#KDyeEzeGd6YZA9soHV# z2S>Z{p%q&(h;%;0V0SDR1|#%xlNGt!bllp0q(K3lyu>Rc`6~W>yhvqWs;)uzc%Nvc% zn&(zf$MZXbRr5Q?*zokylB{?MXl#Xt5W4*xl+gWcgKb)Va@M%Mt6}%OjKH~H@lw-m zu{mCSX|-Cc!@v98-dkh7q#o{|zy_bmFmjNwxgQlpU?HY8f;AZ}m;$S=p|Q%g!`0jb z4RFA5yvJ~!@J>?8@pAraDHOk$Rew_iNtF|_S6LoWfgiZ~B}TbDQN^@1P8~}_Z14J% ztd9(N0~7P0*N2M0}{Q&aO028}e|{6?IPx_Jl@^N5onZn(CU3 z!{fiG%-(-j^v`#Yfe!DS1z8stm+Mutb^ds!H4^ZoYgrTbgyV=6z~bu#=1;fEKeCAtx@y zofCsMi+?YCv{ctvQf~SLdficESh>Fk)k{eAA=it0gK^;Z^0@jnR$4ik&QD>bS{XhIxv{!7G<$`MJQ9T@5zZ^ zBMr&S>Ekje=p?#0DapjqyTYUqH^rfEVN{t%hJXJJBrUMr|NnHTw*%Z;36p|pFAhFW zQNWyA*rkH_6<8pEwCrC-{V(&!^Owf&4V9F*;kQ08Jt>ZqSPmoBi`RGFQ6?uXeWnpS zQ3Ae?T_qJw_dx$U^5HGRY1;EQrr)={@ANa`GwF%eF5H7v3Qc36gH-|~(dC47TV!xD z%QKS#n?z98MSd|i<3!lX`2OF&4@Z=wxf(Y52ASJ*Vwz4`AKo%+dCw(K@C#Oy>YAIjUO(Putj&{48-mHFW_ViTt+LChKq4F*&t+_Om- z1G_|{!q(Cf*1xp0)V3*+HF@Z8+|-Bjk~I_q!l9rlYcpRJ;sh3W`&XVX3R2k?X<}e- z!t1;X@Ut7>?rnatzlo#DW?ZP*t4`~C;Iwx~MrB4uXBtqLWcWg5U5*)tfQ%z84S^v* zCXGgLkq*_06;n@3byk}|$bQ$a&ie)aEST#h=n9RwOu0Mn%j(4!FCb}aog!JN`=`wo zeEi#T2OC8Iun*RgA*b-}xQ$Sfw>kWhnfcKRyb*DM%_q$}37YzTal&3+4__{XU^9a( z;H$kS;K*LFA{1P6i8T0tkRmJ z9{)sNAfQ_zQKt(1rFoCZJqrm5*c78)7@yKotv!p>kU}qMc!_rNS(_ihBNXtQ+8xgW zV(|q{>JhE$j#cj<$>$T_glzm; z&JR63X)X%s|K$H8{Kj#wx3y8NMMV{;|K{TbFo}@MO3ElP3`fX(6}^A-Riq)N|L*0p z1&8<%wMr}9>aFkN%%g-|%Z;Ik;s~&>|C?s}@rgEl{D%%~PE}$iFw6C0L7gEx#UrAIntU=RJ5czMEPLv@r)uCV7h3en_F!%9LC((+kI1czcm z&F3b=nWKe5-bHr0P*(Q7@fa04O5`OhZ2UP30CoFE{WlSG>V>tONsOJdpJ zF5Can0+2-S0QTa%di7JTkU*8|^8R#*hC&v9cO9d`q>hRW^je zGNQB+plsSKf_2Q3ug0ACgCUy^iq&9UFlIR&a14F$+b{lMX=Sx>)?kRoB(XkF=PB5| z;;Q+;Z|QX_clBI*BHHYO@Hk(0#Kewg)KrcW8xv&{zZg2#95lS8)VgCdd~!qT1mpum zZc8MiUpm+RMYjQ@&_85!tBX}%U5U0fJ0tzxRd36)Xob+Cl3)q@u8HIr8OEo-l!y6@ ziG?s5?cDa#ux#0X&RY!9o;y(exXBN+c^4NcXmS|dy`G4iknco6?sbs9`J^6aHDo{o zUrqLDIzvbK!1^fgGOoiyie$bw8Yj9}=+@wQfJ%-H68hEywvf#_m%?6FGA_x`@<^2F zYYj7oglGgBA-nBkmsqRg9;ouZ2W4%VmBt~01_qTisBCQOar5E)O@An1zqX8WE?KE7 z`@ilVX44?Uhe3p$-A5LIQ4I^v6*YiQ3k=fXz9u1P?)FCo8z6F7_>i%|{%~6OLM7JF zB7c8rIw~cx5gvbBmB(bgzh9rP4_DuLH=$OYJJLOPIXN*%=oPY>BFW@fg|n(n{4i`V z)HquB_`T6^DE5DU`X~0;lM@q6ZTsQ)?9pv6K=Uhj(|sNCZSkSL2quXCm4vAtITt&n znF=`;tAS1v|2rCZQCL`sVDTu*0^CVFv-h(fb$Iul?thq=1YbC5Ta{$!)?U107C3pl zVCH^#w3sYJBjKOhxoA9D86Q6zX$G>tnrRJ>u!H9wv)So3FwsPTjNpW#OL2XL`BY|8G zV@Wmr{=x!%VE!Up4>uVMk^zJ=0L$ISl+1wQdpT`r6a`06JZ5lnstg#5#NV)wF+bpgPTs#~pP6(n(wI?wfxVIrWrQ_ePO0+u&a! z#`ou!ANcztiFY+_bH~Lriob=q%Gbk+o#nte>q-#&fr`&vYH0;-ay?&Q!AN?O+&J!a zX3h{p;v9#*vozLFYz1yJa?Wf+ZDcX9w46;O!g@nXo8N<~;@_8`(u7dBiqs3$F;Y>M zlvIZr4rj1Bovjy?%#@$2XNvQ-Ppb=zbW!-^34$ygYSHC770T1!<^J=rc z&s8mJUQd?WF-Fw{J5jGP1aK-VcvZ?^7Uz~P7UUAkGo<28<$N8VOPi~eXWK&YS~K|w6TS;;d75lN;79N% zL_1GuWRPw>h!%WL3nEmmU3=YxkjNJ5svR~YKi}HD>#P@2Q&W4~%N4Sjt6Uofdtw0N z(O}ej9L>C5FSIwYb)OjfP2Sx|qTrdqw7d_2T@LCRHs|lhofL6E!}E`?!Te*y@?H(W z|MTzRQs z*AJH!K57T}-sYi1Wjl0mDW`s7c+W@}N5{uFJZh{KTmVV;CYbG8lanJpkeUXnqBK^h;%g^TOcd5;-`=dyFWb}TNWX8XbcLuY@{_ty#W zesmPfc%&W44014ojdjSSL`}3sZ0kbv$c_eb;a<0?68=6B0<>N~w?&)59Y=iiwiz!Ua>}bmA05rSKsrk#*Q$Fz)oh)eZY{?W zoB3gIRqRIm?mL594hoB}s1$Ixv?k0ts+6`T2uzQEyZn&_E{>^fZz)j7u;GWxo zPc6KCW>{}Chd_{X5a=40XS5K>*d8$8DRyb%+GDsONbixc5<_JXsT^Tfj2F?BTM$?b z3wN+aRaBg+IXGtHCGxl`#I7-;(2L29$u`UC*M z+EvcuV9dJo(OE04x2lx6wph?p_KIPljixrzf`F^xeK5QAZrJGScTD=N|C|g(!nN)G*24#7uqmsl{E#CZbBr+EWl)xlCchLutmkGW<@Q-0P=GQ`uXc!y=P zxH8!O`yq1a23xejE;#I8RuH?Z^U-yaJ@?_wgF>4=?evY2+uyJj=92iu)eBqwcaTe5 zS+k}^c))X3`B`1<1gyz@fXz7m*B*lXFFKZ8=X%9ixg5UL?+2A{$I*Yxkkle9- zr3OgOl2uaS-o`~O1gUMEmnI|}6F*Q<7+%HSC`3C&uvSx~5)3qoL(#Z@x6;m9RDh++A>eOXz<{Iu&&7R*{ zTHxac4_NC`#ta_EFn7NbeqAlFb8>X|M3}M z>z}Aq48rlCY@c5@6PF>W-FySNKEiLsZfBWWRnPIy>jN7t{hN&kIAqY&? zcsQ9ERj>FN9RJO2jgws)RN^JymxWM-`b)dnxVhT=i_* zPew;92M1Bgw5wg6hBLsdtHkc{Vl$Om&$0i*#N_1HqQa*8$oiFExG1JumiU@Su{3ml zQhHJ+xYPOyC`|a(>rH$#oR-H`sk1zKidV&3Ax5S8fE^4{K8MLV*G|Dx-}P{Aetdp@ z`prUXOS!LkMd z(avaSJa)Uj7JL2wYT-G_bU>5C8=pHdZOZsXSehA?Y+lkUTEpNN>Q6didA(?{S^)N$XB0 zB}jd5L8iQJf;1(rLnljtv-9xK$jI_^!$m=|UMpA-v~GEZiso9Cx4Nz%UdS(JxSaRn z2jpyU%hEne%#cmpA#_^LeC#X2d}laq@(Ja)YAxQ-__O|2)g${490r*o}7%?WI4 zl&vMF6ylWr<>gG|uQ2~{)ZHT17D+)Sk)ZeOsb;kzAonMeG`y@V)J1Je7M+;m3+1>- zdx)5*rx|h+l|@ySr9&BG{v@cVCrDrQy@lZW%U*Pp7e#pFOjZ#t`omq8&^)|;xBye< z`uduP>-I`m3g-C1@-PmhH}%27`juj{v$eHlACycb?rJskp3sPqz)6%&3DeR-_o+Yd z@0j89#OsQ^c=&K>d>t9=CRPb0M5ntiYsby2o+ogp zCYx8JPyvfN*ojzjqfJb+G{Y{jOid!F0$+(bV}LsiU*}66Y37T`>Mqz@w;hy^)y}@q zE$K9y_?F;b-jMPYP{m18#RH`w@&4aW;5FWRA9Tt8xA z{WFXVPKo+JTjZf~tMz}kk#@Emsvjt^!Fs}%gMcbWj=6bLDDQ4VyQe(>uDoggyhk?@ zz}D_gJ3Roee9EPzx|)KWoj$8_>8jG|$Y}Au9q*HqlN(=Cx45S)5f?AY+Qy1KkHZzk zE6R3ca_(Hil)Jk-0FZkc)F<(JzT07LKCH5ba?tiR%lFr(A4J7z3sz4+P*%UOD3@;m2|1Orh^A`Y||VN4q2J{O^dh+uo{x)8zTF@9MdhwK8__bdhZ zDkQ4)RIzbsh286QYjXO!I8UVumX*I=$iAFkr+|)seiV znxD`eoXcnMdMsx??tm|zeq#)Q#b{s?$Bg)8dSC(s@O=?l;&M9{N)bv?T@Wg%S2UDW`AYZ! zWMRh&B+~DYAV~VsADSxEhU^&&abuul$s=$fEtMGu&#_UWo4xK2CR6Kh;tr;Dm9|tL}rcvHjd}{Xf(P+3Zo7FkExKn4) zRB5rGzjZthmlN%%a|V8KKC#R_y^3N;{t@}iZ!0OItM~8Mfw1qeUJM2?=nwFG0_sNL z4z$^6X9Q5RFJQ&EICR++;+=c}s`jIXMvw);3dc96SG&@^ES$8>0-Fgc@-eF%m4i{e zPzcA_n3yV;*gpGy(zwA7hwbkq0MKH8tG>TxxXh(I8Xf zBWUxAOG}+Mt{DbDM>O&{JZzSF3hgRyCL|>2xUYr$FQ(oyE~+m4{vOhyTWN+aX^`&j z7HJSEm5}a|2I=mOp`@jyMWnk$P`bOHeLuf{@nYWbnLKCjy{@&sD~#MpK~b?hxglAL zGB!5pT{KWAPBKy~J=;s{mXMY3V1IxO6}SRcZm7m;)-)@4QgY(`fLXxk^od=O?$2^f zdI{baxqCmHi5%)TGA_Ve+y3}Z+|=hLr2RgN7F&Fh)3vxLY4Ut~V<5(`%Wp&)=h5@_ z+!jePq^mfM;*b}}bbRfyz65)MmSTM-@bO_@ zDJbsVn6zA_Bp28}z6Ow){leip3isttPrm*yU%rF_BY@f0qK1aDGMn$;CB<@^^YV_t z(F|XTaFdAK=?C@r@cOEyac2lB_dpuWV!I~~La{aS-Br!K+go_2Dkcf{^#GZ}Hy|)q znKs*>^q@F&-2V(SZ1Qa_<}wa@yt$=D`urKgN2NbuD45+2D;YT{4-W?8GSF7cRgHfu--(djraTsOFhgW6La>@}aW`N(9PH^_D7>QQHEFl)g zK=Zml7l+*etHW@vF67K~?Y_dHnyRy`Yha|hoXz_G7!C@x;(><5VlYrwL7s7?+Z-vde zylGW7d}>Y_I;pFQz^C^5tG)g;;I2c$5j(uDyHyuzf4A+p6d#H_iuG=JQc*i5T$bA< z{1tz7+Ld2}+g@;OufPA+fu*IX0qOSH4SV}>knL2=ZC7cI-(`s2E8k;aYTg?E6qZpU zo*r(6`Z;)8pa-8tdkd>E)8c|mRa-UN$;QB75e$d@fWF0M+x>o14Q`%_QjLLdv z9YZHd408Gz^V6E8A#l;6qEv@Vyk0&f7`H7~Aa04zvrk4L)?Edzu@#lz35j9Mx?3NNxi+W+yI zq`dcZh7&N;26H_&&!@)x_73>T%_%p#QU~!7~YCe*qDQ#RHj_Kd;XkUdmnW)zn@`Iol_HkaFNLZov+s? z8=!|XLGS4#woB~dzmcQ`mcPT$Mqh`�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

DJfA53L8EKR?n<&CfT!AFxmkRaDRVKB_0qAU)~E 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

0>KiNO!k>~;Q&HNNTBv`r-d^85B&c4TV35 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

n(aejO*xNu zc~{)D2HCPyOVC`Cm%v-Dpid`{YXo(w^JT2n_oEr0@3yMy4&>P3YDqYG znWCPP`TZG)6Z<>fd;KcLIPdeNmd^CdR7h62Wqs-_a)>#aMqr|X!Ww!|yk`HD;G|xk zv9whAAWQjRtG7vqokJY|aTzg}0x?{og4d6rfFL5I7#Fxi5$xj91QWRz+{GgN2cJtw zTiD_BnMu&$w^>w8tIVw`KYXya73O?dU9Y}HSQJUXjr9eG5JyT{To2uMS{;{D+-afD zG&=lrq^;XkR@czd!`dknu`F4tKLcKctSC8{)Phr8b7J6nr*hHI@58S*vZJ>q!b8Aa z33dt)vV2Yx0%^TbLIo;hL{tPBUAl49=5y|LzwtE4Y>v-P#_{~^T|q8@F`2s zT0A1+Djj;X0QtQrBcc(egkz5*wc~%2-A>g*v+08G$tbFN{nHe@ci=V&i zmF>b@yz8aGsBF;UdICh`tjtWXj)gP&Gsgw_26oP|v9VozZn?7VGuzQw1pv8BM`QLw z%`rBD4e!^7MHy-8dPe~f(_36sk()Ts=h|`7OIl|^p6yjrVhw()m)X4{MMdmC6ZyA#rdT=|#kebeqc< zyJ!~d{+81B;h^+(#OOK#H>qUA*XJTE2jG)Eb~3c}9&`TjzDgTgzkbG)@E|MG^`^2) zfh^sKW9zw0dl>o~KSs4j;cg-2&mtQW7c!`btS4)b%DloXD}Tv;>Jaf8=C2|hH+bt+-2oP z-PrhD?SB@&b75;EOFrnP_!)i;iVBMg3wbj9jxsv#@?jY-a}7&g-)Qr4#HZl{JcrL# z0#8Sx{@TSXP;X~Q$+shd)k(%hs8JGM&+5)iAfqPLLbC;{Td)4YU@aeNRsJG&B#2pxmOVuVMOwrWT zn!zGTOw%^XEGei+z$?0G7^OGb8dxw#3;PmBv^$H+01N=`1 zO5?=sNBP+W0=h#^)*Y|Uo+iKAeq~h6Xj=7llW}O<2^1Of?5bf`pdV526y01 zh>2;{sy0}j|7D;D;Pb4AN$O|?aisi57q6>fr-Q7ZH@$T&7~_)sh`{ddrep3{6_<6} zWxvc2w2CeI&HwD@NjbQs?D8YUH&s%I1h?1#c;HG3RrEV2UH#~gMLgH|@SIgGI^8+N zm>2+xAbflu%!qzA|j!p_3WEE&BbqD zrIUpsQYFZ>&=InXLogBH;`a^?t(Fp&76n|ozc}c7?=i-jfg(#W(gh6>)tQx+ zf|}B11hNo+cm_Qw3F}UZw~F}T$)4O@@+`%*QN{W;k&KHbqD}++-v!Z-1~BPF)k;P` z6&k$`zM=P8|14*&|Lsc@$#X7^!17j-90!QK3bCKg2WyfaNkLFpQi#a2B7|6si|-eO zFM93gNLjy-o1m^NF0YWriMIOA?oi%efjznm`2;7ps81wrd^6|l6`9=*OC2`rcXRFH z>uP4;RnBw#oh~ICXV7M$2<1;1-`vB5Lpj8-op`Z3SOZrSl$fw-&ZF|`!0|aVyJG8L z0@f@aG?^XMcwqu*ti}}`jbyPMKT)2Ed7%7@^GIN&z+^}=9uk(7kUxs$n)WMmImD1? zE_f>S=+gKD`t9*1#$VG&4V8OZy+aBF!Mw=PsLAkgg(+z$K{!Q80Zn%thE4BmK-p-9 zD?AND@^kN!+!Hc(S7tN<2#Y1y>g8@ zMW|>bJN?=*Njke4lyEsimH3A>J-&ka$Nzf3ckBh@2<5?sI*PfJs)MDZD*D z-w1Sb12eg{zT0vpA8Bs-m7JlW?`d)w91l*MB`y~kdMkzf!Z+s&T?aUIiFcq)QU7xw zzSL0ET&(nz8$w;|*UCy^-;LxnA`zF{G8aR?2f_}S6-ManMFx*0Cb^L7a_08~{t8Mh z!()zR0!g_=U^?d@uD82cJeaM%8d0aG2k1;XTvZPJQwx8C1aoBN$zd~YaK9kK^2ucc zST=c8uiR2Oi#ifRE_}&oN^$>(uzz3BYa@~o>+`$8@n?Nb-abCG2@$vPS#KU`hBaAm zQIU7X0v>}N4+2r-JMnTu#BL(x8r4LM7pa0dU{b+E@%!d<6ueR^5KWb-W=L+tY)C+T+W^oNa}g6hjMh( zI^NXslQveg9-R(Vx89%9TB<%wS9XwaIY)E8mi5rKc1pl8`5WINzH-+&_H-5=(E1e6 z4d=AAbQYJ+XL~wT2CmkW?&N;}DEDN{e_?6Gd2T&C+wU<$rc*7}lCf4x06Y0|N%73# zdfeMYpa}<;-!p{)1?WD+V_U!Sun*ae?c?Zx129dGl%Ke*)Gv z?C8w*;e)s%#iWcFel_k_@>9)-+F33C`N-?*S0-0F>9OS2x3bfY!+Q}N5%c@=MqmUJ zs>o|}I04!+;>rHY+6T0GLWDR46z$!#R8Fk%#T@tdi$0kqx~~>a>?5=SC6}j)vv6PF zBA5`Mzc;8ApI?T{PSMul9&wF8C4onPE;jV6!883WJV>}JEPzK2(c_YchQc{M!4hyJ zC+l5%1;?##&7qU^*|IEPO@os7pZP8*uK^N>>s3O6iU{A$IpZ*wK42y$VK>l$ox2OJ zN-qsz_n|}vzJPwY(CUq@IK=W5ghy;YDGn(p4xXMC207|5JL+r8(@09y2{;>tAfnST z!D|+8zoiXJ+MF)~x7a`)=_%cO$JcL3@PH z=?Nofq2{rkC<+Thmfp%1jxF31N{W(8NqMWOnaqFq;r0yJazGL49}vWN-{iQy@Vy+o zJP@=5h%v8R`{0jlUSmS3xhJP0et{^kVZg)m%;gSX$4t-0?dahL<2Om$%zeW(FWx>R z{{Rl8Ll6d~;I+c(w4`9&=CK^j&a!VY2dNL!zSx)j99!8u0R<4#$3u6+N*+wpJomp& zjrZ1rfBk-ZI=i5mQ-**H4=CYzpi%T>vk!pQwr?-Gx}CCj zb}TH2yBtGoy%lgB;V2%5o=ZxzGo6a4q0^&n2<59q*|oMid903-mn2%|IQ5p2-~h$- z+t$r)>tsDEa%Iiq_JPlP?@r9F-bCY!63nfApQeh)fbQ~8%Tk^93g%SydRM~%XF z`86mlb@A{SXvjq*Tv5U6R`Le(`A~yoBpPo{>}W`)S1zXrS}e^T^E2X%=T^RsBl)Kr zR{d*MXc?!xQcUFB@+b-2p*L$apQ%m3Qh6Q}aDeu@c3l8lS!r=v%(Jy+VT>l>GhRvu z;x8ye^BH`G-17yPg1SrA&1>H+rsT4)Fo~G`{ziY`!5KP8d)|+Zlp<@`KW~{Ip_Y%1 zIwgN`<<5V&G&9lGSYPpHyqmVWW&YUH{?+Tu$S4zxeR5WJ?CtT8q$kLs}%#hd!bSin`h}2+Cs@#Y^Z>eH)Ji3HF0w*(e z$312vC7zE3!QEy;?SH3V512W3@Lq=MDW$Q!Qy|M1up!v8OjoDlgO>C!cMQitspJ+< zZt-zcgAZ~&Mw^e1kzW5|icc)_cP3Ay2*m0{4p|ODz5TdK7a>QDraWX(SH{t|U-Q3a z9qcS^oH!{#kvzYy=_MKqb^e(Yyr`Zm3a2Ke4G@J{{@x81d%a3T*YZ=X@!QaGCWa1zBL3-y7Fzt$e zKKdM>Lb5S>o2vFQt4P9(f0vje(X5M1@`mC>p`r!`(G^4CsSu>4XDuOX@IYgGoPsl_|5`I1d|;4ZLL zXO_m)N!=7E&GtRr|6cwN7&DN>2>h-EQsF8&Lfge@k2mK$plHx98AoVW2!es!Ghb1j zj0lnLB}RRgY?j^H1!b}=jr>wudkfwNM~8>rrvsM%!2UI+eH6)3@AdSQpdg{e3=+xd zVw~8;4@lYZ5Z;)+TW??31 zFB_LGrd!Uo>!tAK&u^Jf0q3To3$I~)6c4={ixoRL(@1i|C_g~)1S4pHc3b^ zSr-;}mz~FsDZQ^(q=$}@c9fRtE3I`c8Pp6&iHyroQg-P?2Ou@yz8YJ|e=e?R^zv{x zIMROJ<~R{WPfPm3VpwEjJQ5$gAP8d+lU>`T9dHQGQ1!o-Gvx@_pWAY9Ob{!?L&%_A ztz_zkfjQfdo|(t+I}UHTHOmU@9~HD+FqFZh!CJQ2QBHH748OZPj;_&>ZTiqz1CI-d z#tDBC&!c(E-3|f6j2G2xyGZN2C?L_24JkSmhhw6H6zlQNlX_$>+*Fbbyd}Dwb6_(;`r?K2rVdcoVD($W>OdO& zyUS~qU5FYg*`=m7``y*>37F7gMNa#d3cSSC2a6Tc#LmZiShcG_LMrVgb2XLspA$xM z=l=ftZYxfl=b$eX&Z}1o74?ggGADxw5j{k{+Yeuj=C!{KQ)Yn(PdX8~9uM23xY)1N z#fgbpK&&h&5q-M&L`vypw(=wL-xJ}sKgA4gVR>2j_t*Hb9Z!#U{0?*HAPyYXvo7%w znVFeSx$c9mRZG(Mo`Uf$`6Lj-Kke_qR>>A{0&8E8A-M{;@5x&Nu8F6ys{qZ>X6wEB z>aYp_ph!7+WgCL!j)2QGspm993x*s*~ zf3@|$8G3r*C%3$d!-@pKXHfc5PFm}{J!q{_nv#;L$V_r|T!#Sh%-!8>4DT_f4moI% z{OiXYMYvnP;$l9~poai!2?4m!*Q5r!8&b+@l4gtHW9;**P_LHIU;$QKU z8m095W@T%;SYxWqR81xReweq%iOy>0j^_goGyzOJQK%6Fxblc)sKpa-NE*p1rFTAn zD>Cfbm>L#c-r+ON4?Brbt#bf{JH6tMkB!P7Vk$Fo^hvA_ zo|120_ZZjA=$BQcK3UAFV7*Feg36_TM)5S-rZ<0LtKX6VjPAs*! z*p7`>4qR&Wms~Xv{3f%NiAE<#E}|F2Lk!_1kdN1s%ZNEPX#ZU8r0Uo|UR!X%lAh;k z){idKV5-y7TCIpc6;%Bmk2dk~SQ=41kO?k@v$ETSi7B`$wuD^w;4Jt()$h-xBHE^s za#Zj{YS@Tp3PVYvq63fDJY!-3M}n4q)S^G#mWlEL{O1>k@&yKmqKeAoox6Bb7?Eyn z5rQ<8m}RW4E`2J=~_k9S{HQ|5q4&-~O92h24*q=9ia0yqhVr%*~;!WH5{78vFhbkNo0`b6taT4Hf92sk z@ZCmGF5VjA+O3OhSRi^J&lWTS8hxqyyjfB_{W&U5P=Z;eMZ&IkRV5l^dqHKt`f7Q) z=|f$?r@~mFeUMi9cRAQ~ygxfVwTA)0l&9q3ez!xXVXIj4^V$CK6C>^^DqIJn8_#n3& zUh00NJ^=q#9P~1bd~}nHRAU||o()Yz&Zc+$p6w`T z3PWKqxtF}pA~>Oxz)9WT{uQ1=n2{GM1j~gymp)OUfC0%R{WJnc1QA;VilWEgnPB2K zVw+l?x%LY zU&xI$P_e4*re1uce9*3U{)=68ccdC{GAT>xcin|TNyfL|UZ@4Cg2n*GhcVahv%AgK zUsIcz?;U8%@cI5UkE}-Q@*F@ks&7evvi8h9X z9V5YjYH6*Nx|tj&x96M@<8+PXY{OfJqxVhs^8qlzh@EAxgJ-2=e2Prg+}y8mOvYu&iXlsze^=JtztEXK5rRw>uZRS}lVd@8RNF3t{B>2t_+$O?k=I+ndpv6y z;~iEId_M=1*p`5OjTO~5ubaW)+{>f4tTr++oxYQ91CkolwhJ@$J0tv^(U>pzf=He- zQV~S$wX99JxFJH00_31j37Y_#j3?ZnaR&?q1RN$idQW*lVy%A;SlL((LBTrBSTah? z;4n-A3mPwKDABkgT~c$;slT_kH&}a|5Op*e_r>_QG);U~(1wtWF6Hx(m-BLkuECrHTqKjmHL;v6=Cdt;MkS#tEax(VX9Ij>jurUf)g9)pY)2N{)`(#OFBttDbd?#l4utofk#M z#F-`L+$1zc{ccsI_P zIb_Z}h<|_~v`_HGx*WDjKLTEId zoV0WhI>97yU~h`opM<^(_r53RF@TP{=;Ij`c*tin8G?g=(nufSmWq}HnhvOQP6Eyk zv?9cxm*3H3&?Bxp_cV**q0Ewtrjm$!j^iq}YfXMW9@YN3ZuQgCn#&KR;=`GI2O10X z*n(T}y2mXC*^{at>>JV6Wwrg!PLB;p(2+uVi|h%*PHjL)GLO5JMcwVnBpjim^IlC&r>HkDN#)9w zp=E);O22hu_9~j}aS*%uVYH}6CLA4uc#`>GU()sG#>-aSr{*=jq>O&vaGa38bTx6z zv@}f8GBC(z90CNR5QI!rE}A3K>JSrj32LU~Ky);LAPJ?-?$H+JVri=U5Gsy@YWghx zO8v%b<=?-N3wC9PK6`nQAAVST4$F+}3s+9JA|QZsiO3opkRd@u0s?`9UJd3;G2bO) z5{u^C5;R3`Bh=BNaH{^XWO%iHoL|-beUSKjS1YwZybQeTEUgRba9%ez^DAD)sHnmV zx3c^L=Co#eoX|qeUU$Bp+OJ`qm-;M8?|^@W$UOCZqy2-!aZ@>K7G?}Z3SUSmog)_1 zzmtyy6*A1AA4D-`A!IV1MEpkl-ctO*+T48mu2JjVJG5N*PmO<8-f~+p!BNYFW(U#u zmZCEF1tu%qg>PV!mWv~Xq9W3HaweIB>Z7WIozImn{}M3&>_af`Er1kf#%EM%1Di=V zeIh+lF=tF_%V_4Yi)X4-enFuKrh#_QZ2{=RUw)e6r6)~l7I-S7J6@X5JBt8m2-TIS zpX_tLUDic@;lI1de-O;F5msc6{c@N!A^tFQI0zmU4b_eHTLH%`LK33AWPB`}45a`k zxgQ3IVSBRC8S1-L{evi|wx|K#36s^^b6C$r>s!Aiiuy zN^5AC3guuTcgH4~D=`&gDakEx+)+=!S(1RR@-WOw!^;^E88m?XsZ|tz=&G-PKwMp2 z|6HB@+&sB=gqgoP@dRJGM10;*Eq-=x>bk!$&T&))NJXDGVEw${xPJA(N!{lJZ!yk^ zd0Iq*3QkIRKSG_kO3#|{-6Ed zpSEqr1HxQAKxnA_RhByy$DpeQ9yR<;&^&4grrb@&rgR{kFEvSuCRI=bLEr?5G19^8)07eXnpO54|6SEE{589kcdppPW1x2mW4r;N=x#r={A(3 zz2CpD@1(HN5PQ=%1r!|Vr_8mpS7++>JQ|n3`)@9EEcsm>AGe%!J_C9%3Wev|3F8hS z)-;1sb>rvQ@#T~Q!`QGMS#s|e&bvoGk5-QEKRr0|1gzhKEO>$aUf5t!h^1}!1=uqn z1rs+GZ{j(ZU?^@)W0v!?39l@k-*&sI`mQ96Q3U)LzQ1=gv}ELQ8`Jnv*4n|JQ5)pM zoPrmPgBmeD#;6X;YwFxjr52wgbX~)XAjC(D`S3=t1bl+ENBe%%40t-I%vze46r@*r z!Oc}eihsVr2j$D3_(2JmfN;diTY#bFNJD3xBb=@N6FADL%SiZ$FGZ}yySw!}vBN%$n1HCe(cypc@fZNvMPDXaj*6Kc z32Ky3zTw}BPnnxt(nv?et5hy7WNm}V;i8$3J*IQgHq#3-=w_f-&UuXKz&Z-4#x7xGS zlQJBd;5|~*M%8o7A;3$p&MYyG0Xh=ECII3pNWs}7R~n7)t1^hlXIey4@YzokF-Pxx zdOpg3wRFzmer5DS;bu7>c=R|Z9BgcCY;BX&UxbmMhX!|1(Ezu=nkd>13Iv z#oFKohb!6j6)cpIlG(WJ>7-Qpd8Z`+K;!H@hv?h`n*7;@(pNRdb)t z3k#fd0oG;PV;JgA~eJ&)4#ntTcEw3oq zh_C5k82e$g-s=W-sC}$o{Jb$IQh(`u9klEtb5IDS$g6 za^$oWZNk*#;5DB{hs7GN!n7l7v{?I0R^6s~O-tFcs^#%TeD;?Y@%Z==@DgXCcyyr< zyH&gF`wPn-5Mr7u599=VPD$w27gBGgqTOw{Hw@3u60Oy%;I)HHAY?cYGLw7~98|o{ zTRvM@eC~$8XkxKL#rwug_!1McIoM`-L?8jn8fKBK0!cq}&YQ^k;;h|lQ4fGTr2Ntx zE?FS)mT-;vRAkQ^!Cm7#Wfh@=Vku4yT@BaqbsOl8>kwxo0pYIyXPxz(?gxXdZLHu< z`okp_bx0X$%eWFxzBRIGu=Q=HIJ>|uCQ?t(8q?e^MuIxXPFiOkE8ieWj{8q`2Cw5)s-+*#jYq&_ zM;bnKlVW_S0Tj0j9Yi}jyXd~n$Bz#t(?MAm%MC{U{*O)jPJrqN^xuC7%y7dbf5WA#&OtwrO0LhuRY$<`o1q{vV!(p%%bAU+ zpUHNiITdjj&zDFu@V2JIi|YLhgn%;5!7~wNdPr9m`O=D_>C}5mbMt2;+|sDOmX@+f znjW28fq3cWhR@wvpPbP^2W3yb{B(c2MfD_$aE3#d&p;(Ph5CZ80NAag=$Hlw(NyOl zDh>`6WxqDAn-$sbPqkshn8>S_FmiHoANNC7GDe6RnF-v~guEpR{ABO*=ZMfgK)LWd zKOHmpU6h!+A>(eZS9};zb-W~<5bGi?-ql|Ss!3c15_bVCmpem=4i6N)1FuH^hDdt1*d7r((Cje27ESL>~PM&wI#oKJQ+hFF=MBAh=(Y1I5~SUCJ8 zO#r2CCKD;qhr>&V^(}nINl-@2ZKincQlLF#^=X{A8Y1B!7Paw*^yK?g^Vj~9AM?rgv^ z1W~wbIIJWLyB_uEc;J{196M`ct-kdhRyI$0j#S(2TBM71hBl53vevo+D4u9Yh}^nNg2a&PK{VUmaqm<_9waJMabAdpZIeF42O z|4=)xExu!J0e`BP<$AYIz*Vc%hYyTOIj@eVCS_tO*_kN`Mx#(CQ(xfx;=~kZ9#k%t zSD0Lr7{WxZ$Twd|m3U8M6-FoUBA6tYi{_>N)Zm&GaW~bZ0RtAbtN5!A+ySuvqyQCcu?jFq+9jrM*{??7` zj${#`hb}BG0BQ6BIPH>DGV!qh6MLl{z{OpKVj`e)A%8tyiW6%o>|v0p556gsQO@Ko ztFk{nDA#hW|4tJ9aUz&!?ChVn50D+)|1@#rIAfNk_t9#7Jx=M3g&VJ|d%HXbvXFr&(`LVCMwRqUx`gc^V$J{H>kuEAy%gZ8Md6TXa@j$ zK!hD08Sy*$X`WGi<3#-;rs`c|E+$WQ(nr1PjpUgZfyC`Uf0RTLBur7ct@^6kO70OW zWac+tn&{`~D=Q~J*De?B!E-tp_X(Y&c&Xh78`qf{zQD*|BEe#b_IGTlQZGVhI!X$*=-Wrj%k)Md2?SCCn1V!3x_!sP6QI zcciTzQ?XSPJjX>zFMDRdw>Y3V=p?%Qi~M0o3VYde@v!lJV>Ue{N%y@;2tsYOJUolx zFR63Xan1_I%Y5S=7MU2tN$>LlS^vu+;pgJlIxY_97nO_t{$uU4D}N_Za=q9K%D$Pz zze<->yFLE(EIs{fgZ>D7d(s0TtwP&6k7}r0Apo2JSUIa=yS)V(ZxW*q_uHFT|ZD zKyhGgZEY-!8CMpQ5^Ld1WK2<*avo)GQ7i&@{M04DW5jLNA5Se67LaqJ-^+XvR|=ds z8$Tl7AAmQwB1n%EPg*ml%oOp#IZ>&+s7I!kU_Q+AyhA61TvuL+jGc+7GH-{YJv$d~ z-~98yBv#s}T)Xlx{G`8Ud*6p6XiApAvzE<;m5pHf0*O-wrV&L=lSwARVVqInzB_a0 zA8(v4z*B2Zf!?&AfCf(L zFn|mvFxq9uYr;)*^tDiqN@+F_Edw6*%j-^0RfP}#0I>!81beE9ik0=C8`R?3+4+K0 z2HVi7$k155PL*Dbf`$dbh+Q3u8DQm;SB)Q>iy& z=AVk{tXKN|J0FkZ!$&oRm-;QPiw!wc6^UPs&5$NC3Gngq#or%CRH5SiGEbIyi6#dx zKOW_kDWb;imFq0wlL`<{Ibu@_nsr>dJ{|Wzl^d7NR|N$Hk9`k7$AG9?t6*ongc^iv zGLi&Bm*cCX@3iw5LzO~3_e1;jInOF=A2d0|e%Y1RI67FV_Z@opd~M|P{cMjl96Qq} z+v8U=Kv-pSn+{%EZ_4Iz-j=VnObjWg2np+m^2~B!ojMMGY}y~&c%hP5KOmll^Ncl{ z&xtRt))(;~R-v5)oHR0>I8ZBdo7t(@acinQYSn@SixO!SgO>iOw$@_fNtS(^=9^OS z+x-;n$AiNs&{Db@7W#SRzg~d*8Gh|buNa~&3AWOZBxW$8{5R4ix_y~aXfW?$mh z8hTyC4yWn2AlW+?{Q6UN@+4^t>tqz|Cp^`r-`+HPRCTqo!y?VUwf%|>X-r?cD14aC*S&{TbW;4DY^f^cEhYoc zA`OltD)l}3D`QUf^mWEog)w=?$rEBP>k?6wL~HD#!es)hG2T#PlT{uPe97}6QUATT z1Gx!KPsizsd6zK*$D?HHN%|;oU%V_U%`?!}-W6VaED-MfNn|JjLLicW{bB3j!EZXO zO#_~M@jsx39!#eL#EYPp4w!F1bTT_F4Fv-HbgQ-IpD3sPjE#Mt2{V>seqf|A5uxD6 z+^pak<9=4-ePIi@1j=-qlAM)%G$rbhz)Lus!?Vqp2Ftrx7x<}g1MGEJI18XX;r)Bx z(oeud^nnpCQj=wSw%!^k_sYYNAYhfOtnfDb_W0^5#$)BNRYd*a>GUV7{ zi-H+7l%~jO=#rd&#dWB$!)JL@RWvJ_(OHo-Sg_fMgxx9>l5I@`DIpZdy(B0R+2%Ch zYiO~#Wn*FwI82$Xep#gR9c(p-8-$Wc&^PTR^&QI zfzdCDLPBJ0U&#<}njM>LXL~b0w(i>%D>)~M=Ae-77c`POJJ&j&@oi>0Nv<$9b!^H# zG+5v}lm{`W;sv2D2-5#FLTU44OOeZf_RD=dh2Fru|1$7R$&g&JBr%Ks!|j)!)Suhk zeE98_pb#2@eIBwKN<=su96>9zer2O%cTjslfU0-Bry4`Tvm?rGl^yU5ko?77e^4(zcASs=ah2Ooes2e>UQLoy(-Ij^K3`DcH{vWE| zGA`;a?EW1>xjcbKJSeo%+nkAWwY8j_%t-+I1%bpzz1#VNK-*ngSo}G!wX7zs7 z&9435jx+BQ%$rT{k`rXBG;8uZJF~-K1N?VAIxo{xQiQ;HQ@97|MJsD-c>lUFUZ<1x zM2=s&ZC_x1HI4>gG(NwTTGT^>I60kzw`}cWdmw0H+$k%`zK>(D2MzXl%21-iva#^V+&v^6V77x}AoX+g{VAW#7Y-A;WL1P95q&EhQFzz@ zX-ZXftucc3=leqe0o`yP^u?7Ag8~O5Yy;dt1~meKF31F6#|ml1KQ~dmi2}^q>5hNR zrKP{=%g$2QVZRteJ0Z}x#EuKWIS0E{i*EebDn9R#Izu0)W!0ke?ltZxY-i^64nNsRs{xb%)AH+D+P5raP!emOgQ}vun<%y-!r)V=#X_ zGRmGww$I?C-iW~azV_|~R4VMcp#=F}ZXP;bP*i0^_qUSJsHp4lTb&TEO-wpNq}l#t zT2f8JQpI0Ze-Y?HMv zolTs@AvR-pb|8MJs?fgM*sAI4d`xC}IXr%h5Z}P>y6u1W@+h?i9ga*ukh73Lqd>^| zykbcd>D~3-{7vrhu%=JqUd+p7=u7AJPDU8|Ti3CcU9(p~E?x(%`6`xaQyj06=vqjI z6y5hi$tlc7%k4!9&LaS+yh3`IMI#X%&e(w)274vlR}*iRJW&FXx}_Ilp+JCUc% z%C8ln$zk*B@rZIfkD_E{AgF=GCX=78x8b8z&XuGTLc^DlNg$=LVXa5U=8#bDu7^iX zBIXaGQ_H0zfQ?sIq)&?;%>3Akm-&96rAI+d^8-FLYiO^%z*ikKk`G_jd7_FHb6(Nv z`Iv71a#GT5cXu#1r+K3AqJH!GH30mZf&hp8+4beF0gv`F7QYyQ4Uv9IKiPI;izjqn{VF^${qto!^ zlbBdglBz5h7Lqg_)5!hfZ{s0XL0>>_#flI|z^vLk+5ckwWpDpDVffWVX9S?*RJzdO zVITzg23-g24xEx``_voIa1S?%!BWB=znr{G7Ou2ct_rCiWW{_QRUzOj-ZyFycS{pnvG$Z?7cnqRU z*Ppt!gcSh6gr6Gvy3}4fInz%uu-G>!vYuwq;0u`mY) zVRl>RzdW7MUYH`8(aRqaY{CE-wD2L;iY4Ok;BK{lCwgQNa2CqU77^)W zl5PXI88y!vkop3eDiKc)3sV`Gg z%Hra}L+KbC0TijXkZvd9!Tq<2FY9WkqT&if(g@azwH3cvQ^C>tpF!-bS_I5s@jW~_ zA8d%Q>BcWI>wksxG-JUMiZREb4!qh7jN&FR{crE8#6c%d(18R)Fhs6+Asyv>!MFBd`HO#jj zmj0uYec$b54FY3d)sKFar)TSZK>@jktxt*bQOvDzPXAS(5g-KYwA<-+o_^cVfu7eG z4=ALug|K%5e_-4)C8@T1rx+!Q_}-^%>ViOvk``gQo*da!ICR zq#?oSo6N_6eBNs%2Cu#<#BAQy`q3wA)tW>YIu3Nt6|K0PME^Bc0+_j9<0DEx zao-6BGW4nJpPW>c&BG4K(uWazo+mZ#=7z8e|A~zMQ2!>KJANWPUTO=Q4vJ3n^lpk$ z23Dq6;E(P3+4{HTHnIi2JWoKd_1+Qq)BE&rEjNxzsGN>lEBzKp^@|ZCrsDUw`mbyY zCGzb+)3l7HKRV9q`S0}HbVquEsu(UVoI;8UYU@liZ?~KVvt10Y2&2qKvxO{A=4riXPmr=%4lL;ll|#xP1+F{F$IBKc*8KfsCb<-TS$lxD^eC*7sB z-gvWMXoEn7A{B%v4?Fi<>~TT+`1~Y;xDgvCiezxK))SPL#|REYjtQF#4d2|~E^ z^0Mya3G-RzM#9FX-op9#E9|Sw%k~=EWeQB8``=FEv7~;zKfo9f^F7977ryT^5xiI) zOoHVgoBRNQrK%R0u_$W~7PjV-lpf$qgYmdk2Aet~AoHdf~pHO6zAKl~lr>*mkw>B?P}RTt1M zZkFx)V*ev5vbsyk&QDIRhv}vyC5e;AW7dJv#t;^3&8~GNaOgnv8O%xeNbubDt293e zF8J+0To*`oEX+RtfS2jM7r*N)>(tx)aMlJBIJHJty7+CKuS%GkhiYMqE$>4Vd_N>_ zayQy6G-k=t)RBK)ZM$xZuQ>ajTrF^Z76b~S42HMLYBV|U(2Dc3)OusP#?K|Fi3fon zWoUSqcQ^Bu+o}st)7x%NSGhdS!3$iOoCkV%JIGuBR54mrsi;XNs!x)wKKxmg#$IeX zqlBi2g^2ynA&IP>fLExC(Lb*T7 zZN;howZ_L!pG-r4V#>3nd7qb=`xEvgIMOk0k2loI6=HWQC3x1Q z+}7jJGoyt(K^##JWs3`v(y@n)SM9sg3-e)bZ z$>zlcEdmU`3t*b!u-x$K0^u*U01o#lnG%9hm;@FI5K({fEcq|ncZMocYW_dta3>ZS6;wU#1119mbB zUgqrnp!*c5`21^uK!_ku?(r4U_IHsfO|}clskrz1O19iLOHP6++JyjA*!kc)*wTF3 z`Qo+L^C09m?+2xol)o8#hnrqpCNL;NrEEV^8(z;^>CSJsXy$6W@@e&UM}h0PzP#gU zQtBN5uN|x&!i@|Mr@!|ZxM1P$ay?$C_THDLYl|ZYJ;G;2SWGReEZ+F`h%^O-<+=7jCC0ykM~cBoQ~Tir*Yj*qY%rq>|N4To87kRM;uwd zqE}!hgHV12RMomVT!_Bz^YE*vHxlI7W511;s5mV9SYZQ%MMOlvr*)8u0 z2M5QcxN)}_j|A0k6f6`?m`4U93E=zAO-`WRGngNHr=}~MqnLo+Y}B@@!222 z6ueiK>&w&p&Z)!CXQ!!H-<0u+e|qPiv$^Z%_z9TfR?;B@#lO=rQXRIfDZy5?KXNn0 zt3TC!;lunQzD-0$aGEEk&1l_TagpnX8bi!uPU9>c_ElgNQH;?&m zc*W%!ac+XGZ=b*A0+X1q!KFe6cakXCfoJz48C~Jxq8S4VO_oZDNJDj z4Miftg5a@HZsl@XNJa~j$FZn5PDtY{Id4`ixEuRSuqlF4lHB%FkL*oupaCKh5nZ2F z`)y4Q8rN_`#0wmXK0*y*N%+jRO4l`fuNXiybgd-eN?TLBvWH0pi)MNj){-Y>#}qmQBNyH{!%;@L3P22 zL`nvp&w?)IpL6e98;czkA~ET_s!H2{rH#!GBhg8 zO;hsYM{~a8*#ueNFayHtH%VAxQ1LYcbK2%vcz+%LKSVP2hQSmA_4`g{W0@W0t|MbM z!2Ms=az0#c*RgGm?{{sq*a*{o(GI-O&;M22o(QzT7yvj~)63&E=4J{CJZ#g7>)`^Y z6==?#0w^ZnSwjln^B~0rZ+fM2@XORxRoQ~46~MulS5-aty*nwdTy8NPX#^<1v#rFP zgKv-9 z>w9^vxVzcDQ;#8^Ucask)4qr*=fK8-x2d9YnTp0OR?2km;n`h&nNWMVNeSB&7&SE> z-1(Ze$NDyo!3=@~iz`e^WAm9jIsBw*HOaQJ=e&1+SLw^l*9^>A`Eu?avk#jC3o}*# z-YTS!!M{%<^fcLg@C*119(re16|W_o8s3OP>Gqq$r{G1>m&ED$_!g6={!Q^46fPxg z1ZIe!r3EO*O(8Q_0Fvk6S}%uc)nM90Hnli1f(#?YxbK4{8okUU9Z1j7&1`;IR zU+_}(HW}fCNzur2E}X2>^~M6rR7I~-bpQ2-0nkN280o|PTs1L}TvxAVKK znVepn{`*%GFso#X7)N9&afmd1eSHlL4FP8-6#ejN5Fa0(h2OlVyt+b`(kM?kxYRCx z^_}D^sq=65+iZTA@v4h36j_Q28N3}eHUH*!vmcjFef|2-U#`}Tg8-QZCqld%10=i( zZh&+D>({S+VHj-y`62chd(a`UC-*YOkEZSM(OZn5?Bn;Y7chNxT4N!>11KN&?$y4Q(1qW%ZSoZGwf#%hbgq7MRIlB0QRdWMy_Xc1n`6AV{fWvnpHphwv zjI8zaafx#ojzhJ|L1d|sMa|9^b+9(N%dXw_0syh(sfv1D&lWeBP$mq`E$kDP;~JBm zhgA~@YrCF%y=4w!sB=2^cjFyl@qZjLnKC{&_(x8Kr^v!W*o4Iji#WJb0}SNk5MekT`<$az!1IHiH@GEUtXk8Hw`10QI(kt`AvQ9 zkG8Ls?uJ&isAR*KoYw=b)8CaPf?pp;grEgkzCPWzvE)UvWbx8O&K04IBNXS~ZVsiY zpA9C4;N7VbqzC*!{TV<*74Uiro{rK?t2eYnVb~;}&RGw*9yoCLzWInz&=oNSX{$r9yjr~qll(NMgZ?{?x3s^|l)$|CG-Qjk z-qPC8Kt&2VTFOemmdTrYwbfg7(qy8W`&YyerUcs!e(i=`_y_txbGi4d}84k zQueBfW)7Av`}rt2+m`KXpNAWLx8(96akiON&M?+Vk@hz>4R0wt&|_G-2jjK&GM+ zd$#>PudSAAko(3-JU%`^xcdSuHAVBV$Onu%qTh=H-muOZ*z^PW&BKF-oDC07c7p&S zy$>aaTx?@Pj}8%Dt#u6v!|ahsM{AN``kjpHY@JtwnVi5mlQ;)Zy89qXhvtGlM&BvcCVwY_kjjw$Ts zR8&J#iQ8OvZg(&bg^TMKKQ~t{q~A0K zHi0O(65_*0DFy|Q(;?)iA7{QTA&~AHX}YtQ`I{?hc>4if3HjA89Vx17gKbPjtx?PTApgQ^mHWnEs_d4_Lcla$(HF;6hy2Z#9- zsHCUop$qR6vOc23JuWNI6#uUm-~%+xkoEt5PRFh1q(`eA80Ud`4phjmG+3Q3%xR2f zvky9C<(hgFHb@FfiiZQss}Yg2K8lmR?0a^mctt9v={Q^ZG(`lPi+LJS z{T3t3`jXAicTZ;{`p;7|*PFq8>%g&+U0!uRP&}IPyqjX9f4{)R5EhdJFDoHiguUf@xcpf32>Zj*D9+J~>d4H;RQKqD8f5c8L&JWtV6jRwemKV6d zXD>Yi16%-z8-kPcFKM?WMeqI@{n8;@;lYyc*;(Z+8lUkTXNrd$p|80zLDnf!jo zAp_>)G^_kR-6DqL*v?p%hFYD&zm0y-Ev}*C(4wDkf0N%Zn=U^MiVB*yziGn;tR?Jz zGm+>8$;ayueBaiJifDrSUrJI@%+0MT!J6nTELMEZr&ES7KzzPJzcMZ#v|VgH z24%4%AgvjWO`*#*%0tgol+ z^TjzswJ0~Ao$_nU5CKg7NB10T0I>5c+J%`n&Y?Nh3^I+E64K<42XH(p%w%SGH|=XkluQo zB2|K==|9+rv_o`g2tlT%uM?G0mpbcB$BX-7mRQZSRwf*hE$2@NWj2uiP*W6h7-xF$ zO2oa9&mC-AFda?bnblTQRBpuoV1^S3DS-#!j2Kj<~1SYh8Lvog1cyYB??5_t8zM zMQ<3nFRI%7Fa?gm7=tRQBw=d>|H6hcO{7ebhoI2yqE9o>+1X)7RAjJ5cC5+3jI2y? zzdfmwx-bJ6sKCCN2E+89_AAeZ&&p=vo`TCc_fMy!sD&;*9G(81bI+@s`=*XHz<0E3 zJKkks{+zC+!*&-;S1=g!i-C4(h=1@?aGo+G4on*+7AR5h9=2LuwyXvvYX6qozJT?` z!UC9R^WJP1D+;)b^@gB=hmWqhx|ZgDUw{27=PugC!Y}|ZxmvU4;49ZGlkWZbx|o8l z?r}|aHtwQU7{)uEQs=mjq?TrjuKe*QN~{MN(oS2y&-l3#viLj>F5MaLr>1uOK-1F6 zO5IJmo!>=D*W=8<6=zXU`9O5Jpm(#?bm&#r^Gx-dY{0zAUF)kz11pm~zB!%g`T5WK z`uZyB>p8M)1L5ILwu`PRDk>trJ%CgNsFjpBJQu&&2ctTU+mcPwzIp`=Z}wcHG`l5^aLn`w;3Z-~7;g3I{yKBPlGg*Ov>$ z%QMq6%hPHCW=lzQ(`Ms>W%c#-6%~v)5x4B}1F7nR^iv(|3d0-<{}Cg@_gbrVd7eXE zJ1$pRmovER0B)n)6qsy1c1l$W`qqCK6mN28I`v_J)eOTbzDEoap`BSj#_xE~MI&gw zx~zSa6Gk`pu4pPqb56xfPp;JXKHcA4?3zpVV}j;&?bahIVT5>MCV6Dy2pHG|$tmG< z4oj$TvCnY?-n0p#@&Q+=Y(sdnRdJ$JUG&eQfjCq~-`2I@xdN`N2 z84TlyrkiZ@G4wo8Z*B$dUKz9f{AYQ*Y8;lg@$9Ue(9I0^RpIMYECB-$1->rWP+dLQ z@8VGZt7JyD&vn@w7SdzenSufQB#jbIw)}8bbc3xT&$kDVrF?8L+0fm+@HsIV`La2y z*}~9YqgG9V*FQIb)>l^X9SPB9+UTD<$HF3$csHi95k$J16KVlJ#zBkV-;KnHjSUA` z-o=J}g%)lJe_&+-kzTv`W)4pTgM1l=CB#4Oq?NlV%qkh(L`WMF~TD z-=W%9e`Nom4vsYaTpIBF&Yd!Qs`>e}`WN}$qFBHW5WqqmN3rC!gZtvLvSJ2%uKW$V zQHrN67aNh{!z~RueJ`>7)IQiQx##|aq$0q}Qz_rmeU29C%1S~)PA$oDN71n)oV|6} zj8RbnWlEM2)SNP~A*X^!@9^&zEaMQSKySp54*&l%6y5 z>pVtgnE){7GjO^QJG@vZ0LM2dOV+=hss$XjEU%N6=$d_YGc@Oni*Mu=Bb)c@y4dOps2x#$CJAi=oQS?(K%5%=n{bVUM6WCy$Y z?kjA^4l|p+_D@%)rlzuG&I|A1-k^nl73u`Mx{sFI+%bo(K1Q|I{n{J~(;A`Ud^hc& zPNq`7%XWKs8$6J;tQJv#=a;q;89VkC`+=Sb@q1MEZWaKJ7g_+47I@V!XLs6!D+7mC zAB05=9cGk&!8^iE!HmH;BW-1qyj`5FhE>MGn-3b!3QjDw3d+JGVXM#gWQ*GJ%w>$4 z-%`;qe|YW?Kz|_1YQ741z-Q)v@L6r@>?GA~VnpggweEA)LF9q@8%3A=viLgvtSF32 z{7S#=fbZ~&y0lW@(63)(R)5=Hgq?26S}kr1`RVx4(^C;(;YZQ?WQquAw?exOD3x=U z)M;eJB$H!^)myrJ$EWc1bvqnJe?)$7Z*N}!y>VlGw6J-R>l8FOsk*!zAqe&eLxrmF z-B>PNCEMZ4Wp?IN7?1_KKiya`Pqt`8-2QeA5_^YkbNEWPHU99!PC=m9wMG&VIIS-Jn)ZWu}Fs@Z$2v%8=7 z13J!S;*Z6q`ufN1ye?5abqi&>abz08$FBIw)2F1FCd5cVpF|Qg^!AHr_Avq-y@|gI zE~TzsmY+C->!$p1B4AL^A!x$ooiL+ZTzOqiSXiA`+!#^_JvSkbF>ORhD!6IiiZ)tX zT6q5RiIVlve2e}}FBa-XHM`hmK3?T+cezwI{+(Fo?sPtsB~5BrxNH%qX@%88#gO8WD90_;^Q-GPc#b?kR?2>1wa2$?F6^pCmT4FM!2& z|NOA3?SqieYU8n+Ssy{@d%!~lUg_9(LeG&5%!?{*7b{-AFSoc#f98&D508j>zFgMR z(O|rN&yV-}daBId#$`Y!qx~MMAz|{ry-uTTErnTrgYwPz|Q?jDjR#n+i z@a0dl$AuyZkLRB}F`LixchxU8`>}u?$YR&UM1bbImYkTJ%xSpsGxX^S+}esHiZU+( zzOFEi5CJMT2ynR_Ra}j#f{QJXyZm&#MsH>-beCsm-$a-^B=k%sI8MBLG^N@GPc2tt zYK>_x4*oxrr4u5mV!Q_V694lQkMuZwY8-J5~Xsukwr{R-tVk6k9M9|nfNlVTUPEq{YVR{lZ<3=*{)2v6*rWP*dQP!8La|;7O4e zx69+<;SrNKHaz?Rt?xpovcZr*_6l+IHnFe3ZOLn~?S^U(%V8|d2(soEx84^){=ol_EIlf2njX{&B0AiItGLHW({+ihK{A2GYS+utwZnak*Wmz*weK+>qb%EcC z4|*g#3so+rv(Ad{_r&N=zfOD2WBi@LDau-^kYxL(Kxb1&RTEXqQCUg`28ZvJ+)H(S zKEJ_dh<#~gLwSj|IUrT(3_;41@CPH%ohWx>yyqg_fBR}|FtH2xY=Ej%TKY! zA0XJ!FaAvxHYepQ;Yi|I4p3ouXC_o@4cFuO8mGJ3k0ZXyWw<2@Pdzt&tbWh?;BMoj zl-+jTaJ5Xb>?)D88^%9}{I@tnzE#$K06E@4VVD9+Hu0kt4O=+|wx^k{MWmYm89n{V za+GL7A5ogyAkf!D!s3$i-9b(!1vwdq#wTc$8-IwbP6$(5y_){6mpgeCS zI-zeE_q_K$&Qji$S8$m8(1t)|>EIw))`-H?Y6mh4QDi`t>~X{K?WB;oM-_rc|sB{O!*Bmy};qzoG&_Lln8yFIO z)uLVaC%79D;qN_-*S%Qli!F&kro}~Tzg)-sPz_HHI2A&nzs_7{=;JU zMM|y&A)vQ{3_o+{ZNliHTeZ%=1DTS{>_qLgLbX7O?u>|?@MuWkRH!LEdZ-Q6G~Gz8 z+3)m=r8*@yxB8a@F1H-t1-b&MSizn7H`)AdC%SH{fLuJkxM-DLym~*XR1w>61j2y6 z&mp@R85vK7Taf^Sg;}N9>22yHHyyrioP@xwW&NW%`f6DzI=r4*+<=yN@GV~>FAd-B z*?KmJb`%f3^E=YSiCK*}RV7m8{Jkcrr}tdhv@-DMNjn9?3*DM*$!FS|ByN#WQ7}E# zzqc~2mNga&A_$B{Qz3CFDO_Ma)a3)HJdfkLoQ|IyOypCAgvMHjoy^{Fl=|ebP@%q+ z3-BaqSEjA^d2sD|Z)A4F8^fsET2W9=qX~e96fp^+nxvM+lOHs1@^)gD8-fR(Je5q`PoWnz8295K^3L`zCulW8r?kPVQBJCI$o(%OE_ady`F8IodC{iLu z6nr3@mf}s35f>lBLWkYq&K7=+gd%L;ZlPkDH`0Fckz;ncv&9ON6-L}3SmdwTZkD3! z&rMNSRx+f*DGV`m17ZCJ%8mH7ckmOwVx7LnVaj!#r5=(`ktqmJ=tPB|@GUn6I^?qm zDoz;1l3XKarGCeE%W=V&IQ{o*3~`B5kOgD3LInKakhS8rNJs0}ryjs4t|kfFT@>OdNT8oQreyt}yb@nX<@{)0m|cDqpfi>454?kc>0 zc(5gH(SnvXJDk>kNx&AhCKX;+!`s!&KEA6bS@LbT z)X^=QG5X7%hogW^++%Ro(Pk0yUvtcqno`=$t`N>w-Nk-lvF_nDiNjm&X#J_Or*j z$}kKhI2q4e$^cl^a9VCD@gk&VfF-H=vS!JifP|D_$K})=xTb-&hILu@v?I@ zIS<9D>}KEWCq(9fg-5`<$K6;#6RA5;ud%YS(%Rap$+$Df{m?V1Dm$QQXt)k6cc2f8 zB9z1qY`Ks=}Ag1|PByf9F>pk6At8x%M%>WF46rb;+fW_fm|D9=a zbkG98*RmRIPSJ(27yHD#k8NOXyqOdSI ztbZT-onF>QxH6r3EIz5~(o;W}jXncV+|8|Tus7NeE-l1A0nOh@Qm<%ae%mmIBl2s1@&tdt2#_I1K3iAV5Q9*L23vou&aC?PJKElS zFv472XlBLN`|g}d==onP8#}uYeMxb9`(wNm>DcHmork6L&98%TANfCUlT#8^J~$8$ zo}xBaaVT`LU^!avUmyy-wD=8;vhb_>fmTTKu{|$v)Qq$JO!S zVK#+TU{L_|aS(uxPDsFk{O$1KGLpr1L0L1=rc;XB{Tri7kA(y^qD**iJn&nZ`}}fx z{67rdG70mX3(Q}D)c_o)Dquwjav}xR!(G{URZ!#OxjHiMB~)W#ViMeE2n*J?(KYcH zO5`9@iHG7afcxtw7^$fs-0o)v02mK?Uy0`$qzFO{W3UyC@cv!-jSdeJ5fHcw8Nt5@ z4O&&(AS#RxF+mliMaOvHpftZ^NGmH<#5#nY$3|bSPTjn>o#wuog|Vda9nN{Mvdft5@@#5so*fhb-GlbV#mB?^Oq~)YlqN>TrnUU+pXu<`5|-OO zs}?oT44c^M@5{yr%hsD+mX582r3m)RVY;;G9TDHM&+i>(BS#7elUi3rPROB%Mb?xl zd8osL635E2j1t{Q1lSZ1gQJggJ%6wyh~CSotrWp4KPl-*CH3?Snk;9NRP%S;-)3u& zEwox)w64q=V<+Ch({fo_EY&h2-;GZh3WC0Gx zK-e2g^D>Sp_b5KjA^>td)|}Poe4GK;ho_gsp52*JL`>3!rfSc*DgnU1;&I4#nLm#z zkd$F|t^UA(y63EVg7*Rb(?f;9vhcIX2dZczv|kR$f-~uNQT^Z7<(+H@nRq zNU(xAr_mpR-tXKzlqltN`YbYlz5GJ6#|T5Ut#jFbOZT0P6?j$-R5=$D0g#_(-0yh#+!r%k)?z}B%s`rc%qj(;{t-)ZC40Zjul?@l`(x&z?AGzlQ$m|=Z-hKxnx;<|H#vF~!y(mYmu zZv6J;^rtu~^Yb_6y6&#f=T_`@vt9__%6gwC<_wQ8P`cNB5m({HQq*ib1UEtbGqAzA z%b{QGNpEXmDS&d{=+>`c$8T~2`cpwcL2>a;2>z_i-ybd8?x@&l#dh*4|9W46p6;8+ z$jIURM^Rm_@NQXNQU9v9*)R>o?+27+%aV9~#xC(bB@T+XCk2D5cFv+db>o5$ZL75WDfXC# z$jV!4^|9$4oA_d*3=H&rPdM;GRq3>x$M|&=bawjAe5dI;3-OZ&7)gqw#imnG1_nU@ z9#To$>`@Mhz(Nyoop?u^fd-W#?)PP>hv~8y*Dg(eW)^$|u-=Mu5gwm7CWy6KYJL0U zb~{wA-K6I*lg#D!w6i~5lJiVRNJR9#tn3a%_J!JZ?u;w5JXL1uQFmUOny)F}M2$)n zCW)Z?xOVMh#G{4-jUyrCdoAoBQ7cwJvu|m^G3x5`&R41G=Esd9(~y3Is5n?{HKrg1 z?U>WlA4Z{ej_St&eI%SxZ{0`{##*qm*_ggfT79O;tB*4~Qe zz}LFn?3`p3`--xLqB4)Z9Su@1PXT-EAr||1FY7SaxKe&tT-6SJYwi!(aI_&f{t!Z( z3rBPUD27#GyUS}eX}dz{mB?R`ydDbh8)&*T$W;XnZ#bHh!)XxjJ<|_bi4NOhKWu$D zn>qEi*)FNh6f_QOi5FG{hx2Krukh^;+uiC@Cf7wHnk9q1+W1w{C+>uHU-*;(~ZpVEryir}#tZ4O(<2=MUmte2YUzymNcj*#7)|7=YR z1eUuj?)ul2S2B{LX_&CFH#1Q&av4WvofYU?9Jfns7FRl-8h{^S^}ieE_@yvt4;nOj zuRHCc%cYQ`3i1C{hzo1>`DofR4Ni>K58gLRi#es8okI$66BTHZ5g8yLFNFl_VL-U)*^I1&IOCAM9#l zHVe%wZ?FJ<8dK;R{x;B~e;eb=&*t)QtMEpOq(ts|zp2~EaUEaF;)o?8oT|-fX9m)j z5-UNUqrJ(&Mr#)%INuzW+38ueCZV9r)5n~5pmLVev}Dd50m9d0cLO8O=#NCX83R?& zd}9*aoe(EJv+%kO(oC4@IQA+pUp1LeouJ3UuYN8P2F^0bIf>4Pm=FTP{nOf@5fyY0 zxayFTR|zX6$s@6#M=v%M6&#<{G>i)*W$AzBxw6iFKk&+IFOWj+@0;5ohsB-Zlh%ZQ zpy3(#z3?jMI7_5qR5dtfY%G5=kNA>kY$z0qwWysyFt%PqG&sHlo7;0ku<|phl$!9V zHxI!T(~3571OY9j0hBM6)M}w7uiVv3dLV@*6Mt;T-Fjx>Kq0lh^8F_@XWKYR^3e1h zt%x6zQa2~xefJ3oqIbULsA{TD<^;oYF-_@&_>&v#Nh5W4zcPqs7ok-~wvUH!@0JoY zYne$Zo<{6sUB>nOuNPotXEx!V+GaOSl{UYXVl%Yq#zJ>DqL{^dz5K!L^nTx_DP(10 z5uT?n{# z)!(LE>lGn463&EaEyROD^YY`ZrOt!ZN_3d^>K~ZsT&`$@$w7w^U9zpX5;%2&zony! zrldDVCnqNz&L#r-@iW~(d7}5$@Rb`3ohjp+|BQq{MFdu~7vHPoN=WIUr@HzWz<_{w zKL#+3D@H->DLa?!rLno_1?YisH((@OmzPxDrvpO!Fn<)L~jZ@^73vj7& z*!&7u;G16oipg!|u1!iqpkZg9=K5&4>9Th_M1ty0BBa%pcj{FUR*M-?RRLZLEDvkt zk7jTA&#!ig!yVQswqoSOhd5LK$j$s^9Tg0n3(cm}D*`!B>zHX01{;i-JfVpB| zU;wkVnq^ob{ow--uXF6s-I|8+i>v{1+bjf(tFGHi%D!;WN22aglJ)QLcTSFkTYUaj zbr}7A&c#{Rd!qM=g4JKY21o z1>UNUs{X2~GI8`&v&!Oyg~n8&tx6o2^&BE{6w-)E0(tpIt>b!pmIsCB=fioL6^++t z-)VB%Z&n`kJsqZ7UB>^D^qm{G0NA0)`^Ia$!UKbYiGr`qpm%G-N${J#GFn8BJKMT+ z@tvu<+25ZSYOrelI1>u@1mduv#X4casCVF=I{jDA55UG+&91(W`+nK}l%ku$NBw7Z zwWV`?Cg|7ZQ%~^wHiMNv?X$n69x@jDdXy>o)M9US;XZ$xET>A9j3z`LL_xXG)HQw@ zpfCukomY#kw&Y%#n4Dbt`xk=aW4c+)!aXNcoT~aA3PnJf*^?wCCT)@rFhWU#|0oGu-5 z>TTWMZ}*rK85w!%eY5Byb$F1mfUu}&lB_-teGP}D6{v%Uh76BStR{0^IAIj{{)8MW zejqMjYgm-Bnp$HhoD61H8vaZ0_$MSt_nAwidGLt~0YNygy|&CC)gKpjoL{tzM*^CQ zz7_93at7RmbIXzo4-iP11RJ!CAr3eKn$Mfy0WmUxHMR8OiC5xlXar(1ASOgtcGM%X zcLEbU?ssy5&)jkr&0HY7#mn5nECx*oKizy1Lj0&oH#fsEDvyZu{~2lF zIVA_;9L+X|J2js^84m~I>|fP}aYHCRLe{p6vqYVv>7&o^aLnrU$A)+*j!o>mH|dy{ z`(ng1Rof?|U3Q-K1zK)kH_|Ncy}Ta!*5i^1@Q8y1`)aZVU+&MGtkf~DZ-CZ&gfG`hEW^PoDOqn_N} z#a7+_F6p}XYPaHfSP3550PWghM&MOmKK{9$mW4%$9gSxH);Y+@wxzbP*?F@#rLnWM zAwM4$0(P#JMEP6`S5r}kf_J~hA@+1dRcYc|v|;Rug-BE?U+`cORa?68VBkz*GK|mcq4mBd~J~SgA&m9?I!Il4si0j)$CybdI-#3U+*sprZM5=q`u4XKjYyJHX zMXppR5>@_5t04IaWj7&x1}j$yt5`0W!Y0uC5(w3Wl`J@3Hb+QxyLiHus&-nd7CH!V z^fVuOLG9g&;L!%&(R_oIJi+&KG$zAW@_p*1gmLozWWt*K3&_kCoxOCQr+4}<3uQi_ z*ISNFM5OCtA(E^I@VUZ@{=4noP#Rm$YyOtkKjTlzN}N&n)?U|)hz&*n>)U+t{q`oc zt*_zBvqt{%*U6LF;>eJkVP^W9{mw1rCE+O;gbkSd2Eo8J8W3tAhT5*#TORU`54QXs!wmd+G2zzrYBia~YG9arw zSAk(w-doU_)+ILzL>9=F{}M=nF$pkdwD)IiosRS*6UmI3IajvnU8rU)$fk4gC5)juQ<@I{x725DlV!w?)n}&rIoIs zyE~;D1f;u>M!G>ty1PpeDQS=rq#NmO0qO4d`oGV8KhGR+zyY6OX77FdVy*A`F_N?V z!{sQ_V}dP{H7FbYYY=}cdJv`RSwzs+1VxDWdXm6^07&C&2c{(3O2JU+++a8O&%v9n$g{y zouoH{&aN1l(95hXxn&NU{C9F*CwSV||{;g9F#a}Q(S=ot*xbK0t0 zQ{iz21h8Bj@nRWrMXVi}-&6?HoHQ;4xXkL-je|Kf*UC3%{>RU%ew!wv!F^k!Pft&c z4!&t)FfY*M3bTWR0bqFlIhr+S!ATVRpZZt8wFDRq z8s-|E{A?vX>xof%2ot9^e`Io5vFZM>2W|jRY#Zf%8h{ne{m5!aQ>sLrq^^)ZzE=w| zvfSavNR;a3GE-44Tna4%iEI0`_vXIW|Gak>W9l)Av-){|QLpr_9QyBP?}^c^wm^)^8p->kMe|5+Uje(D^Prj(u1d z80{{34%hC6BshOKr0c&P&|-=n1!|;Lp>$@^m#jlED$vFZ4UH1&^BCFmt%^KkWoJ8f zK3)3)-|`V(kNe8~eX-d6*?6A!u{3*#m8t1|uYA}Rt>DH_QN=;ZVJSokfAkDHhC&hq zqL8X!+F&ZTMo(Q{IY^+2mgD;{<`|OjLc{9!vO;DoEN8!m(=Q_;JV*fu9i{Z`2&sA~ zNN*`E&1{|E?sTNOT96bDkymV0&r+HbC;mYGp?V)4!OAgJ=?8U-(1*honeL)*a*n2F zp|%}4kNnm_y(xUekPGyNHE{Vxp0W4N5ZAq5IWlspdO00Ayf{t*$GMdWQ642>$vyTO zOL*)i79O^(L`WAE>0}dhOti7wFw@?a-*(E-#!GWlLq>zAVu$2}eWl_FbYIGtzILYMsc#j!y z+YVfB@qZTxg*@zy9JQ>qPp*%u-z#UBv@m$%m8w_SG)vJ)!Jq$Spx7>Bo9AOsNldQ$ z`-qn3wY}wK_T`wnhDr;1hLlbSFHy-exR7?hT|W2+Nf~mebIJ6=w1cyjsE2{MBrfJ{lEOU~l>=#IX1DYA zmWIPy(|^atE<0bq8*!IW07?>~ql2sr6hW$3acnOcIisaK%V}{~gVUWiT8qnWJow?^ z+Y{o$lW>EpDhU+kSQF^s-^&HB#UFNut8z&awwaKxugT^@jm_`SUoE){eB}Qkj;MIq znAhp{I3KlInH}f(@5E8`mgwV_kI`qV+e~Z%k{=R@-AF~M#Xt<63+G13KecvP^HHJgNki(g$K!p826?-&I@XJ{4kPZ?mc)` z9LgAYqQ@tp5cr^+NNiV&9JyB*7-e4?zyxbcGP+)eF_wE3zRGR3I#3kvlEt9;ROw<% zRDz-i9KJIZ`2l`2$-dV|PGXZ#8k>%;P=-1>r5po2y}bPVlN*3ki&jb;&QJ$Cdn{x; zhyv|O(3)KDLzAPoZND8c|5vnh=GOb^{1yP3{M5bvP&*2Qh2>a}yV;%Yw{ktZqyBJD zB74R)B|rUgm`J&>v{;j%5@tC}nosf(A0UwK_aU#{_oU@THMvZgOvodokPx|q+L_XzUw#o~+9?QRa13+>c5bEF6W`lg-jxCD z-df-q9MEKkg@t|jzRs`W>FMe2eg)*nSwvZSi+Y%|B!Bn!Q>#XX2XjR&wRBx{XL?aI zXjQUA{bf8n@;tdj49s9!wp&>t=3Rtv-OaA0SV|0G$dUA=mmUU*Bo1@jQ;Wz>Hu7$y zpCiG+|0a5&(SaZwUi*gh-$g`o6OH2vX2oOoj(1O z2%ZjT*smldsS)WD0I9Q)i9?eUlnV((V-3QAZ7|srZ*!1%YdcvGzLDgD+cGJhXx^V4aFHHiWLM52 z#xy(-N4Y5BGKi1_Paa0nObcq`dTtf;RC9GEi5-HA(a(}v>a+M)@ue7oXkI=!zIc8Vm)|f`5ab?+#8ki z1vfO(10Tc30~$+8wjIVKz-0(_9r*!1qb8me^|Wwk3ixlgV)hHv*tg}x8~ZY0VKvtU zQAtR#e^QH>MB3w>jbkU2<{{T?!2Kflfn9}^_@#`UqDd>P_=j+ihCCdilFmbz|k9y7c#hse1=CBU*Cm&B3ek&++jD6x>XX%jC4V4Oh&&Q zomX?4-i=k3jaSJQyxJ4%^q(w}CSR$;MGY%c$vvM6Pp_z`s75duz^mQ(2v^+R@l)k> zb%w&?pd9r!K#ACNhe)%vpV|+fHReBV(SH?EFrv zKLKp;a!1=pw=>`gtd~^-CH@{9oafC(NKh^%NpUY{ex_+iwvO4v(*S#Lch^GN zuL=)aSfUA|9NpM-v`{1MapN(cLGYJ_mHy}1$9(+F5wcISv$LE(x3A<z(iXGFjF*E=tA{lo@$+l}#K%DuB1WHnxo z!6Y>6Fkxf*lSGq4_As^18G2_G+#ma;0Ozd>c7CjLVzk|S|9(%phhRy1(At&+7kQ3sMaEKoav@I^RVv-{YVbe1X5pvOv!6UIEqa?uLXuz*Rd)^V4 z{=jN~qXBQy>bU#n%~h7wVXgT_6p9iW43!$H9Oo;p^YdRcJCpwXz;gQVUxzZP^XUfO z-`}5@*8vtD8S%0}tc==RZ-@^E8`;szdlLbn9YOSgRP^hvT|ywk?QnZ%l%hhJa(;*9 zT;cU>W6|<2uLJD-kavW|CoHcNdbpwHF)oybO~u7jB9)~;p+T+(rX{u|XSBdOFp>Ca zk1fN$tnU~3>)x%i9(Q-Pj$5Ec~= zfO|hxyy)|Ga)sx~!lc-QC%_qj!Kf|$8>CUTR5)>Td4(zNvTRYIM0k^R=|1n}S1_n7 zwo6@J^0vR1?@+V_?Pl9=D~z8G^np`>&;cD92LkkVM>4@%EfiXuo}Nz5PX`;G9&R|v zk+C7O7+sV@(2R6~8ljz!RoAr}zwI*?mN=xnjMB(E7 zy-$J(febqVkyzu0zDr#Y{{W%`S?K9O*@PO=6LL88J`d(3a&}+Y?rTbWth%}aTbByM zj>29n`mbz!?Hs03v)YU@+tw=mG-(p%{?&HhxizwfC9paGLL2bEIUutpcpvE+0T-EK z^cH_s*=PpG))%p-@-6H~?aM)l-a~?_~)XeGkYcs|Q zQi#f?54SSY5ZgEU>g9G%ZROEm@EREzxkUFCkwZ{rBu7{zv$Q${=WmqfpGJvg=1ft6FJ47V@M!b2O(nxELoQxHkphf; z8LvL{YST*#oSGs^OdcvBL)fp^Ju>IF-g_Rj+Q+)yqzmjorXMCt2O86W8Z;oJ^rLk z$f5GX^6GtYkjjs<>meZsHFcW8CnR`^F^+v|^iRRAc9^pci??Q1dAV!NcXoU$mkr?B zjlWz#iRi&+Hu~wH?cV=6?aD5{(`3I?JvRwm?0~zFP8n9&`U&nStBSHEQ^4E!eu!^Y z^yOcbp%6g$k^?vf8<*9HSN{o^bd7-p@f;8odSC2jmhGpmlD*SXQ|lsF0yA-7TBlXc zq7H4|2tRz;F%FnmSpmL;EbKw3dQeG<1#_u4L1{YC8?lMQIE_g9Py!;Np}|4JfJte< z8K2X4YHO&eaRxWp7w;53)g0$iL0~UPh4!#V&i{S4XFGt1gakO*Kq0*rFD|2cII*@? zZJTAO8&iwzTj|W7lbY(j*^A;d`kF~=IpBe<(P=HO(Axou(hgx%cXOT z93ujz01$V6g`({19-hbwlLel3N5t_oy`@MJDa&x%pe7k@Y&k?7gLx&7MPKzzNd2k$ zG83+RY-cP+*D%Nwj6eH32Jvg_;3Iyte8; z_+dD9aDscfalUiJJwcuy&3ec;3nqiw-Jb-%ly`g>>NS2^s*J`Txgi!Ec6H=ph4MsvG<9zUVZ+K8cJw59VQk8(JTdAyELz@gyw+9~`dQn#;ap!~ zYCV2-|I-%jBi+cr$dG~_hXhoui%?Ppc&g=E#;73XQQl8!$O9nDOWsGL)k{F;uXpHE@*%`21!ypiQ&!ve0tbu?TPyAl7>zT>@eMqq`P?4+2z!P#UT46B z7H|gkr5odzax3J7LJVyM6ZptjL6@>V7&APMYgwt88d~p;=Lhdet6^I70s?koY=_7- zlRi$l(L_?pLetJmWX1c!uhe7SD$s^O{pFA9 zaBseb>}MZVF`{r!|20wnR0`B1jY76JOjm8P$E{VrEa-K*?_di z*r|?Z+}zu-`2!6>5*P*Y5>g1gkv17Y0rBj@ z{ZLs)0;xZf3k;=7Yf5GRoy02tdlDzf`_{Yw3p}7Vy$pL)mX_{-2p>@8mRDCh*@}`W zQj<?I*)5Dg9XyXjX9 zG%Z6a^O4KN_TjlTBCp|F)j0~l49mo(%GGk|YVVo*o$Fh6e{x5I;%$1(_}Gr2QKM8-H{v z_{xigp;i_={SCOELuIF9cCl4D-jnUXjU-SD#BE*OU|};f_^us;{9Cu4@K*wanPBhC z#K3?(K!BT;E8aUYqLe=lWG`=GWiBo*U?_xy9+p6+T^b7;IlnU`cyD`qEZdV8%INBD zNWO1=nnk_(Z}#briUNVh!PRp)_@oa0ls|mCnI$h*jV@Io2g}tYX>sfX z5V2E|AWjKqR)UVFR9+bT+#PqFhdXMbzx)MM|H?KH0OGN|g-6tY%E{yuSG|*WDcqlS z==X_sjR9fN-g_sGCMlHVIfK-rG8iiH4o^mss;mSO zHbN;c!Svuqiiq?&$H10GpeX5xt>xdG_xL(_%SZhZK&3t9KD`E9m=~s?_p%* zc(&9U_g?}1KRV~LjsIrGg$Ph1k9|uJpL;dLB=oJ~hDBE^vLGeBTeinwj`%jVvtRc^ z{U++FXbqU`W`d&ckeK%><9 zuJhc~pTFE$ZFTg~j@7`2p~Kt%;B{805;is^oJ!-CGh*2(m?Rsi3tksKoGi5XA9{iw zWiQ|OB5qB{Wm5{m4?_RCx`M{{s3^u-tO>zZ>oq#!!~FwTU9Y!rKlO+$-#(qZC^{L} zS6=njmve=#OE@#EB(hlit?lR$RSgOfhaW(Wgh~2>np9PH`O6ZN*^Y-5OC1kSCn9zC z`_lrS(ky3YW(c!D-+EV7?AEy}-HRE|iXtxc4YV3Wv3ce3=eECa*9Pm{D1!QY^=t`~g#Wa6D;_D7acEHU z`w|Vs+-n@_pjh_am|{4_!p~9P7-_k2rL2A9r)Oc*SI)1h0|6Bp5vb5K(t6b0X z18&r;AAYlSTu$xw#~FI`pl^6`D^umUX%h1}9CI1SQrj!ua&I#p_tyVg&fH_k|5m;9U>4nh`5vjjsJ{JETOI0gF*OSyXMdy=$i*f=eP zNquhV{5N}&y}?-GrLBY!58T-6B~qe)__u~=EF-vg_kQfJcT}p1Ar8XSY#P5zi9J7F zFDXy|J3M^&CHB1a?Taz;Yi)}+sr!VPRVGhyxaSX&QFpu2dW|Q`tpUm)iKMBCB!2cd zA|%Jlh?}=^e;o*zvvodvj}hMMaB1v0sQ8 zs$6L}vK%k8JD}Rp5Lum>$$XjpGYUvBS$a0k*+~9xnOpC)KOI2<#?HtLD?3bSz^Q62 zdLV=o-%m_LL`0koa!)YH%c~axOX{)!M@`rsvV()6>Zcz&3hk5rZJJbQb+ak0Z2)n>kHw?eRQ; zVJ;oB7>>TpGcPdr1JtXVe+wFhhW@}g3=a1ApJ#1r?KE6ehYv63#b6V;w`f;g{q5WN zwt|EWgEgKjm0_pf!>hlw(c>-KAAgUsR94d6KRiG(4i_6sxnFT{x;{P!ja$QiGM)az zq`=e{S1~d=2x2!y^W#BiKp(+JLv02(l5|Q`);~3O12y=E`b4#;l#oacypXmjY52}H zw$f0(dg{0U>XS2U2t}y{`cr^0^P6e+T(swdSs+2Zd3o3FX-t8o(`diH++xj88d(~0 zf!>20@!tsA+0YO~0??(w{x`Z3J?(mGTDcC?t`2DI>=Yx4W!3k1$C(MFpr5^d;lZvN zym9^zO|z0Au7Hy~Cw%j-8@SuAucsNlO+$i?ggh7=E#etaEG=jZqzmL2 zN|EIfzl(h{wonSz!juX&7IumnS@cq}#&L=7@D4Ub~>(|)Steg&9PZ}u$qcDC_) z4Fw238WiH8L+g0P2;@?dG7=(>`wKth$K~tQZbyMUhi!9w>m2!?MCSh%532$X zGI_=w7H6=>1}i2)-)PdC&IiRqkOg2QE%^U^ga7iiSVc>@eYMGB=B#O-1;Sb>9xP{wfn|^S(?_`|Ec}2o;lO- z^cWat{qMO3N^|t?kY%Bp8c2op##H%}6E9)wz-5sEx)Z#;-8ZxA4(#EI5M^(+Ry;ICql0Hd;yHEP9ft>nC zZDye&4dI-bJQEecAVWF92eH+q>F2uq7uRbLO#DTehezaVL=?2;ZUIcm;KZ7*j3+{Z zf|^6bmTw|*{^h6|o|o%8wY!I^iy|~SfOtbLv8Vmd3EhN*?G*tbCM8r-gh^<#bz*7lWnb0L>ZZ}qaP;Zs z$wQxCpQ&<$r8){vITFkLcf>sbCdvvy6kP^8td-ICYWi8OwW!_K_@l_S(Vp#(UO(Df zOjoq{Wv#U0rlEJNHt?;QL}%M_NkmvCjPbAeIT42J`af-~-3X0tTZ^B=B+R8oc10!- ze9|<6qteU^hzg!EL|Wz-MDe9xB|qXn9a1E47#~A5av60Od+f#(o*bFgHeTuYn9dF> z5JqF=VFat2GjRF9LUW}yv8O=A)$>8D*7}f1gw!D@L0669v17F`v@fxcHsRws@;0>9 z0J|gvS%b6ORF#3qRz_MS2pt;_uF6)RB?uz+9?L_HFlr$iL*l?TYFSR6g&L>bQ*4k8ihVm@3E-@ZH@0By4Wu9yW+6MUvg+wH523H7<4gP2Ret%F4b*p}4S zbBlET|6^r||I^HtNvAxgBOMDBM|8hvoT75E*{>d2);hG+*1CYZk(kfXsLjLB$tmza zChcQ_CU3wajW#nWPy~8-c+lf&t-q=ci?SL;A?#Rz|#lEtlgjB?ikJ0Ps#T@ba=TjxvFZViU7J} zKHon3PPR?{UP2@(D78%Wa7ow4rbPI!hl2F=BH1Te<(k_xfZTwm0VJkZ&emb;`ps--Zi9Q#`B-&c0~R(C5=cc1H~rfh*V9ze z=zyE}W!aSlh%kHs68TUsO`1B)1YKhemLXMr2u+_vWJu;qcDz+DGM;(PM^Kk-$(64T z^tQ*=;bHHGt4PIg1$G63TxPMy4a_#rqw{%G!#M&;<>{0ypG~eY0fn^WLPEa;b?pP!xizcVAPfR~@qBA?v& z^QR>sMg#DT>UhFQBuI3&53pn!9vfz4d|N0GC!tb64Fe-r?Gnbo$=p_YHs3XgSd$c- z#DTCtX!r_g`T1>Nmza594Dh(E7=BzYr_0y#dfp8AC6RB6j;=$UNhu+H_nPF<;|GWZ zyB!Q%z02O1WU|8~y$87Ii+_vhCQ9=AA>Lu{lOJ2c(l$}pQ+nWW!zVJR%SpPq=NipL zNE7~!qlpJ-MSl8y`ciw7YwD`0y|}lm_CB}Fx{Qu)hq+LWQ$Q{#?95E3>wD}guUvfl zuD<8lY?1|cowNpyMqOgME^KxR*BS(zn9xwyEW%jYz5RWI_cyB-PhT?=6QsCn=9f;W zMyH9~J>9ieTHo(2^HESqK@kgJ3}Z#i?>NF{YEey7Ddy2zXw3yoo7CvN%BZ#4-R=Zb zj~s^okt$rrrtziCo9Z)2mP{fAlc3`O^P@SSb+CsB)O{$bQ;_AWUgH-O{@9n4RbD62 zz(d7rr8LV$DE*h+)UGlZ4&G|f#5o72_q0F_4eqcd=;2O}^$l`R76b(zmdXq!U6B~# z7=#UywUAR-{Q5_CWs@Y47JaUdl|AZ*4GxMt^Zh}LtCptb&ss|CSQ#vZf$e$stv%P>x6gY}NXV{us2qJH zinvU#-2CVJzHfweNW2atNAu)tEXqpRTR2puZ|xZV0Y934+7)jOGl-V1w;EymTtwqv z97O3%R&zLj#l9Z%i9^#l@ic}@C9pkzh+ukg5hF)mCDMiPD+&xY!3ICa_2{2C4ydi0 zr~u9;7z1)R$q-jXLZj%5{?Cu5H_~N)gvcc#lT`$5cSrUC+s=lY0*4bewrgW%wiA=e zn`8mSn`Y~)wyrK8?o23*-~o=LiL2RC&c%HAXB8S;WT^{=NOuOT^OP{s%(rps3QLWI=13SMK;(@S z^zGZww$3>yt#Uq={uxdk>5jl00LfaY5s(6q%gArs&fxWY7u#k372|V)fJQ0D{QvtO#c15 zJWQd3ejLI=aJQx>Q_zR+m6;rtQR{aV~f+4!>GS#N__#|89vlfOgQ~VBcD(v*s>hACVN!SQCDm@sN z6;GI@WLUhd>JwHfR9$x;1O4iF86%I$j*+-bWwbde%-lP_XbKj=elr_81ZJIW6ju00 z7=OU`hT6=d6xtw{iGTpN$hkRv=m_2$)G%QM+X(-inenXYj!t)zuP3T@`7PT{YylM! zPwh9WOA9N%t+>qwT)QFZ;^8USQ?QnhNNi+^s)nIf@`rbWV<)b}GR8Z~d@rOaooK%_ zU0eF5k3jagUAhATh-#qQ1vJ!=l+*Hhb`m+y+0N2)g&>gq6N-SdOB{$uuy+ z4gHnq%-vU7ijqQW9)z3c~ zh0Va@2e6J#MW%KiFX{q)?rUR-^FCe>Mx$-1E{C>Lx5~rVKqRQ)$JE$qAk*Sw{|OKHjE52^YnxM8Sw9f#fsl=II|mB9Nn0rp};!&@FC? z+s+1K!2}V$I`gtM4qWT%>N4g24u~e8#B-eiq+WBXc(LdCE^+c8(|?u=dd_%Id_?`s z%Z|+)Vsl1DMnIpnldq_&tK%2xNE`fcv5POOo(U4zo4Ge^bH2{Mde^1FEj55%iiiXz z3k7~(zkMsOj+QD8MJIrL3r*B{I-ZGs!?O6pa(cyct;2K+x4ibPz8g+kIgK+5N!&8ohuu{O~5Ui}*l8m)P>2BzRD9YMNz-}ju?Mr)51u!WtKWYy5S${+lv=AhQ zLFU?)LzF9|fbWTU%Z`kwdm0hcEpfanMG&|n(?e$&TM`t~L5p~&NJAPguwo*XQX>`+tVn=LG*f^zU6H0IW_*CX-FR>ej zq<_u7YJ}nOi<r?Uu1IL)FRfPvwM%GoTfOf2=5=HfMCK` zQYMicZ@x;beIPIg6Mb9AMD1r6V_XU(S_p+rbbMW*zokKEZHFl^w^n=BD%c&}kx@vp zM!NiRkzUc4GB*=nWZ9mUR}p*@{bsM{{~ef~{838fop>X;Le||y2$^o*`~#WLhDcy5 z{XhtwTJJ>z2Q9^@(hx(uy+27>_02b$nZ);S?dTXCVw7-W6wVjyNt8vbpTlOW_1lhB zRkgHfI_|I70xu6LUWUSFeYHA;a6SjUGdCZU5LJ{}XrwMi;FJj(I87jW1A*-^E(IxH za5Q)|nu5MVwqTLl+}z~3&Sd;B1kN@i)96W?`oi+WNYF2C@yDfbW{)m5RyJUSNdiq% z$GL`iIZ#=w-+jps$Z}W$Ib~^bJ+2anFaP@Q2OBak~rdUkrn2;j&nJT zw3nQR2EV|p16>H8{ru^-S4H_NXBy-0|8qd8e^Wb^D2&{@dk*bQ0g(*gwjZ=eid=4Jn69@LrK}bs_+{f}Rj^Uf9#YH`FATr0u69%%W?%xv=YNy$N%9xA^YsX#Mx09Rb z97@U5_-c*$yZ()EDAoH|jY^x(oC)K5gyy{z$>RiwwtPbo#(#f@R*Y&yPO_vv>#+f2)21C|`rTe@<9Ew)4B~JYS!6UlyUKnB zhQ-@(Ja+bi)X5=&SKC|sspkXTet%N}{_eoVB?yvxD09Tzg?7M<7dS-**>V+{|51QA zvm5NOuw6YC2kQ8~IJFw<&`rag=(Zn3G_CmjMiL`nFNK(Z*Wq<;9%k)SsF@by39)10 z4pv*GH2%MN{%3t1u}NWh)A^X5DpV&wN6)L?iat!w*});eFSjZ z1HE2BwCuwurLNvzxM3_y*LO8~;MRRf1UR-OY&ZujX88m@p~Z_(YM;(k>XUDKb(DJj ztL+z$@^TLw&m_AUfvyYl50Pa4mW~|$WrNCjhY+oLgTH*8wc2#oZh{AI!7yRuO3jz$ z7CIrL8%L@`*0BsP>isvK1hLxBydc&p28FVu#z6=^D@FazuYVC0?@tXA3bkP4V)YHyww%@ zT_S@LhEb%k&C&gEqooYkmKJ?X4rfPG&;EM8Jna4lN6uX*2K_*w`%Sgu<7O;~&S2B? zIQdg${9c#KZdRhNWYp5+fO8UysPhGMD*AeaQ{jd1CVJUA-~VMuE24!h=g)3(+2w;u zAOP6j=Q@6zT~WVb(fczoF+aVMJZkyLM~FWzZfpDeP73-?Pj7K%dSz~IX?B(u_G!GnF8{k?Z_^3&F&P`3M;)xhT%4jBc)lG}ww z(u8{2=)h7uY>sUi;(oyXaWR~8H>_;H;0a&moLTrhVP zJZpfgO1sKH04%EJN@b;bB?>7*#d|CDoBk6sfw^<|c;Ie0v1t0J6%cr_ro%z$@W?!u zU@3~^_|@t05D^j2?;cH28-dW{KRC(1{r&$S17rMKG2k~P)3y;yvQO-?^bGO$-I*M; zM6tYo_!b*i78YJ}zl}=XW-43&x(Ga)xYFFb)nh-RP|`YTC8 z2Y>(edJ@&WmUW+yao6X&JzvL-x)YHAMC57g z>`)UkS|S$Q6g4&$l~n?Ih)k)4>HQS#yVIrYB@JIh{Uu(8;c{zEBmJ!Y)q!sKu`lp~i3nYP7?bAM9beEoFW zJ3n-;|J4FG)paT5bGcs$SoiLx#twQPtUf%@EzP{BeaEu!o$j7orVr*^f~Jq8IqTO9m2qfp^2!^-Z9{;3=ZOm z>{nb3PqwtM*ajU^IE;K1Hmst93A%~F9;y_4Rz2)mr9;jc;txk5p|)1vdkXb9C5S6- z^N+2<3RfY$JSIwGPC|=$n)6s9}_56Iz zp4Ca`$sC*G0()uUwQSRi^W?9vK!4>_V5842*+BPB)&QwW*h z6DPR|?>jRO?xJP%rRXiN-Ippd-~Z>!_PC@exbXNGoo?i_VCcEh;P5XAR3RBSN$I9#9n^0 z9d##Gd^=QOtF>dUZ;-v4^ggSx4)c*b^T=PBTDaO*_5XPzzW1K|>FXAMo5xWLpz+Ur z_qMrNZ5KA;c?nJSxpB~jTXE;eOX%?636_yI;V!%!ARPOfi1%l-0$%Ly^rRzSJ~m}` ze>teL`s27$K;T~3N!vUYmL#p3?am#Az+A^Tfsu1JLVvE?W7SF}SRP#5fLy#Zmcu+b zcg;UBBRU46?nahMy)(`l->N5Ln9Z_EMi$f=-)Ff}mGbO;|7yg+S<_&-*7GpuaIiG@ z+V0!ed{G`fzMk~bP@8%Xc+)Z~UcwLS(uXi76&{H$kN&R|<0OJSimHy5PWDzYFg_2) z0#;xvhS*$=p*xbeC#F$=gDszkSUDbD_@$p`|9PyLX54>#|D^4--8$FZ%4C(dr3E}i z9p-PL?E5L&jE;m>#C;8K#VzQO>oNP{e($jv2FnzmbC3)bmkvm5hrWT~TDE~o!J@;b z$0TfdMPT(KWNyXNHKIj!-wo5q=Vgex^Dj8bMEtBRd7tRqAb~|PKrby^QfgS^swF*Y z==t)zvX=|ajRmI_2_0+ey}H9Zgu!~6lxE)fBx@LjjU>j z&|+uu!cu)cyI)yz;iGeFOqb^c>xCc}Z;5#S%QBT-0%3;(zOR|`Y1c>5#bS{FZk;$5 z9cJ=sxhdFLOA1>W@2pRaTJbe#kYQU49NpZwb5*Q4Gc7n5fZlj@Rg|4QW7G$j3^Iuu9#m0{(T!HuI<~^5E-pah%;@goX^=7awSVZ;eqFZlQg(WG2 zCa|b1T7DA8rjiE!Y75GiB^!Obr4!R_aGe1V6C*`(>#-aGW#w36UT(}wayQ{5_1z2a zF#+#-kR^R2n0l1lN7noMdtaYc5OVZ5!Zi*86-uV}TU)cj z(C`^cX|HE{RjA-0V+e_q1>$jt>?#6DNp_WhIZf_&`mC(aYjl-}2~438Vh;<45``0> zmIvEx87O4k+lZcMQcoxjH}*F~M_*r`GgEl#*mq~B?&0B~s{NX)^X{m6v$VG5<8JaK zGPIz&7KLOeE~_8~JDZ=fD+cL|V-OXg8bDNvii$v|()5KdeOQ^%B#NK$`gmn-`4Lvi z{Bt-1f|+O`Ufkh57{mDuzC+%B^Qgp`dvFx??c2ek9vu-(xD1yROhlySs^{cy5Sa?N zetawbb52`{i%ep|4dsor`(;HO-p^syBBwwT+u=J`eT>-U6man{SdTWnr#YIZ&ujiR zoP<{LO`Ts4Nnc7emiXeEkn?)kD0^Fu9p8OZ*TULg7$_#_F&s8>sHZ#>dsSBc@~AV^ z_3OQvZ%uIOulczm^_=14Bzyc#sN}Ze2DZ6AOBJo-r<}1Y&FXP=H>e{bBM?!T*VC>w zvwHsP+agvtz$F#(5in0hRu}y-b;$h%Z<1L*8@=Jp|{?WRzb-PDo|M;lj$~U?XZ0;s>aAJ1R zhlg;TdIqOvX5Q1|QCKihOGxz7TCDpZkKFiM#C*h1xa+{|$m6lwtw1Cp`3#Vxa8PGj zhiG{iHC@MKsaB9)PH$b~6p;s*O0$8m&{rzs4|zwc`P@9cV$ zG#aXLz=i?B*Uy3Cwy8a`Nkq_rhL_=qcuS6S!oHpnGNr|2jso9-~A*P+TJz<=EiqJ>A-ys zlBgRSPMk7Dd>!Z0kP!!*Sz|d6VZabx9G-&0EEG~esWX8DJM!i{&Ouvi&j0pXyvS*U zZ@%C8XEwhx#haCfwqi~v5PDYIPxi3>g!yl!4P4q_#AV`I-CzX)k%4KJJ1dXi@PzxJ z$^7PFzF*XJkR}jlBY!w=aG00-4WPu|pkoD{P7rjUl;LInQRVDI4GXbE>35mhS8{Mz zK@z*&04J~T)gKLzc@iKXGZ+4fSoEq~HNx_5O0sG#v#cGC#0Q7^SqbER7vbuH2Hrk^ z7OO2Sl~xb{kEy0j2tWld)LDN~FZUC5TDmUz!OcFy$i~)WUr|}f;&q-x6Ae=Uu;rzt zmO!4mi8VS^NS)M$9Qflb>8qR+)ufW6Js=+dV~>GLhffay8QJp?pW}IHYKGt_Lj}P_ z{Ra9VJNz0OL2;-ve-W=Job+OBSS3ev@Y$=q&f6WfeBbSNbSFk?@19nr-kX&GC$4~j z%cl-vg;*I1ZV{t4F{9`Fm3Fb`=bJq?y+2E0x1Uu59GR1YK{vtobgMBgu_jhyT>;6^ z3S$-vF<_7k5&uLvJZRVE%U=0PN5aX=DmHsahsU|k7hmkTjb;D&F>p0t`d?`s{)pa4 zDFVQ?(sB+lC7d5Q6Y$K;rKP8ajSFw31l~_wy<9g0KFp53EUYHmuH}_y=X$TLJsq8@ z{hVNuY?Uf@MYElv>}RaYQCCf6Tu~Ena4h*SHp|jU=3tn8;zT-MYquDcY`2@Qi4#rm zCmcON3w-dsElz6QIsC=zuFmip2dUKv)y}~b5G-^8#+~FnJrW1Rod1uevkZ&!jkf;K zC?G>gN_TfRNFxX;DUEbXcS=il3WL(p-8gh3UDDD>_j~`}bI$XL55&ba&mDX3wSFs! zmQL!%w4l7D{%F1(OL)4WnbHu05vOR)GiggMOYHp8+i~;Ea)eq$$~1RbKnPk{-4F|P8n%d zOdWY`D4DOmdwi_+eF_jM!RrTtu3@mcmKJYbp$sxrtQXksSC^j>n2gZ-<9JZ}8=-H0 zd~24T`@o3rOvZp40kAi7^{-;&*oK~iXiY~!+=vk1`g8U%bTJmHe+A7CSFrgNLY9h# zAVVbZ$4H*2iW_dbD2M)Sp2`f!tmRBc17l|h4J_>)7F&!ihq3*4WsZ3V6&Uev`+sW* z@bmgS>_4qkJ6xH5tVIV~L(L%!4*Hed@?8Sdx#(Io+4)an8hCXr@;%jHB z&l)8MrgHBTl%5+~9X<)&#e@s)1SU@-vqdNU`#8%d=QIkV3y(hb4p%U9ZW;#NJlT0-5q!M56z5h!C?L_ ze^3A~w7tEevQi>-sHuW9N-lU=u;RglmF&6RB(U2kf1i@K@2@{p=4d-l?PzrwO8Kw- z9!{671M-a;w(IS>1XrWzpE*|k$Rs=VrThmP8}D_1=_FAJ2HpWJN%};cmdkXYIvdIm zu9jhUjzMR3RNxK>Lyv%BQXwda=o-9ak8oK;;4EySk~Y%NPIS1&p4C6w5b>J?t&yes zZYLHudL`>n-tK(!K6b&Uwo+iw@zxc-T)uCkFuPa3ISAcS-s#&TIhZU7`l5?bpw2>r zj6^M|8qIh;Acc1mnlu_S58=X)kt*`ddx1=exT-!gOA?^>vca|oWEY~w`y3J!8YOTY zdbhQ)1_Gj-Os-K}!{Jwt zuT4wKqJaYT)o-<2Lmms`*XCP4Gpj=B1or0-Z@snNRT5Fn094=3f))|MUVDoD}mmogPz=VhxH5 zG57m>dk&Ela$<#Emhf7twJZ#(AeVbrf)$QC?+hQruItqR&gWT}0dLz=x{d2Glam&= z2<)vHv&o7pT;F=G5sVuLb-dEu0bW#n_Ak4vY!$CJ^tDT!u zORYF@!Fbg@IEbI(aDu4d0g%;@58*SybH6tX!orq@i5l&#T-Qg|=Lk*-L%O(18}a^k z484BwO?3OTVcFt4sQ06SXM~fLRMRJGP1P1LI9kU+5Yp@Se8eL}4Bcz>_doxg{MgnA z=NO9eGUY9nX|s;+WZ6_UeT!^fyE;E{2@dl4dT(!#SDN~G3f~$^eIlU914o;o>sE5Z z6R=O_`qwv?e5)S4SqazA9O0i{)YN`_N;~z$_@mOwwM6!*BQhAWO_k(u>x(i z(*~SQIfdXkISv=Ru1E%s!Jr{%{|gs0&FTANZ~~i5&c0p>;MHFo0g3r+N7ETd9Z2J` z7>&)KDd(+x$k;ZWyt^o~vi!R$=JEQBp*%Y0`X<#Vt zF2656KKP>>V}z8o;2T8K^h4U+B%-mR=|GSMqO0IbdK&pjnHoI02&!ENtDDF2)x~z3 zCvAF+h!Q3sAxaZjWoKILu+ife`hcqba+|+dJP&~zlb4h2Fspmz4{vIt#XkE_2$`Vo z@AJL%neIg9%-I(eh7E^$PY*F)^-m+3OXw&219{A*iueQBYD}3#Y%_!olK7O~KG_Z{_v3)D(qG<&3V~R8)c+{PH=Pz(zd!^)qHhp&CNxW^jRX;R|2U zM?(dpq*_+wak)TlxChJ_?Oxi?%yG8J6*ww8^_yE+-8Qgh4Zy6P!(BdpXp7%r1=&bj z5tD7vy$(4p%c?w$i*?PB8^iWIqD4-bsi{^7*#Bh|R%%xi~meb7lwF7!%wz0E*@E-B&L`to{D3h0B*(0B#H1+>0+DB#MS>MazIBldNY44?u4(T%_(_D$rt)nz33E9NC8 zu%UTcWI25T0sty3WN8JCcI%&J=8i~1@ho^WFoRX6JjIM9v#J6lfnrK-Oeg|QTsRJ8 zo-9^LWrzFK(Z^TWuRyooYISvHa)Fy$l$EvV^Xa;2tPp+tkH(Ey5x1j-qvjg`FA8p$ zJ)gXdl(a!o2wWN=>Jb9@OotUM$E|=P{_S*kN8DS+X!T*`%D@q9Y%j2|F~4Ghun8j5 zAWqqGKKUGlcXHGdV7~`U?gGDGmb|xhmA)4s7Y{_Ct^z8Jf!l;R1|b>VkMZuOoE~QR>vShcH9M#DnKxDGnvF((++t@yFjZ(F zpXFqRAPyorYWqMerpLgFprm=y7rJ=vFsEqY=t?kb~)-#l1e5?0wrsnZ?Pb9i{w#h zyYJAo3vdRm1@K#>HfM19)3= z(D|fc$y?fyNz7*bD0)V{GuDlj=CiT!NQdbw27~4nsy40bngaT6H*~HS7hlN31u#}` zw>ugdj{Uus!&dl-E3K-te(czoHsWj8nAc{AHVtq7jX?8mka9?eUibF8Ti&i1TlwM< ze^cnha)y`{5?^EXQ+iQCVbNN%qiM6rs-JG}T5qKo%_O(zumz@P+p)f@fX+?6I@IZl z;*bEuOp+5KD@{8NS+JZO^r)b@2KH>j${>)74ZIK(P@2<8ZN)4oy%%d@DT)6FObSy_ z>90k*kefj%|F)05=!a#J*hFfsKS}9(-+fzu^M9(d*(i^>r%XJrF&*LSdb=uc>JLdX zCocfG2t0=4V7~1N_-8Cdj^WMa-Jn&JGE3vHz61BfF!j9qnl)K%C zr;_i{!>EWjA#&&`BRep2^Rt!cbeB<)<2JGEa)IT~nt+T;m#Xhv*a58frgnCRfx!Q8 zd5Pjeh>VhvgiAz^8=*kUokBuNOq{I}S_(|1Wh$bpt&b(870gT#+h-NOdf)OiIU>q# z1b+!<9nu&)^96Pb5~OsMPg{e@HsrTGKS%I_bei%dM%XV7J^y z8R=AKEKG9#C~#7?(CT>xc9anOQsCM^nmDVh`dt3w$4|SK%F0Uc&DXSv!QeMPXR4kr z+wn{>pRaGTocOkr>tJtZ$AuZ9rSQ&M++$|JHw z2@6)s6B>J|GM1-x0wKyn8G6HRm+@*gzv`w>l^{j??%naRpZjX8T}u()a7>uV-zpVf z*F*DEgJ!dV1clb#Gcj2F8E25wgAXl!^ZEmY@K$fl)A_KA;Uk>T+e_HcXS*t8vg?;i z>7ez#4_lYJ6hR}@n5vGFR%-$OEAKnF`RlUQ-@T|_^;e>IKG^aQY*scBW@VPa%px_6 z)RaNX;?PM-q;*uxc+VP>Ye)bU@fOM0jzU#jZHyxJ)eH9q_rpb@MsEzWFR2`Q|A3F~ zz?ZQ7n4rkF+*LRm@m=>bVtAu0?OHhQ1a3ExX*9K2m~u}cSD3PFl57IL3}~d9wtoVW zD5TD3`{GzeFX$9r@i)a7;$d;2!qMVdYfHXWvL%rYF|JCck!l3tT1rL?{)OEBP`#7GPNqcPZxg0sgeFO zS^X~(2qQBlJ#=)wm9dh=z=wwHhF+%NNAq+E4aRLiWKgr9(US|7h?4Ax1x!e0wOnvZ zq-Z_Vw>U_W_(2GW8--X1@d&bTdVA;%GU;<1EJQTkFDLsq*ALWG5Ihw}e516@=+k%1 zp0gZJ-(8Pm6SS|R3|k-X&&K@GxM6SxJ}OY_oCQ<(9Gg_0TDPx9vQ)NPAC|8^9c!(e z4<@r@7V#b~wbSH|VT>}Q-q+1^{`~gM1eC~&4GzmK?hf+uecxWo>!`D`v5A3W9T*{_ z7Xg6uc5DgoiMD~fW)Dy{#rDf;1b1?dQOy;N5JDBAyBf#$`BsY7Lp%=SW+@R-o@Ad7 zK2wEP)9%d7&F!xE-hsZ|pGUMKaEGvAPo>IB(5@{mW=bcEl*ss3yK@`7FNPx}C4 zy`e~>7+^}~d3G!j;Y8346+}ra*{7^c_Vt-``;uUiK6iyv?_^7 zN$!@g1V%Fj##|qa(754<^IOV`K?p98zF#B|h}82GN8g54QKw<9KJ66OzE=`rH=Bv8 zl0-94DBxZQurdOA4TtM6g8b@8QFKBN?Kw+)8r3k!05p(_H$*>a<~MN{M*EIUq)l1I7;zFcfQsa~AYY{~vz*o9jSoNVPv)1#C7hG9eA81C)x}NY%g^ldtJ*>S z+wmFUM;~JVd(o3eQ=!Eb@ZH!yZaew*IMG%0CvZ=;jZG3Kj|(yW#UF(jf4<9v@HR@2 z19!YZc6$2J+ZtFJ=;J%=PvH$?G5zV^WdHeo|&0?_p$bzl@%3wBu2c568CJkg&>ru zy*-;cu8<#f^kxX@NU`C6f>S+|+LX>G|ERrq9u_Qd%IS?uo7Eqhd(A-$8Hua6U%m&Y z+R;k;&Fy|=)7~I9fDT?g1#OlAA1UA)ZKH{QzR0*cJ`^0k`NJZioAU$PRu4iPC)5fN z(VoPmx?UjEzmBABK-j7!K4WjWmuc|3+MoUC-xHfH(&4xf19FeQv^N9SN>Q_ynaAgy zijSpZAF=S*<=a2h+X?XUo?l&k1z6A6SX4Jv@PKN-`(Lqy-Ab$H%|BD)EY4ndAEpZV zVBQirM|1Eg)Y3E>fyu6X;L4Z1(Ntbd=%)6LqVX7bOWQz#?F+VV$r=KyJ}wp(vt{Wu zl{a6;dN<5<6X{T7!hZO!Vuxn=P;szL%+H^;>2-XM5kFqu@i_r|APcQtVq3U6?b77J ze+Os4BcJDtEDa75kl=uBL8gd1JETn4^)hTbX3^bV4W>a5VJ*5&mcAJmbL_H;79^do zUWj-vG_EUgJ}!eTe*TjpQjR2ZvO;aRfmI}TOlO#=Ac;Gg>+gQJIoHOOt2=!IUvMT0 zEk;#yyK!Mht`!fVQ4w2m=CDxEb2Aq9=#fIcb$VENXVLTbjX#)Ahr0emAJ_b}w6ra; z%_wSAXi;KPiir(4Wm$(tac%`wbuz4>qcVO;V*OEp!wK2qa~y6dVinB)(3fZ>gwIUC zlREoBm2LT-ikA1?O1SaW!uRdE*IF9(`k}!vlY3|OiFFjQzAO%bsDZB z4`e1jP*EFw5k1Z;7emz~K(LZUfon^?l&;>F?7JjPMALN{kjf$V9BZ=hc?{d%8O;RV z!pFfW@ts!M4~ThuaoEr(c#Wr;cRK|BjOg1R4H`{K-Ui9Ip>U>6R9bF$92Ylcc;GX^ zAHBp}$jH2jhmvW9atM$OUYve3h^}{cO4c*N*XBJ*`sBRSFT`^^p@G>`Z3* z2=H%J)eFrNzBKNS|Bf8|_A?z&zPlW+wB70IVFG#{A2l%qHJ~3782DC>(`Z4G8R>7C zsR-a%`wZ-tu41_!f5~YvFz1o^>c6-2x50-a>6LPkoSd{Pdz5S~)$2V~gIyX3vJ5IT zNh1jITvz$?#|FWP|5fJ=Xn^%^?T#ZO1JK!k+1c6U<>kH)NWQ)gpv~K)KYHb3 ziVm&QfD@T^5+O=5(Iuwrdv{l{knY)(*nn~37R>yQWf}KdoEP#m6S!T1oMxQ?2uk+P z6fq~_sF6tig(5oA6XVLrMFZLi4rF z34!7%(L=)_lu-2f5LTlE*4MFk{OzejTV#DeR?cs$-Qltmg*)QC;xYgxYJrm2=Wpab zeq26mc-oC*sqi>I?aTGJ&o7=T%J$JUrBbWdc}8raPh<{xh7%5ds0c-m_Ti(JUt9R8 z&FgnL&q91NCf;&sA@SrXhGs^HLObnlv&Rzho~Fg+(- z)g*Gfr(z_lMTI3z`f0iEfEnU!x%a0Hc+4T%rFYK0pqq@$a`E?Ex5vHTpwQXL_O@rw zb&~!-i~DvE3`oG)Pw*UNs5&;IfG=k}glN-_DuL@0ARnrUo`xK116{=EYk%*F!Z$}C z02~_BQUR11*3p3xDu|=NnWf{#`m)Eb-u-w5$grY*#omsjuz$SGK3-}Cl+l<>etS^R zfoqe75)7aEww(gswlb{?4bo3UVj7K_q^&ipp8mt@d_rDqj3ohPU|)a#aD0paUpL>f z)ImY&RmY1w&9;SL;*gk*Ll8NLU|1yd=_r)60J8S#t0*nSb?4o2>)Fm>b~!13x&JC% zYU(di$krOfF^$WAG<}40_Q1wJzqP)kuuxbwi0ci+6Nc$X&-NOkLQTmNfFCD|6YW-G zr3l5AncJ3RHX20n$228*J);>N<=EJp@TXR4ovh0d5yR+bLxbrmJJDXTK7ZvWIZx(n zGtYDir7JoSmm8mNCEVm+zmR>ep#5X*Z_7yRl%>up8?7&a@$wpFT`t6&i1>_3Pu((N zQhUDkuglB6Vaul@BqVQsyN`=xnKL{tqf3Js@JVgf@1AfrN8?OI3nnu69{)p>aw+u1 zH{m}1X0*RoU5&2lD`vz#<+Xehy>zE&TQ8t^P;ks>{k>rZWZvI%z4j`Pye)0b8ugp{ z$xw}=KPmLzv}x< zfdg5fj*+CaY7C}%Lcx#Up#Q}5Cc^)M(cpR1|5W(vs=XL&FoqFQ&(a1BGo?19{G`F1 zGbAJ=5UVo}EZQKfxZH3xi(?Z367maHYin`T`m5&CXb!)foU3aaH0AgXG8{cCm=X9) z#q3X>@#UW_T+@vseE4|bf|-Vyvw|4kK++^85wTHkI2CT(3u`_kNPkddX#AgO3~r^w zbuwasoYb3#WB;q`0_?3sn%w*8zK+Mb%Jzt^qhp^ezgw%T)w|3gj;HZ@!kH)di;wO- zgf5=BG|ZEo{nceY;>R`|W}zzMtFSc)7bh(d8X`QMntMUi3hlAIZ^o_4yZ&-=$b)#+z*G-~b$LAaowy z(BXR4zuTYa@8h*yHZMoYUm*(*c*U1*@~g8mhwJ6Ni$=OmFR3IDjDf6TG0rvVscFle zVbPkjW74sj{>EJ!gs`+}_51;Hl9ei7&5BZ#^`(l+&uD0jJ00G?O9(SE6BiqHAW4WX z-il;Lg>-waUNljk%LK(+AUmB{nSb0mx7xyPsC_VQ^dIW^I>SMn&TV19`jXUs8ErAA z6yTvSQ zw=NX8TKl+vhi$ui9C0Lt8Xh1n`9eJq`2_00wAllpi&(hnE5H6Mvt|8jD#RMTq`>`q zX5vCc3-B%*M5kgyx4!GgUlv;U*wfIgccT>r)=uyfq2XXzuaP^-gaq(IwUl&*6S}v< z7kKzn+b8eNcRR^srFb-jiGbLQ$px$Xr?Dmca> zWD&#nTW#_sH`}G~`Eejdsk(W9)dhTdUBBo3*ri5JF&nArY|@J3jo-6;8VF=1Kw zm&alueac9McDpy!oKv5U zmj^jWweXdeZrJYy#9;aFE?c0^HUt`&%A<5OSrPXmQJ+Ra!7Dr*if2$kCzvEpIZBYx z;8}rqa^I(}{L%Ny!l~?Ht}LYO7*k(^Mf@&(`G7I)!J%a{_ej{$b~RRc#z0+t&1$5( zNROFY%-yCEAA$B;%><<5ZO+w$zg`16sutT9E>gJriF?3#Tr`| zihSB7O35``e0;7~%kCf{%kc2{7!3kfNAEe?Y*odFP!e`?Vvd%p_rD0Gj*z8JR|)Ge zW`SDoAK=%&!VIyU;%8mtXERRA*>|>gHV&XKPX1RnEsm?C3V~!Wcgs+cA%rQYSgGpT zKxn5SBtQN=mkI0S-Ie4lR7gNnB_XynQPO-3HGUT_yUje3i~dDAYY2)c4WFZCz@{C6 zO8p)DNuZ!w*q7sfNqm?rVBdaFlxZK?x6y%Pr)6m94>UPGYwo~4AB+u1bva-bk#I(- zWTs*n3c-{dVUbq~mP0I0nn{-Fszt@}`4ve(3)+={0((Ct@i3IR^7-($mZ57(c8>pJ znEzd>|0~c6vbQc7&Jr6l&7uMM^sUJAL>O3GJxuDd%I0 z+tza-NzO*gW6P(d7=P!7i&>zRM3QuHs5GXe2JH1kH}+JF(4d-{^oW5|_R9U}Q4LNC zj$c9+(M|SE>WudXI}$9yzicYnZ@&Vv>o3=5n#K60!%kT$^aV*{n0PqJGhxOG#jHar z^odz#8+~8F6)^RA%6gUq@MDs$Uc*&$@4E5SM4fpbP_J7zX-Kj`ZP~O!D!`(l!%BIX+oA7LD~`?fN^M39)P1jDM_hb zs0f98!^jKZ>cWv^MuZuyyxEy<(sw!A($ZhKYHQEQkqLg7YW6dCP;=U;DDcL9l|{6p zJGj%Zia-Lf4hW^jiirAdxjB_FGs!EFA9qaC4=_%KO5Vf4_H@lVtja%GbOK+P*JKmCz!dI^!8 zoKz%V!%Y8RkqQiNTF4d2Q`f~8)rUEJFuzMYPQ4JNiaB= z_Pb3Jdsc_8E{-@-7gJx7>ZYDJIzQshKvc%eJ=rz7#zN)da%AQ3XlU@{vDL1wlKZ|) z47k+`JT5;yW|o4FCOO69Zp<? z7KP~Y6Zk&p)T&2mbULx8jyb*RbMkvuj1!O^D9KCmOKF;ks@3bSN%Hx6D2Y$(Ms!R} z@j)46dBwmr<+gIH*;+wAnfZOmyW)SOulY3gE|73QQ4h2_;K4e-q7e1CuIkGbob;Y{ z)t7|yynx%7R%xrMeiS5`|NM)f%90w2P8>$(dzkd9=O^>tXzS}FM8q}3wP|K$i_>^v z?bfxx6%(aUBIr`cBPoub(7(lH@5u})s zm0*xgr#Bf2{QSIeA7~0>+K+Wpu#hDQe7&hW?2RjY?O_ua#YOdgQ$<7d4*u&vx&RUb z4t94T0igAHyPfG!A9B&>e?RXb8iB#(`FR}~X*z=u|M`JLV{ROKqft*OxxeG{E~D|< zVHNs~TXFd?kPy_v*;?Hr^!4?(zr_(?oPvU7J^v5pZMY;MCieHXqN~ih@`B`K{fN-e z!RW6Do{R#4tQm6L=8$i<^`;}s3U|!)}A>y`( zpTkX!#4BRbG&WU4N?E;_q7?KE4M)c9NWb~)?BN}_T+vkD6}f)1&sMb&;}-LFb0E0G zd6_F{Pd&6T^8mgU8RqX=2&YvZ_L{JG0Dt4!k}PLHKp-k2iljm~t|VzuvHq6TSA>9! zeN-Y#$a2)?kvA3?+%fVUWfOkwgv%iH5k+l@LO3grJVHSlR;tx!s4u2d`O(s*Bz71QQ@1)z*RrT#|YP9U9c9-*g} zw7{vS7Aa7Y5*jX7Fkog!300uQO)*D7lv=D;o#MsH%#_PN;OyZIRaCmmC`8Ql3D(m{ z+_^<0c4Ws4&PPz8K`Q5?LcpO;jePk*CE_Rd#%ttp5+a;ox^m97_T&AgPLHrNo8GXW zwKI8J13mbn7dQ~9F|^osWMP7o$wPEg_*L4pxkH!dWCzFlR#tX5gN8m^S{YksC3s)^ zIv&a$+{<;r%jChHSzL;t*BS3Ld-_Ho=r=9#MwUx?ATQ-cP>sg?$13Z#O3#7!XxN7j zpsjFRq?(#VSD4q*LJIAppCtHBZ>E9=jJzAM8WGx}uRf>JuUUNP0aBMg&M`$tREDoB?||4{YN8^5v<`7TUpu(om`@ zAa_dIltnkWe)6Ih6Bp-?Cnpi~J30B&1G3fsitKrqPw{4wkm@b!YLy?gZ>4mUg(!|- zbr91~!+ykZ+_Xz?7QaKH78%kN-_cL}kcYy9|3jmgH#yzwcHWSekI(OXqoc$6cZufX zeFba?n_N_#IXN61r7|h2Ou;V<8m|z-#V;my=xIS}hK3mE-n#Ls#qG%RU!N*J_f+Yrc=^$&fsa$Y%(h0JKG&gKPv4)DC>wd(oOL0G;~+DmK;aA^j{E zfeNYE7Xq7WH5Ia&)J5Pz4LXfHV)j+k)ziSuk%EEYDPaDN4u1;hsS2F|2tu6K9Gr8@8TE(oV*XMm7l>`QK1 zkSOg&*98m6cbPs|YH}$P;2Cj75|QshJwXs8J0{n4Us-sk)u!c)NEOVp-4y$weNF05 z9X>+9q zNsI+t2QhL|yf1ti#Dt}x^3r9apzrd4l}rM4zBu65Y*xqK;?wmA)=ut|ZVq#F)zQ&W zL&rtTmHp}=;U~LAxnPzUaRmPeNpe})Af?K>wLGk3=V})rQ;X|$=@WcJrwo@*)BQx8 zsAP)P#bUFkp+9N(-0XZSItbB`H~ttoI(@w=?cv0fMJ|484R4YT3$JBVE}hiD$vgJ8 zI6fNfKRH3?96kJr6U+F?(g?kCJ24d@%`e?t-|9^c)pP)f6b~*W8sAD58dSJRtHX4x zQkefPTsCN#rKPlO-QQDi2aNKk4jWd*d3oQ7k^Fa; zU_gxHNXW13>H73hFP4*~%>d0+A4rVI=tOv*=VcPGeFe6l<#J zMwa9o%GF%t4<{3HC%8v(ljr16RNiD1Px{Mt=L9DLB2+>$QH^?Yr>2h1r0~8D^uOKlZ~Ak)572TiixRekZk8-Npk+0Je_{()0UL%eB6}e_LIx}-wWu@;6 zpEXkBOG-jA1g+lq5qW;17h9M`@+00$s4EV0{uIP3KOL_P^0Di_E_ojlb=vtI<^p_`%qwlA3{ zJr&B+d8SPAPU@E%S>}Sk3n8QrITXq>0%prN)0R#M?Tp?q$xf57u6`o5mOJd|S7N(J z(me_94`1y+Z<=?c{{6ixGvj6k+u!5(Qoh1-BRThGn4*sT@6Ui(tXC{5YRIgcsL8NI zTUGtjl!~s64H+3LxY0;+EPT6g@(ni*6XC~(Uiv;IF|;u3zNXZFf8X3vd<9A2?6hh&^n zax74;U-hm(RfPr)1Zv2i$B+b~rJ!CWdT4@BW(phr# zOo|yY2W08#0{903SP}ut6oPk0CT=%J9P51k?@=dZdqYn|$2Ktye(R1W>yeJ!yc|t` z@c|?G1E{WDmH(%@?jl-1Acdq8xBeR}{T7kYe7kK{U60#L8^Vd%1Ks``%o(w(2>lce z^?8ln-Q7BcSvBRmwo79);m$>(4fQGhyV{(!%DIHdi#%`tV5X+!<*O zMMIX=c)VY8Ix-v;;ue2e=1_Aqn;iF!9hlNs*~gZd7rK3Du>^xCES3nIJ)E_ueW&36V*K#A ze6Ge~7A#UB|C{$(4u`vzfUJAztCLv9mZH?~a1zVVAod<;nScKVw!+BYrCM&EYx_)` z46UYkiSu^ux;X{&SbR0nQINgZuf8Uw=(>#ZDI#Wby!`iTX?Xfv+so(bKTZE3IT1-# z_JDAOa-NNKf{n0N4hR$jaDcy{l-Ne0+V1@!{1RysT@;GGbrzbDK{EBz2NrvAVOZxX zzIh}&he4z9oR^z+(!A1k0p5SzFLt#oCM|7PYfQXBgOECSipeO4~qc)=Ptfe zcu_(@BUPMCg}U@tvv#t{pCwFYcNNaG*e31jmgw?l^FhX;wloPt=4k|6G)`uh~A5F2K=>!YI-s<-eucx9wu3wi-X&UMLkmjv#>n&$;Ph4jHMk z3~}eS(c=6=(_zou;!LtIyKRM)jQvZgkp*gNQ#$NaYYEEAwXEFVe+PA0Ah< zKf4~UC59HarDwNzM?E%U^yI5gZs=x;Yj1KNX+m&_U-I4PI)zYfq)<=mX1+XY#RUv^ z``Q1~0<3bzDJU|f8;(*e`}$nDg#P*CNIBQu?7N?=<@0zZ0N(!AOABQemox7b*PaIn z-z4syu7xxjlqv`cb?muqta`EiSHUZak-v|&6HS5PBti%x#eTigpQrD6q$#Q2;3{&B zhf^v-xFPs{ikzc%M=XlNu?_5*a}Q(zA2u7@KevAB>#DbNcBY~tqYFg%7B{)Iq@jyr z1y^_c^Xx72NQyE{tNEeL8ykW_R2PFEnT)`PgiKe93PFC;$^3HbOg@f7xY^b~Izuxa z$|^lR{CikHDuW~d6I+nbt&1Vhl36YGa_EmKWgAOn>m^^QsrJ_F5OBr;V7vN9=^q*} zP%XUodnW$ySFPjIU5T91gV#-epLoL9w!EDDSH~w-g-|wv6OBi}!G*)x|WeeRqzmh>-@vLJ6bUFFRi zHLMpo+6#u&g)}eKHl2ZB+W)b6KSP1W^cGY6oI&@Vbr{A~uHWPg9DY~JR}_Fj(BmQM zH^kO(F#llUepQ0)d(snToD^xk$h*zY=Z=UAp^||;wD_GT#!tj&Iy|mp2`rtI+Q)l{ zl1IqBILHNmmanRDCd1{ZxdPg)RiZ)VWMZX+S(fGXl<>8e!2&Tz7wJWP=MQs z>?=(oTsP|r6sf637F zsgNG%Mll3=`p-}j*Qqxv@n}%j`^!o=qi1<(w+OYK|J(d*CGEvc7R_TAC>v#SD6&ax zFaGl|!t}xWm3sc|MJDydkdi3kgd}&|kB`+pCYy7^lE;7YS3v7@C0N4uz_;UKw0?B@ zT@|(>G3pTEC$YGCrtT3R9p<^Je609%ekO56S_bos`RMt;Fb~R!iAi54RWEMn3kr4% z>6L>7NssbGEKhrdT}SyEA)%iQ4t<)TOX_wX-G9_&;xj}<62(crb*94TMv@GoWWuQZ zl`cy?ZJALo9hXOUi>@@cIYg~M@Xp%J>_^9yrQ6TdOcICkn2xPr5UE|#wg-^9TgThU^==W;b zvRpEy9apcO#f>CuTP&@?)>+Z^M7(xaT8>3$ysrx=?#3C!Pa{^x^P7vui)oac&n}%@K?(Kj6i^I=p_0gB&W?UY` zQFOgI`wpy$K-w!lC9MKK5zS;0-J zBq<#a=BlLg9V@2vY=K^C3YH0C*7sIBu8t{g`j7iePNnlZ(>;%L-=RlymGeO?%MrA_ z?-JB0&+pGfV#$Q6eQy3)V>boN+|KAZsH&-$R#T-|*LOReD+Y}5St5?c<8zwP5-WA# zBTykIj@C-j!6wBm4LN6_k+phmgXt>UC;2kKH*w!^?B{S5*zQ;cb5TS??X_%o;1?5) z7uU$u7ZCQ#b2u?b_PcFH_qI`1Mk+wYn18Nn*Q7e}tlWL{WzJa3qPv)YYTz}WA_A%= zYY=rfEIwb1T4WOE%fe5pv;t%(&6HfZ*koZ>8rx(Uwt6Dxw+UOOF&vX3F%gee_a~m` zpM*Ia^!%I}c$adP(H2Y&{hc;)+y1i6!g0BVssjRCE-&|2e!Fb;#~5ClsHv$H*0bvv zN~EVdIp1_Kyoe>+wG*p!dnkf+DZEl&x*&PpR3x2`+WJGW$S7cqSrb@rcZ^Y>&dO`kX7gh#Di6WZXF zPY-wC8&w|R{E?|8JmK<6zk#SU<}1SyLIcSUH|%JkyzWoQ!_kE#uS;}dv4gu3zrPND zjQmkv&ZmkO`8-+f1tc#JA|*v3-BtAR*CX)i8$grYyQc*8BlvPuG6}Ac)e`n zI`Cg3;D3((l6Z{{xAwapk>C`z2;>db7&cO2;TB;LkZoZrGAx7^ri*|>xl?3(qkE%q zQz0h{$Bf-=(y;j@B!HR7MQ{EqObHJmFXO93@i4(C<(nMb_+W+(XE_TdYU(gZr&_o< zufs(7jz zB`&r{dCX)B<>bQtvqLu2)%o5G`Ja;1hC{!#=OaMm!lq2{FNV=U8?bSeQ+cwFW=BKlGwR^9sN-NV@8Mik~Us@<0OP zSU7oga#mYh7#a-@Gk$;IEkUt_6(T`Ucifnhb!$Gknz~H&?@k*veZD&_uCg@qq#nn` z2uV(TM`S@gstT|D7eJ&*a<5?Yjn44sGPQR4+4qVjhuc$c`QxR;{p^0bkIAjH?<+0j z`GO^>J$>L_C%@vQpMPj$s=XX^8_U9nq97hVL(Qt~QGbR>3BNqbKJahH6rE{4RV{yI z!vy8vlKJ-M#uBY3-n{E1;nIGA+w;EvPannI?W)g^W|MhoBBB28rCMf^pB{7Dn)5o< z0V<)WxXy%hoG?ijsVw7xfnZjr#pwEliI=o|oNl5TtnvH&2)vBH6vC|cX9QTAe6AhG zI(xei_zk@M+FiFIwX1cIgDMitnFC??ij?qL{DpNTN}Yc6^yv)z8xr3sld$|Y>CsQJ zTiq3gwwWG&43+?iD*o@$-REJZ@|Q`~lS))(QIq|0^Sh6SvPEf`>CXjF5hmV?KgS@Z zM2Aq9nO#>k@o`KO5aT&f*%EH|lx$P~IPcb-iwG#e6X?CERf&yek&F!qO4etv)IHt4 zyzjRZ79%gU;cgsB8z53*653Jvt4`U8gb?auV#1v}*3taNT&CzTUlzS`jPS{hBQC2rPG?@bF^G0LnjAaqqgr!RJ}|D0tRf%1$b1* zjuk$K%_}Up{H0*gZt)e6u)c>4&MUw)9OhbY1{nOf`1Iz0B>ye}hKVU?cOoepm71j{ zkRiN$d6uO0vZ&YMe(;-GHP2|L+UkXn|M1c~vNYP5=**>Q$@a>^6wJ@#+-}ESf56#1 z>ApFRvQz%pz2o3h+?YNq0jdP;`dT2A6jN^gP$t3w$COc`KtLdlm)n$m9*@LGnMN2D zr+^f6EYfX+T!^5%C{o#WY3Kg9i`MWsB0zq3vtf8=Xy`pvH=EPm!e=vcuu#*|;cxUS z(mu9dXjWHiZ)U!J83e&iPba+YG;Gq2B1KVFP_ z5mh-D*;#usGYL~JnAp`8c3-q>@ZDlDEWV7x0Q1;o&)H=owBS=SW}PVN-MdH{M9$(s z93&Lc|7}X%R1jq+VS8TiZ_7^76X7{OWscswUAPl0EwKcBX>GL4mKH zZk*cXx;2?(Xgm!8Ler2nh~_1ot3?6WrmffA4nhIlR;})oQIVXCJ+P-GWGZ zUaz>#`tS3K^6p4u7ltr@b2sJkl4%O&ati;f(b~%#Uh!;1y)yL}?jkNo2}UZV8VxNd zR$c`f&5N)D<0vak5jLfWaT++~I;Q~jWa#qJQPXnu@mgaf*tm-Dd^zh1jQu2*!wQ?y z%N#bdwlcf6;)RzzSF*!@Mr$5h?f`!(-QQL*6!9eW_{pa{qt;-)w`3lJn@+ey zg<>&A03&FEN}Y|A&P#u=$=ZMQabMvbmGFlH|L@($1m6(8_{+IUX;Em8PbN!)P2j{( zh*LZ*Bxr8GlarB|;@&5G5JpkF_;B9$T77gR{lA;||HS*y z{}J!o`%d4Xv0}%!x3+!6K}O%|BBO+1tCFUN6`kUxq~~Lz1hMUgMERAqYQoTeSDqTW z1H>V-T2*@VVEkyp3dz+xVj6dv?29t`3mZ}Ou-GwD8=mA&od+pjLz~4ZD7p7RK%YL( z`SaE5?p&eI;Qr)1egj3={a>i?rm)v@!4tXPW3~f;S+H66&dp1?9usm2lQ_Lpol=dv z@DoavoyS(8$?UssqW3uSGV$};5+i>+V29WPe*2r7n-JGSZ@iEH(lSm@PW)V++Oo5= z!wCR$J_!j)MY-kd;r0E!mzvtK+?yZQIj6*@Tt!BK#RwBG$7Rl4cZEbJUd+P+2i? zG2el})J{zj6qfVzdeLDu)HZQNUkVVE*h#38znc(}Fn51{tB>S?OO#<1-1%hntT|}c zy3X}411@y@Z)4iW5JFn^eB^sG6W;C;OTX+qE?G?0Oo`)C2$`?-eYQ;2nxI)jf|0IK z;o|St+P9P9Lss$(eL_d=g)JgkTW;%&0gfIpn@JL_jg<2sgQd<}FPe0X<;~vd2PiB5 z8K_g&7R~{=kR&WcB(|u-PmD41xgT}4NcljJg?)QU|A4Dh*DP9hE+T7ZABh*tHn=59 z%b2ce0YP4hAc|tak#SXq(`8F5yj4_AKqT)`)#gm0sEmsNpru)|V zFE?3#E}JN_WR;{VqmRB53dI(4w1z?PpB9h##>I=W_Ykf_xxUjQ_=0%*b3|Fd(w$lF z@yxU5Y6r+HiJD#oMgS46!oKb9Nb*&~ELo`|Jvgb<;-4MnHn5_*>N9Xeni(!Zge-ZU zANz5*xrXRHV!fDToQh*{Lb_yKm_%G9aOD@?v5oD?{`O-a#LJkLg%KOd`eUqJZbFDM zbJcCn^>lJD8yf9tzAgIw1! z(p%)_{n01AuKE3!&2I#gutxu|_dK^;=k)qN$4e(kyVm7T8j0RQ}T@jM{V^sbkx zM^MBVUS0`%3wf%NIgb^5R9298wcea?x^-eCFz)d=QPpOUe`sixWTC+*aO`YlWz}yJpaLcAz@37id8J@b z87@=+7X^rlf8bpK1P0ezV>*zvwe^qv9J_$m12Z6a0D$SoGb86`epFqC>Z}w=X@x1sarx+Ivnry#xwm z%M4#u-D}2M33B9n|ihMo5Xa1zO-3UJpxCg8%>yiWWB&5OjHaxzh?Q!*@NHrd(XaOkBEv z+o6GZS6TYRl786J-msf4rwPWp{Ky957QzpZa|hyS(*#sKNg() z=p;c_R=0oQ*UHQp>H^0^%QNC!zN5A$j_8O#zP0QFiG(Q-Cn2do8VWLe(I_dmRZ(z4 zs?2+W@<$!JmZ!gtH4C)Is>}4cBN=VX7X}c|A8lD%u!L#)k*;D$8ymA80Juff=~znm zQH3s3YHPO({idpF!s}3ayI)?(WU`|?=Uu9QWv*5ES7(I*-v4elF?P_(` zI2dVD`J)eda0L+#1mfH;)ro+&EMD?kB{d!SXti{3zcR!QEUixWL=RtBkbU9*W^ua& z{1D#@KC?$^+d1^$A@SyLJbg?g1F=jarKBRvq6CBRP(;gvSSc`m349V}hY3eZ>OAXg zSMU1uKW?=D?yZaO=B29^kux1vLZU$Ob_Ps1U^aX>n)KU!$(OjNoV0V~L0E7V=TXex z5%i%C!>m6j{^-();380!A#+TvDo`|ziGBw2mtm9V+3R1c3aM7er(Hj%&=pIH6iKL! z@a9Wtxv)q^MxJ#&DIVh1_uf|L3O!{5R8q~{CtRI#y*FrX#=|oCy7OY&Co;Xhvyz+@ zb0Iab!aW;)?1#npPqs0?n;ddID6F%GG_;JKcF13g0 zs{up%Vg=x^2t$!N%3!aI)Ob_P_;h;;nNWO>fx*Sy3VWdDkbAL5OeJ%u)3)7l2BcmY z@UP139UOZvT)EvnJwIV{I*y{l!HRR7d%A;jkQO^-xfV=X zMn_Sq$s$t%j{Jy9a~I9H2YSTMq!=(kQ15v*zXljzk8@tXAMar)`E>?GVUYWSQfWX6 z(x6{RB5K9TDD!_JiPbQ~$io=n zFwvGVNK zrGkqVd8mVE2%){ur(Q@D<>w(4Of^FoH)6`_HDrv_Qjsi|HXafb&N>5sf3-pDH<5F< zH>&I&M7CiJsjih3&DwwKJhtcE=LKb_ zpYXZ_*RAw(C+Z|o)tGn-SYF2N5 zEaJt^oeS=VU+KeG1P@_*$6PLc!Wa>nc@k9La#2g4*+D_J&--kSPVrUW!{`bcHRz$Zn{IL-h~b~XJ=b;Fk#|q=*NJ9f(T25 zc)!^NkWCCQX2P?Lqgj__VF|p2#L9hy608>T`29G4Jl=enU|&^=raso6t!h=Qm;>fq z@DNQFH<=nhyR;xeN3Z(OWtf$hCje!B4+l%aZTO?9>uIaFU^}_kVq9}Y)7bF0G3Tf{ zb)M7OtON-+{?&tNqqfa2Sx$+%)&<>s`T8XPlZ(Rhm6xA8iGmMLeQ(Jzj+f&qT3Vj> z|B_=8`U!z?H)HK)YFgdb*H=?h13t?CXDeFQ%7L~MPEgq~IV2wf%^CmqI-iieKHtEcX*JIF8D*b>GSo6G8(_cKcm|I6p7H}c>LD@> zPfo~eS@7~Y`*6>`hl-Jr6|sq^m`}N8gp}w-$rc4i5~A#vAjarl8h+lU)#aXEm7X3h zLB33TDC{^kPO}~T)7oZ}-UJPDrC_zg|iq%!RVm6@eI^GNL)qpvMOY|U}k1U z%TxBPu(-=t!qseW#NN`yo?1T@CEV^(sOQMnJNr&59-L=eX=lX7%9ccye;@hvb@Tl7 zD6}jLGr}ZDz4Tht-9V&vEo6U~fHrK~g_VQjglB48-e?u*3=9?%wB*35tDc@1}8R$qV1s8?U>5&gd=EkK*?^8lpT z2J$q7DIzRYiwgn~tYC!rT2qV3AQ;SKOh9l!Aqb4gp&x%Bl(j0!61ADQ zu(EOKW>z!qqfB7_L{fkD{Y;-M8YRp7eGV6o&p)6A)4Vwe-&V)6QJ)4@&1vWh{p_q& z96W3rlwb8xcJ#&9bJP9FvpM_XuJ5e}u#cGma!G5QQbkqOA${QM9@TK-hoyF3$k_*y zslF`A=FkCo=LHtDIgSs*$OxhJ$C@j4l%-KoJZ7?VL+G1YmAu#n&JP(g+sU8Eo|ZlP zd{+^L{=EW=ors~K4JyIZ)YNhtSvp`NON~EYZy7hgumIbCV&7)!Wwd-^k?Ht2^!EC+ zyu1uBm}EUDf~vL8aSk4Gl==ygOn%fK^H@;AVZp-!y6P`pZiR2^pO@QCeN|)rHD&R{3nSCkQ^vLGU8v< zUr#sJ`FJ@SO$NQS?0cU%?P85t4jv4v)Kz6E-{tiE`rHWy?_Y%jDRC7|g}D^j$FW6S zcGK7fEFKwktMu3eRKt$5YP@noKz}-{FI*GUqg|{uz^Rt8bxZ-*l4{l^CxJ?#^o!`> z*aOP7#vzcPq|$~g1cQ-xVnY;UiR8R4y97!vu-Z$tIxDT$jEYk^(uwIkjrteLOo3i# zG#H6!Ul}Vl=F%_su0@)%?4mQNSWQhBTgOSik8)fQIM~|8x5pNG2&tv$?u@reFi`t-n8iX1GWOh2uJ`d(#r+>e(&4*o? zZ_mjm-D)fF?AlpEtxzp6b+y-=NyULa`2qK=lo08u{YMWW?%o|83i6Q#nXtFpg@(SH zy07Trq79~Vu2amN)@J_I9>zZSrAoaO9IWipBOne6*nb_JB_LO1$W>!E@qWFysHByy zKb1c1Qsno0AtVvdNEpBfvcXJ7aKc+o<|!pM_Oq^i)0UI6`ttCzrR-0b5J-j&IFKdY zkgCf16x`8wVDq@@XAXmNqA;TrsRh6=wxY1~m`HGjhO@p;pNyZ$vK}9ng>N1{whMBu z^VafRaB$0JLD+;*V?UrPH8z^Zr5k9$p`|dHp`pD4eg3Fiop1QxrZ)0_H?@lr;9q!J z`mg_}5-0a#0o-V#S3C`@fXyRH!y3&I!>dxouzG%KvzHySA{PHu2Jak5mX0!O>wy3F zJH)$N(v`1lKAT^Aj`IOAIWBxQp!wk7fMOFk)E5$x1LFeDk^)C0J$)yfk^;6!QbFV- zEIVmdmp-9H6)W1SKf$s4fDP1UaQs^QdhQ41H+r1S#6PcTY*dkvt(XHavsETcS(1eE zsc?THOn@60Z5hy6qQBV6aLgb~f|Z+-lfi7%_H{FOd)ovsbAds##A#{i*|3;Yv)k4j zr16>&xvH|8cl2O6i@z|gv1co73J^~qt$Q=k3|aFz-VAs-4!kMMhN#E9@FolrqDBsK za&n4&ql(1%0F;2C0^KyV(g^AKKq_hUF#13B^f$pBQs~?5*FeDK{lxI8!$JqBX?z)e zjQ#!hXRBuPJ2CO`Ccu+vp#xNqp#~o6u%PYq00Iz>l06A2X~1r>lxBnB`ohAO($5=u zPA;;0KRKH)5f7gNB$xpu7>MB~3cj+_?KMM$dlO!PNFI=Q$H!urGl zY1%|aO`X4SK2G`{hJIiX*o&W3Ob$lMp|48=V~8SwKBlvwV-WML=m|eW2L1yqdB@3! zy`<4!>>h~%Ril&-~bT*(sTfSfRKX&(Qf zQ7^=y@xD{vBZmF3;~{%Oo03~~1mob_PLFb>9eRR7T!xgS2;28>$&a_|^Xzz)| z1k+H@cAkt+oB%{Bc0K_%c7FEM0_lo5bVkPW?$-!)vF07Q$x3i8NaUjsf>QmBM~uB! zC(Qg>7u{w<$FDzj>ZKj;WURFjj8M)uq>(kw7z?Y)e9pT4NJz(kBT%-3k zsng-Ix8DAC|E}+<_-o+RdHs^hU2brxj8k@ z*ZX09&vWyUue}d)$BT|gaIkUCbkUU7Wmqh!*_>#D?gm3ateUj@uQ!{$sRg8cw<~tN zx2+8xZh-9#T_qJjF!AME#?jUBH1Y1xhsla$oj;|sAW@2Q5L<-MRmJ=^r6%OxLGa%s z5dHTyypbEZ?5qLZusiLs<8v)6fI7BXjy3_5myfGW3?$zfNd!WPLf*m2!*)1zQ2v4& z2^SHi`1b`H8wqoN)C;ug)n=))U_EI&DF~_Pg6M1bp5MHv)OqM#QiR6eT;vxP4l8wa z=|l5Y+&$(EZ|d*%^yz*l!TYpkqG&K&l>DfF0vFTcqS?L53Q11x5WOy4) zM6d{0RaZtC&KgAZ`%5UKg$qW-XJQLf>oC*;F!TPitW+hF5-QA3($n&8DlW|b@g6}P ziIjS}!^m6mw6FE2aCbY99-fs@ET&q$$(zX)G-AVy;|?dAn*1dP+M}|CU-fJMCjW^GZ4|eKp{umJEnZyu5hVyX zZWcyiCW#@=tzwmM(AAJSbZgk&FCoUZ)pjK=~e%o zHyV^2Ap!#zRs@4IdMx05dA|W8xN(m0>b5cAM7yR;eJDpA$BHC3n{u_)KqS+8 zcL&^3RsxTz@~M1R?Q*Qtxj3Zka;{cb@{@Mc=n}4;y{enduK$cCPhoT=>2+G40cbnF zQ}?gEKx^hAwdc7#Fi!%;6}bIwNH&Q`4jRyYD+~xwpo2zW+?>L5RPPGiQc>#lrBgW> ze-=%+J908n8xL4;vou`xf3LN+kXxNrW-gUdds#1D(X65oDBxg4uWUs??>F*o2i!ww zV)r0jyAX;v80(l0p;>XL8BMNWCX@mMlJA!g4jryBbRIlszTa={>N`r_zt`O$EttBX zh^Q=uHDEiSS1I}BtsujoQSytv*=hTy^b(mu8N$=k{*+OYCnso_fac<5!>-s>X43be zPchvg|H9I6Ox5=YgA)dd#zP!}9H!3I<8W-*o@LPMH~O@Bw*e%Eg@dv3IPLJEENmQE z#6&Kr-h*yg7Bi?+`Q<3k3S8xM*KJ_wjiu*8X!aV#rWDzS5A6tMbhy1E`mrw)?^ z93Lv$%FOiMqWg<7ppQzMQIjl<^uES=Df(X+8HTCju z-XvriS->O8(&2dlFizA2lYc~F#Yq-AfQK2Na2h28>tF_*%g};?vq^}3=l&L_g2JR) zpO6)4SXH0+FXIo`-Hv8vRA%xv4=2r#j9;p$*EjD$1QRXdv?WRO<|vpgsw;?p@WDZe zTXv^d4@fy!#Nv`d>_Qo2#3WaUh+kw_&}-VEAk zY9d5FHyr3xqM7T4iVWTuOn!0NB2H;@OklxTd)+w&K-edI2uWYNoq}7|!21rdq09=g zHlw$Bd;(b{b*Skic|?xyQosD z@3YEjJB37O=DYOp2&XQ`KjRUPiA;H|sY#f~h%2j4$2=g7D5uCUki`sRkLsXxoLBAd z=S|$8qm%K>G&A~}s+Bh*%7ZM$YRh{~966TtMc~w`P~HzUR~4TDFQYwx=~YHnz_TDkz*ygci5n)h!4 z*c-LcMA#L?Qx&>FxX)rB=@Fm-q}S>VfcM=hx%iagiV?=byW0uXxqtHb)Kgx=l)03DS2 zDFOdV2gDLaOHZFDbz+8idtO`9W51WK*`kjF6mb?$lq#rvfA$tC_$s@;6PL67=WnqC z|7@nNT_{l=OwyF)(Ac=C?1NO|$<$S9>46ZhHMLIk1!4np<039Ok`C zFDW93iUNgnKgrYND^`TY1JCLX&$2uh;9{xN{!G|gL`>@EfDv6KA)%SQa z5ZqX8F&=kW-DoWQxeR7z z^Glir%I3BXn;9oc!%`%teL_{`?xwcl>Z7pcJ^BfE_CjhB$E!GUhl2Ayg%DG~Xkc*kJxZ3KXCp31JN^5$$OvbV5l}(PtJylNFW9uaN8qgFsc6eW+29oKyI?^uKuXmP zJ*pI!g3ZLM!2Bn}<7ZOE?!!sD^48W3&rOJ9_rrdd(DlHoV^1CMK41mV-3wd}x&Wdl z8s`&}?vD|GP?81p*0r0%El30ABETyG^mzbeBAnUTU#(H2Y0zQ2z7j7c7CN^&CZNP- zi8K(M1$`{Hu>GUzBaZu{mc9(u23H>I#c3)WGlH_EZR6sWANVI0hZFxR8x_6?XMWzS zsqeH^J#;_I<8zN;#gG5>ZN|%~nIFKF*R8gltv{_5iy`7OX!jG|_mbG>5r0_jw%GCP zeL9WBH@YVXya)!);7nwReLr8iEhe*ALxY-@Pt21?+}HcV1hAt4BeQS8;_9mJS!`HC zz>QI7Cm+TM|NYC`!&x40vz0=j27^!eXsGWU!3!7siwWSFD6k@oSnxTVEd$(0D?L`j zz}n3X0JvldsDp|sDy*PWP;Chd4TB!_FtpNRS4Q**3~CQUb+dLvp6wZ*u*q`Lhfw@ZT>lX8N60dfnrFE!i58m5;wk=Po;#?CAQ= zqY-O}b2r-e_xF!F&As7S3Y<~lCY(vJjrq#K(IIIbM5+d2^L5;H-gEPr!WZ}F02;p6 ze|3RMN~v^6?b{AXyRh#_!eni=PF`&mK|%}5L?@db!=uFF)hLvPThwDj28rE~WS*F6 z?EO395O#Kfu3ifhoyljxr#1D>EF`@f^f_#cxon-(bPEY7YdQSC#79jmLIAINU)UGo z8<5!WeEci&{BgQK@QKXV^kwTJ)MQw8>c=#HzR#fyU0Bw$is?cRB-+;@xLL>KijW3heH{V)Y(o}>!b0YCLf5APeJ&ogoOMF|mOrfHV?LQiNB!b>0J?-sMJ`x}i1Omnm>wyr|{i*ELl{LWQ`D7(@^&kj2?F1miyk@1ypb&&M z0_wx=B7?9gL!5jER(RRa*<@uTn3&%sw+6%5;rbq%uj`3Im&)g(-xfEW)}`K#n3;Rr zBy9X3$-e>mc~_UP_ub}t4?xrIdGauNC@%+Yz49~wGRMI4i1_y53#Dj|7gqxa2{V|t zcxagXji_LRp$B3XyG9NKblZrl*HT9u{${@c=9cxZ$U+ zN2@JF6N3nc{d%oeGiH6<+^BOWfmdr&oH8v(!PHV4UP2h)OKSVN>T|F)0KA2i0xs3u z-O*{dIbpF_MJU70W&Sg3q>l1X=1Qlhr#q~*ybcS$I(vIRWWMbczKzJzfxbJCz{LJ8 zSs;ckeg7UY>5>t$|PyHiFK-DPHeT_27kTI@(T>=;zW0F1v=|Ma;EMU3XA!|@k{pUncl-@Tqw&|r zW~gqmS9i1LllIZU#p!WmY)|9ZudVx_)%oyuJ9Dd+YhHsnb`9QFdznVJ!!xba*wG*5 z@atBaJl(8WR8=N_@GxTk6~}R*#V88(OB$_8xrnw&1*#_b$K#CI63=TiITh!pUDw+651h}+!2w#y=5Y_Rh-LC~mG$*LJvFue zjoynV6>Pb5T4zPSGuOa3z?x1j>~lXdbGv+%iDZH>UQ7}9j7I;#D?LEvD?{AK-DSB& zX~YwGzyY_C;KfKxEP?;2-J32Tn0{jSix&S2q(uJ1>dy>5d1_LR)6?4$Td~w*C1Fv9 zSdt8$AQb)jr{R%Q`+=}?tXfdwkBfIf*Y~**OR%p=YJYFGuGYWKm zOCvc0)7$@0?#=CT_rEd}YYt)$25PjGbXf8e0Eg9Tx9A9X?q8oD8oVNbaE{MQ&T&D2 z&$?OSTm379#GbztPv+3s5}s=&4AdWeEsn(f^U7w8xiYHwTxPY=aw^Xq=;v4ueCq*V zqA#dM_kRH%1R&BIol**V{i6U&f|Iow%5jlRCJKf7>dWiD)tEu+Pvw|;NA6yfmqzzo z0E`82hm9on-re>ln0Pt!eDejUoKWqbNG(3S=SuTPijq696dhK&8|&P2RI#!AHb0?9*!1hL`W?B68UB+SWchn>4>Tk+9e12kQBmb`IRGY= zW7)Z#$D8B1>}v15scW$Fwg!|#(k!OO1G+(0LHvVkX~4-(A)*8ronpiKcN2vlb^*VdWADR9 zz4mlffZEyd7L0gB77m4QnaaH9b(+)a4~s4h5%XkH%&N$}3L%026GvsO2n$2RDsEmR zg8!G2U3f`&I>1TSbud!+xwyKzdNxh_{~x20D!>@6phXz@5}Y~eyZrMPGv_-&Z{Gxc zCw|gfgZG3v5hmFH1hhk6@xdE}jHJKS-Qg1ESwWm8~+~(x#|ajbYVPQAr*(_unk+gaV6j5MVQ^ zQm-!Wgefq(SIEoByAlTr2?%rphwuNu8=jt0;AB*$A6rf1Of|K&9BAK~ul_vV*aiB& z`S0!F6~10qKqs=b81O6V!Ty_>s__1~3t?gzM~8RRjWO-7V){E4I{3TdZ0gXthuxwn(%He)b_cT7lJ9?W zY|68V?wZG_W=FCI(?u>B3~~2GYK0E>A7jGv%!qY;3ZU$%PeoyaVQ6Ag2mHw&c=LjH zuiKW#vF90W#PPYPQ)kmdoXdH!-=U*@DTc-8_=W|`0v91J{a{b?^Dl9l5+)P}n z=wX+NjY7S*DMqN15JSRhags@#1gFaFX8R>EfqaRB3|j=m+wmAv(+A|K1pt_;H1*}M zU)D`|jb_8@4?FAceYN#E)E_V^Lm|=918bfOuG~J`_A*wP&4&Blq^u&6B5}ANOg41U z;K;Q~pr`nd2lm09DHEA=FA51$8j;nHn8c;?smR-@A>OVZe)1VS@CGWed(pngx*1yD(Fu{~dFz`7cLyRg`pFDkca z%m3#EfcS3QRFtNn{P_11RjW?d8zOi|CiFv?Sgw1|VZPC8_Da95)n-W)>9A(*+aOl7 zG$qT2r6y5j7FbaVxH4RvwX0Iq*9n~~rk<0ro8tnX-C`-3F^KdFrOd5D5*7Kb@LJ`MvoVDkT4$3n_Jn9NtxV_zHuzk8CBj36e?Aru3}OUHd% z7+4*u`uM#{AuLrGu8irBo^s-`a|jUKfL9~nK?9s-b?s{|<28I)zfGNujr*JOfR3`T zBvsuE9YaGyfaSeB54<<()hZO>;nM)ds4!rcPZWBsgnIuc-12@d3+Xgu%jS?Dyy})2 zz8`IXlxmN;uWO|Tc@Mx7bYCU#_g>|npDbVLpOx#8@`KBE*PQ$zpq)61aS=q`huL77 z*(RV#(~`0T>J4bUjFa&NP+*FVQW;>yhC5UoJkk6Ruk>GpK-Ww+=y%J`i*fNfN=d5Nv2YiT!G9E*v%YXwDXO$!Sl*a=oq-kOnvb_jDuJ%^qx$y?P&H3ZL6 zk%wErk0bZ=GdolqIAJDYM!BNP(@*xB?b<@NembY?xQWeHw=>#SdgM$D=8NTax%wNP zJCRJ(;k$FOzsoh7&gmD!)UIn9kWX3ocyZDLG8j*UdD`>y;Wb)JQk~!UiZWN zaKHYOQvT5)AMfQ-xkGW2SH1Qhr0Aw5BK8U+|C?%l$DS%Stcx;yB>Ch4IH%?!6k{EW zoB4Rua!B7LxNG@PAi$;67gw?=31Z2XZycO%tkH^&$Eo45Ha7Cd*k=tHJ#5U!t5OXQ zEpTl=?GJ)=sQzc`Nh*uxZ|F5_>-@7o>+2uqZxgh3l~Fpa5kwNW=7eA}a>X(XfLQbz zRR%I10IDLGb?=wVlsc+{O}PdKHHc|`Qnf7n8}77Zn^HiS&6JQS7H_I9eo!AS-W0mt zO8F>fxH#DAb~x)qE1-MrHWOMo33ph8p~z=VL4}?J^M2VlS2?Zkd5_shl7W+tuMN}2{YhW^^UcH-mln+k2jpZ7B32|wMlzZeevZ>47M&d-WQE)9$BGJ;RIW5&)*?JU zy=^{h-*6rV3bW(_R{lH2s{A+pzTyJWEbnpVfSbx=JcITu#R}JlT0J)a!py{f*1@}( z+Iuaq$h_MWZu*7Z;CfAzsc_uFAQL&Em!st}?b3g9wcYa#5^&q>Mk8qU7zf<1fPG4N z`4FdFz4uX7Yofq)?t%_M7+57j-lnbvgJGzUK-fl992SL4uyE!Rf|Yn5Opqj#xKL&@ zI#$yJ)oEnFQ?74f8#z+;-voZgw@cwbpm?^Cqp2aoiRZaW$-la-{`O2M@U_P1`6vIz z)mi5w!X~{76Q)Vij~l-)=f8;!T*6BnBFi#;=Q!U0(AO{1T8x|054()_>9h2fsg#nUCLcL5S%#uo(sEoA z&;$=zBMQ!e2kv#V_hPdCbxK34_IYVo_%?#{O&t71ME7`Lpm;xGD7wW57M)ri1}WRm zgDnEm<}laBq0E#C4=REVgSD&J#o;dfln7xl6Uc-YgqO%G$7CxWd7C^=R}>)jFl4rQ zf}fP+!^~2G{0^NI>)-2A(NYwqB^JQ}2iCMg#dt6Oo&cI1E0+nDBYdU=g+k5cCEWMv z@hx{C;lDnE`T1RT6-NDOGC90!YNGUV9a&o9S*dwPmYj8brL!F;GpC7h6^Q&+O!Wy| zT20Cu`vs@S6Lc^P``_&wH#sA4aq=ROd048x(87)iZqnz3PyaLNcxeAbSE%1|IcZVX zY)~$EMqhu`(fIwtMY`oL84|)DiL4)4m86kSkO-5fQIwGf;B8DuXd-inCQlJh#rPwt zkCoaK8?Y!T)C&r6Xn=BC8wuE8OpYLRYdM$|a?YOuDur+VhF9C{rO7v1E8cdau2Ed~ z*X^TaPg5~_#f?ZP*#>!0DrQVH(Z!E)EXT9u=A_!c9@!`nLE#R&~*#GZtBQL5dr{V+) z8lA=W5Q{hk_x6Ivz@Db87j((oygl~AQ;6ewlk?!gR{vgR!w+C#`F0)AP*%1_1@H`j zUoa4@?l@hZoL6AXZ0MfFtX2M_Dhm_WB1wZp8P$QXC0;=<6};HG5F{cJrmIauo6WpW zmE81OP7~C~cwFdpJu~bNnCaj53IomU;^6JhvyqXgG;Gj;8#kfZ7Ja@vO*kfyT?L4% zGuGF5n|?rpot)gG?LcHIpO{EGtwApSL) zN%{KvTFDoldiOd+u9XlRY#T-xtNh{t+*@(t;BZlsx7U}l=*F5FJ7CAt&vLXxGbq}7 zue@$kfQl%=|Q#Vkz)fLV;yaB2$`@4O3M5nvk|X zdO-%ZJn4ZHM1;5{i)CAdM+>SbX>>OnB0D__a2!04_6HY4MWB6m2%li2{W#DFpDD|d zBD7;nB#BiVBoP<6)5^(i$=xp86(A*i4fI7bUN&hq^Ah8%WbzHREa2aJ?0R*wj8V** zb1>N}w4~X|*&Vvhj$ra!@zSQShAw`>Y1_g5P_NDL&5gzYG#6seCA_k{I^X5|lwj5F z_*Qe*<2hP_I)3nR)?;RD(_wMu1p9r1ZED_ zua}xkev9}^7L7QVr6BNc^rwi3h|l!&Mzu>~Pj}~m2gQ+oRqRS% z##AWuXG^$EB>19fjP8hlPY;>>BJR%3;!|aCo`AE9Q_bJe-lVnu$c!$ddFSz?!7R9x~GA&WXl1nr#|eFU0PZYt21 zT?BwQcuLNnN@tvZIyM^T$XA&@1&0d140x)A_GB6bECZd6JuZ7=s)@hO7yk^xJYs80=qyaI(-=X!uq6fxFBoA1qUU(zAs>MrS-V0 zOVM_ZIO1bj10Irz`E0hl$MazY+1qL8d+RdbNc{vLeqMkmU%=yGh45VmMDS_?zv19) zrDweD#7@)5e=$;6ThG8QJL5VH?yo$q0W&tTP2ERp<1KIRIo9Tm>(_TrZx@Ba!fb5M z`@r(|*ywGMyV{=~KNd@L<|-0Fjgga)hA3t_6`rLvzokE@@!G35={;A1xM{Le9E{Iz zSW0Z1pg3hJTk{}!b~>WuS@_8?sp=kRRzpt>lU^%eDw*{TND#RHCl>bWs76Q4V1aEk zQ(Bc}mo#>blNUys0bf4*?lN4I4^iyU%~l>d+;5B-Jwz~()9hp;wt7-K3r}Y-ry37p zKb|k%F&OrgIM(#B{MGWUo`FYKrz3CDRZ;sc{&cnD##i+eMhF1`H+HIkapyEr(vl&@ z=tnKnMi>f;HJIfL-V*imIJwbik*A1`drHHQr zS||C--Q^4|S)!Z_A@H6f={?)pv&{Goa+pv}eH!|qdTaWtp`D7`4yoG&zqbPNmy_N? zW<8ffz-03}u2nBzG0dJFhoBG>@J|?E=?wQ#(-B#ts(%!LF~+6%qkK2t;D1`)zJ47U zHrLwP`qGf-zeV2nuk892eM$ZJ&jhiSh-4IzsJC}+hb$e3Jvtg_yM-?XgseSXq&Nb5 zM<%9`6uk9F=^|F-4 zewfWvg@yI?&nx4>)F#D*OOis1VugO=tK5ld1UKKZ_^49(;@~$DJwY6(`i-yK9{z% z(W(5^m!U}|m?-SC+bm8CH?~Uv^zOTB;0)vSRnP01T@^#cDnw0t)^5i z8IhBl`+7kx{8nK_4-W#6HcYzL50E#bp(UzBfi|1D$3u2Y;IN%rP5}o04tX*Qn-la1 z3kFC3Nkia=rJgNn<=|I0hI(m`#@rRe7>A@GN$Q%tquvd!*VmUBb(hyGn;D%sgww(q6>AZ zB|S&rqP#6snodUP2L~s2yP?;%^;2@_e=FR>LtanFClFE&A=)5PxM;b}=Q6*|n(FEt z?yrWs+auG{)4-|Qp#2_bfN)&<;q2t)bd#(3cDng`TGOh_iN=m82S25%_Qr9@AR*q+ z_RSPfhtItszP%SWUr#ps`s(WqopPn&gCo@5@1$LnjB*#XT9S^9j{^kSgb(}+>+1$N zgoz*cxi~mVONE8l@?14O=R2>5=rM@e;`$-yiP555SbIB&X&8tp>~PSN?)+2@Ba0NU zxenKagQJ0QVf#X#0=MNlJ%Wc4v4(?|oCQV?1EIk5f6qU%VU!!*xs;X_%JGls99}iu zw$#fkme!?2R2W>ydCm@C-3*X_&a!QHieRWwgB#`0zgv+Xt; z^mqjiYV#~hV3)Ul^(m2T#w_&x`rGQD@2!5L-|}jGpT}Oz_zrMLJrIchtX}nZ%i5$L zN5@i)gRFHtcl_8aJ6T1tySoFAA$GOYs}ZCVu9}rW`Qtnx*!LF(eM*MbG#@#)`G~m* zC^%*en_bMKw6mNt-BvN4O!m$Zl7L~JFVDbAmKXsqQ}$;d6cIpx07%fO!sde}Ic9@i z(`9yuBS2_~n^G5z>hFJ#1&P}BeVLX8Q&GZM*I|i9n^!h@IBi}OzCK%xXE6F2yk7+H z8lE3kpwP=s?fxX>JlMfcU|6uoAGCojFn)Sy6>!}fCJ%fzIQLmxe!37ie|^wMMMnBU#gd~-2P^7D$GVceuNwD`RRjYL=@*EHF7?Z~2*l~@;$E|E zhJH5>%L>E)+;jhDZzEOyf2exrsLtQ$-TRYmYqD))vfX66Cfk@i*)}IP*_!N{%*nQO z-rwJI&a=*G)xWJ3?t9;R@9TP9#mRirv$*T}JvSmpv{-OF=jLi#EOv`kUUF&GxWokf zbN<`CK^w!dUjVeUK;7pyPWM$P@N-`9V8`=${X6P>zAd3@iGKw9&M%MQOfL=&ZW56n zIn{3Y=m!L)lF?zp6S5K_L)7~UIp~Ux{|kEW;I{Miwkm(jap-vmlCq8@aP-yrias0x z-_7Iubeun%5SRCKt-nw}U$E~i(y+;1W&ROn<4J~|qcP3gv@U)DG{|hi#czNm5Mcmb zDUbKDy=BvLdiuj<_kfYTObLabG&vE?3dmelP)iSU+8dc=w~1!Akmp8B9gWs)RvE!T zZDWZxDQE?f&bNe~L<}`yzyS`da0j6M1-3R{kD+c4n6+JJ*{215TRvWdWwsO8x9()x z*3dG`;r9pj{y`M6B|;AW`3Kxle6Uc{k?{8sHb?m@@zXt!{{|$}3g2cZO=qwl#_*l( zIO5{jD2HT5;DXS_Op+Eky6^mW(X>Z+#T4-yO?22n3y48rjwX5#)E2AQ@yPtflugN- zPfs);J>Tm;CG)TAD@~Tn%LxsulIH26>7uL)BgsnLat$LquygWQ!;(^AuinNCFs4FJ z`2TjIyl(06@yBiP#mqT*UG=tLI7&~y_A_zAgTi4f|?;Z z^py-mUK;6@E9~jo`KT4vQ4m}iVuw@mvmY%C4AEDK_B<;aLK+f$O4=GJ8;lH=?A}*9 z3>Rc79Z2%k2eK6JmxKOM?sD1%Z>ycDy`$?PrRMZ6t8%PFIEv~SO^E@}JXgt-bnOT) z_(~=saYFh}2HQaw`q~--;v>A(+oMfa|6}mA#`9THSCenr4C)NnMWjNx$K~H?VA-q1 zb+WYAnzO{c8f*Gj{(6{=AGJ@O0)CF)K;*J0D}Ofr-{Q#fSF^O#P-k|oqIPfpg>nM5 z3_W{?0uNn}%dLQi%cez-&iB}@S9w%Xz1xG9b)V_l$FnsxTmp_tOOi}mi6{jvJPJF0!hHOLsD0r)_@KZ0IKdit>SjF@w%@u%sU5XL zL9-$m*jDvkeH5uw9+9O=D)FiXW>bgMl=bS7=(WN0wR%m~NBi({B2{!d4A{ z_b;AamU`N3{$l;aVFpA}at;n2Tv?0lqAXk$t;W$nQld0P;;7kTjXpmxi+Az51q43o zszQ(JH2~(7P5WD48(MKc)L8jwc`Ht9X>f#QT-M*IMhX+oUu z-g*weTydR|R#8zwD}J?}Oi=~Cqjs0~y#ulTcE{Gcy^G5{U|0nd!h!bRzrP7$dWv2- z@|?YXsF$c4?P2rCLG|DPE{!IHI**>$jjfMbhs)*q-F^fdz`za!D-Oqcc0YEeEo1Jl zXp;tF{``}fnHftgEX2o`saW>;ncbq#fc<#6CCtYsYf#_u8zCAK)0xDj7xt{qs=T(Q zqO!^^f|6dIU(y{irxhWrOoc992X6v(5V2I5_TZI*(zN?PmX!ikXjcSwRegdpp2vEU z!|`hv2#s~U9O7PCB{y4Qc=feiGL8#-p0VKC2JGI9YwcUkj(Q=U3SFT*)kbo0cirEu zM1jAFM~XMm>^f>oG$$tdDKOz4t{10Z)R#k{bU$6FsfIfHr($Q-m^f<6D>Bz;e)W6p zbmZcgN63-~GB+WzZu8`R;s00{`UcY1*W~vx7>~w-EceAqWTMg7T40-7b8+6PF@=e9 zBjl|=KE4M)&@DZuQ!VRHsg7+j0w_xe!;s5NA>Pw+(j|z9`QYkO2 z$rR)(A=^Z8^dQZ9>$cg@>RCYH~i?D#g) z6j2VV!KjBC)r(9`+w?9v`4SKZo(6}7+)vLv%+v+|Dj9wZG+cVN3oWN9GmRK(C)2Di zqKvnMnwB1HNwMi_%6&|clvte5{lcPU%chpg?&*?%py?3emG8)Y$|)O}2sEfSgbGAr zBn=x?fbr8TWLxj^DqPrCrG5c;ZFN0v(uYK7sB5S%<+B8`f|OOsou{70U!@hg!g$uHeBv`6mlNJxNesp!i`Y9ng1mu8&fjD=>l}JD=JUNt* zBh+$I(t~&q)j=a{h=5UTu}0VNEdC}+N$7dxfRO;YJ=Ulc zoP+N>(WUpLh~{v6lhT&sZZ$B?-4mDJi$;h6P_MOEricp&tK>h-ov(f;Hvroe^hf}1 zhjL;mO}hU^fJ{E1sV$x);s5 zFE<3>TBQD|3_Eq!2b*g@i(UW#t$l#%40zn$n`-^+0I7w;wlNC!J${L(AsZ!!BT_2( zO~@RwCnBx_Qzo9+5Ekp!?$}{2D2deR57HzOYBbzAy(S&M2?Dh2Sl_N-zAhZ+(RqRxsSj9)tcC2JprX^#p zwMIw=3x_fr$o*XI$td^m+ zVe3iLIjhWS$6`1WGO3he(LYjHl48)Pv^K}32lkt143vvz`>JBgclQ(YbgEl_9dmEw ze2idZaT6Ohzg$?kdZnkF21}O>A>y-o1_%h5tqg$1QV1atG)x-F63eqymSzHsG!JJ+ zXQh?|;bFG}v7nW=Nm)V=_v_NVbmyUdzw4=JNnu!QSWUl&$NBx+C9Y)vK$a(!{+GAL zKsEi3gS+nUY30bmI?vs@|6@@H9wh4Dyv$Q4T88swLioyNoOkJq#@~gerG=BJ0aH`! zDzKT5a>OASYmiYyZTRnG>$Uvk2ftVh9Brb7?cg|R5%KkAkn#Cy699SD3zjv|x)Ug4 z>CV{6wWZH}-?+M2+7k;(Eww(;+kDgmL}xxXPB#C^{IVUA2URI$JK_IxQ9JnG3dep~ zHPlvF(bBZj=3<8=gV@fz3lW2`5wI&ITK3De(}b|p{*Zs4AIDTPpgX&)IuC>@MS~0p z90AvaTNvSy-fFS?DgB&l>8SO%aGASSZ+>ys9Po6u0r&yE-uuI*U~o-=4!q}i@}2mj zvghRkC1AnjX1OG-CbMU|P`ogz_+LNdP%^XvItbTN)|LX&NCf@|g^*F05qdnPl|rd8 zJC%UppYhBZt@p*DgO$g(6HD&S^TnSyhBQsw$@pi-r{C@DOjgaTUb?4wcB2y`%_O}3 zT=mWXXKn!a`f=z?-*XbBF>BRY*5Pv)3l!+mtS}_};^gT1icL+hXa$WZ->dC}fT!?jg0TCgfcFF!J@x45Xh*7lvz~r_`t|WB;pC;(CG#2W z?L$Cl>8+iaqy>4G zgREvS@P^~fpl%HF`+Eh(O4He}P1938+W7>9-`8lQaq0siw#$0S(ae=q3);1-=%xjt zmW=#=4+zUyy^+#>9Ex$RWJ?dG9#}NSo?otaca@oHYKp~Zs}X-0dE!?L+(OOl@kai} zXC!;0rv?T?Rl-5W<=su$HgzVxuCfMa-%Z=%S+%IH6%9K=pz2ql#y-;g z(5rXYi#Olv>#D~W|CfxO3;?_1^rs0yLN#{4v2RoilLMX1n+9P{GkcszTU}(ImNtl| zFmxoL2=ZJ@)T;W1cK|n1+-I-#@cxH*-~Z79w87CbA_o^02vU{Ug^t0}6PD;RHHA%;ZT)QG*XK zyvmFFNX$Y4@94l^j{X1Y5Q&INF zwx;di^KJ68K>o{+^EWcuuhQZsu*G1wEM%ggA+xBJG)X@y?g_XyeJ;EH6Aa+Jwq15_ z-940?m4->LF|ey>n?bW87t44N@*-gN1w!IJ#X*pwgX-rcO19Hc6TxQ~uGmo+#yFkw za3Lg$(bB>8uodVCSDOC{`!{y8d9T@VzX!-s8T|ixr?RgywD)Dhdl*|XwWoTd(@@}S zqNo$mLt}~i`}asOBM*wd)&+~f0ve+wd#y+OD!43kB)fU zu6lP~F9C~snZreP+fQu9&V!RmY(|~(Wc2=RJr5~wrYZ3i3y2LM0k8(@#~QaKA zOdO#|!$Unl4CNu0jV^HiPK%Ow8r*J~7a7N+D)`ot_)w7GL68wv*f70;PQBKXLOpr&s{)^k z(+=luT9&nwzth~z>dial*p{hej9B`mX-EsQEhX_4rsn5&9=ck7O}!RL{Xp#_=^b(p zcsiUrY4dw^*Vy=_wsk8A9YpFkHL~5mEpMd+r@HG0!Is7*QP^C_G-&#qJk2Vc!q;fJ zl#>tRDZ!zt!tK)+brVJP$8GbGx@l)&NU`?U$z|?F*C$F>2R{|gFEhW9aFR0LyriHJ zI8dOi5k4k3n5GqN4h#rm?`&*rz{ewt(*@%Ne=@Vwa z5=r5Lq;bFj*9MqXbt7rkTGCR0=jKCp|Ama}Y|ljw=m*%%L z4VYM1r-E{^K68_|AK!33J>%=Hs6%ha=66`QQl==1V#mBKYj`e?y8#CNg|<0kGtoow zBHiUan+T9*roCvpMihc-Zf-6D${>V>kB2}f+A_)RiwzM_15DEYK^F`^_6-fLhdVn> ze7DkH^K6HeJnk!BV+TQf<39Bf)oA+DP;9$c%$Rh^#8=|?tGI)Jtbv8a1w+NABf`*Uh|h->H4S~(YvRw3OP#R}K%dLqB{h>#d zcXRB3laEPcTigtGM-B=E6|@kobt3LioWTi^01i2XkOK1+mLI!Gv#NEwc`X(YSbtVl zR9uhI*Lw1DUyV}dEy!wq`<9ZH;yeW80$Jm7kpb<*mg9hMbS!d5cgJ}~_2Z_`Qg3f> z1(Z0$IIwFxy}V%LiO-{;VHgYpk>n`$%(3&w{x;g_4=4V3e;``ZtkS}Z6!*m&rK!}SRjay zfndPcf^VlmyJT`!OIt!)!;L}3f{&CXCt3UtBB^+<)>j)zaYQ_MO(K#RbP?gVHq^7*%Dmr!CuT9=lB5cV4u;U*5zW5)keRBr9s5#ivYJT zQYM^u0mv8B$B2Z@>?AvGBde2UHbSU)9?XfPG`&_kP`({r{yd$Gj#Rphh}L0(E2%$PF3uW@D?2^wk$SEh zqZ!M2rk}Rr7rpj3wL`Dx1bO$Z`XHaMq1>k(CC&FMDPfqIOF$9w@kt=Ovbt)Md2qY- zc6D_H7}V@Pb|y{V{r1s+A9-e(r&cY+3X>K9e=b#~w0}%rQ zQAKRSx+%r|V)7o}XGfWRcjSQh9DlZqY+e~u$d>gR1iI?_tTj=_YOgPIR;VO_|3Y>1 zF?rf4F{^LTFZ`qW2U&jn^df`778V#9<2KBd zqUz6t6PG4mq6&j@Vfeb7Nlx_oc`=6|eB1MRd}coW(SA$!sh91xs4e__jZ)Kf@!}A0 zFQ=*JvLTW7rtj4t3aulPhk%hlgd+Vf@>Clbx{u1DP8*wa=u$qBt}}_zJ-aP2;R-em{iOw8Q#o@RRZI*OF}+ZPfs%rZG&s(yw5{9 z<}Qvso_r3|^~WEHiBHSR>DHOu#32J{&;l7%B*A)9``HkzL-8(5DXFStV#ctd3dLfi zufX;3G`7^u#v$N%(MAsl+7GxRRN+CGEJzF>RRLIKn?#X#&FJ2`5c6!BR5IjMv^iF+ z7G?HHieNL6HnP~LuLjRyV8&~UV+8nwp5v670RPHlz@L|pf6-;j@A2^V*=B(7@>pIe zCN4H+ZuKi_OQ{y0=tN}Ma8?5leyH%gw$7$Icf(Srj`Y0s2FV#?4 z3L!ck!B%#xa_mx^ps?x2Cy?XL!M!H5)dd5N@!UJV)Y*`2>o^a<7r~jXR5WN=$J7tr z-sb4GzaXP%XmIfv3n5#(em_S8XPXHni^c~z%nv3UTaJ(995IwMF-eyq4v_SV=zc41cULU@Rj+W!G@*dF zH@AzX>w2Nx^8B$W$WQgH>brH$5^O^9I5n6|kt*QA2b+dz=xiio7trSCPOYlOCuSjT zeVxfI6UI=~W2xN9wkmEkH|9cLMOXyOLy?^np_oP0u_eCECH!rtn^>cdYAx77b^6lJ z0*fWhU>hA;Zc!XiY^ymOws9f5*)o9%M|<)%$gg|&=&r%NFSX zz5jnHLHeIJO|zR9@YFVvc1m=66KPhgU-9#m(ZDS)HeI7Dw<|dPt{Ud(65yK^@)5jg zWAJBL7{>2QOji=-*eVP8xLJ7E1e9?iZ59l;PR-c@)1?OuZ|%RtNN%~#{)rQMaAZkI zz)MTP$CqIr3~mwvLxq@GcOt$&ovRrrAZnyJ z6g-wx8L)C?8g)Q&O!yv!NqaL?Op{8dx`$b@;B;uNh}GI zi@7)N6|=tMeDjnxa*WOAg%~2?G---VNWrWfe%bQcN)nJBk{m2T7(iQthpq zktjMZ_+VAiBdu%ZbAT+drAOP;)N})$v@QpwAC0svoAiIiH;Q7j;FTk`+>A(UHa7@l zYFyaIJD2-JYc{7W$`AF^?vIhw^_hUrf)ps+;w=qYDHd8=M_Ho9Iv(QgO8SD^c}M5M z;P-UoD8I7xQBcEkJRnUw<=^dnKR?I^!m~qD7QrKCIXm3X$rRa?cw2JpuRc)ibMbSi{lQ^ zPN!MnDqIRLX~|LV)8No(y?yo4+oK&@-ur_BHzx;2=Zhrn&p$w#MT7T1?DY;DWp3MD z!?=ZFgY|ss0MRhnO+d|Gm}ye+8CSbx%oNh4y}F>^7&Q_>T9md6%S6HRu#(ZhWnIvNa=f zY-pF#l1W!ZTkVxynZLzeLsr|}^Xn^_P!~nnF`iIC=B61_Crb`v7-Z`9+-)Qcq4T<) z`+K|a_x0AA&!ZhI`lap1i{5HN}_ zN1g)qxF)xy3Oc7z4L1aUQxVvV$Iq>fVmLUzofDKUrOEPV}5l<_eW4Edh_)59WY9F39>D z6+~vCwuyU&H(4rs7LN`6EDz3}0gj|Boh${afjXEa8VkQshEgW-v`ij+h>1ozUqj=r zK3S2Y0NaJe(6b%_fl+)l7W)dpl8Lux+0T|uZbCw7Gl@GdOB(>RaO12av~YyK8>`x* zNHtZ(lcwJ;F3x8AhS`bwT6r(e(j&|xY4?g%=#50O2@(osT^FKgro>9>v$G63$!-Rf zsj|Gy9)og9B1_HQtD+?55x!#-%C-f$eq9cX##~iIOpeu*Os<6)YA>Rs)Xsnh7dF#z zUvGw77-XRTM*d4R<9#JLB!Z1aDy$@FbU8Pn;-aq)0EMby%YpT-Z9X*D`o5PY^mThG zhylE#IoL2VGA3o)-lYlclV>a7cDG?x8i6p0j5_J-+bQ_yUTudaO+MZ4eFV#|uixSH zNEIDCC@qbO8tX0)a_!n>6q|1(IeWr#h8zZ0lP^_+fPg4NkM#5U^Hfv&{2qYRS+V7# z(N9HIC!Z87Kz?3UhN~<#@Z0$Czo)8Kk;?z{xMK%Qz&f}4=2y$d*`gsK@7(NPw{pLo zeMlAnwX{b)`i@A9XOUctC3sfQT<>{Mu#J7bIjW0d47nb?YiA~pi( zUjb5(iHXU15z6M1JI0$+d4O<8rh#|g6@V(HP8tP9nxBOTWenqBGpaVdmPOXowCWbw zC5kqR)ZNv^6y2WJ|6Hm50zf%{{5lUXV^Y#;D)-wj3Vy&~L=FOn>igP3w9;BRkwc5> zm>yHvtt$|NCr@RXen1;8VS%YK-Sd>e_X7wIz?@p2n={dtG&D3^N{IdQ6NkPeo>k-{ z7{_t0ezCpte?H1;`2|xxeqKO*MZLSbI|D?a%k{ZG0E{D#1tMc6 zWE~cO>=4EBv2d|w;K_=9d$s;aU*c?K2~EY{!QX5yHB9o&LV_H!@l`90n``kek-G)w zR{?bMRgWf7#wIEd<;dTf#l69^Oei-+2{UKk{yJ@e4CPq1z#o#6(rguA(&IEb6P9gG zwSb9huscZnFCLZxV^Z#1n8=I>B3k(sG5sE&lNqWsWyvKeTd#C$@%O1W3C_rgr{L?0 z0n_lul3cts*1AgXKC}76gOgPF@vn(N%+jO~=pe!fFl$LfIM1(15wgc;S|{lO2VZc# z2(!E-cJ+)?&5EH9LaLPGuS2#GTcy5|-0BpWi56kVHd6l*R4q6wW_Om4en7cc?${;I zdm71*OEY*V9S2zd`@v8Mgu{SXio3_}N~-1UaAs!YP5P}`18JOyoC$&e3y-6+w2H0j zVXw1nXnpvi>+y4WF)rY4*NWqXPPfQz?J(PA@nlPomzNE-_E+Q|bnuu?^>ri2{Gerd z#8i%MWop4=EI#|hI}_9KNEpO&mMRQ1aLsZ&=e5|uF*^Dag7D$+m-bg;pR@YP+U}S8 zbR9jHNzSd0sUCAd?h&)9xpWqyJVpOAj6iG#omA;KrS{z0j5eo zn}~@vW$>7ntUL`KhSZq`b8q1IS#;;X22vC{a0C^#4^tjb$95s{b#u_D7XOT0xeLg0 zvZ1xl!=(M+UFe%NEnUe+DJlSB437v!Khd!rhnK^{4Z}hn_Eln~`el2v`LIauZojp; zGMhrPffhGxItyu8USCIIGF|f{mKhRs^|Vgx$Lz4yY?`Gc)ONiS{$)Zj=9`A5?=FEM zJ@CCDI}ZgfUuxGbeZ6nlQ8oh%Iq(H<&s>lOsJ0O+j7UGddUST2I!Y}ikOTky2JLszq8AFJgDnA{9~je)mx7M~fVEmx7W&`KICH>b$L4RN zKG7vNg?aH}y+t6oq2_dof(BTW;a1XArVILT9j-t6(Kgxfs(MGWii<<{lH_@iCyc05 z-2-yU8r`0$da;%7_CRdGv+ri}Irrc>)ekhw!30pewFx|~*vvLqYpHd{feY6-uC%ye z0SR<=@0`E1PpOigjRRdCBL8j@gvZ;k2lsbBs%jSm?8cr0x~LxfWYvLz0l>oHdDZ<2 zP-cbrxP-Wbpb+Qmv3*hGhi$%R{OzVmsHz)KL8AjBhy0eFo^qQ)5h|@?i;;f$0#e6k zo)@X1Hs21W7-}@n%Fhr^2vUc49fAMLU*J5wBw}3>{`Q6nix&46U$SKC8D1SVdR4OG z<|Yj8YrIQjij*nR?*sQ5mz!hXcuMN+b&=^?LKZ9te*rrbu#kT?3|G)3@G~IgOohB$ z={IAue_GSCqyxVytkK*n{^7zxhQelwk%~&6h3dt@|B?b;|CE@B1M#Y>*lMyCf+)C_ z>#9+Qet)pyQl{;6A5wwrYr1fsB_V$j9o8P}prZ6-Oh@vWVz_i_2!2d>aQRn*sd0(K z`iBxy+V}go7ZzR~AwIzA*D-H!yAI`a0c%`J@syp^$09=273e~U|3yMFL7XOjMR`!R z%nubcFi#;4INeoqH2X~|9&_j83ej}%jmNJk`zoepbmv|lKnUUV%-q}@pXK7b{=l3< z(S!>UBs3|wX$Zb$_KYEcR$r6#OF?!&4Yy-ToEn4Q7FMoS z(_*xoq=$E0$ZC%%s|9Y!f7?}WNC_3%h1oI z{g+(_T?C&+a1h}OnK({gA+hLj6i(+VU?<82WE{5Ngy+`Q_<4BJ8EPfPL2ikJC*qbB zIEi@280?r}y)4myhy*1L(caH{95|xCo%f$L_1*r;tv3Q1G@{evoDBg>K-U4a0u91M zZd}x{9ZE;-zu%~+pcVgaYg=7YBNS>l{P?a;M;XF%jDXDm=uXAUHpkH;#nseYEdRR< zq@3-k&||xnbxy_GlyU4(FItse-N`^7;1aXOU1#BbwnnX28Lf+EMAet7*yux zlC7$6BGhv9J07aGeiv1?WoK5c%qGUmBxA7=Kf!ZyL*gAl*NEClom-Vts1t)B_nWD{ zs?vkP$~hs?rCID%m#>~@f8-GHzkZeYm3iPoo!};DkJ)|fO1l`mpFIbUhR0?MOH$H= zERAx=)_)+$qhcwQRir`QdDpvmZ@;Bwcp)wFm8M_Lw!b%6)Q^KEI{}xxCgQc5I$Z=> z_K@7Etc`OeC&LlN{tGU=-mJ!AV?SmLFHXZ3?%r>zpqGgm3JOOkx|!UW;I(??Vm3Wf zYFkwsn_}N-H7O}%6v6h3>&dldCjIwbZ8=Q_twzts&8{B5?e3{5F~xjk>z#eMc$4RB z876iTLTpmq1;+t7`lUyQp4|r&0N_hMZTL*5OGUyQ4?e7Tz?@K7`@PH*g~B02}9Ne>1`HTc@xRKyVIFS!xIfO0+m0RzN! zqYx9yQCWMbb&;OLch;DQz)Y=zduI@ZI5_mY;(;Ff0h-e|G+w%R^7sSMGKw0;Il`fy z&pGFxjQ`FvFaT059?45AR6VIp7qu!uy-U~rWmSzdknWYhS`bvgQVb1gG{TY3ayG9h zyc_*{YO~pRU~y9ShW8Pez{H<=M`Y`UB_>J}q%xKaiV%d6RHJ2}%F_!cji(KgiS}OP ztX+KGZ>&^YH$OBx1niCj!U>uWvH);Eq)%+%7a%9MHn{h6-m=kbb$zUZ!CmDkAS5J2 z8ls|1Ze9I@grqRoA~wQz3wV)C2~O{l2uwH0U-uDw?1X>%&!2m&|D8$4wXXU0$HWhwU7=H18JAB>_3! zI!!hjRTKs)D!|71f8Me}zMeb%p$>srF@epOHV}|7xCCD=PL8+QEImGF6-$HbMtnA( z+J)bMC=nky3Us()cyOg3mdmQL+PPJPMCZR1{xq02GZ*}(KRQ#4QK(tzc3VnSfB>nR zxbzwF;|&{fvF~c|<@le?N?mr|PQ^|EpRw{>2osPBBCs?hm~zdHA(bZ2a8!L24T zfA?Qo2t%ak4&Svnk|n3e^Cgik=rWLa8EV-Tr2|#lItjSMuA_!bi7;T?@0n=xLc`4Q zAqQJggVMOA>p|7=LEQ-_xvCJ#Fpk!05;-^&={#K&*)ry8M6dG*9p{S;aK~sY#(22# zGnv-gi0~OU(-uv{4ve8_-7Ft+v~VL3C`jOYBJ#50CWN8t{)0@`87-Jl7h5lo(f0!P zN8O%A(fNmBk}!H+CKf~DIR z?fO55>O(fXPq`*uN$lH-fQdR-T-$_=6CauXxziRNOa~+1IxC6-1`z>`g}*vKB(jc+ zEcbhKD(=jo93WceWDIxlpOv7`+q~Yr?(4R)_M#!2ra4~T={(g2hCH!)^97m$Oi&-D z*FzZOLE@0ZpQvE4oS@xon6F0ZrFBGGc%C?)bzhfU5EMK8n^SG z%vux{JyW~YK5$^VK6@`J7PPD-7}+kykK5%q1P{$YFVmhmFXDh44Ad*_@&jR^h+GV% z*57d}S8%jpF3$fhfI+|g&fyux?)&$rJ!)ankk)6ZmMTDyMmpH}AQ9=wkaZh`%eF8G zcJIn4WD>}3K^aOOGs0m*NlDAnsvK>pFZ`vJ=eBAe{133^0SGb*)xRw#t*z$GG zu#TdvE}G-qDMY93D30~77TO%I6L5Z~1I#9%EH_#>JHK7+44j`M@WM~EL1#J{@mYKG z?Q(`jh@U)}3-eb{njmVs+@3+5|3v;Gz{A7yHlMfY41|mTW2eq#qP141qP)ldIC+^g z+*RsYwIReO^$?KJeXnJBpS;^jQS(#@)c^Uc96F1 z6^MXeT;zp8`6A$4>|$j_vxt5e-6ftTsG?aQlU2I1ybKEhl2QV+kv=jkbG5r(fc_Z; z@KRL)3`b8hinJxn$joaq2GxJ!a-y^1jRMDm;|lx?XDsZD9EcWL8ND##>Jbr{tj3wa ztU``aS!iH51Fy;!!P{Q?(-Wnt+z9FiqZ0<5A`)Vc^*o;bND>4$98ecQ~NH_?%h-A5L z7N|W=X9~$;zrKtZ;r2}wh*)aiOnBuY=Pgpok)LlXu+v-S{ zJ|4?xR^>z(QmG@E8#O!!vZS1=ltvMPc(^cr@A+HXM9v)%W#el9f4By)Kgp@%#}J(B z>jXW%im{;+%UKM+Je*%{ZuNGi@@lRYP|#5PiBDJ02l23w{L8odK|3as8$5zZ#pX_1 zKXzqpUgmMJJnP|Tbh5m#dz$C#d!FPriPR-F90-zkgo~B^yzUl5u;3;LYXtGiUcKu~ zG17BrS==Ea6V5f-543AC12vS_MF*QPz2*2gr=s9PtAP(YDziTxBr-3#j~|3aY86B6 zF_DydTHA_9j7DZ{5*P|YLr$V;4H1(VmD!$pW_6hmlhq8k(XO*y3|{yB7_d8T>@>fx zH^4bRlO!Qgnq)iqiDH0&Yqz*D(%o7{=!>A^RWBeqN@F$@0=SNVvFGr}ijK?jD~~~q zxHJ?xo+ZrY>W5xarvL8@k1WM)78I@|?*`<;Gtb;x1V1G%gOOM0&lz$WCM{%4Ykj!wJNZhLLO zyDmz#*V!<4z@=$kCz^~>^qw8H>|VzK){^)ePa!Bt92-9MQQWSdJ2xv)mlf- zy~9@91bQ*6ZLwS7OOXvFjF2KZ3rq^3UFx`P z*1hn#`Z(Qs3~FEX-g+cgRBz8^Te$q=8x;0$=<0fRC_bhu0bCe>*a8UVytw!R$lp#cF9Bbp_ubLavX$YM zG9T8{Ac+}4s(CV3%A!<`bR<=7Z`iMfTq6rpb9OmbsTC@x5hL{&O7$RZytP-RC1 zj70$-#A^*XQ%)HOPIlGS$6$}YO7uklp3aiWGPEf5P$`t06fb(etAIrM@3bx|jd6q{ z2$p3uB2XI4bQO5-h$U6P9x}F@jXOThpHdGw4^MSg_0d{_y(9|kiH8{B>-_4g>B~Vu zY0h*sUNErYZ}N|SxLxApr1bXTicvta+fq-eLZr0)oj!fqYeW<8R48fQ()hlQR7A{A{c3qktc|i2>hMTN$es@G5dYz7vQmA=V3!poAAf*=tlmv^;^+zxhJ&L;xO&d5^45V-IZ4>A(PT*$5syPeYi zsJ>hmaQAfZQ)72F4wGfiWe$NV-sZfan&I(lfrAwxM}wHl2WtZ_4FcOeN{$$^Soxdq z<>YowHnZ}bn2@Xg4;vHT{ybk_XTBM6j zwuAJ!NBT*xkAyfY#MXC zDMAcpGVk}No?!z)^~%!Wps(!8;MZ4uevj`jnlKONIZIrxz$$eKkQcOW%U!p~+u5B9 zf8JW+4LfYyy#p*|Ec$P`PA|OsSbq@};4+CG-D%T1LDL%rD^fPvzhfylR;rI%pKDFFd96Su z*w!Q9Dc*)U+vosNiLyXE zY#iy;AHBar%n$BnJ_>T;&NKM<-~`Z_tKADr@GRv1aB9srEQsQei_YY8N^QeZxJZYH zM|8&=&%O&*#BQ!{r}L*w`gpNpGb*IUqImSzt$A%bI)9Vbq!STQ#pghmLZ62~Eu4!= zx8NEduhOts94tz)Gby$tTlTE-IIOmw?3zW|rSBFBx@N#dDPn zE9Om1g;3qos(>K%u|Gd%Jgj_+=iW@hKgILdsAyj_vnIp-Ijk>fz?8E)^o5<3^Wqy) z*#Jg{qay#H0`U}WB`+Im6Jy>=v)!8QoC&aY6MpJ@BobT|Tn;d!L3b*ol$0qs&{OJg zuMZx;43zvALhUh^)PCY*eu^M$tTd;N6-*wYlSIX^P+}?$jh{Ym-&p9s6ZI1rfE||! zzqU>L9n9nCyUyCa9wCN`0>F!BK|rmzXxR)^grSVjT^K8=u6_k&3DrW4xI%jz-k&ZHU973SIYH?ZuIj6{`GJtP_gr-Efc$YaNB zjz8hTPAR=PVl;d}eTqJ{1elXNx^LV6W&dA`SxI0qi!)ZKhei$}R|iEKQCUNR;N5Sa z^3dl-S}D8EIG4JMTFM-5)sz75hwa5Wmv}Op5v(4p444#RF?DNo@#S)=T~iFoi{HTtxAJ1 z#-U?j8!AqQ;(k1oipDby8tj}{gVuHW@ERz3pZ>l9nEv1H6wfZLjA zw|to6^8tXb+5p$66~~E>s^gAVu2Q!-uXrK{YiwxtM8+ZlNOerKyU-Xn6aonN&IDQo zS|Z2To~Ql)2<@yx-wYgQo0bf4eh%^A5Pw`r2|czc0e37p@$2$1{FFw(CThka6ZvDp ztG|#?JbxEbs=f`!LddDj7(Sm4^L>7;ZN{SAbk|IHHz?sIWn=t3-)ejqvG|tArj~NRU1zzG? z%?6w30g9)_C5+c-RL# z&6K_;qIBN3yQh`hu%U20%R1Tr$__ZY0ucnI+>g2x&e~}5w_#cd(ofgaRMLm{8GaGu z=?;)G9|5O6Na#~`G!bVx-;0rUT>tSY(diZ6`wbhNMtqWW8#So7UFyg`lZsr>(!X7yu8a!EcFAg2u9f4iq6otVt#gB(4r~+0^qnkXX&3 zNRbkj3V%Sl(9XNykFT*-VAfw;UCtcY8xHv~*mg&03EtG#6iEU?{G;qbvM`VyaJHS0 zz*x6{`zoT_KQlDdH_IU6rmZdTB_O5x6o`n)U7PbPzqK+P4q7S8ktlBZXT?HtpV|Bm zgLn*58WJ*F4pLm)euY$JtNTbgpcemVGJ45UbvK^^l;bzGQmfX|{?^d*dcfVy%e#!= z-)l#T3Q-M)8Wh+FxUCz5c1qjNuAb&~TMnGtlxgl{g(YkS|AVUwn+ZEI^_b1dZOl2l zoG9$;E=K3-bkmTL!0hRiNQTp7bw6ZQew@Vx{?8T|F3O~WOhR$TIu1wAu}^pFEp-3} z*>0=b?YRvHH?@M2v|y;;oe5%r-8(tS_FaHk{Kl7Y9KrucE<|6^A4&wxX{vE9_=h<> zrMXZRlC-evr^CbfivM2?%{P<3)d|wYPqx?*;$(&&b7{$oTW>=iuime*?rxtO`wn(C z*+?Tu^G5QJL5HIvu)ySNK8QAcVph_TO9p^!+@KlOE)*- zwu2M;Z#8<>cnl2ADJG9U4JHei`?CX}AHa8i@A6#wPj@T|H|=OCc{n&szdfG^;)9jx zPbyj&K_yX(n?+k!D_Mo$qrvz8+GT{XTYGqa8@pu|3E{tJ-Cfkx)c4v?snK!>KK6gGwzFvXeXMFDSfxZISda+%~8T3lFgwK4AV6%q!}v31oO z4GaS;dP`WMu%z&@Y8mp9w)#Lw95CsIr?!l))@ySH42&qkZyj4758OBgp2mZ45II$6 zy!8%Kg!C05r~tz2+OxCc7081~HSa1|y#!EL`uOp6vwIHN#PcH1F_CxP~*Yq8BSGj=8*7EgBGRb zSs7PGGlZBIL5jZb&yUYfr?A_YdiEisC231z1SiCyopyh0=wuI0d>6Kj=aIwOVb<%7 z^YcsFR>bVX$gC+9<`+a_)wp~fZrX>SlF0owI^4hbSmxg4(3*X@4{E>t|-=;y`Mj@H&^X8RyMd z!(ON7$~vH5&Q|_;CtBXGgPX)hz&L#vW2{CXpO%!Ts>+Jy+24>jn>eQR-QU`8hK9wV zA<%j%5CZNG$@Ytratd!p!B!@J^8cdht)rrRhViO7l%C-Ej~z<7K|lx+zwAM3S||%+3*DZb@R>V38UqWdTaqIGVaIf zdA)D((Eh<)#YEf``G*fTc?N1-4SROUKQ2 zW_Y{dv3|clscypbzZz${3-A9#&Xawd{lTH?Vjr&=i9pIqN)N?D(!BHG&@0uR2ni5%ygr+L16p%b3ip%N@z-m^?iRZxoxu+; zmND`#&l>?})$J!=Z2IS4pQCdF0BS)@vZi8d*Wz;XvAEMTrvlyXWgqnpQkOY$KZ?(N zmN}ngZl~|`l))EyPj`}o!-Lom(^fkSxQ*xPL&v)rk&u342==O3^TC%K>*W|Wh#6Yr zV$S=Cfm@3y(pX7=#iTm+KgkMMt-Zb?qOrP%kEh+Qu0YDCVW3MhH!5Xy`im5 zKMKSomN=+KxaI~^0tD=co9Bff&?fmsElR`SrC~P1?8b6HxPlz}hnGv`w zft(gem?Bg?!U$iN#^sYJCcrT|G@?f!c4&Et8jD(T-P?Qj@gIl8QpvSxiM7O^;-npf zafY~HwgSw2oiq82^1~8dRZ3Ot3_Y%;T%zAKE<~4O^(y2@8I;(BNG?!xNf29O-#|*{ zB0Xja;gp5_if|!)D|yOtgKaoo>;j`81p^lw2s1<3m6AM=K$wM=2MqUKCfd`_EL>+bdHLnAO*^b_}a`y8bb&;lhb3Jg8 zK-Bg3oGXRQ5V4>Mn|uoA{-`%dd_lGYNe!WYm+IUr14soqozB{Brz01j^{sRiHeZ5v z06uJ9@K<5tciH8&n38-kp+;)>eF)j3UXvDq{!?izpY?Tg?&&jic!`ByS9inP;xIfv zI_T7XFX9ZX;_6&)$m+|9qBaX zd~w^(?*1Soms8M+>x5MH>(>srY;)4l-}Ri%5O5suuuIgbCqPQ!A)oyg7TyV-iF%$& zOGyo{HY0*)90^}kp64S^eJ7(cK9t0(qQnKOFbg2cW*}AjU7dHWpCBGzc0Cod;4ZAv zC~fk-4#B#Rh#cAuL~c&j9p3scEWlDU7xpgsK(&lCxG1}q_hiU9?Qgz;icmTJ9kfzl zf0`+iVL)%j$(iRqJ#w8|X*rLS@_#L&_CH5_zZjPDK%vEPAyDRfiOSt^IW6+Dkuzt! zZ5yX>z5+LxkaQV`sW6A;;mgzqi#YWD33CH@5)3KJ=?spVDnEdK2zbLff#4Oz3s-Ld zs`t_BOzc0^mUWmh2&8uPG?X>%0|j6UHTmURb8;+xkx~9EL8>-pUX*F0Z^=;-@^G}i z$hl`ACUNmPIkIf7S6x~z%c=btI+*B}iOi3P{SneHhMvcCA-?yNmqDj1 zXlP##I&9O?L~lHA(XMXLuW$SAFn5M~>Ix^D>b%&o<)WnZT}lWfv9HVP$)#^SNWWX@ zS-~MNW8#6kre~c(=v3s;!N_FDjo_+LEjYjf&X^KObW=Z`D#-Ta^>33Fv9R!2=s;bH zTS!;qXMMd(7b^qxQx>NhCJ7IO&jL9XOKc$YCPfMwgn^6@EBrlB{tf?(J{deLFMbz| zYeEnPy80qtXZGE6xfbnXp7I_%7!WkkI1nS zSdO$NCSJa;x&nqZZht=90My=9z?M1;rp#jg zpR_;Q=U^~x-EVr0J!v~i9xOwI3;JXfQv^R1hzgGuKT?OQGQ8C<8m6I{QduQ2{tK*M z*sCzpJN^Mm5JZnw2^y|A#Ud{-MxG+Tat3{3#h~Zm=3VvU6`J$hn!A}#&C*nt#ruE7 zSEICmK+57i;Hc9xnM%w3wEI@LbS~CUV0cu=7*~=bL+s!!oOt3Wa=OuW__0*u7t|Pq zvp+%~F5^dyYTvTI5F$Vb2}8`l;(Xtzr>(?qujKcM9e@0Ay?J?7Su0eTsy}PXZEDlH z?fiLC&Pu7A42>e2oqx74WcId$@LYKX4(A z)V8gn#)O;p6q34iBkkIbTk$ycRfg-nwg;N&1}%|Wi4&sf1bOO9KvKRL^yX#%*>gi@ z1lDn?9mAv?{Q=2pL7L`_}o=O7xc+!S`xN$xu^7J6$Tl^@kr0Q>^v!BS* zb*`Y*xocmpzI^-48wc!zl16eCiBvQy@PGg#dNyYfx}&!s%;CEIFHrSzbx@CU7H?dN zD$wku%mF_e3z#*1mfhFS<3t2K$D8fCs&(Iz41c3Id@LVlZhzv?dOeQiS-&%6PNh%X zt7Nmvj}L_zEH+!Trd{vxW+nX&1nG)$6<=KuGVqI>uh08GCv}=W=J#L1inH8t3JnaZ ztSOizNL6@3|(+oNjin)cet8!L1Gf{MxVq-e4+Kue2C?SnrXMLSp4*pCrjY*W`! zRA{eZ`RNk{XY(CU)c}U8XX*@TM8e%7DCN*^D={#3wpl;{E!YB=+IB`W1dXEPGQL`C zx$R6Y&+C7+08xLw8@w^)mPTpPWZrcRHBQ&S;-{m;b&DVUg)lie!C87)`fK4ho8Wlm z+{pBkPf4|m@3$rl#0p44Q#C|CW?F>!t9N5Ju4a$bH$f3;fk4%&38f{kW=^)2%dYl< z7k^B|Q1}eM)!d^yZr#m+fU0DH=W7Zx6L^yQOWeDJRb?~Z)7%8d=<;j*M z233Q*+A7U_o;S^ExYxp7j@{Y8&+RmZU2gq$#gKfBxZx~)V}b#A_Ci)&F*BvydV6z% z+pE=g-GnR)(w=C^Pa{=AwT56^Z^V{2>Eemh5A_xOPN0;lP zDx$0h9?|#vqERD(qh{>(RZIwD&@!~$yg$;oRAFdACj?_qeHPDrq}A-PrCvR4^Gyc#?p=L zL_-qG!94{6qub%Eo1s|J+4AaDUO}Ycct(ehCwFH9vpM}g*Iiu4JiE_hYaD;qz92qd zZ5RljM}C9rfdQKT_R}`M>kN&R45Fq_AS3%q6<=5tz(JM-W5G3Mttz8Z4*TYlk$?)w z@-Vei^}Al`89wX97G?`HZ`>Vb&ig+^X}#>x-B9FwDX`?{=Vxx+Nd&x0GzbXKpsb0b zkA5N#1f&TxwEa?}sIhEC%5*?4>ORG{Pb}oUv+??DX_@V=sig&rRJb|a0M3Fxu%$dp zMla2F9!ei#1*sGiCP*PSd~emxA|)o$Z}(6D;&2)SFjHjB0h4#c-$(!YOK9?dACwZU zU$uN-0)Rj1u>5`_<^(LO*WKo80I|tOU#G{t1|HOzc|Mjz*j-od^nS(e*wN8ZLj}j( zk{F0bFc#`H3#;rF~ zj>j3E*(Cj+)ZTn7!u!Cwfsud&0sXQgLDyxh)4)u#*n9K%jYP-|b4ZFj3J&pt={lPP z-9T*m{|@6L;Ty*LbG<@)#)N{vs3 z1q~IpfftQSub|x2M*KS@I|wakBtv$QovBOZ8qg_Cb{*SBThx4>u%qIJr`x~h)LH=& ziOg&K7wWc$0ZdK0L32s#3^oyJPZ1!m`YvtjenEB277hMp77SFxx?PR<7q72fE?JN^E!2QN$2e+)f~AW zeP}&JBypyq;9_tOM2*>gUKkfW!see93n!1(TVxHBccJh~?U=08<}Xh97<9pbskPc{b8OO^4#{ChFfy6BXSQSZm8oZ9R$6@@}bFAPgge-FM%0< z92Bo;nH20j#M(fm4jR!E#Yf3yy7`P0NLvs3^9YBfYn!zEO-0>rGw8AF`q+_#_fA>O z_A+z*uEh0c7i0ERs+%j6eZMpP8XQHi)(DZ@S|J_dfYl;i`3 z{;S#;*KS&+qmC!h;zGiqwy2~sDn&4vsL7)OjS0u-+bYV7Pt8~<6ghPG->wxuu98kF zO)JD&$ENE?k8#~C1?N_|vh%s9FE>EL!)z-0 zv$*iPtB6m}YGw?|PdQm!yYodmvXq_aWa+(I5cj)vKEYKrBGP7HN97_|jQhRih!$KM z4Df8Cs+#fHlHJ-Un$9np#+A@-4Mkj@obYhFE;MS^>%WX&&f)PmuKUg|GQpmQ(WN{D zYwJvzf@xKI@JUG~yuFT(jce*kvC!nes;CkUIHRk52v+G>n0SL&UtJb+y&s%Td;i>l ztpa(ym&TjB^7c1R0o29ou9OHrkAUO9ImJzQ@;oERAqT#Yma^8k$|uXmqs<*lk;f&V zPke2(q!sr*>wN>na7&U|9z-p?{%$xP9aIIK6NFVTq|HoM4G+9N{7ROf)d_4G#NV=P>@mfnG6zr zU@@qBxY+Rd>hkQ@?)h=)yy0Q|O|FTEuHhqe8Z74Ya?kQO`^{gFb;dEqnfM!Nx~6k| zsk&;Q_4!5-{d{o2VF*m!q)-8BOu(=ULRRS-~v_4)tS>Iihvx9R<}KlDPADXwW>Sdzs#pPw(2>M=oM~a`Hs%?B_LI&E*(nh zXnPM}XLkP2=jv)==a;(Y?JV%g7Pu8W>xoNm}z#f!)q@6dn$Ql@J zWm=o3OcyF@%r#bYNnM|`wOX%Wd-wshvnu@C@!y=2h7w-w9FF0=IAT)0<=T$U(Q%)u z`SjJs!y*E5c5Fg96yz9q z`^Ev-iGPKpE9DG|vcn{!;l;_a1joMpszi)%CdmugUN!+U{mKkIo^ z=_NP!X(xP0-SGJzz{u58`Pwu@^meY?rip%n(kMm(cjNL$@x46%_uLxA7_`?NsST04 zna`k>yFOII%M6&^dLv)bRGuapidal!geWv7QZa)Jm62KlzMgt;BC;Yrf~qP-9E&;J z+!O+H57ln}R|1H}TytNafY08fUQNp%K(eZ-!=Pf-omfEnljsef*tz|Slyy|vuu{iZ&>>14r!2L&R->>`Y*+ad1mC>Nq zRie?RWM~w{De=jC7YOgQgSdnf9E+GUh8If?k=oy-%I><{dlq+VR4gF8!O#zQzLtt} zd-v|$El~Vd){sggV0ppqd`Rp57h9bxv;V;*w(4{I8!`$sAfH)b2P*_ZiJE#1?i&HL z=x{ob=9@+M2vp=yv8|#SxTuI)Dp9P4_}TUusw7_Syv@F_5imZ8lL4D5I8e8>4SRAC zQBjbKkKd_rb5rlLr*);y%-zmM0b#e}cLDGya|{9uakX{A1*`<%3JF&iF%1lgK<+?s z;(Xppl<)B8`_aXGRU8FOt_$P&Av&Dq^$yV@$D^^^ruIv5@>Us_VzU^@v{Z3PO?!6l zFOQcxapvEYzQIs>M=b1L=9m}ojL0(W&J>OHd#LNwT9rGBycvTIcWWfCP~2A9_SlEJ z+8bdlY1qdb$cu}M5wAnh{d&q%xf)N88{8I5I}JjiL&C1BY7pHKQ>UhKl z1!*Gi*18;{d{{Oe4tuu>?-+2p7~_E14gZ5D7;ZYUpd|xUcW>D8L&l2I#_~DA5LHde@WvbNwMk_|LL!4bw0( z69aqpVF{m)`{~N7%YC=d=;4R8C42YBldPo{Z40W|JL5moso#kT80nue2_-NIb?722 z_x6UvjJ^NG$W7P89sxzUSEL$_+(Owo8gjqWbdC_9erg2-RzDp#oHu*&XKY~Cg|zUX zP3Tdl*Qt|gU2_tiI*qN4qW{jUangQXAtb2BvtptCu&gyb^36&6ZH|CLCNT;B?doK} z*&D}zld!VaPHQ_m-`B?t29xfaZ?A5blRTY_QQQuK9C$5MSU7`}k?@fO*l;o~a=`9(%Gt|~|LE~mRqkeHE!r7! zrSm2`lxHp}wYBj7cse-%x91R6BQ?;~ z)pZ*1y3EV{fybc(D9D4!sN{8RBe#ow32yc`D@}Bm4r4%;T~1Oh_k|&l=jZ328_w<9 zy!XDJ>6-F{aqAZ8ivbu%xjK9xkUqZ;N&QbTI#+A}%m78!VS0>H?_JglpR7N=K0&at zVD6XqPctK;^)%BgD!8#RF%uILKqiNRqN1X_{6|4Iuh-tMQW&@L@`_>kaNrqcFF4$c zHQ(OzV6qg2{Y&@j*d@C~Im-@T#bhK^ys+OXVu{=|Y1DU|L8LrMgX-jb{*;JSJ0O za+}l1LmEuX)x^p96Bpj_4c}T@rOu-+qFFMQh3ThVln4dB#3X}5PK4jpz|6FW>w?B*GaP>j zalz3hDe+uJ`IT1Ry{h>)Kn|w)PG!U&%ciD5je;A5Npfk-ey8oPFu&V%0f9Ll0seR! z9U`-=MDsZG)-mZn-OqQXe@7RjN$Wz+MvQOkqVX64zW7?=F z&;ewhu0xCYS$V9!GU9MNwmfMlS@S>)O3t26gmhq|wqsI!yp>pH1SAJS#hsOVxboAd zx~8=9)G zLtz&G^XS)w^J=#tmMJCsZXi(9Kwx+{Y)aT?`@dX@hG}7eY(-ecZ7~uA2qFf^#Uc%+ z!zY;zPpzfD@M?U%&UJ0KROYMFBhVLfvf7|8LU&!*&aQs#She!rRyn?G|8{zWn2Sbc~#Za{M2;ng@h~q%gRfhpIw)L`rI4=0&zVSpvits)XYv# zKj2#}1f{ws6v{H=Hl=8jvyug3BZ^Pxj>ID{DuOW<007sAf|2o`K>YG^0}clv&2D=& zYhb7yJ;~QtCVCYUxb)-@=M+LR-_hGTfG**4(h7JaEl=0|5D>nuNqvj`rWCe7j~Y0K ziA$CQ&|i31beb=cImF#`e8yzzaFTo282g4auAEAC#pT(84zN^g#L1F}yGxil!~>mG zK3qpcuTuQ!q!o>>pQkiP2me@b`9%JHDt1q>w7b;ji>ZN{+9xv#5UHuJRe&e2R+w+6 zY^e#ni84Hykwzj`1_8>b_*-ruymCpOfz%r< zH*T{Z9Dhu$#3-z}L(3Z1gG%z#B=PNc0p2!6r%K#>Ou3`x#2w#Dk1jh}|^1y&W0<3MoqeK+2#00Q)%^QR~t*% z98@~K#f0W18-mti6n@!)`tyvlgE@yupE)Hs+4ITj7G0$K#OgLbHLQ8V zDz@R*bk>fJuYaXPel$MJ!Mc`2I5}Bo0;c%%h%%S|@LmXRoQZ!&Nr=E#t3ji1a)Hr8 zBH(+L7mRV~iwTL3@5VK=5-;Wf&ZoLbIo|8z=vQiBjSRHOJbt%^0Zuz33Hr?#qXMmu zS(LGfNfkM{tZ<1^H!_e(yYD)-Rmn6aJlU>_p40go>lZ8E0{(0p-d|_|$g6H3SlG?e zGZ#2wHGY$a0MUv}T-wY;Gm%$LYz|{l*L3150Qemy@nkftJDT9gHK%{e@%m@K`+Ith zPOFKzrDbUZfobBNVgWY*XK83?kS%we;v4>gk;TIe2lI3>gT%@;qL;*B?+dCcuv#1Wq|n9n?ukN)020OASd5jV(A;tJ7)p(Z-R$ z3dxRlQOd>T7E#^kNA~_TxTB9c)UcDqs78UC6U1k)6+80$i@}G%dijZ+;?UqM9CA|rr=W>XJqCe z(dYVm&mV3$d8>^dY;QMrJKpTW)^0cBj8l?^QnL_|S$Bz2wdv5!qtLPWLSl?4sIYX| z6o+aKwcW?~*0%0eXU{)n3uUI+;bKOkstJHWR1!P%wHF2~ke>zn7;(*@tcBmdOe|bE zwhy1~cA2Ks4PSe9&;_~kP;?}CojN>S+@LXtL1amuscw6ED_?!#WKik9D$*`Tc;&rS zkrvl0N8zvbh~TVG8}(vHRkFywILjl+&LpN+M}i8x3ZGk+r9E9XOA-2RX7_Td{6p6vSzqw+Q$#uS5F zcSqmtOMen!z`m;1CBnh&Z1;LH6!9VD&1a$n%trGDvLl}kwktOLZx>L6bBc#06WDuW z*mSFi zi!sutv*k?EmZ~HAW1ES)A}(ZGRR}U#Dp+(t<=}yTP@OP~;6y-kbZ-U5HQ>CXM_C+m z#=+1Z9+8LLL=ZuS8iX1Am0gI9t@gBc3BiY_((Zml>g6_b{c33c(v|$89fEXaT^GW03&=HK;lX@A|&?e@3n4pSEv;^}V)20nz(AT|GTp zh1*0#tTaZQi*TTUQS$wh^mENaj@!`l1@XNtk7&_=uTY$+ZH#IeNjQ`Gk7D4d4|s$H zr03=uHn}VSiNSUAN^8JUrLa@Bm>wQ&V4}JN$8WFBbsr~S)8tRFYDmQ5z~ZuaJ}Vm+ zU~qm%!tXN41zYty6{0Al(EI5i@cML_nW-lca*w4e3=J7{n+NpUbj6iTK(h~H?l|jv zUp>*66d$q{4AQJJFebw_$BP^%LmmjM3^e$<9QB4dHccFF=_WO|7huBh4nzpW^bR*A~$bMGNV3k#5z=YSZCN0>#QtkrtqnSrfRG z91@R*$7hwXmkL(@*pX+tW^K!zHTP@rq?kj4LG5zajoC3MBn8Wu4FywCRkkyNF`^pW ziyciCIBTRv353>^@MaO)inyn2w_**AB6+Smzh@2hP)nE4D8t+=jD5jhD1#t_M*@o) zUG&Y|WZ;H~DEn!L$aEkyyZ2Vc5z)+NObD(ux+@uRGjTIW;zpi=KbmeT>Sehn_%a%!MJzt;4^{m zxLo@g73sz=+raze6w7crKmx$KSqs|6VEA#3-VK?`FwzL9jSS7}(1e23)J)-(RG?ZqXnNKYY6d0u2Xk z7jqn9$mcpXsf$5Oj4fae5IH-I0h~6ppe#|*ay*4ry0{{xOgC0ZCx@=+htm0yLXGdm zK9G*b+<7(k3S7v?e`im)Y!`Q2Vj*sQQZ{Uj`5-3d`rqV9@V>R$Vc+1$qU5iG{`9HY^GmjyM6yritWs3p! zi%DIJ|MLSXb4$+`hwJXo&;PUn9_Diaiz6u^p|JULxss(~3c>bc7r^!+4L=8Fa~z$` z0QUB8(3|Gd_0H0tx4-}U+yS&(C_yMAa#64ItP&SzQ(L;epI#S5()Cv|L#;Cx_x!md zUR?okD}q>Bd@@)ATE3`s^&CdLY$9ANYb}+eLLjK@JGhdKQIi1*HIjoM^N+#{SetyU zy>nE}1vu1-)aG6;v~VD7*uPMx~5yPS?RW7ip(0857M@=#<+x{6`Z_SptlUhp+|+Z!|8P4?n`YqyS9&y7@=!8 z!)-K+*#_6TTzPmVaI&~So;7)J4X3)Dps?d(X&M5jbknRtd2I}NE^HNlYMaCrNL=)* zEF-B%<^rKlGRdXw{Uhpd!w_OIixN%3K~~1);3ukbj};p)5Nox1J43{2RaIxyGk?E3 zF0c#};x}i;YD`iLLlRG*{gYtcFh79x4ttbDQmi4*{9xv%vcK&HneS?D5@omt8%F z)<^uD44z*7WoNcsEt3y#1!Nln@!-|#;Jf3ez;KWLzx{mw1^N8TY-bNulrlC$-wZa_ zH}M~--5eZ5rtvLeEmw~W35K9x;?W`*)#XXp{-Unmy%^bAgK_*k}EqG}q&LK?|0w+KuD8iE#RQkIv)J?fDq6ekKQdH`RTH$BhKLMsJ9~#A-13 z3tF`6eqEpKg@fMpym_$zvMs59P-7EXI2({gd{0*Zf7@rgrme#r2`=_dY@vmSVFF_& z-Z&0c)-xaz>iA~GkwsG$Aft5r`%wX~-JhO(F~QO9x0^d1la!*rmX{Zom;F0xZZ~^B z2?+@S>=Ew-y~K0?L(6ZNA>%W%x=b)QEE*{pGhyAXZ3pYIiT;={&v|X9W)|jM4R2>@!qCWSM5V>U?=w=|CJKlXqLLF6LQpYPI zVwjbio0%)(v?=O%T6c1iLm}l&4HW3%lJ;(e8s8u9Y$mwLgQ?2&+`g;J1 z6<;$DYi~7Sr`x*Jw&>cNqlFA$D2M$FAO8FVnxE_Y?$;+kOO-o*Jm#~0nM3+|Ww}uP z*4`9dRGbl2CL2vWV%o?2>oEB3D17401=I0v*VoXtzG$-G)kf>2eXp$}J9mpk7Bdsd zV%9iDOkH{L6bK||Um_h1cieOJ%YN7Mqmsb&uhPrCuLuaD$o}yRzZj%YAsidL%?A_} z{ueuYs*YA&&ke&HFK5T&GDKW(JK^>$?~|@1lB?owNJB^2(Dg4J{?m`hpNPj)n%m{P8?_KSNg|3Y9*H)n3kT}-YBxcbs~OVK>>U+DT&aS1OB_yo>$s+zV2YBMA-6N8t?maqGGRYO#oWFvx3oBK(W&dbMN(WFJp_3iF2%&Y7t zS4cZf3!<6F_OyTV##x$FG?~VzK*N}j#Y{eB-etjY%!#vN;E-~Hjec1T#1{^T+f{k^ zCEQ)9O%oiEt^+zcr2y}>nI7p@g3f=(X*D{nQ}bf_Obow<2oz*(4KQM33(1leGw4-z zH)WN$=pSZ za0t){vQfMUPy}L#DAmiXT_8F-oIjGbt44zTWFvgS zc3u=oBlBj-u4HD%3{~?m9?@@_z{sLla7LcCNHiH6Bx=zx;{i{pi(m!94@*RqFQRm! zJ5Fk}xDd;?FY-~ch7I_Ay3J|3PUhgQnagR(;h2tzt9V;bX7guccFb9o8jK#7cCKk} zUj|@T&31xyol-^@*qlRZfZF`WJ7=8EFlIz&$7++CPXq zTxN^NC_2#J1PZupANt+LVQzySfB)vso#(8auGiU~zNofd^#Z(secsLgIC<7A93lo_ zuI=LbytRUXc#pmx?u`8S1R9lQV>nt2ID9jS;rUClN=m~e&2|4O!E{J)a7+%K%55LrjxDv zIeM2~cLwB{lP`B~Hh`Kr;C}Jv%l-1{i=1}sXXgXFRMWa6D<)}`0pJ9>tW@!AIIjRz z9LsZ(XXjzZWpk);nF={3cAYdq=78CViWel_wP3%;bU>9mP9N5^sB2t|TYwT9tJA#U zcMAN@?62V%fHV67fN}}gZy!`uRV^;-GxtwWH#d5@_l3{P5`w;xT{r*id~V2Xf6zWX zpALA5HoWWG4<_?s({lkpWj??P{z^YV@cZ|iIx=}>u09YxmNH{x(1};XM6#;HxenCO?ES9*qn8_(1=X6SOaw2&wg}&vl`RI8Hj#cSQtwTD7 zYTW5#d2;S}>j7F@^^G47@`!8tNL~)56m376d>FY5s?;1Z1R4XOjmg@Hrw@F;AcTsT zh#4zUM@g3YyNx>QP)N}CPW1J~fKRFOVor|C36UzQpx5*{9D@X|sG93gnJ*A59o%R% z&>gQALpA~ijb5NwQT9{sB9)P-)t3-!qV_l(5iy}au%rLBGW%>Y=^1c&D4piGyh__z znr0uetw_V&TQe~)Yp=}2Ds=8Pq?ut5Go56Re#{~{qIJ7>SR}7b-rEb8l8XCS9fP4R zcR71S%a>R_UgBz>?i+W=zod|)N`+~xTpeBnF%80nkYmFki`rGZ@5g0&&g03(*%t;su?bc1g;<+)>#5JwEDdY_ z{F)Tx7HmI#87&Oob9nu>uD^b%kGJ!u;b&7*Gmf`LN=_4g#9SPPcCwhI+wz5-aMDuS zK^E$}qt?sjm6Oh=iwfbF^LO0V*H|^VcA^reOrYLOxQw#T8TUndG9S7pN|1mj!5qtb%X}Pbr{*-$9diH2x z*2j(C@z4Q+3tVZf!HsT%a zEPgTeNrN8bhHD;v{c{u^4Rf@Ayw-Z$&^LG7QkR!CX2#v56gIv{K{i9=`aqKr@b^TI zjz0UR{UuPT*dloUe7P|0 z_s2&>G%jK!V2jxv<4h8L+~q?2cGc!pc{&&=rF@q##X}1Z$&xm14DN9q+r990ekd_~ z8J?whlj`2=cQ2P~SZ_8e*ZXqonE;@TfU);0Dtzw!gyqfY`gzaTbxp@r)1o$f9d*>7 z8FvG9ZRRu*tw>f%6K-;^B9xFsAG;p(lUSwmgkvq?Y!baTH^5=)3Je;~&Xna2u|*L< zk$J&;|L7>b*Ow^#tsH$%$!oy1R2fB z%^C2gwq~eWBSZdu!9m{-gTZbOx*yx$cpPD!yLa`LJC5&Oy33{Bhf+^p>a#czOSOJZ zBqro*^v#3)-9&ViDZ_iQ#wIW!izTo#Si<)eYwhg63+@_ ztlp+OW`mk-o9Jg$u>9hIH3<-?r>nTO3i5IA0s1+VbnlD$xOfR$EVR}-L{U}L)&w+K z{K$l+0$z3uUiZ-I5D^XKAmAL?h?JI#6biy5_MGg8|VeJStMCmMS@g^ZC4joLm7LS%f6SbbA@~=uA{_g`mLim}2B0@*e|jwp+i2 zh&kdVaB84y*ojRU5lvK7&>bH0OI=Ox!cXDGWu6-~9($_mbe4?o#?5aAwEIVv;Wk`j zcWqjMD+xkAq_}RYz2cSO`ETT6_LJvFo+ODGBg*yWFDs7J0TdF=5XX3E-MK4aw3wrctz#>4$DRxH>~Yy^LX3B>ZHN&PF_!M{&D^BW&gGX2Md`@ zCBM+m#-)pWhDXC{Y!6lU3w1T54H~BkC4)$YysxpQx1KQbl9aJHS7JbMnJX8K=03VQ zvre+A0ar#un1E3KmY~|(Do*k=%X=`93M>k_Kg|pazl`<eAG>^;5mqOPbJcn}K0CrE}4@EH`wv8K1z{z}hs1flP zrFz}YKJ}jNe*ODKES}$I9$zGzjXJJi#N7a@L5FwRxj&Usks5H!U|7Y18%!3#kPl&E zM2p{fC8vi(^vhy*^2wOqT6N-r;x$E)gR3u6R9%Zr00Su(Oy3pAZvu2&71iD=0I(=a zwitpV5cfVz0w;}R*qJyy$>vR&QC+-Y;x+^P`>cSiAcRN9maPZdn&++D*ZVh%ReHB3 z+}qc%*NgYvEuZOVQ?{nsF&u;nlkj9FgfUUxib6|%NJulnV}Bn(oOmmlKpGdiUQx2fJ`5i>MlGsjDUjSk8)8*@?qtvo+?oXr;@kX7~2&jlMHq6ce)#My?J zjbhA8doloK>VkXQA*C#EW zR=06CH+$~_{(ed`@UUKjqF`c44G%>XV|$gmF-yhSO5@CkyJJA*eIr4vGPMF*j8p@l z<=d3)VF@RCh&w&!-;lf|a#6DjaTMYoNZuDYv{kAo77-Twc+=i45LWE`% zwe1y_Vq5#V?3x_ChjK9v(U^?jiqFdV|oC zC)abd9P8wh0zSb^Q**htzAlkoL7$qjzXAV-*Hp8@aNLG}(PPQGfGZr&HNQum?(=U- zQp1`7%(%5L)S4|qX&k{=#(FZcB;YD6@`67O)g!0F-1^<8Ny-)@h# zCByn8mRKf>AD;lIr^!R2;K4@`*#`pH?}+V3?j8LOPkFew79=l$3c6#UoXH26fVFHP zSsm*(d#urwX1jRPCyiS)#2wOjnl3wUOB29hQ6&&k^32B}fyB(f6YLk|9bhM=4hgc88a*b6GAh7@ zZGw}@H8niJs>Yxz=$_fy19Vu}SiE^b#3ZCgC#3M*UIJ(CFccvd zQltCCnAo2jyM35oS(v{X&PFBpv$^vMe1RxI-?xQ z{;+I0;llnVJ!2pIoH9B2Q-Lli%HrC?wGC_TQ-rr*^VWbq45kuh%JNudYhdH=yyj1M z`4Y~|*PjQ4I>9vbG)4$Al$c=|4T}j4b()sx@>C`+d{ExMl&_>UA7;8Z$Col)=cR*vCY){1atqq9eAxM(5`b_@PIGe`y^)xR5vObO#pZPluqM-?0S zB!m*IZs;KV43nc_GbYC|WfL1@MQCHXe7mtP_8ZG*CwIQ#g=xOTc zl_^OE_;kf!U?2&vqw(&QJEE=6^Ax33P#^4Ek8Q_|Av_ z01LDMu*jsvfbFOfIUckgIjX#Tvq1e}=zB~hA!Be&@ZXZkF-Cbp(kNNyg%3r{ zx8?5*n)%{k)v~{T+$Z+TK}?Vd_P?9yJg>_kBJ5+Xp< zL81GRj-43rD8e-LCPiBiDPGHrOt7?y2sSg9gbP{#2^^(=d`EB_B0R(eZ4ev{Gm+FE zf^>TZ!$g;o{kn1V=JuP3IG=UQTv=H zLVvAeSZcn25`E7+dEOb)94bm)Fv-@|&PATCmKgUfU*Fx9hF4sC|6~p_gtdJz>TdgwE4vy&Sd`D%XhCbbk$?! zS(Sl{mc&eljrF4r0X~n^xV^#8b*C>W+04|%wl*49`(vapPP5S`_`YvXZ;kq07gdJW zL#B0(W=(<}d!SItxKdH4!QMf}0y|+lzUD72J+yUtW~maeJzBImTzu!YjyUDKs8B8U| zA9Koq{4hwQ%uxBCIweS0_cB@y#hoo{BR-ejuf-g~mPCAx_EY8Y-snroY`uIgVO=Cj z*Hk{>L$M%{tf7^x;Z6OGGC>mAzhT_Hmocq5V4o4DfWg2{twl@<`)mk5Zm`C^8K0C! zIJl9om-7imVPNpX!s-0u=C9dzf{%ke<|lx$e2%X2Pc9FMyZm|DxYsUD_WixS-njSO zN`voNCD-QyINGqNIc2bLycAV<6s84v4;CmuD!zacXTh}QWM6H8B>ObFSu2avR<}TT zq1n-_SzEzLVJJ9We5MQYOQ*D-@!TWJ%KdPa#NaoN*Rae(0OvAZypyiLz4iDU{#Z+lXso^zNUb&U@GXG}sMF=9o+C4qX3Et?v6 z|6=8xC4xUtsH!?j9BQ?d#%i{G#l05^x-JmpVG-aFNd5;cbmWfDG6@xd&E@aq?~uzh zHlpUwF2Ls*296Hzo0#D2VjTeMSz}7{XKRt7qa6fUTy`boXCVB<)dD5L7F5$1QT6bk zcw0`11{2~r#%DMGwqCTSaW60OwJl=*Am#VTUjznAZaZZ_FJK5gSqLIU-UVS(IiC1! zC^O3;m)?3GdE9McU~6&HbL47$R)>({;3Hw86!;U397R!mhCcJkDtMTZ_v6>#X`7+T zzPhoDS&tuAGX*NOj;s?v-A_*fNflUXsH6K(nJ+Jqvj+y~@$|@e0Wo1zt=HNX`)PwyqP>h|VF<7qMMQ9?qZ-f>v5z>)ogr0#bKa!BZ% z^%{0cKRm%uNQV7)A`%z~*dmP>jJo+-eHe!8`6f|0A#^LS=L-)iT2Q`v@w_2(ZNYp^ zwzW-m-F3+Q zFQY86s;_-6oMUo@3OQ682?gW&m;vLR`&e${_Jjt09XrTRObk|u`{HG=>fYxwYQ!|StcvcOZT*vKS^J6un_e=5z-SxHZZhg z;N^^~`bhdF@q5tM`GtiCB2OFOIeG?kneR@PvWK7* z>h@nbC?6j;;v{c>oD7r?qkI;S6sc8_5&bRPzpfpnkloArrGo$I)79Et5@q&->Cw}h z(^!#U-TJ5OU$>PA9H`U$ii0J#6z*|L;?n`^p+2fY%+Uu#tKz6FN`RaLhW9Zpa z_6p$$~KJ_Wu3bxx)M&XBqwL4VFY1Qc71Op zE}piR;Yy82M^{aDPgqDiduSzEa%$>L>{7+UDti1x=+)%9YTm~qFln6tiHczndpmft z#U_KTK~%=hb1;(#hl=BJM)b7851!XQG8_arpK&eZ52T)YHC(poA>cJx+6}Se^s{Cxgd#bYNO~b zpJ}l1`kv#NL#Smsd_@fX))`53G&5s$GK7lXPU1AZ*pR9AcMG7ZKC)Kalob=nDrn>S zaaVh$OZv_27YD7w7JTkg#wN__yb#OgpvC-vVWjQ5WALFywZyF?QJC4R3tI{bTbl0U zChP0_cC=`TAZ$03{-vbCn&}gQTJ#TAZlYv=2240EJ2a4-5)3L~c44Cs$A9WF0;6b$ zF`9_ewm1KpN#*I$X7;FxxQ0b4UCh+u`{l*Eel>ks%SL!y7*L+5`tw3R174Y=~YJ(0cc+P)S(;+7U~G7)UKIHRLrfe8r)H0xaa z@`EnHeL1x6vE{7P4CBEu;j!R2OqjS%fBxKKi_5rhWa2I0nObiz;2zx%(PqI*lPW(6 z)4=4y(IRoSS$eL^el}O!yH!c1fBxBVKLaGW&Az3KKvA;x04&JCSM?Sk-J!eOK0E)X zy^~?>inh1* zC)6!qhty}6TJWLd)?ykZ0tnuVR$VD9|d6gy>fOu+yG^- zp7S?8K&1?9eRRA$@1cG&O3`+@=)>1h)zkAech771E+b9*^!Rw%zGs7b9T($uKMG_a zEAFZ{Yho0~9D)TpYeXqfBlZM?j$v%Zxj)9W}~4pEb$I<{F% z7uxzftu>t-q}ASUw`g1q2qi1^>FTRPWT-ZjSg;c)N+P!cSB?Grg50DeITx6YcTk&C zilIij&m{K3_q8kmMh}ZeFyb^^$;4@!>sk0&YFnSqya$%{Mzbt3@npDzs6YB1SMr|z z$lz$TxiyR{gO24SCc}K?0SU>>+2OPh!t2{%`14`5v7^Y0UChBOS!^-At?hde z)k$}~CE-${O{)Ezi2;i=$D*}8PbfJWKp54NDxGJS_#J)v!y>*ycC-28XdhrcDOBXO zLCJTsaw29^?eB3Y*>8qqj&My)#qUXd0Kx4Oz!38W&S7gEWYp8Mq3EdS308RP@~llb z{(kd4?Qostze7Vq+pcX+PEOXVbFb8>+XX&Wp-%EI^$WU{t5qeagvUa9HEgRq1=0^N zSY%pz^k4&ja_czU->KkQ*nA56kLz8Lj*`Xo9bAL$BIt@41q8v)+XOHLu>!GXU;Qpg zKA$T)S4=xh^T@TwNuRFHx)10yt$0Iq{!96G*fL^iSO!A4`lBkZ#sqBvVOlFMuMv*p z`cJDx6vSWqtF&a)oycU7QAw(!#dogw-3}Z{vhEs`-qbY4jRAfXurgHRIj~etQls1I zjsg*aTh1)cY-%TL|k^0+(oN)J$q|*yF{gvd;e45{#WHzar@lXWy`;+ zXV0$r+DUw)z466PZz8>?{CQ!dReQzwXADjV`_Qz)#6=`l`LGj!EAqP5%co((`%i|D zK#=#eKPREkCCw%8nq_%7xVhP_I358Gta`nqnvzXlWI!SvFqjU|@vC3m$uXYi}9wAYTGOlVlm%od;p164f9~BU!M=Q zwXL|`9D5o&aWxoU6bZaF0qpQ1OG_Yf<7@2Y^$fU9dgo3&1EaSTH0?M3PLEq0tH=H@ zS9y3}@I19IwD!t>^zkv?W-{6KdgCA;bjF_ zD2YBt(^I=#(Z>dV(s#ljguw+n&}h7Ka{g7BX_mjeDa>!JM+t?y;r}|~?=bBzg+BdB z$EfXK@!)Fj2K@#XNwSbGLoc*Fk~Vhm*Ji|7B(^r%$XD+b)}5)B7g1h6S?3$}=|xMe zqS^7(*(m|urDfB?k%9*n4libwe)Y%n%kx+U zfF*ywnHx;a*4P-YJmwEF2yZ%Fya^@}e5!i8sG#QL6FBRwmr993$BL^+guv>#n>Wn8 zpSB+rqTz?hZ=lT!m`Eo6WkI51nyHj-$to;yd-~aSiO)`dd~jZBGzo!Rmuf|>s4n@d zn?D>Qi-pTWh?S@4)$u&S%G0}L-?#CBpKwJPUNV^Q9m+e5NfAJICv?YY%Uv+e1F%E9_>efEW`wp z@QG#24@4X5bo^;MiFl>M@=WE9@fYV49jDL3%|3S7e;0aPN7X*%Z>sk2K{Y-eFBnIV zxiNB-94U7Sz9aR4I9%-5xcFm%_pvY;d+wS8I}SsdMTxNRmJCyq@6i&dtrJ)a<+G;R ztiDrI{WXBWq|c#jU;M9tTj<*DyaRuWDin4+)ha8 zqw;txVYh_xFF~iZ62_rW4gzb(g$zdw7%VUWR+th*sasGE7t-RWqW8^>4L^58kdw(- z^J%m1XAEUhlJbw)(r=!3$K$4!(Son{PCV8X%>5q2oc(g6E?p$r4lLxgfnp<}NcdRr zQelJUQFuXF%Ju}-i}e=+P0Pw()GAvJPkgUK&(b*>7|7%!nZqB4d2YS3!3ETL#fB9R zRc~)kiUKd&!T7r8wrdY_fbZS60O=@WsoneOKe%8pqZe7Fn3|6L4uH9UE-zbE@KY$n zD+m0JtC>V1^)T=0kNOWaUe&z&3;J2LtgvvGXzd=6MaN^vL|I0R0y|s zab!MQ>RI?N)#b3HC||iGPY+0i@SZ(C_`X78*orM=$1&OeF{6BH8zc`nPlCmc><#b# zRP&za{!H;2F9sdXWBSI35emZ}?>>qW+$m99&Ek#c=VO-O6!#zo6 zr-pj2+~+>7#e(Ff?!7_b95=-V;ZYd;Cl(gC^&s^KEbNAo86m{*V5czsdWPtC$IF`! zhP&m2J^~XWYWWGnW#-m+Jnvh1-lf8kB}V)kX3tlZiT%kY6Csw*PvZHdU%e(dq9^e< zYNRzHuG~^#wq9mbnwGs+oZdjfpVEu4&!6pqA0}5w1YUs#n@s341ds5jpjIerQhkl- z+kHb{jm)32vJOvuuj*LYox>lNl(g`)!Dqx;Msb-+{}}>RB1NTfK4A#K z6FisxT|@!P4GE1;^MhCErX&-Imtd0ay8|xxk_5ppNy^BgU1Nj;7$BwI=u9PgFS-{w z9ix|-=(%X_26^=6kixc?Pci(L^O>#{Ej!eL-o`hFnVG!5(tkyp_>w0KWjN1W@;|xQ zF4V80bp9&8iieK}g94a0K1*X_5^%^MT}7C{{bJwBK_XqOx9?eQb_6uY zuQ^Dsp1IW}v>#1pzEWC(6pW_ctX$)y`!QgiS*XynwPi@{h zPnDkI&QR^EQ-IAxGbbiOG%{ME$|L>Fmu3{xj|#a+SNSuArD;J}TKb1{U~2x+_qpb% zvb7O7V9ws!z^%&r&2!Cj?d7hifkWqZmkz)=cKf%tKdDs=(>5K8x%GrMDBw?uTBgw> zW4|x%W(o3$)6wMJA(mxWgvSV*eD6(v?=aDO&^TA}6MxR7KJ=m7(#Fm0Zp_g8U#{c$ z%XG(M+4%E~**MQpIW#;1n5D6EdOeVGt2LSTJv1M%hE~wjIqc`jN$bqFz1EP#2%5`$ zQfu29w)MU_TYcS?RZ!=;E1yZu_~v+$Pp>eV;5p zzO7SN0(bP4oJlji`f39iO+;0Kn2AEX8R_$UqpoBjo^k|;ST$9xLeX@ZjIs26K84%Y z7Uo|9iXVNIjVxtPqWM4dh_;w54W3%-q{(S%ekL!H;*w2H65Yti|HA>a$t_Q%A6jU2 z+KkFb|Cr5s3-a1uY#vM(k$Ucoo7TCmIS=UTz3Jx{DcCl3Dl6wV?74UP33Wyy-|^c}AVPmP|<#6>E zr{Cx(@k|K<5GM1HIfc2(e5SvimRbc4^yBl&U?=B-M5J73gdgIq>76oQlkMx>|K$~U zGd|zFYws`~ia(s!0j65d3PRsWh4H=-yT^}-1x?+>;{io0Z422y3yEf>jgE3ouwe8%cn!E|1Hkvv|p+2oyJyDMXg)POAzIn_3&?SWsi= z4dU_r9cx)(QGR_P9}mmK3Obd*RiuiRRys2BAcU(7T?>Q>!9(#EgAjnzxDS}9G43PBD$eNg6Iv4X_qlL#E*6Qgo5k@?n&I)@S`upimbcu5|!jOtDP z4NCA_lSMaBq$qc%$!I<}FC?nbq|-=n#^uj~2KM<3$;IwuM=q4G=oCL#R@9C0P&fsF z21U3iU=KPa6A!c<+iQ%xoIsC~o)S;BX;wO-nQEl>GB|;beqsJ%;gKAs5|Zx|uVBXm z(6?$i4B)@=BxwCPzE{qvuQPksi%Bw})!zhVD+`(1{Z;58M<@TG_Q#>UH6*DB_w$|* zFA@e>WJ5}Yn!Tlc^_O&k$~%(5#p#$lMj}7nn4|q$; z*(3L9XO|aieXCuqo{}MIYCrQ6u_-3WkYklKcT+A;bKrcef2=b`t`B}E62YY)$#wSg zqd{OMvpXi{5)(|a)2bL?uusD1FnC-YJLzkO%QNb+%vwAjoj!u{cU&Bn0eR)k3}B}5 z(fg>Zq2cDm_rBe1j=#>;3!cto&^X?zv=_(6uUG#wUJ`P7O-VTt!%cN7E0uoHJSZ8w>&;preD(1VxKN)uj5|eJ@?W-q@7$@`Ewx4}(4`Ot#PF=t4VgLUH zd55@alJYk>-59ys3Pp!25}vTIm6er(3oL!v^{`lqA0rfDQp2j6k_FRaTt*K>+Z z-(mz>JdWln0M1K=!2FuH6fICATLa96`#Qm=>$~mCJIOKDVm`b3(qIpGzc4Nu+t z8{yYsW_3hVoa7Cz1&u?d%X7>Hb}p`J0EGY?Bd1v1mh0_{i-5BypV)9C26(KvISytM z!O}&2@|n=E$j0HT`snuzn%DPRF#y!$pYQ9Q?<)^KrKL3h|IL0L3jOH59d~=60^F`k z6BGpUv}xa?7{SuR$YsM&bblbz>8lkNiRu+EBOe`LV_&Kl^7JXE`%a)&NXct0wy20o z83bf8={2hLeE@L5=bfX+YwKL~dD znCkD%3;7IlDOu_JmRJ}vwQmQ(!YaVsE9W|z&VIh%d%Nv7v{lrmH+d$8k(Ca~G(vO$ zt*2sk<)r@}5t%b}F-wXIfgs18>a-Ku$D~)6HAe=8XLKT4&{Nz>hnriIe|%I50Q-xH07Y`-)cBtN zVC^B{NB5DP6gb14NWzAL=P?p3&}R_nJ%{ZHQOt`M&dp7f)9HTN%Bs^?v+R}|rg2GQ zL5^p+RF+aAA|U}zAJ${LSp^4iJQIanUkJxXTi%?LMMBvuAFr#BBKCL3E7!e(Gvi#I zrcXpgjakEA6Xs}3lml>S@P2iQH&j%NDDqZZEU*Kb*_%DR^V{TPZCTmrOV+jfxu*7q z{Dk)p?Y_7zp2LYi#>ztm*h0{`d#z^6Dy?un79vXgSS{q1wtr>fX&1UvllicPn^RYJm9oIq7Si_OPNxRcNWS?$O~TNT?cjT3 z=Vf4+V<#kJRSy=mGh|Z+o&=t2Vpd)6N>j#(&f1@{isty>wxRWMB(%xmv9mac?;?-E z+{iL+O zo@!uUS@CArl`T9O2{zA&1T~`}HCC9PJU~F=h@angaD`@7XzBjBx?MWea=y!SU3OV3 zZIuW?%$&7i(?SCE6YOPRl1q0v&TFGnSukRdaBr5M7PJ~2WsvDx<~o#|_vXd$-OVJl zx}2)p-=;zJ-uw?wcaI_(8ykUkmMGwjljLtC;w;y@>NN_k$+21#by=t9Dhs2)<`D~( z&Y_+WVzuUdOe0;KgUz4gyVzDyE9<&-yN^CxtuJHd}+4Y;ifaI|2JsNqAXM4T%$g^ z;~)}NQ^TCNKj9A=SIf)mDN_@inr%BHIdgl`Fw4B5;~&k+$^t_4Dx`1IF@S(Bb8Nmq zHlcXlNZKQ5i!BxZVxN%KR9l`ZOtpXjdB`QOt&cS=5!^`C7Vz)m{z}M zV8zj2RODo5gNdh{n(MWv4+_hbk_m^OBa};29$il*pok|o<`4-`Ee5LQx}cI&6-N3zMA9L;|T-1RPh~AO$|4MV6s8%7|rY zLoNFH~O7$du?EJr3 z0C*@9&%D4?$6ygEPvKh^p_w-m^pDk1BOK}5&$qJ>A{zoiLU-q+>ZT$ni=T3i!A4OK zDFH|@$s%JFQRdoO8@kk>s1~8m&hyECk}w7y2GcJ;|15YY$-0(1qv5t1(dSq$8=iVT zcY3=XUUE<$oribQ7L`x~Uu&Y9)Y)gqwm7}be3BcVk?U@%Uq#K$QISdbq^B(V;dssK z;J<)$k-!VS;Pb{mAU)A>tSJ&Ut-ycMcGjZsU8Jo;O9HW+(v#`WGP4$lte$yHltEj^ z5l-GZp!kpLUUJ;4x3TC@bcK;Aq$D6R!M{r=4|XF@=0W#!9zav~;IN)=_qds8X_#Mg zJ!$Ygm-KypJ=FgH3h3g^rm#}w!#kX+KXzGCL-L83_;Z@3x87?S4B=k10{OimSJDRzI z3s}(Q5#e_%gHk?xBzPPde`bdW5iF{s3URz=2=ufd>Lydym(@pRixbb0)=+&PEWU}H zKpW7z6i&hdXMF>o(ur#+m1Ci-2KX5iIH==06@AnP~D4GoK^q_VqLe$rIHR<}-L5_Om(LdPZF| zdYz~~+1J=lT>;ntSxV-TSYi1i8MQPWn1l?6$3Gef+tfhdMr8;@l7{^D{4v*&{9s{y zi_1Ls=B(E-l^bF$Kv+%{q+XY&r%yI39j|)^_Hsro<_--vsC#3+tb=_8=DU?En?vlp9hXVIt>@iMZDjQgb!99th9-VP$*!D-~;Dim%@3_I+&CdPUoWC&cg=ueBd*UjNo&O21LX$J`|1Z zr}~PF+ifIk`Q$eEw9!3V6lK9Kiqt55WCVvGf1U3A2Xl`SW@xuhmo@@3Ri`NE_;k`l z>JrZt-Enoc1_!b-AD-nJewnZ}B0&`Pi>{b#C%wkNuw83$|A$lN*>c;&F}vcn1(b8>vzwl6lK|5r z?wv1J_6QL7$@V!d8Q?Xo&vxl2BF5rE5}HfnVhJOFKNu7P`GH3#C>lv$>WyC0PFR~x zR+_hD^;#|hP`?zHmGM5_VO=DuC^R2cX2(RncRe}OZnPrw3(Ji-D;rWS8~SQEr&)mO zH@)})2S=J5BHT|<5;Rfoa#9z=cPS;1B6u~*ichZ|OH-VmD3;$)srnfd`_EK3c1{z_ z)^9amy-`w>Ra#Z{)_FsEpTt*>8r*I6ddcYPG{Rs|Fg3MY>jeZ#Mg!kD~I) z*x1+r%7ZK5+8;KdR)4r-J#P_nDKt%L`oWx{W zWBiky0=azl97f4+TRXcCn3Um1)c#=;gf1BV3mRrHao*yZYULdJ>T&0tcur_Z1YTO< z_3!pUB-Ni9L1N{x-Z2?|1nZsV>K5_3R7V!Hsc@m>EGYa2ll`OZf*+SQ47ux-ww~w* zbKwxh66tkMX`Oq^?a&y58z@noK=5MNQn5jQ<31tB`#0wqO-38yzB>uzT7K2vn_s^_ z*vt9~)eI$z8u%iGK&z)oa-?i!1tyexpq0Q+BbblN$LxWmTV&31urcw>@WS?h!0>)G zQcv7=O5vZeB$hs|C?AmORa*&LdaA&n?1=1}UC#9uW<(=hB~7|~<&Mt4#>M_cDa*Ke zjNi!jHmG*@I#Riknf*GWHwtjk)fn#Eo?0Rse)FNmhK>4Vh>Y(3P*y4WcIzB-vfQY1 z#C?UIZ~05co*TzlBrgsowqY8GZw1Gi`x7Qec!%9c)haya$~~k=)V_!;Wv^qy`1=n9 z02(SV2BI1_2%a1s&Nyjc4&12AlW99rc=StW=MP{!X6NMb~yLuZl}m2Xt|#_J$PJvoyBwCDVaWO;OIpYe2xQ(B(-@I9K^id%1m)&D#m zHhBRs9j`u^;{O*a`!87refO_+ji)YcSW2Zt5q|cKO zZbZ^2K7N&!7MG7t5kLeI+RUTRl?Lx+sIK1Mn+s&$d9fQwJnb^112!sKpG_R!TTT90 zfO`n6Nc?v=U00l;j^q4$?j=`hx^AmP<5`>?42||ROvh%dIy$_WTepNvMjn}%qIe_6 z{`MevL`dPB>c6ywkUI2i)tV{y=q|D7#1Smb@N&?%QTEg-T=KG;QwH9jFO%H}KXn}= zE|~xo^-ehZcp(vy>A!4Ae_Yt8pIt4H*zD~Q{USzarYvf@H%LBIdJ$2Qa%qnj%KHyK zg*n#s+BSkd8>>3}DEZ^L#Fjz>$&_q7ALGBsDXiS-Y;#Rey-ZxUL#OP zBsXF~5cTC8R5TU-=ErmRtn`s0t% z^4x5b8L*B7Lo!?>UEZJ#@|~|A_6Ni(B$n4% zkqjd=Ov5t5P>uN0U4glUqY>SV+}&#MjtnUq7V7~$M zS&Zi_)({~n%giWI^X%LH3{L2;0QRlL6B1gh55$Z1(~7>Y`+4uYFMj%Z13uK(+FaiO z-nEDQ!`Y_Qht9#(%!=tkvf)Hh0<&<6>hwX1p<`l@yt+KIC^p9Ms9UwDp(&SCivq>R z)cFScP-fp~!Z=I<_11aXq|e`Tty)a;SypTGFO>FBf$X;J?980kWy4WdbQlop&{r5Z z9?M#3DdWw|9zoJt>7@#?hXk3ZP1!e==)Q}=e|-GU82?50uNw=J=iQ2{;L9k_;LIqG z51A*eo{8u`J_D6x0()jy_4lCj&WWKb79F5ymSCT&azuJ#A=C&X(KLhAi=FJ-@YgxY z3fbH@NogzLQT~6A?$fdFU;D89!YtN4If2Y0?Wr8fy=lED`8MuuT!5hR@j`)m(LAPoI-I%PjSk2G{Z91=jYP3SXd`B;0W9!#cQkMf$vc0|2jqdpRAc`@Js6 zag(+vE_QV6M}k5DVbENhkTEDUXwbR-Y=5sj)440&q#2-qSxhIlo<2S_K--`2Y`4&D z-Tsr(_`Xd5%iN6Z_wvnF@&qA3pD;-VLHaz1?n!n{5kVJMd`yEZA2)(9qb`Uhk&Wu~ zh}&+h?G9l7A4H5)alOn;7uMGUEN#t^_9{?@^5=g z>>+&THRDbhnro;xl-G&(j#(gQAy*M8QV-M@@7{)BgUAVRYV9p(Rs09OaxE@3_(Cxz zu%rkWQ!c-}i|oYou*y_H+h;t)XDX*0oAk)g&wxi=Hs*p~^fWAzkFe zPLZB7aa@-TRKRvG?j)=Z-!}_b^pkEdyOb0&?hNOZkdV^6Bol~WfWyjFl_HpF9OJP$ zxUE>1aE0slK6)gjtIT3{Ed+zTg#*&8MZK+;MjPc?T;yWD#TtQwG35rq^w#1j$_)q2 z)c;Jnv^cFMTQlmE62^6X9(K-}cNa}Y6ka=#1nhue+A6fEYKFDtJQAnq%a5NFA(W$q zMeiklb?1ElB9D|{f=KP$o+Cdzn!%l7L;N!|RQLYX_w~9DzsdU{gppCN{dpd>t*NPr zNnnhIMoNQ1!a)kujaA^#pt7_)HZP**>%P}m2}!Mk9Oc04Tu9}{BGNRDaU%(Jjz&rc z%=C!pyhEkpH9T{Mr(NpRi_7melh!w9}C{sbt=9O7_TDX>p4trdliOpIqr^XSWh>dEO+t4 zP2IsVo`4vbm;w-Fb_vWGYOjLS5&)9y{b@}*e_o(UQIo=S7^NkJdyp6fN$t;1V(EC> z1p)123{Ox&)Hb9awIv;|OC1jhF<$34g&zMmUGhJ{aW0hqhRr`I@^~Y6c)cFpMpkyx zxXGx~x+s6)QkW_fu=H*Ii4P!fD!^6~xo!hP@Zk|NuDysfTq5PNRN*-|YS_It(pPJp zmjKm(XSH&Paoxg?q32U_aDYe-1XR`XT&lrpiu~RxvxpC*kGO$Kv~+P%!xhc1xO3zX z7#OH5Lq>72JuEQ_2Fa9g%{*vVc66*MJ{9lJ@!E`-I@+rH>>^WVsndooGNZ&`l0dMr z$?N35cjH|5F;;L$$uLFEJ@?$S2}xNgVI$T(EEhL?eVm+L?BxMj-G6G+J0CEB{)_nJs~6 zM5A?w51bASE`U&f3hiHBIQkwoteH|^)aRzkoqUq_(WIK5ur5QcvZ~=GaZ8F*X{wQ* zleC7x2sTs4v^h{bcPFR!uq=6zF+r&Cce@GIuy z>KcssZ?D6EqpEC{Hsnlmm_dR>SpRuU8b}}pEX*IFMFMHWPeRFvOH3?xNWoK=#(JTW z*enQ?a`9{)BFJbI`a)B&Qkv#bH^(|}Rr*?(ZtSyozIU!`n#~S9w+spgMbYbM@M6h8k0(meG$*=7as`7k45LUOoSm6abyL}Uc zI7T?*5B*|t@~UscoH$djTeO+mu} z+1XhhQ1!;9Rl z%b1BAE>;*GZV(ZRUD`TG7{C^F5@cig&qEOlDquw^gowz50yxSkav%ng1{84cG=%W5 z(uhJi^#-(#{a{{0_2e&_?xkBZMXv*Epmar_%Y>@6%WQ7TIY|MBJH3~iw?Sw0ZT9@# z@nNhy6I3BQbFe5F9e-Y((!P{ode~aP=RPNtwB;<}PX6QefZz+^eB4xF^DOJ0n~Pk6 zkx;b(NVJpS%kjm|kH)Ccm#cm?o`OQRy_y_aY&P&5S_E-+J}k01cX|2q`Y!eBiqpqb zUe8C9KD2i72%60p6hM)UC7$sFCqScEhYiaG=Ic#3M{2`RO)YFj z&4%mCkuSh?qU-tL%4{qnJdAVga!iuc)9_`h!+Uzx7Hcw5S;CUUWA-l}!b5>WfW?%} zk7ePR)H-trN*T>mS5pEYohkIxwh1F zy1z*9HoSwLfdQ}^aCSHh0o~JFV3loidr0M9=(~@6e|&Ea8$`mGv{1&GOwmUeTy)gH zD2Z!JOOCZSy+g?=-Y@(jN*WgK?Xkc%uJg(>J5={3>uxzMj2aOM5r+9Az!N|tvXC|a zc!PV6BFX}K<~9QNfuzq@U4clujN0czPXdHI4H@q=kARjx1EbAqyU|lWIuQmZ=cjdq zkuQHXLIB+Bhuq2H#Hl-PrvAobp%O2F80Gm!em<63gK1X4XJTb(srAQh^1swQFrR4ukWEv9M+S)3~%ggctw~a2_ zg`%%-ULAcDCjDVlt23;TDm<4($37M!JM&|-@wCglgmplsU)p@lc|}MCEqADV7fyzc zGu9G@(AKI}b~wt27Eirf1aoTsw{)fiBy0Nn53eOjLhQ&+2&A5YC2Y_%g9aK#L93sx zQD`=rmJrr(th{PYbpNoi8<%6$S`Zs0A2o~4u5T>w+>@T7&2Q8{x&=4Tm^HtgY%%@y zU*phrom6t;odD3#y+Eeobns@jW7>R$R*E72KG zd0bYU&zhf3c?B=RJ$3V50AvW#0E-4BqBr+f+Q1g7xPKDafOPV|G@=vvBFRPGklT|V z-+nAEBhY*U!A~J3ioq823Hi?jjQzgU^+6Tj=Uq>t+6>}qW-;i-csz*>%se1vM`(-6d=OdQ&g3{Vbs1 zstT||dV5>T%R9TfYm9{Bc)FaB#W;_L!RDw-$jH`(A&e(bXdngkDw}Txh*4uTFrl-w5r>0X+AI%vbsJE{V)brH**9z{b zr#S9cF|7Z2c@|azEZ_DVT3}$DiVl*WW9cW*D`VmrXk@^^WhDY_s3Q`HmRX7E3z=?S zQ1MVmcgiMLxNS6>0X|>b*FL>vwZGlIf6Xl{4i1jx`xAgUxNO1Har%%{!$jF)v^wAo z0Y>YR0Jc%FbtSlk79H4I8x485j);kx9HkG&j#`@HuhH6|=X z_&m*d^UtedM$814Csk-S5gQsTOrc^nve3&*V5{rdtK!cBzVRzQTL4=8j{o}nuH!9G zj)N|!xU|ye2ymVq0Yb)8TXBDI;`oz$W>HWDT4Z!2q%*P~C6rHizm=F$NdTXV+=w-o z@`_2hh!&g5;`&6(`lJ2lW^5+TNe5;N||nSW!An zkwhh%AV%9Q$0yR)-w4n2eA$)l`*8J!*ko$eKSaG{T$F9t?LDM4LnuSZ z&@GKLL$`D)-6bvEjkI)!q;yJm$54{eC0zp2`?{ZZKkw!PKlB64m+QRF<5+9`*ZRwK zwf~7ulR{GiOCQ-YI=MRtx}zZ8L5di0v1%cnMSx>nDt*^C`;Bn483dx-aJqhTN1`iG zTNh?Ma>#ha22GSSgEVpw^Hu~*gXB#t=JHJmf?#x#XzQ%hfs}|85Mo$*_X3zr4!1ys zr6B>eNSYQXTDJnRfzi5CT4^$LT2Fi7zMGf;PZ9ydqTfn*+VxU#HLsWY{ad%Z+!T#? zt7m(5oYSKXH6j%?&;f74j>Y{B*(-hh&N{{?x`MTV%#}NyfLTsk>-L+YiznN8Be=7c z%ryYp2n3RbQgPygq1G{0A35oMFds|O85~)lK27S&7!H#=ta(l^M-|x~ewws~?LK@F z%7~Idy$}BmHm7BTLy$=W(ilOnBRD2JiR&{{v<6IQ<6gX8tZeBYgjWoX8>wG+mcR&L z$Q4ls^$ST!yv1Y1f(gsDc9JgY`ue@_#^&RP10-CZC(?Bf=v&d-pz`YKuHC_A;M6S% zyMGufnZUpz?%T9i1tCKEWFtUEa%GJ;4XBKRY}x1`=G?AkmV&;0U_c!}#iN{p1%-n8VR^|PoWP}ud+ADWpGQ*)+$WNo+M~&30D`NpUKmP4XiH$Lk!P~3bjGi>V2E#n1y>Oymnmhb7yUS ze!fS^yMhR+=Li)-h1aV6{Gwk$w(fRz4V8^WU0uzU9gS`E)Lgt&=woAJ#oTl7T+y>$ zP38pvCk|}N>#ZtQ)~;iLEB98Y<@*oTSpp6tp=!(dzEY5bqNEHTeEzbp0;^Sf73`g} z{sc>lYBlJst%6MstCzi8%9R~f10^DE>rzDee@6w9sSHHhU!Kms4ixym#O3Jm>_75rb(! zVGKLMc|~KSC6#Lh$KcQGzz&397;4d@TZ^#wEuP7+7q)~fcRQ{Ps8s9Sj5dl-p z?z_>~v~Cs1#_PQX%D9Jl!X;zm_!$=^U0tcno{}7o`+3sp&f}=BU^L?I#m|Ayz<;SB z{d)f)Aw|V101s~wg0Ve|O#qRDf|veu-|`Q;H~~i z_wE0XFBU}nDB)qz>zV$UXr@D27uW;&m`5|U{d@K+4QODN%+e}E)EQ|VBlh}D|NSq zloS6+$HfmMb^p5)yqz9}`Lo(;7KgkTJ*D zDY@in<{KLuFFe}oI|?1(v9$@CW%U-C^K(e5u|3*~GrSB~K_F<*Y?CCK_Qg)Nd#}kM z+1%;aPy_;2o|r(TKK|q=8Ki`uM^c5F8MzEkEX41yDalD21!Xrd!nmU1JBjTcm1kAv zgjx72nFsIiht@A{O(*xKaM&xL+zKrK8-fZwVE#3oYwl`Cs-PxaZz_efkSE4zhlbb> z3jhignTkp$1=rdfj=ln|eHvP#!VVZDlr~)ZsIS@t!eS{Xg#3gcrypCKH-YnV7trs} z(vyI}0XR10y2<6BT}PXsu78p109RW46N5UbdE1a1lZ!q|w zc#)F5Yy6cw1zA{cGa80a2?66CD&0uOTAB zb@8JcNrHLW|CA2^^#XVMxm~~-z{}e^6dW;ZX=MOONK(r=TgLmEZa-#Y@8ApE5$Xy7 z-s^)fpjiG#k3jHAF;z*!4XaiW%;ouJSg-)<3;zQw>;aIb|30vDreKw-U$S#?xst#Y zZUo{hJaCI^dJaxrdzs2O%UJ6%nZ5vlh=jb$I&#_7!0(fIu=5cs~i3G zmyzHqLr!_Ft2+QuT1A)l;}7L3y(fXWR@fthntL#?Ms8k$rDA&%gHYI6EL+X1tqJdmsv z7Bv`;K#U>N6vLtMn|ML0zKCM-ciWQpZnv&~um3u%*6p?)Rr@~``v8<}fW1z?^2MHX z#QbTq)=XDmED!-{2GKqO8Q}bzyRwitF^z_Mzv6XR^}5^{DK0JsT6+v1w}|@smJVMN zY4C8{;4g&1M-Ik%Y={O(LM#Bh@f)5wG{dKikPQ|Bb>;@8mTDT;$z^{L~M zym?LUk^3WX^?r29|M%&81l6Qw%)jS7q8wX$dw##;8nsTfPS%>H)~%T_pkpLa0Z_|p zfQk5OggS-wW6C?Zzqi*8OP40sN$F*EOe;;oaLmX^xx}ps8|2BtB!Sgv47|D)MQxdf zHQ~0KlO_J5{JrYuLv?_?WUR_~{VK#JHp z^%5u=4R5sL(#dOr3YtDaL=~IGUub#)cqm+!a)L^wgy0k@hpFjKkon9xi5n=cKG8-=HbDP0qYv5-xmht#D-GQE-dlgOM0#Uu-Pf>bL2 z#vWimmkw(mH#*Bd`TfiK+owjGyJa5cs+Q;Ffw7bZpDjMS@Y+qh-MgkHGNss8y}N3- zTO!hwR62Uoi!x_zw_}F)mwWT-+0-XPj|s%rS{fVYI$!4YZ`#+=cc;zVJo_}#88o3N z!Bq2R(R49nZ)({o+xUHhvhP?q(Tq5a#6L2cNF9@|8u5J} zqlvu^ep;%qGg@<v4WaFA zJRyxq2$m7I(cmpiAhKN2+FsvtN@Ex&?xrzU=*w_v`=}*lZg6*K(5pgI)sP@9Cayhf z95Es3Uae8tq(R91x5~Ucu)b;HZV`2dXLWr?$4**JftEEowOKv2zRYbbxd>J^dF+k$ zJFEMnuKT%i%^y+jSO4z?z0L*1zTZDRbiF+6G)om};8|+)SSGVaj0^SPg7B;>X$y=| zWF;h!03+cCP7__6_PHmX)2|#(4C3691qB5*%YV~>RN4I|uD|P92L+qKp{N=epQDO= zi_Pxg<)!n28*4m))X_g0Re2s>-c#Y4=K6ZBZzCES+A*=QR5N2Of{f;WDnIM?Uad}K zz6bixD(hOmTpxb@UgIkoA#Gm>&to$vyFPjpv-{TWF7zf-z-_rqowe=D3CY{HelcFu zmDkgSGQj@sZ!adB5TF~%;8379)P=Z`?I*gWe!5L*o}2q6k00u@R!hZX^t#48$#9Aa z|8;;VHL>P-W(G7_jczz^pcfyd7)DbhOr4`ASuk&o2T5fC&3EJLfIfcvItc+98|3o| z`}%@UPELp_bhI=zukT}=0YAS>X3j*pk+fzq=WrPE(jYql%INzF7Nw_EeJ@w!@BcED z{Yf-7tlA%9LLJ1v5*0Mx&k{&W%`hh)K-HvaM0nV(pu>Tb z#<47g7Ec>u9I_pfja`aR1*B>liK=~nUC|blmyb>rM5E*NfknFGiD~*(1bGg;V%e6w zI_h+yzO#d*Nim1D1C<4gM_iSZUS$1M(5OfdO|h7aT*C4{d6-e5sto=^LzZo#DbRIc z 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

7DZRVY5zfhd>;E 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

=cXw`N0#3%>*2dnx>bqAlt9Y1vsV_BC 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�xIM4d?VCAj-G^eF=4Cf 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 z

  • %B|&w77k!9kNq5etV^em!?3G@=GS-v215t}0fo!PrB>3XuA7;4ieokE(;um^~ zNcXc^)8W`3xySQ8g1mZ8{%J&u>(B;afkGyOe0VTxx1g=`&L+O(XG*5v>Opv#eq)kU z8NT&@kE9TPtb&_rv!*MyaU^z@gf`;5sKd$2cfibSPNwiih=!sVpJLF(zUrOPPx2`K z^Lx%@gVx{w^xvWJqmeVl4 z(7x-wJ=0Kn2Xt?iZsOy!9NWuhK+m3eO^!DIy)yZ|&JIg+yB0{}GIRZo%9R4|zsyzU z{##yH2>=*?oSe<(4NDajL=;j}^UK3w@jJCUMD=pR=4{u!jKbei{_QabJ}=n`<;s@U z0G#;r$I>irr{}$&El>Mr1N_bBjcG6{b6esP5|?q4*;$V`1WG#Y%kPU&nNpG$Dp6Ys z3-njIkvqX>)mCpig@13bn_Pyy-1pv22;OE#H$5JA9ZB2U+5!*q0BA(-WWdGPN?`NP zx$ToHW`=NYa=&7d=8LlFCj9>K2+?~rOH#mk<$rf<^nD*_QuZQY3w%7T>K53Jq+GW) zasVpy+chsEp?WT9pdw6gD9T;2^aAT2M$)<%B^hili zr63M7Qj=`GsUK*Zo$8{0=s9nZ^aVZslEs)TtDeL(zvcL)juqie{aR)K9&14n&y>Cw z#Y7k`B7tlzp9BhqM2bPe{LhHK{|SO5X1)U?4!5VcE%lFQ}dPnMB7J881wW(b*6!NJIOBIF36(BHPo z+W-=>Ci@uZ`-B!!q*dgFEO-^am7b39I3_c^H!fEP!o9YDy;2_lhr=6PB}jaea8!a22_TU{h{#B6IvYyRq$aND*p!(oTp^k&&cTeJf}-=E*}T4& z{TFS?N`~Fe)1RrmoR%A(w?2^t+>ew7{0k-Sx}2*qa_&V=W!LCs>~qNm>~`b2?KjKE zn%}fNflhDdxqrHB6xd>A?TxuAvke|{O~yB`KNG5jlh84JVo=K0V#8C3f2!yaXm~WM z*I66De74fPB;P|-{Hj$#@#_bRu;ancqUiLgX>#&I$cZ3|XnWYTmq!zqy3uXb@qav9 z^w+MCE$?-}r*+o4(@gfVTe|T$*pkNd?EhXXBXGPrID z_QSC?=z?~v^VK2}F+U)^@l5?Lof>N^US1AFmqlK8#p!_;S4Q7}V{k+APOiU&FxW*s zT0U>OTvl3+pvv@fwWpd#mGrolM)}_>FR2mvKkwbbDE0J<+jYJIJ%PJ9lI4i zS;yRzl8x3_iSu+Yv>se-q!}9gq`2N7sVyqft+A=FB8w4nj1m&XNfiMF@jDi>EM){d zLgf%Nk|C8GBlJ*syn?w}R3pG_pr}tGx2uZV`Dkqo!MRNf>W-QMrVx`akCXou37ea6 z46tDTW1m*AO6rK!g(B z2_P^MsjCHQ{E{ge1;{}pOAcy;>_n7Ou|A)pkW61sZ)!h!gAd}dy}Qvu2{?S7ghN5W zqtEV`L8AjHmF7N{SB(p1(zxXc+hvpBPeyHSV`|rDjzk|9Ey*stA=AI9T+REo0;D0S zvYEYtO+>X`{2(N@6vlc45FC>{S=N=@_D27`MD;o0`+*$di>=jm<9>d7U!$E^JU|uc z=$E=s6^C)QUgtvCV9%Qe?m;psMA52j9D+$mI;Zx*-N!nx?bSNCtFpJlj6t|8tElwY zK>}W*oOFi7dlsna4>oz9aU6+UfleOTPQS}xyEp2cMW`zInSU&Our>u+4_q7ZcssF7 z@T8dXPsm!gobR$O7b^reJ`HE_Ue*oU9u?)LaZW<7M}m6mH6a@mZZZ-g%TcQPN>tfn z^}+2c`Xa@?nJ_Ybl7`%&x`o)cyb!HCPQ#}mql|{pqW zHkQ~(lG9VIx*G;+wFg0eS^BvyLO+o5x?p`R(ErDptoiEl@8sg$j!YTbr%Z*S0=oJL ztbuVJv-@BBXz$iKR!}m@t-E{@5=kt~Io91Yp z=M8(UW%-S-t=7}8$^2egx~@;3gVzUQ&hHk7gfeA5&JWIqD67)r5E@(3QwOC$25XN$ zp8G6xM2(XIb-{!1ziID-uM3Mj?FtO|=pA0?KqqVr>6W?k`o<{193u!)23PxP^H%tF zG5niBT0t4f7Oh#tqV^$=s&(Toh)=a0&i)GP_H3!nW9KIBcx|YWff5wFV z<-fEY4j#-`cWgzFJ^q#!_S-2!kWgs^x--}Te?oytvvj{XTju1!8z${PH81xy7z9jE zF%~y`Ns9*&I|uJXX6%0w96UV3<1QrFSXkKDSjP zI8~uVB#0?mf}{|f8~vO-HZQRTLSZvBSlNG&nd(Jw;SdL^RCO`xY;Yc4J$f&c zF<1uY^`%Z(RN^-%qG((y5-tLT8_Cd!xvJgiLjVknwt-El#-(<0a^m-RF$9p+7>O4& zYF{++RnzrdN2q}>6Kw}Ve}^ecI)rnX2kT@L>}F=L!lQ>-K=st-@LnFDNqi6}GU;SJ zT2_dIeA5>XE*ndv3rB)70&MrR5h6TL{`s$XCqmQhc){>s1l+P&dM#e+NQ59{bZXHk z)ACk88p@qV&=3ObdnWJ-lK;M+Hc)q7p78U1Vr%Q_u+tivDaLL*cNE@foCOX!`oc-3 zP!)SHMA~;W$=pO;s5^n0OGGDeBG9%X4!|f$s9TCdsd4&UzB9k5zOS#d*I%$|7FCWm zBTv;+TdDoipG=(fC0)pQqhYe@@ch{K=+Fw7IDWqE0+@bAf&P47JxNL_&dWCUHoezT zg`B;CDeGv-9Qo{N?)3`T2Ug$MGhi_z;Pky@y6<6e4h9 z7?O~JaA*GASsYAyja!r`ff)A1_m@k#LVI<-%K+J1U|iV64RpBOCU{G6qyD+l5yZ#` zygYOS24Y(pU#`-#y_46LsMVD>i$kbtsw`F`f+hVRww_!@aG6<&54`PIH!w1Kxj(@{ z0?9;G=f*L4zpo?KmX|3%`r<83hDw6>Wl=W`u?W!ewj-3mIY7R|4oka69SYX9RQ=AC!RfXJgXQ13bfpTGx+0=H(kyzGsSRl zD=u!A95tX^lDq$AF+7jXVn2dQhoBmq2n`E@hyhd%L@{Fwx*$TMT8%emmjr97Kgrh%mgQ+F+PdR{RIW0HcDl-t zv+KRC`6L4aze7mW?-u3A^)=SB`=u8t5H+B?y;+Ry&p_vf4YHmiHSA0@IH z%CY&Q;Vh5hb^dDRmGtY6J?z z8;a5j@9k`)mEfEkk2%jpeEar6)ArFDX-fYR&$D0OdB)^PPVT8lbaEYholQd{AaF!w zG-85I2D7gyDu+j})t>XK-j!J@y93F(i;vDSl4cwQPusk^B1HHyLbDvJIfHiwLLaX&x^|jwV zdv21d|3SxwUi;tRyQ>5t*L6Sgp5+Xj#`(RFuWYjMVr*`8+P3!A?SE&+>X%MJvDX5x z=W_1`xvSksN(&2jo*&M;Pn%cn?@{GdFyZjb`EvD&>ilwx$09;@x6Qmc1yEJnc6YyBw>A6TUwcw7eW(S8p&5R%|jy)%e|w9V*PklZOD92-X#nYXln6c6DuhIJgIH@I(KWGqD@Fkjr~m0hs}MRQ%TvTQzSJ$`@x{Kqc6 z4l@I#4T2y@Po$X9SrqCSd)Ep}-3XMM`-7~7Eg8>SPXD=#WcR0-*k znJVMIuny*g1Pc%h4D}RFY*2aE96RwwU?(Ms#0nuJfWqw2n8-oe+n1VXV0gcn^YkwF z>1wV2jxF8Z=N-7(p3Nri2p>^fKHp2x=8Gv?8ni6(iM{7ffLmskvn5`_V*($4=?XxwZJrscqf zRdq#0t^>+r(+S=~!;7TL{3{<$K|!vj%uu8{($#fVniF6@$F2kjlQJ<9gnJdKp3M2; z&GuSBGrA~t&M9e$7H^TXMRYtSfx<23GRD`+FJ;fwl%^K4mtpA>j7r#{Mu)6Rj1)BU z9^Dc&rc8&zZb>?~$miV~fmNwlwcP6H?_{*_lY65pV69{f(7zE{Wea&_0hidtK^gC7$#ubGqt5ysz({bq9S<=uw{EkPF+s>$W7Dk>M zb8*{yb9?FI>rnX|7VB$rF***3oL8-b$?W~>3IrJ?W&&`(w0C-r9jEbGPMw|IP(@v5 zdqp$5g64d>HJHI(DWbS}_<`+6ghEOhiRFWrm;FYwXEBBE>V>qyT|Tz@m(gR?1rK0` zZwDxro42D%`Q~dn8#;U!=6}BFyb_GV`Wdde`@2!ZfeDI75n@b%f)MW+Z8EJ<;jta7 zHt|vVxZkF`YcGAl?`({6>9J$o+l23HHObjjiWDGUf!beQj)RF=o z2AhIXsAU!yGaUGXkU&VOl3Q?4W@Kj2h}M^=;8p<*mLO6yK5aNdL)#yB66DoM)sXF6W>i(~Wkq4KubTK`Vartt&L%l$pZnkNw6yb=j}tu+M%; zTPK{I;E%M?kBf9LfwQC`opU(8~mIZ4`>Gt`Hm8f;c7mbfjtXHd%dD=&tT03`%CY8Ow|V3(S}o$dyyb@N`6!RdI2U@wAKjaIt)nk6KKxZ}h6!*jZQ_c76kcd3T0ApY_&~ z5(&2CayuES*{^YJL^HDj(Jb*k^o%7>(QHHO#4V&rhTy|GOHnQKswuF%srFM$q| z<9H9fH#sJx6kmT0L@rJD4c`CA;<(KSSNZ$9=J`OJto_JJ_~Fo|^s6TQzi*prx%azh zv?MQwN`d>iFB{w+1g~S|*Pn6*2QB62VU;PkaBUVGoQA1tN^^3^lf->RLcouURes0r z>+;eCy7GwnrTl!8nl@@)Z_CsJE8Rh@InLIc8WJs8QYehpq}cAAB%E{z70f0@`H`fw zXqrav_xVO!fWt#c6UpuYNxHZA0M?`Hx@cXH)Gz&+qT@jV0#=;`mT1Qoa zK=qU?NRIGXWKk?A41~@A7!y|CM{E5$eu^%G6fpTbZSB>UL0aMHqZ(iwOcWVyF>NuK zVYwRxwg(}r^Wut}4Kms=P%wrl`LK82@pm8B_6H6BiuTHTz(@I(9(?elj>$x)npBah z0w!&`>?-*l2BY(|)dasy<1qc%dudYpR)+T_hH4GO4_qbbUfO?=w zkT~)Ze28Q4bnK5+=Y!^h9Lxy5!SU!1nQ3KjO@Q}`*3n-83S+who0JB_gmQZT2BGJ{=?#qnJwkNGzzeR-l8?7e_X-mQbW-du=~r15p1k z*<@0iCV-9uRD6IrsMjSMz@%*U<0&z1L_LTC3FB4VFYZI}G3f%&|Cj@wDzCG+EcMfA z3%=9XXwd|RQXpsB{Q{p@2xIu{g+dPBX`Aop>Hie1T`*MwiI~eJBT51nlZdcci(U|w zVf{_3jRMo^b%Xwo9%KtqIzlVl#6x8(woKQjGPC+Dfn2;^?r_WVV!yp;hhUvR9!oMB@K9 zlT6rb{d?Od5?AN8kg=0w0Bt$&dc&Y@`|dSkT1WLml#*XXiKT=j+ulQkHl_-M-a^*t zrM>~b(^k2yn?TJe03R0@7Zhe96CJs3NYo{0(huOS*IpJL0)2-Jm>rf$3d(Yvl?`S; z;wT2;&A~a@LVq~BW=E<3?SllKyPU6jn%yj`bMF;DjwgM3THw@*BjK%I{qS5KOTv2@ z|KBp7UwOV&x~(?sxEP^MaNV`aaq$GM%QP=Vbj+3G^SO7n8~^rwS1AqFHNEm1EKbD5tQUbv@^L^B=|}gk z!t+eC6RiHq5_aXgjn@Uszmshrb;0RoU!~rv5kZ z@bdBkK8}DL{|>492CyFn06%=W$Pso}tR?>yJygg>s1Zdc$yEDIxi%3KfxJ(PN;(p= zj>CuoyfBzJZ;S~-q(C)?i1c7WGiT(OseT>)7`uAc$WKSZlWuw|CI$|ciDeW9fd*mH zKu!%p;tZ5Pd-OiMu@EA#&G?9d6$5Uc5{{oku$wvvlvZTQlj8g%eQRtRmK&0 z2rY^bc`frMBXUV#&_Ysm5W2C!<=J*N#F&K(m<`ZDkUVlB+ZXDEf?77cKX_=p#UTY! z+(%mD{vGE?0nLhHza8W|&}6giM?wn_bxbrA{64*rml%1Rp|A{k-3ua$mx7_77k&7- zc0j(qIlEID_m`^~191}~8S;^{a{Z-lzI9sC8mmm$h~K7&5C+%#5<>e`uF`awzvk!3 z4XOmeaG02sxMq>*Akp+9FGqGH&6t;aCL0J2W(V>XB#a@;)@)LYijmp!gCY>i*jGOg zK}ECTfOtw5z=TW~RFRUBW^M&QFmxF|@|GIXFJOOvFS?#X2k)$xq@H!kQ+;L|gkd~F zTd8n^NKPVuUM%*Nka61Wt2D$LD?nD};cnptyJC4FgXiE&0{ap3#EG6*nL)e zcW8e4?U$EEhxR3zTl{_l%in*c^SS7lk<(|p_oAfEfuCy?7~Sug`&r11XRz*+WI6I2 z79|J1JZuOw{2c)vbo4|@d`Xe#zI68ReV$iV6v@n>L~46;8Y21Zz-Oy>D^I7VUbQm) zAd>FQS;9?6$)*I%lSqWWnB=fvOhWoTG^nVI2nG*PRch4A_`KoE4HiFl&EZNDR{dcH zap&Xc7<1b$?%-%w^f_z%j{g0r(~bM>s{5?ci|Z{Q8MZ%r#I~Es50(&M&8Ba~Ne_MX z_}xOM?VFYg?{*&N+@0~D2QQ{CBf@DX)Y*~cE!krddxo@A!Q3VBXVU~?s zm}p4=)J$9r;;@23fv7PP3T0ty7E5!d5Y5%SnbPfMzDdri5j@CtGaL!4_bn!dPS;zE zaXGFo0;+_i|GgF#7B)7z-5w?c4S-N(eB+y=QrJpo$*Uxtv_w_AswTwOU7mN#>z#{d zSiNR*eB78!pb`WicU}yI2mwL@66~jR|IM1Db9MC1-1;Nbb|j+^%f*BTl_P?Z5;8S<8-kv1Vc3I;+zGR+f3`o7I*^hHwAN8Y5nMVntDtoF8u00!#2NNr>wg7hwW z&L@6T5cNRedvM<{Htr$R$rMKhBOrp%2S>}_ji&HUZ7lq64|Bq1xQ=|ZC`B}efXrhp zAO0SP;6UK{=Z71YUS`MaVl z|2$h=eRaO&FKt34dVqh9r;j*G(}?4p80Xy20@$-03_93Wn%$N&l7NkBi&ohC1E7*? z3;&K$q*@MiQ1pP(YJxI>sp};;TxldqvT0H1|LhqE^u}NJRRpXm7T*qkW-5Dq~csr+ySHN(e-B1x7 zZOs7?Mt52z0E>HDs2fdjtn^Oog*)F@xniM*rOE%;uCt{|!p4SM)N)H4Tk!Ag zr+J3}S+t1qGG|g+g4cDC*dm|twjEnaXJk<1#n>gpMe>4!WF8QZc86hX>JhP`ilf-W z*nI^~KcFcnW| zx~3M~3}U>VhTj6#+Wc>#jS(LKfzFi>B2M~O24s+E~{iAqVlz? z@BGsJ{rjEI2lsw7rxyXF$b3BHOR)_^#!=)LOcQy|mi4Wsk_Z0PXGMxk=FWZ=B8U@M@l2ke6pSj0I#KAAKqAHaxM!;fNH(?f5K9v2JohT?OD zu4*X{#uMf_sJ34(Gec&o;l{(-Wnx#Z?sX|^M4Yln(RetE4iy zD5}k|UEmM%l`ViEzk32Eg%4VWoem4l!q0a~M)$Whpdi-4=F@^2b!dSE#}}7DUT!JI z;-jOZNxtK6)i=%3WPyl{7p_aAgVVfKRguZq;z%K^gDOPgn7tN1>ZuL{^yo595>o_d z!bVD0bh(}UUD`ILqwz^Rc2xlC+U(!M*)h3tB(MZf+P!RLKW)G9V)C)xYDH5URLCe2 z*m;8yZ)Q`KdWpm9O3rk67trs4E$Dtft|KkV8$GLOB#mcxCunD0lMq_7A<_+CV?yNC6d}f-+hGN5BWCpy)zaL6dppaoH;=r4qo3E!u#%RMAO^U9hpUPU zQ&WHbIP)cs{12ZUEy;{2PN6E7`naC=E0{%7F8yva;gB`@}U5D}Zh#c%C1N(b;PX7gDU zHH2YN!kq`>;pWq{w6sgJHib;2%zEt#h0GSgMU?I0KS8~pW%@utn-q{v1@bp8r+^F4 zXG1Vhx5@H4g_!^wm%Hq+8B?)(CbYn_hgs~9x}0{gJIH?B&BbNz30-st~n1Nc2DmEXth zcy<%T-}?ROwX1o$0Ki4UKye+g6}|^_OW#OyafKtlD^@Jtmj*{l6n{$siTKt?EOi{7 zJssqnE*$KyJTL~WmD6XMbew-xwZtVwv;mXG46Kia|Lb~ryqbIgexZJy=>SIM0!max z#WbF+6o=+7j>S53GV>mXJ}3_Fj!c-YBvp*uC3~L(e~VL~O((m6^F=yy>!w?-qod<{ zREc$qFIic@nJke1{JR^_-k{y+*q3ImHf(d<8`Y5}@&B>vt;*9y=1lKEk5m=hYQalI z2N9GE3QOh00{YGKVIx4R@@AJ^iP`@d!-$B8=zbIss3N?`8u__giwFAt>6OID4cM|- zhoF*rIgkByp?QT&$3_K`FfZ#t#t>8?`I~Fh`rXRmjrpeD#=m*t6%#`_dR|oU-Wy(+ zqrynlFdUR8YMF@RJcxrO0!24t>W3gBtt_1BcXD_tuZg;q@+s2ix{9F})TVT*v4U74 z&0!dRh^AsI;-{g>}s2kM$IM6mRQD3&lSygP%*@q-ja40-x3N zpFe-b@3dCSO8|-66)6nYm%4U?i$IhP0GX&Ki}yNz)pgG7?|N9(vUanprgZZPOJp^? zJtbCBqF+=VEb|t}Mq~!UjBV&?r4v5W-ZQiOPGT4IzCk&&=PFcR)b}mEzcLXba(=L~ z+n}wj?O+0#u*u^;94tzbq4)vQBpC?^d9i-;$ziw99}zFF7KE9|FRY1T^IEl$Sn&hU zclfLDeKV3a{f9$3$4lYP^L=Ydu{i<@Ge$wDLDz1}B~-GW zRZ?IbW3q;sWSt3F_WYXMVY~61q@=6CAhHks!Gd5|mWqD5zq5XKZMl+8>i|Ly0zpv3 zCQhfQ_KJv;&domNT^cOScgK?;Y|^Vy?IV6P=2R%Ic=8IGH;HfoeG1lUbckWXxBm26 zn%uYaxKNi{h;#X`INuc0xh8rXf|>~gt?aHk(X*{7ogN9qz_cHMdTCf!+0fvxrS~#r z?8&pXura%_p*DOF$|3<`BTqyzCn;~QX2?`fUzjUlP}R^VuX|^vtE&re!;g=T0V6*n zBcs8BzaDaiAfS?4YCzcZ>V8;@o;#MH5;8f;4>$eoZCKJ>>NLcKxC&4#1|3#%4H^!I zca(BiOje8bQHmRhqsUEJAweQ|AXc#-pEr|TEMY3za^t9wVs0?_QgG6Rgko)Fp~3I2 z0p$JcOi}c?gA+Ms1B|UCEt2XHPLQ94pLEciBM~;d3H_lG}&#WM6 zN6_Z!Gor=w-rZ54-)q9|t^2I!o2eg!pU7NxairU-E1R}S`jqWXd7DWq5+gwws)JXL z>XLJTKz2)jvY+Ezd+Jy&|NgHC8ICi;&tkaA`anO1egM*{D(W)@Q^QHpT3m`SHkx%-`g$A@FJC$I)msAUb{S^!b%izyvIUckkX6pZW=% z^Tew%KteuOrLamt(1IcoIcyXoF!R$?Wk6bsqO4OCR3;!jkZBM4$*E!2aXUaR?kDyqjsVyTiK-01tS}~r?4K{k`y8z>RcS;p zXrQ3wfNpRRIMTFq`|H>}R7Z@cNyUDJ%4+V_8~%vW34me(Q_uE_D!a1w@VMM1Yb|l9 z*Rkl4Xd_eyh?ugUtMN>z6e1bytWZ1xj6W{ipUo@6tE|77k~Dnwa8W*b|NmNmxI$?~ z*zx=?-{#?mE~lP)N==775!RumXx?}|jjAx@>?W_~bac<@^lqPJX`!2iZlS5UHAShR zor~#0X~29nLZ)4;E|hzIc6Rpr_wUowH6Uau{*+%}5*0Mkw$rYPPG97(GV@ssvfxpi zVm6eJ#c8KWaS;*2h#nrIWs8ZK>A>3SVe_|E>vBV|3bKKL!-=b0CPGZvTOIl7nsd;a z&PTLsbMP~ImKWgYLx7Fxwd9#B&eH^O^OgGH}6QNU%{(90mZTX-@6bdurIiS94o?nI`S%*1q z%a+!cc)DL@0GCzD@L4`h;Ibiit={kMQohUO0?jRN-x+i#F0D^V!sLhGK;>EDB%m&35e4vcRwg{J`t<4kz(3+-ypu!W5sY%TFe)?uRo# zu*(K8T{>N?E7bmb(w?N4Trw9A+oSr7a*BvXX}?LZ?br>3F}qGl?Oos6Z!|g%?f*<9 zydN&74ZM?oGrzEq{^YU2sK4;^=XVhVmzV|- zJ3xjV{h1Y1ps72$*!zhjCziG-Wh}?wmiR@zXy$Qf29xxTj z3xP(#y0!GQ zhXse3LxOmAw0%~^>AO+UkOH_+1Ab$dl4qe72g^y#P0a}0?h*52ywPs2S*;6LCIm%Um`g9Q#en7n@FHA)xi=m5K5Y$Se39 zq-QBBn}0wd`5<|P)mW6I*OX>?ll$)(f6obKj3%M zN1;M$j)y?wv-NC9coee~>GgiSPR;Ld-6SqBxiTbT`vRz??Fm=d+JW3}bu|M62QzUq zNl8fu2M31KXyEDa@sUh57Qk#7`TxYeY+GGKQ=?VnS0}D7IytxZWy-p#*O~B!R*>p7 zpDfOO{Z{>jD_|E`vFz80;&Bnmc4P4%7q}&8B#{QVdzhGrou5;`Bq4<83#}|Fcl$rg zD`s&6l0d2Cav&rxwtX3gdiDYi(dXWNKI0GWCC_>}R``?G_D9FN8HF8AIM+R2wvK8N%rCyJ!ufj2J)m#-_+m;zGJ z0&dz4G#0paUHh7eEn>;>!u2OSnaJOX8Djz!Cy&#!Y=XeY4X5+_4P=aoFTyYVx3zzY z{~~9*jn&sL*+ao%kRg{asIHv^eh9ItT(~Yh_CO1&;Dp~)8AIevjT5v2SL_Ad&^gA3OE_>VP8I_ zj+g`RP<}rCg({=lnZb0=)77Q*>Gh3`+z+K1wdpkXSYrRj(^;@Z)wbb!fT5HaKw%J& z6j2)K9J;%urDH(4yHk+v?v#`+>Fy5cM!I3I_dE99{DaY1^E~Umuj@P=>FIM#NjY{O z<-P2BFZY2(W96E`LbdVDQ;$5ANi6z#4zW3ER~^aYI8JlsXck^5g( zE)TI>bMfzP(bYNMNg#9Y!lF4Ur&}jsixPX}18xTwbaP!7r3tFBSE*K3S5J5<*ZLfF zL{y~Wj~Mdef-n$2=lhLI(6Rtp92YwBz^kJvdA{e{Ndi4>VAGW5xZ*gMfOnYSidk1z z_i~r1x0$Bryz=t+l#Qw-#xcgdQRKoqpn&KT#Ft^72J1c)QFL#ZRPAw4xWQX)wSfu_OF;vR!Yd(90$vZAXj%t8M zj#auf|K=^Jhu>jb8b)EJ<80SyB%c-i)0BOvXgkJz_aYsD8T%JJ+@G~%6wwFW`vy2jA(kB*=uuAqG6vqn<3&dW2xRP#joVwZw zz>~Ypdh$t@*-30~d1`;zU0iK@A9gT3J-??(pW7RS`*w0y)R0hr5yAqRmVt%`mf47} z^}Z$2hrF|RSMhSz{A+&HQD@E(6oG{_`K}RR3j{+$87D(zV(AABn01B_dRJA}z=sA; zM(Jh6BZ^4X2|_xmqHWRqK`|IPV*21^G%ZTTDyRgbx|z-|&+oDy!5i!Q_I;6DG9hR+ z+THos>x8NzI;>QLHOU_~hUM~DkoaiT%5DL9%cED>y#u!=;BaXL?h^z^KPa%|MUGwK zK2R*;kpDzMBm;qa(WHwnhKI2AjZiodKI;4A)t>v4p>-)JuYtg?cuCQShcZ}P2gy-M zxou9CDSz++FZkTJp+{$HtELS~T3W#CA1dJ51`38KsHlujv-vlCE&_QMVu5Y&Vl$P& zkioa)T0Tigp?M)aLMURChGl7Cx&NEfF}_(Ot*)bHIRnF3(Fx^iG;*3;1>^$#y(?`b z-c|M)d5$iNET17xX_-m2c0LyzCXU4PadU7Pn&`YN?j@zas-e+Aujp>EQjJU>05y~X zuR1B&eLh6}{@b8`uf{OkzpBZ-><}HVH64tK=|(hx@IkwGULSBfO0LuW8Rsuc_tv|f zXBGZ@>{**f4X3FPg1p5IvnX=sR6~FTalL>{6)GQaj^-x5qFqFjpzxsIF~#s+E^Rvj z57~P+?s|1K)wz!)si}oO-t#s6ZxpAZ`rp7xsaS;y*H#CBP=CsgQ$jl%3t^(utloM} z;AQYoQK2#Qd*DmdKg`#vFl{UIm3UIALb2&FUJo^j_=CMY%av93=o9Y)Ku_y^UA%a( zSdhS66UAxK8`0fZMYu`)`>#kgwSGvI`$*RbnasZTW|N$^cV?W&->!Dmxf##H$sv>X zUMd5ls4;+$JXM`G-wAt*vR+kLRZ%qtAazX4tY%mcmkVd2F9}sEHo#XNZ*x#n#AfuI z78(G(gWmP^GnudmfMfsy?Rvn-q5gPju3}}psWf-*t|zBZ0VtP006KN=OT)rU@6|gT zjuJnR0_|IFB@{t3A4zlCa^E<`P5^I4s_S{xQ2E>LYHBE`=^+I>JbV*-N-OEM6{Z3?>>$ys}{kG>dfI?-Cmx|Zg^pybs&$1kkw`mvr&6g8_ zz)tvf-p?K@-4<$I3C*h28H$AXAPUR8W0jfT&A8bwIT#Ekcs>R$vyDar-4D~>TV6|i zQZLh(SXv_b(P!V724BiYPoHGP1AQM2_mvMpY;>T@RbkIW7y6O(spLpntKQhHt`f1w zgXEhA82SAox0>c`kHO?6Wee7#YI``{Of9tTFDjRaX|H1j?A64>2jT&z&i4q}#Ni;hoCR%@? z#jfwZ&9St}U8{Q;;uGehv&4EB9kYq`p65DRK{IF|Ct8e%6qXB_{MLmfoE?U?{7Uc@ zB8MWn^_$7riux$*^A)2AO#qLUBO1=$Qfu%Kbxe|;zHh~ifi!j_oGbZiJxvqW@-yAi z!q8)=Pgb1B&sr2jmaoAEmQGn$H_ofxFM1olZj%z2QDu|u0RHD_Dn}*j>xG#aN5G%9 zTn*>>lk22|sW~|(g+OlbX{|rwFVYh2C(^%K2ZF1UmOEO|2y&1x^=~wlB=OB&xT1P7 z&@B+w9n=4u@XuZlQUt)g;z)ap2Z`6?dX$U@k5Jt|_8`NQt7U1n?BQ^pOznG-?*153 z{wraC7E>;viiw%8Ge_?#)o7ikL6#mLc-Q&PVZ<>t+H9i&*Dn!`DVCy+|dy%s?iiwZQK-Vh?sR1r=K&@Lf_7ofx zq*mtgH+8MW<0{4R4_IQUq};~L47#vPTx>av-kc?fmj%H0gd@{(MYi&OD{2Stx1A*F zdN4E_ljLM@nxD(g>2VnLUfM}>LPGjB37#I><$3n9>_;CigV<ESC z9-A*Z1YsZw5(;xQDX_X!hvva;2swrLG&LAQR%7oNzS6kw8q!@R zw4Kz04uw!K7bg*&{|+nQ2`klG{=FX<8Esq)U=P{kK!rJILb2lkLAf#Y21Rj*L5T4^ zfw5(KSN?BlbzRnGcyNF~$?=1_*Gq=L+My-#fLUI3m*k&_t@pX(W|Yt>^&Cu?h*1Xw z0@@@_(wA{X0I|SSFZ~@*&Rsv>Lui;3bW|ND5&^RcG65?)`^gl^#fYw401bUsWpVM{ zcBQwbr}^=UcMDJIn9#&jvNl6PR}P|Z2bT!(js`i>B79ymK|21wcbA78>`CkEPfS6~ z>kKdkR3~l!*fMLkheDQC%a`U}BV>XODlmC3ty}OpWt3aDgCp;QHg`j*-Fe8Iw{ag4 zCbW{#p(GN*w0!ubPYB1g(6GF7W_U>^q01SjfQ{biFTqP|T`SSbZJD8bZR`vP zVoT}osndF#uFpl;D{Ga)8R*lfifM?IVeSxpVy@SEa2GXNQJ+7QK<{ZX7?G^^ypaej zkF1t95OE~%K)7g_ATvl-t&H5^xMR9@{q0odDlZe$_l37>>73?v*$NJ6MUXBiWx&5y zm{g;>Lx_~GTDhMK6}Ow!P}Ipb(QG+ab}<)BIJ=Me$ZDn0;jbRKfX51>HUHsJ%~0e4 zQpjvmb8~ZUuKn?%BLMBXF_dRO*7pI0tc$FaG->Ft?2Giur_>r=B#f3XdA%&H*)FyH ztI5RkYo7eHW1mn978dS6^NqG2s=poo2cw8-dURiV7!K4sSgC4jfY1FZ^rF&KRlN+$ z*xmN@-o1vmTB-{|L4lMOrMsg72f*;02k3pS(qhUcKdoo^7tpz%Pkg~oYuJkEvu?Z# zqHS|lRUW$4UFz=>(E4f}Bs5#kkp8Ex;A3W(F%kCA%6Tvh7XU5p5X0#-IVUtmfJ zIIMVhcz`tc^X5tOX+>Gt^w&g_L_lf^1nV>YtI%O%V;cugHU8D6P956z`vyS)tNe_F z;`|-lTd{9H*lwglV2l0Ry&GjHX;k*6@*`CgRdNg{ueb3tcx97_&w~c~POrlgJM!^%Tt&0{lY2=#R*ow&&r|*DHw>jKx~OKIB|&$k!g`W*6pU-uNRvC z23;=eoI4Jk!-8XbDmklJPZbgWQH06~sFx*XcK`nqrUl+YRz)|2D`W}Bu>CU$tF39> z%np3*-qbwCxp^s!#Xs$sn?dl~8VsTv5)&D_fZ*(@swst3jLdtJHwZnu4*!y$zqD4yVyJG*hSVku|Rb@~xFUJ`p{qdVtii`x1EKX=QHe&Y2Uk0MHm6bhtm*TU@WjPO!CaUrjSj} zij|qC9?5L;@e>gy!`NMvI&4uz5Y1%wAHLEH|I#Qga8++?Du7b zh*OF9qr}8JB==&w1~3;O3A7p>E{-tL2kRG^%Nai9;SdTO_gVq^vo}-(Da=ST;~V6= zT)9DhQL~qW`9#ePH=wFP$u9+R0$&R(F0?;Wv*rj=kcr3!EQh{1M>as;eoJe4;0(FE z!pxi6zX{K+{%HXzeJ`q1aVCWtU5m&7r75{m;aZ)b1h98#<$UT=QT(6-BE%i zUGSwxM#0NmmhLPcpSPKpDM~gB5*d?`U_CPHQJfzX728jrYT(RM?>>j9o_706a@LXm z;HGB?(6we#W@bqkV*caIO@=Z1G+xJyCY*qs@4%($YcKKblBl3a8rxw{c1&VSg^GmZ zm64F43q*jL;+k18@x-!p+<(~!FVsYl>#uCsFXP}ePL&YuKUNYq_}_3qEFq_tGyKcX zmIbJ^m)|xt*48&3Fx1Dg75A6q^yYYHt3fmG51M z$_J`ljZ1LD?vB>=HRwceKapO+)K52m&>bvQ?*q_f&SOf_PwIQ9kxUrPO-=ZKk$X+= zy~bJB; zqB7rX`lX${_rPC6m+#n1tEMt*^tz|%psCXHE=TYAUfq*Ni-)~DI|zrz$!aJsxEcv5 zi%s2at0<^g8Nk|p$>at+Z&phT>VpqaA{1vAsTIH)cC134!X%_oEz%JIFCoO3?mRO1cSomzyQN+Xt#tCPhdUnpeWx})kPtzNH@A)1! zO=UB9@A%4oUteF3Rxng8+fJDWkel1_CDp*~m|+NV8glrI!*|dHwSkBrxD?E`{$N zJ1^TlkT}aE@gmUmDl->S$D`!#ZzsqFM4X<*A>Nt-9%O-!B~srDX6ZG z#C!Q@p|2P3OsLZ|0*O5CIrpXc(CZ@4{iV>%Q$XdowlBmN>Vu#UqE<1IB$QVpVP#`4 zF&|c}+2y_Mcxrgwh-!ZRexqrc(Wu|KAWrI88&|!IJ9zXr#j>KfqNHti?1sV3(l8!{*@fz90f3O%=k7*l$w9 z$Hxb}Is(NYcdxs1MgY5%I}+=mZOcnkwTmlu1z^17;xy?uD=fDU#!W zR3;2y2EURBkB+PlEmnHJAnkgeZ)QGCy8>u722^n@8EUySz%0D%4(L(nbgC#Ai{_@<|L(@L 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%0A^@ZG5?wZKkvE$0)xQom-K7Z9$ zo9)yh`uIsT0ZJ>BIAl)lTVSa;{Z?6IXHTrNrndIN-XawsaCrf|Ghl4KS&hmdPCbbk zhtVZww{Z1+?5iiF${upbw`(4NU0jWui~#K|vmH|-f^__(s9{dQZ-yL{uO+Fp8D(^*2Sg>j2qZmo%!RiU^)v9X!sK8OLrpCI!Lczp z=?dOG9md&g8yT-L7%JAxx4WF$qKaf($pZ0W0%|h9r>hY3^@V1`Ue?ZzlYQXU$(fS~ zV+8~OA3GTvp=?4)cP(yORStoHKi{D zU~0f>PHhb(v-+q0@tb*H_v>~9gdmhkW;jZFIAsRB2!WV)^-&nm;==oQC8lKM-$2I~ z4%%|Y`BvocuMe4P+P_%HV<|$7$^f1Y;LM!R=MlTs8hzF>FJ(yry~Ry8kyKD5Ik_9p z`;*80vuU`(MupC;%A>HMeYXW7$?BjU8?t> z`72v)k%o8);{y-k5aHoMXe7W0`<6{KW=lf-Fw*O7t12=s6DY^rdp4t*gfj0)Hbz{d)a zlmr9!2)glTidHBae!Nc;GKyDtxWTU;PP#`4MCyOhxG7|gS%EzTdhMP-qfmk2UW`k_ z&lFbuj^owe9x^hYMZM$MiRc}(u4`knnv zRCys?Ryd&|#R8Ut%Z=HKb;_-mm198R>Kc*LI61djmT_2dl2?LAU1Y>@+aP3HAm;25 z$XR#n%8B^`E{>eXy=lLP>6MaP&%-J}3`eEU!f|e#K*_qKl0uFp6+K)v9pSfI5wQG$ zvX8n9X96na!7boga_wpNyfy2Iq{j!mib2SjOKvm(gVe}WM)SGyftNXTC;28$us9UM z&^0FpkwshJTKpvlvG)1B3Su}ZDlVoJqId*GyZ}7YSaMBz?MP(zR^C`#cM$vijZ8_7 zqYz}h_5}FOfStwt<(}B}%tyc`_UpVqHyXmZ#eoYS+Peu%wQtX=w4R5TFPqpGgglq* zv2+~6pqvJ>E=-Bap_=DKMp%wE=b>Zl?e)dJJAV#2pMMO9+lCzdMb8XUAp53-2v^<8 zBJ0LLt8GH)pLFDLpbVD$HU&rp~_~#;SAbA{JLK#RUPLRc2>^=X1KEa2{Q|~2c zBxv&nRZUIJ;d=I~@8woh`%Ri8TAjD0Vk{V^mHUARo&h`T52Ebp@%2 ziQ0{2Xz5$=SD5-96j{=TqDQIM%yihq&B{PFh(RGiCIoVXHK8$?pC--4Plk7XuK8ZZ ztgpA5UH=e!*}MrrK=DNr^X;~(3J4(o{46D7n)BvH91q063X25d8@jC+cw_f1lmB@P zwjXIA0`?ovx9eV$GV3jSYr=0?wVb>8J9&YsaT6v4rQ_Lp90X8*ypttQU&7GAw2D&6 zv^Z2;q3qNjVLQvJy>kk;F1h=CxQ%ds+*~MBGbLnDWa4P?=LB}u-6Y`9t^eEpn}5}L zgyO~C>yLQYI4~GLU()#5*;pFF2Ki-~B}2nmtp3RSDfvO+m=2{~T3UKV{Eb_D?NgN9$9vt22Ag~#jB||ioeas+0_i=G3jz2Iv@$a13{J1eW`idKGJ-o{V!+)ks}$hqA)esXu4 zC+vX|C+_$DXQtv-QHc{e>`66Y%lKX~Dlv{<#cCR#Pi9F7I|VlH>JklHnATIngJY`G zAM9j$HTU?W5euY6YR(jwo9teHf9SMU{(YkNhJ{$6@O%)2GTa{x+sv?*VwyZ~p>_Uv zl&9xI-u4l92lSAB>ZZDA!o908P{lGY3bAEh(=}p{xo*K2#6%AG9 z$;dd4nMCYOZ;VTJX*7-jj0nibuDX1*hYMWE$ z`Xra_N@+T``O9lw(o$~{W1?Nh&fCgVU%#ZkASa>2ZVWR-%p1!=C_8(U zPRh)rh~9P2nO|6FUMB=1?;d-8L`m~H05#E&9>qwOyO4+oMA;A5(v2;ONp@x6JNVVd z`pm}&l;^X)mBp-LuC7x|X4a(`1SI%Ml+yp}ON7#nhR{+EILuY7-}NP`0C>C0abdT? zII6H@Q!N2fAgYu}6g0<6wx-O#CG(VY!+XaN0g`z4SzCy7f+CUoE(+oAB%#Z(@9XN@ zIToLGAGhqurTMT*N6vo|%U(gNdmp6`|2|gknIW3*>=ZxB3b~%Hq$|0=OVRy)X&ndA zfTV^mhpt1hNpf-l4WK~}+ zsBJFja*n7DvN4V@o^?y*V-On@;bH`0?SB3r(H9Oy85n%~A=}~QUex}G25~$nK_(E0 zEU`R*)_{|O28aFueKQlu7nSIk>G(rr$+bbJb=1h>anz9da+8W_*ReELKfU!-aOV9A zgdd$}Z>ur{P8Tk=6yyXXHKdE8sm$unF&?G_%ikKc78K?QQf)t}*&WP~V()vG<2j zG)6kS4h2SzFUr2L9Uqm2o~^{1AJV3G+iu3a5@Up48kcRY?Cf5pU(t+5nJ@K2RGVwf zC}Vf&-dJvcNii4ui?m4+T`~jOn5){J2ES!b1lQKqu0QRjY$ZJLuj}0L$KOGuoBaQPCTO}}1tzCKPprGDs(_fWHO!p1;F4)-^KQ2Kuu9k-Y!oWG84 z3|wDxeGJE?fiIpJ80-l_uj<_N(-vBC@5_%%raG|_JNjEDPY*qZLJ0^0;HPJhYY2$P z6LZ3gt3}h7W}!B$8*Y-8hDG01nrmlL!6_z-GMsGws2t!Wf2w}L0OTF5(6(K`$KjcB zEpT*PS2$_$2Mus-EO@gnAi=@qGK`IlrRw|cjIgr~`s?!AFWe1HJC1k~Sw4dLkc=_n zU}}%7zGo$_OR3I6n4lCJbhh_f8F#&nPF-(LyhQdr^LQDJ!4R;eDpS7+gSzTmq1i&U zF`WuIpCNVP7uqag!Mdr?WmK`QKvW*@P2O~_);K{^mI%dqusqg~WR107@DZE!>8F{#AV)y*l z{aAm#rdPiKxKK4ZH=h#{;Eg}=`IxNpTUA7eE06?OeE<+C09oy2m!A#jVV943+vx_> zG}!@rlzqEgY=E*HBj`yDa_(CaN|Z-Zfx0=QDgUPEep1)bo9w-u8Gm?qZlo+0 z*;dqNVPy=~kXxPm@V8iy2r+t ze?@>Z(MjItvHXgYN5?~fk#0Kw4F^Liw!TVa0~B%}Ked%LMa@in(*;7PMl>1uA@0T* z+-1P@e_xA~c_dhrID+QDKQ;_U5^UyAK(ub5!u<8V@`4xg)uRs@@0g523PGsgA}ni* z6KA)XLQPb#)o!|J=O=7CACAgg_Zes|8}9HK7de?BscL=6;+|-5U$`4h!R;@i3ucQ( zqWs3j!=<0;>>BVY{!*d27q;`QM-TrLyX~^;OlV(95z3L_q|@4Xb3Lyw6%0g{L!Eq! zczAGu;+y9aJG)$;C8AWF^TKPArroP!(VJ#VePEJ~)bn}zWcD;UKr5_ENBb{G={^J} zeE)tJ=Pg%XbA?)SXlv+B>Q$O|&uHOyB`eEskLND)&u1zxO~u7KiH}l%cc#&{YNDca zl$lM@3Sk9Lk^^+&IeHf@+$bTGlWIJX;iAs*3p)f3;fG!8$viK@!)fXI#eCElgB zjfOC_>0{&3uM|@%qecY#@#6Yuxc=a|B3>%T0&7OmV{+9ch)fZ#y!|)?$FjnwScG~E z;;t9!#3M^o2!g5SaQ5H&RJi26_xYYHP*-4H#a#I`+2%2USm6}@cV|b&=`tfTQ*?rc zy3iX0;*loq;xGaFF1niO<|Zf4ahF>*Nc2-gz9cXE|Hj9i=J ze!)0#i8ay4FwBmOm#GTXqtL&gB18Au`o%u&88*0HcO50(N1ZorK5 z2WSJ6BMs01I%E;(y*}Nej|<-Z1fY=U zo~wHxM$_1f3n)VpjDD*I;!I-d=7J!ONz2Myl~?`4O&>Jp$$@_Q{&V|;kQJ8yT7!?3 z(A+rm(z-o_?Ro4~bnd0_yt%WE01rCeJpxr1%C=beWjVXW-&n54>)aP!mHnDLNfTky@5`8h>3llR$V)Q|HJaLwvTlD_rqHprB_Yo{WP79|D#Uk)0E$LtN z)7gp6J})}Wl_$m$)XV@>u-BWW0rto4WWevq+F&&o)PIprqmt#bR8K@tL~v3=YflvO z7l(t5#rQqs@!7zS6O0U@Vn9%4pq5gb0BLOI8`ERu2rOQo$B3;t0iG{kN57G&cZyS% z>`m2(!K(gU>72+(wSp+?QB4h?jLrYOOW=X5h7AJOuj}PlXL;E{r{!fRFqBLc7ARS= zCo3@Rq$UxXR`lGk9x6-28~_H>eTSV=YHEu*lb0CtWhHod;h#0snzp;GCc|K-6&lHSNOfUVZ<5TZEsV zqQ%kIN>9Y>jYs~qV z;$H?rMzeOvwJBtI@whWHvNxDr^8*Da>4|{HHEDXhWPQ zE4qaU(MTE*!#{qcdoLq?h(?nwtAmh0!pTe2Lq5fURf?48kzIv(HRFfqkyW~q*+i7z z(>BG&10LwOWQw7MK%fE8(p>wBW&*g(lhBF#V<0YLyz``?L#1*&z`Zr`{+5N(|DA+A z0JE9Yn)<3>DsokiC^?k{64@C@j2joHg?|^KnwDBm$=Z#-!A*%s8;4wkZ0nED0YB_{ z9}o|wONZAFVKMK&A_C0SSXxw+8{sq@x9H%zyK@mcfC2?*5|@B;fkegZ_-PAQj*Q!) zj{$dhah1@mKrqtZfkT$40x>X2@~Hjr8XKbQ{SVO15I|W@p)8pW1!7!(&T+M+q{S)W zdyf4uKsYUP{g>VWN?_!!IEV3&BRARXxcSA!nW-O`fXrQK)^oA~s>?FvBB$kWc~(}|tC(9-(nbBWGQK20umJAX2dn3YuerVtL?&^Z;y55g ze`ymV%e2xHX?k|!j?KGjbn4)X~O1y)uz+O?L48%Z@Wi-_3F|%R+KIciR>UL zB?XI^$KoKP;b5Fr3Z4?V4_B1h7=uW>JKMgfxqPNJt3R|Kp-EL$mE*GSKxM+Kvcs@x zo+uWQ>yJP$wRo`yd!Ycze9b<)oW9=bTAlbjqzg`yjDom1uBao?_*83(({?`_R}Ovf zoh0BLik7#$lBKayQqBK3_Rj;b+j!v-~3|Jr<8uHm{ zZdll!ecGaVZu`96j_&&HBNrL312sHY@&dsjaG{ZfeZI+O>_;?n$_A)G3WPMwdlo`rq;chHC=5zVnHLNBF}}*>jE%LJP4jgTDmhZlXIhm ziJEzMB<$r$+;>yr^7RSczR&j$D*+mk%A)W;0>DvK;&!@pzknax(ry_UoSek)2Mi*P z6I~oFLXBuBp~^++{_+8d&X~@c2nmY|9nRkX19TeOhNu8YIRE!UwUA)4;3}#@GA7+` zAt_6cA;J|J9*4n2rP>jf48{v^LW+uJ73XTOU2F3inLF+1(6Os}XMYurJCMy$*ivRW zn)ZF_lROWey5w#hmJx>d!z}jj#lSRQ|g5#Kd6lLS<9}^G(Log}B<2yu*q617c z-X!%=YpB&Wd>#%2O&f`xy%w6YDt0L06Wj9et`{CVA zGX1zv>-X=TtG^nK^t=s64nJ@A$41Z>rt7@!j%CV46T4unh37aEB8Efy@Z;Hzk!J$s ztL^6PG$Dzjk|m;}?o`^J7Yp!y&Dneg{n$W7*D-}Afcl!={vxtJ!GjN8*y{nf{Uc$>4}7weB7x4(8gx)CPR z^#vxPnx6!R3L-+va3U6M32n}}vAsvh5rl7Ix^0yBh28&qHxkd`|>|3E$O@Oxkv0fK@k zX^M)9#Yz1TNbPwfco5;y#l2d8oj=`cRxAXBEZupB0Z$WH&x#Hb*@mx4;zNKdFwX*Z z8DHnxxN7qa=gKwnRTthNfOF^wdM?|fsq;ly^?fd+#GLnUjX+Wyrib;Ly+`xqhwcvt z|A|d}KnGjin|AK{#>O>=fmISdTjp%PJU51=V5rZJ9S|*00}Z+09+8YlGc3 zAJ;DZJc~X7A|#u|w{O30ma0Y{SI2?(JI8<=tnes+b zx+Jf--bvGK{J1VLVkQtNwo-ViG=Uk$+(IVNGsxJ>SLOVh_K^wCBo2@*BHr-*JPO zq`(T~zt*;*k7}?y0z@G0R3L**zd*bV)4I&B6-&)miwryL?f(M(I5Dp%G-A|(=n2^YG$ za&YpBLOjx!>9kHfy+*@GQr~=WkF^`VwvL^{KtY^$Nv;jXk#??D90>BPlwlY zPRUYJPo?MBa^xg@kstbrQINu}4+o~iEwUHIE|R25Lj?iN3kGH-svw(COcFv7(=!l0 zol^5Xe`gDDDx9@>z0`hYMhAFI;o6NxR2q~V!52$oZ_q+mtgw3&V#=F-4wD(s_}k}I z|1X}-Iw;Eb|N6VMgwoP1-Q8VFgM=U*N|%UqH-gd~(k0!XbV)Y?(k;@`4bS!Y&io$! zaE6f?W^VSr;=Io}uV+M%*tM51ImoHINKo1TFO%bh5O9Zlj*`NkN*|W zK&WiY6EO8ugfot=zDlzvtkeL3p~65g0TC`jmgUzS`E-5F(8n+EspswZndlr`I`@O% z*YTa{c^6s=#Pdv+04Yw`<{EDju_P9~7g>Hh8WN}eCx?cAgZ=a0d0q+LoDM&U5q=>L zE*=_rcz9TBbjXl+I?C|B`t;b2nWJT~ogb4em;AkumkSv4X)eXv+7CQI}I)bRW4A0Mas zADdL&E$E2*-B|obU)x&*1^U-N3(LyQ74=5{MQZh7CxCL1#t@ZUJ2e);v0u9hW1?px zlE%&+Y-CRN*C$|9NjU~$lb}7i#`3V#uJUnXATElI?x%wT`H9Dp+RvpF9~l*C1qt4D zd_ze>Y2D=Wx`q3Rc9Z$nXjFyU45Hpyc9GF?oA3o!ax(?A>hf64A@?+;;^|3UPzQP& zM*4X7N#Z_xCri)e4!w+V@1uYc6VTt{tj1=T1{8 z)RdK#l|P9W6I*>2iL#}M+4t|a(Vm+r0N#*e#LuL0l zK6IC;cAgGnawfSujn>KyeDy)Wj`;R!5&u;#HbrirdVRf{wCqd)aoy=nE4n-ao<2OBPAmP{_c#%S0%p7{T=+(%Io$^e$Daf z^#hQz*VvJeT1lV%XKuF(Qm6preoEn$kac z1ilcDPQXn%i=Uj=)?l%%%&{$eIp%YGC&$nC#|V`z18S`xoVX^FWlNnCD@#XbHIh~5 zw3+U}wg|+e#{J3`c5CHh&{isb@oV~O=_z^<#_)7t{84r%k_$G80fFWCeO}PYB9%Ko`R7(hp~OfhZYx;iWQCQhXoL zDp!UEdP(Zduh(jnVqWJGPd72eFCWeT8%xH(VDZ>r;@CRFb^FYds`u&r7ZOW$eDve{ zx$@G|bn%DpH)qGY)^>QEm9HhKAOqtpG)O(+0W*9JCwag6RDmW{$GXpl$^=dd=TpjH zJv-?=W0^kmR@#>@yu0g($OF~d&gjx)o(-WyjNdzDlE@a$BwIw99EO^Xt~)JW8hOtY z_s5XRK#0e=K;S_YJ}!E7e|UEM5zF_cwCq1BDA{lnI?n5#Or~fp8ZJ@q@*~Y+qqIl} zf|1^Il5`E~WihJt_R$T~6CQfjlu0ZmbIa)~VHVl88|RaTzs;2hpoZY)NuG-e;G@57 z?8vXcO6^Y8HZhSn7jQpZK}LfiqeBtLqA`0BTL?x*Fv9|F_?XKA^5tD!FSK=xTnFh= zd`_Qy_qyaMhpq~#D6kmtn8{8J1*TW5PLUyqCFb8NHMNVl4+1OhGchE1nIEuA$P`}V zVa9hM>G1!bm}fmI@XlD)vabMdTAo(SFCf5xD?5ZvKo*sgXt8ayH(cPb$j)5xLClI1#z;hDIw8Hn z(ch2eQLbzdf?a9wyWUBLl|;@x^ubBO(o^V*xb}cYRF-1xV3s42s@Akd`7?`UCRbB&MTOb)ZI$1}K1bVi_Y1!do1i>-^-+f=4-6YT$FnZsJw(Y$h#jL@AxbM>1yZ%|?`4ZgST&s7~C?n0-MlD0K-XS4PRLIR}He#L&o4j8eI zq@rdjv|uUJ^7rSU)=#!rB;;wS1m7y*#O>THh}1iXBgF-lU>z~X-iq8BdDM2d74Q=6`mm>zGFgxa0X8^ z%H{YXu%bxC9*+lX8oAvt6urtITmlnzcc%a8rD!Vii;Iht9&5R%6dqtF9rh+C5qEnh z^ZK>6D?rs+>mh^g&varsMtE1R==TFCRPxiKULTPOE5Y+mtGWriTI3h$b5+bes4~M( zik5_HEh;x6zDP)Nc1SW=)9rTdj{Pfeo851H8jK-QvF-Agoy^aDIEH$-xPHcx+fYcb zXQ`aKxwD$oEV(Y{NY9H%vZr`&L@?ad5o>6sv9dAb*7L)#A+b@&2ivzT2JV_W#-_fz zKc5IA;6YzdARyWP^sqYD|Lz3j75uw`KGn^i7p54Bd$~A^@8~8M@<9WtA}00iDhg{0 z>g#^6VuPFX_*bE_`g;6`Y>$uYK!b>~t9tloWVEc&+<`&J3dq}5X*WPW7Jt0ne41NA zsJH-UwKtVsg>`k)L;wUZxjdbZ6iq5}2|Ux*_V%Lc2`;>`nzO%V6H`(=9#zi%&kNw{ z?heJq%_o{@op{{FrTzT*%jeI{SB>>eO_aRKRW&sy<#m7Volm}qG&wR=kPyBwKtT&k z9o0z9os@D8f2K<<9NKD>p3ZL}ZK3BRK0QA4{8Nu6lNl^~95}&gGG8H1{_WG~_jAmN zf(C?;zgSFG7GlDr`N7Di6s&}+gq<9KKv2srCw-E)7cWL_YS<5;~LpFfJ?>Ep^cO&fDwOTe#6)*JQwoJJW$a1)6gkmoFFdUVOVA zoGaH0)ESW&9Yns4ZWq=MaOSDMp(UwJo#!IaK&0+!{~5aWu*V2DHT9=*K6s@a8UlPG zNAoSkt$F7`7-J$R3RO5lPsqOs8^DE%FN zX}c#sBDT}IL+v(vd*R>qlnbZ6oX&o%2aqoZzb+Ty<*C|fSJm3`k?F7k&1CKcMygh6 z{~^;7{q_c5XF_X12*!GTezd6nxjdK`G9Zg0X!DU;ddq4Wp5rph~2o>eDD^F z6tkK@t#6naGoMRthy0YxwC3Xs3ozL)G+UfG`kn2Eh27>mkqqV)jBS7X@pYEu`NVuq z{eR(f>|K}HraP~;O$DZ6)y!FSowkzvimHzOXxbM`#9j?*_lxhn88M+~*lzFuZP?iN zEQ?QuqbIsrRNHmL*g;a5lzg@_{p^S#NH;!@zwKX?#J~HEIq_oo!ARW(DZzYo-GDPd zJw4E9J(O6bD0bd>;AkxDGri^SG5NgmR@}J|$QcA>^$1T4mPQh9|HJpr?VU6g05aa! z=ul$^(02`l{f^BT&D;08-%QZ~u6puK9INH#3rt8O=$Zfcmm-j|*DMz4RU@SG=9oLT;(!~XWQrYz4-L%8-TT%hwGgw7ZYgzeSxC_HN&GZ!?G_cO z)%$-3Pe+V7*Z&TB@-Ocn3JZs?j%?FFW32sTey66#Z3tUMToj8DPLM+o^+1o8BAzRpU3M`tqhBdzbCB{}k zL59UP9pJ#XgkofWtEea|FQ-Ld!qaboBS~s16(aEnS3duwEr|b?6Em;2mYeVk{g(}i z$H}OsrH{&1?mO=77l%bfMKs=F^Y)j3#E}MC0+QJbQawQ(4j{!o{3?09dMH&0{MoYO zqG#tDRsdkNTx;e|pI{cC(!6?MXwF{6n&Ch0do1>}^uqUV@UaTt`042>a2t=c8;_qI zsE7EtizAtu%E>`t(zyyYp0akseV~yx_;X>RW}VeI``vC;W2K3~DsQ9Db$FzF-|(0G z*F6}4VeE%KuRCKMF5HXi(o}r4fBr4%+c1yB!l}mY27d@te;oz>^Did%rKQbYm&C=C z!xcZR5s@Z8u#(lH8%om3y^GaHLqLMY4_I1KkhIlTX(vy0qV9VP#Na;bHb)%yUaEYEAI zezQnLqMea8Vt|j`GukC;zxl?#sHxa)`u4)XKp^-e02BSIpv404;e1^BWkaByR0AK< zq_SbEP-WkNQ*-t6vpfpl{`tC}Zllo$vX5dcxOmdS(V!hH%1tVa z%mLguG_-jRb{Q!BcPV3*oySd-m4-kK9jRj-rXFCfWQlo8O44d<5vek>Cc?)Pa77tj zex~QyZU56;+Sk{YgR=Ve3UN5ucOAn7Fwyij|Na5EKxt;}QZWR&catHT9*^R!rVv`o zP5I|U;b{S(um9;^9sT#UyQ^3{-Qsq*(BkeWoHA-vTe(A&F9!6Gn6xC#WDBN3h~!Y< zh6_ld0F9tZ^X2nT85#YwxF=InS|%prX?1GAtNrsoU&u`9e;SwYEW5sVb_b|u0!vSJ zg+Yfgo^-vSrar&r2r%&PBP+>!%h{c_wr5ouiRfP*EuCyh5N1C;VmN+3BBi|UM2)^4 zOf1lpJRmsjb5@sq2GxMUAY4JQQ>&PJYQ;u#Sf6?vKYRli2fmp1hIiNTK5AC7)Eb-z z5rLA_nBTi8d#yjGtuCY~M}+Zuq9DVdi1hKYS@eg0jATN-I=6igBzsj5CJ?juue%Nw zM>Qv=tAC`s`75nh{AMX(0wt86!;lhr7lBAEKA9cjk&GxAuND6}FElTUeeV48P#l30 zn!&S|U9k9A#{;8)RyC~67mMNFpR)WFRaJ3RfMKWIrFv6oCd3kQl^E#^ORc zpN!!AA?Yw3Mh=!2=>N#+8tvy1&~ge0Y6}ZvFU0K_{pU0xv6~1dD@U);=3^tJJWI5V z^BlA%6s#o~AxLJl&&U|D>#LHp{aIIqyB$dj&|oQL-xw(+04ePO5n-k6f9BC9091Y0 z2CbxEKW;5+F~DHaGkPuX&gCIhu|^A7ahejfAE@07;WZC|Ks)W#a}qxf&Nq6>T#b>} zm`^4S;wcYnB9#YXhju;GVXcmya)#W5!^xuMKtyh~(f}N-=jP^Kh8ITjkF=f_7J^)~ zR>bM)XXf04AgDAHA&q!GV8`unCG8M2dr{sDd}3i{4*J5M2YYEe70pIr8RuU6)o?XF(< zT?gYuOROtoE*7a~_+9r@UJ0{0f6Xi!D5d-mK7+==4mZhm4}jN8-BRZ zXEC16DIBz%K{XVe6NfPdee8p@O>Vp#*~0b?QNhB60R+kZTJ>u(aX)N@r7dJs$x zD_e zMVE4KKpp2{x9Se&*JV0YC=rtz)Ha{6g7vcqDoc{wd%)F)~xa}}$pG?$JYkKR7lw%KI|Hnx^X zDwKB<1>{pCsme;Plai9?O3byjU0HFNx45%!dl}ljH=}@eA)6CtC>>nMOp4NveWe+5)z}Q%~$=Sqly2EZvH}8#arWN|EebnVE=NiKj0g?CrL7-0_J`8NL#cCW66nt_E`Z`M zK&T8nL}gXC2Y64q-~Y^a=-~Tze#WMIvvTpkO~V zZ>Ygc=rA;q4FzxgzWJL>(+oB?kuHn|mh)3T$Xt?!HCUQQ;n!zFjMnxQifWlrv%c${ z*@b4*f@tOwN$$V#~8 znAj{#81Hi@QUc4v)bTZ)%JP1(D{A&K!|L8*VJ1sj=0=&COGcUAe;w!|e%`{4&J@Dg zhsYF*d0w1blu2*;~pfr(tFJQ;Q{&Ssj+kK@DR%_ zd=;8{17fHAD7ZBq7Oq(6gNzUjG-w~JCS%;?a2{)SrF3XYnd7l(?K8Q8w)PC4juAmj zf5&6P{!z!1-*7F1YPzPTCT>)(^A9qdTvM}&Mw-epv2ht%l;m*fXZfB-OFzgDEB@0l zfGw-C{k9ZLr;SYfkwo)ABY)M8Kk3C;UPHCz&+zEK`aj;}s{j3y;phkCmde)Cp+(1z z2S)7&ky2KZ_WN`WUz?lS?RmrK3C)tz^tUvhm4=eYKg$6R@~_%*m1g(hBGu&zHs7|x z<*L??^A;)p6`EM@`~{il*}1tV=aZ@S_V&|KTkJb+9>j({VrWitvpzFRrr$Dlu*0I& zn2_&ed`gr3lGgl$mZlNv$cD8|A=*O#Mt3_epF=%)?dLCF7WLiB4ciYAnMMcUK_PSn zv6{?<-1Fz9+GTA%?WL9PkF&(aCF-^Wn(i-A1^k{;9eCUZP*4G?m&I#Sx5OxPz?4`M z9*!hQi%HBz#LDvSw%Xfq*2Ob7{<>XiVov0CYD?x=C#g`BBU`z+YZ`rsw)z%~w@t-< z-uKsHUFW0ANj1UmNp_>+&nN&I2%YexJmzuVo+ z7B`t%<}_wL7%R(x$3py+M|9zb{>D)%x}6cB&8ScqRA%?^@Zq$`Apz2=NWyOh+H;Yq%qftrW#+&;4Q{pp^E-(rHP+?CP|L!?A{Ypp2fPQ%ud`(X` znB6rtws|)ly?0J&?|x+*KJjJPSZKfe3}U*``)qVH{}UD^zt8o*8ncWH64KQ{^B?~k zDcyQMeOy)TXco#Cl&<~mw&a9o`8EApDF+dBh+b~adYlIyz}TrS8V{NB{qguA&!caC z=Y2_q?Q-o#XiBp0nZfGKu$cRNqi?}jMQt8JK-2sApm4O_0m%0%9T}~F+JXZ6{^n$R z{<|VRE;XU;#Ajyxtjn!-J?TlRudQ-nfu;sjn?k+!Zd$gem$V~3ISI>lE2eOi!t&pP zb>p60ozYe=EA*ObIyxlMR4DAmwYbxK&I9E+TK{&_sj=!AH@y2bf|KN$bR#V-r%J!r zZ`}1Kb~#1A$z|^JE~Sh4wa8J3wT)gE)ZDV7XZ=H;lP_tL%r);S{4=%(Ea($jc#sA) z>;qK_GH|)wjRelNycg3|(*K-9##q9A%@vYkG%iTtahv)|(l><$0;Pp{;F3XmX|Wx0 zJ7-?Gr;D_7xpqC*YtSBSW=1nWhOynVEe0C=#5|B#3W==Bf^#9}ohv_JGtoKpsd&G{ zZ%wfL3e?A-eM;T3!%i_Kd@!pY!e8LE6-qMh&z3hwQ$HQz%TgO zeM;0r^+k#(pBRFShTo18h^>i9q=Wgsf(kM9p(a=$>j1$c8c{AdRys6NJuI;B9ZbS> zgQJlc|Cq(&$<{G4u;e6Gz;{yt>9B(FP*+JH`*k>>-L}x7!K{bTF4rbQrvFN) zS^uj&HLLu%SUVzO(9kM}f>I=NM=!$+;l?pw7A^PFD*g7((R=Y|xdkMtaO>;yhk#A) z>EG(hpwF~nd~jyl`szRhF6HC_^GKb)w!`iR;lDRXpDr3Y-|Sr|6l$7$zuoiTeXMZw zz4KnZn@y`57ry{nsOUPp#NINt9MkUbhmsNmUmA){EYq8--dp>NLE>Vb>Gdm*bH|u+ z!yg-`!xB!@suJYD{p6VVK={GPeX}nLz%q57ZqDOvUR#a`o)kEbiK*!`o9oqh%+th( zx4zpxwV8f(UG;Q3WF_vrjT4DaMi>6AsmUGOWMdu=9lc)5E-|*IlEs(R=K^F_KNTq}0`G`h-(+MZpagh(Z$uvdFZmU;NmB`=jP)d*Ezg@kxzLD0}kawo<=&=Xj zFr*+;bClUmLUfx&5-opW^7EQwPS8Lf zJ!)AP=Iuu%1nEJvEF`wnUaHak|Er5fc;tv3-`PCz&@0ttLdFe1!(?D7v&?ikb?PSv zMBVVcy@hx!8xs?Kw7B8z2Kf;MxHKA5Aw8mF70Pr+`h!p&@Auw#P2u-h3jNgU(&AOD z^T2TR?kD=3E8u5)vVL^|!r@%|WmG?<$#*M9gZjLqM4oY`D$+OFVk*CLj~;`1NVF6b zzNF#!I1`)lN1pG=(vq6pn-eY8LIX~;j~*QndIG~t@1)7#TLv`wAs+;}uG)^(@L#g| zx(yn+Ke&Q>XNt*VP0x(7P;{N!p+1Dl?3oDeFdiCJI9gJCfMj!>gX8Zv3G~QGVb7C* zNMrJFEAT@6-@k#le2(_5e30{QPGrt@FQ^YkyL_3k=0Z;%6(%#O;C;6uPvL(sZvXizFs~uKsq-TrVb&ooU`trgTy9Eqs7gT;DiuF6y)XR zC35wusBY4KuQaQ_6fLf5V#qu?-ak6p-`_v5wwrHnYbndGs^VClsqtDanz7@*R;}>! zI0RDS>sM)fo~OMUAhkp(@%YWSa=FEQ)%Doq@wSsj*~IWqUTLP=#@|0DbTbXq`tgX1 zbhvUnb(4J^UXXAEv3wjfbxZVDyymK+@4aj^JoMVDJqDeJliPfz6d5Q=ra@B|G$1R8^d)U;XjUhhsR5nb;4Lwh>t$LNU)>NOVd ziYc@Ak3B68n-`B#{crlky)eCCpkwRlz8@@3{SvL)(W-3wO)BYpPQ6>VTG}`o707uV zEN2_9?HWa^aoi9KnD-bcvaLRZha{RuBD_Jpb!vN0>7y=7kZ&p#X};t`kqU4;&>Zko zGG7IQa`IpgQ=n2HW}%q%kzsRU3TndhaZFLnM9qkBLew<_i=_Ec56N?$QR8U8Ca6@1 zu>K~wV6n*{e?;kk0}1rtWb;y>F_lnYjKzZ1LCn=;+$phn$s%~K!C1+k>VL=i*a>}5 zg?-m__P%Ym$ixbRf>xPXKFXoItjxh$B{7jyE3`|G5CM&PumD0tSJzQNfB&%&F^fXx zkKSF_axk|`24&pfSpZQ8T#J=0CNvgz5E5Yi4u3=;2ZE*n!G7WO6*ELj9kc!SQ;}q> z3M4F04^48Li^bv#r~Vq+oGLKJwz&%26`%+y=a8mJaaVa2VJBD}0%q>3M3C{df-cAUORFZTz4i zyOn%*XD=cZYhwjAIy*iZjMsVg>z|qgK&cRX8j~2$^d194PLr2LE*c<&`ZmHl^+#FR zKCle@chR1jU2)z{n)~W9HL{^qLLQA9U@3fY?o8Sr>AwYj#BZyM!|%jSOsowgR-?>% zCmwTL+}zlK;YtmluCDqCg~O;DdKj`ijd`{83=PW@x%7wNWqXaihycM#z_OAg1w_n ztM93CSkwo4EbyzkOl+#8^X{&S-?y8r`s^RMvM3D=%fHHe+piqS-%iX6NHc!taeaR%+QZ^|lclnu7)`4ZoEftb;D^+}@D3EZsu)5rg9DJB%F zd_6r)Pg%@5VCJYSZ?69M;+Q{OMky@OMW{-QP4&Chi|NJfOaFTOH!jkx-1>$GF`A4> zh zguzg$%C~d{^{i~>RzN&MB6g`ehV-R^D;A5y-MoDEy$J25U>?0;eEf-mJ}1V_-e~kg zT|?k3xB5B`Ee3RrD)yW}8{hEv|IK3|*)fJLlK}n)22`VejIfzC^@Sg<@z@2gf}V}y z;YNh)H;?@FG{>Y%kj=7V4V7k`b0zPO)6DyQ9B@}TqYSMkD!r3hlV-09L4s5mh0e;n z5Ssu{I2C$uEj{Ou_|IFBRAmBi##bKcn=?H-BVtW9OXj1oOy7-PeNm^i53PU8qs#Oq z4RxdtHR1ieh(#n-ztfo~q`HEW2jPxyb@kQ@isM@to*17NF+le&NXz2zzMgCcL~=x*{Qne4iA$vlVoCw9nG1HflE$|kYSa%6zz=NxIZ06biBO1lbnai z^k-jW&DU88L=odf^ofpd8PZs!A}bXVg}kM92-nqX#81{lW34|C&DYQm=w%Fzm99p5 zrtm|W0?-`a$_mAm;)mOdQd2ubd6%gDpBF$_cu{nG*vi@a3XG*%Y|o0KfN*trdkeDs z293vlmM0iLe-7%h3h)0)qrCZtswR9ABG91fW!KfoB7XJbrF7s70ahKPqhm+D^ zKZB@K@D_YfKNAwKf3+EVOBfrj&|OL-zHvQmB~jzPbJg+G6Tgx70tlv#LO-tla(PZ| zsTtl!IQl%1dQr9A4-KU#zX{XiPGddNokK>*L4;wb8|w(H7r;w}^PeT6F-26Oj5AV; zZVlC=-V;&5YO6k)Gh{$v9o!`xrpQd8*r=|hRt}v+oLUA3r022n5%5|xNPq%2fW1tO z668o=i1~KfYrmmYdTkhg-pxF`@YW$*awyn-76F^0{PWmaQK=+;?<--9`PR_czeST> zKVP7E=-`DHA|R|FRa}4-`AxZ@YyY7;`}JJ{Jz1HxEo)U}MVTWbQ&sglrIVkr|P>26LlMY0TE^n7&q)8|YAP=@*xN3B*cmFDM z)eVYD3N%YVjtBJ2050tFPpCXX&+p2pZmovG|9TozYw-H$J`4letJU~Q&LFwAm$!Ge z_mQWmiq;H1!OMJn2uuSze)2t|IcZMT5xd!lO>yQMp!yir2y8zb`}anY~77a^4v;@Dn+{^8fCuCeP4|`!k8pjDb>TUNBuo z0}gPe3F}mRGHDGRky4f@(!uNM->iGlsw!M%{QJ8@)y6Zf?y7t)Bwp;tQwW24i!X9! zE$+v_pIBqPp^XUPfhdD(_Jqc)e4cWk41ax*)RX zcCaFwmFBZ@a9a9Shz4B_KS?_()61~A!eTL6RmaG8)Jnp68x>#_&6t_M?0IjM+#~D z;nKcWsiJT9&h?73G;{=5@uPy`tdSsc-EXNc4UH06oyaQyEdh5Ix=BoBJ%D>{l%>v< z^TE_qvXRw>W%~y*-P+HW$)e|-z9m|xdu0+=9KSXSrgwqT18U&A7lBKCxU%uI@0nSj znyod7k(OaPjTB>KH5xR88nF^MxgW!XsGrfp2oZ?GBl}rH5XPO(+I(~Pe#d>_l~#cd zgsXhg3X3tZvRH44W-7dI^F)%Oo{bw@RStyETA?ND#BluXze(Y*JgW@??NN}<`E<+~baCn<-N09|>^g zUO|S8j?#eQ^bb>!#K6U-t*s3x#9;adBv!{meODJ3R{e9ZeVrXPWVq9pk%p<-kgV{w zm%9l*n{ia;)Hj(k7za`V`gzt5HVE*(OU|&dfFN&?+?ukTaF1o zTs5tHguitzM+b^kdUr$h31k0Mx340SQlXNwT65N_83F)s^xkh8G0XRIezTvy zO0UCp`^$Ky<{O&)c&zImDF{gIGx+7fDeEG|}KuDnEIAUoi^i(oIIBA-3bB@O&jcE#SL=-*KYMe>68L&-+S~`_=RX7Bm3=8xn+bQZjSXmoL&u z!9M0P>NjR594QQ+S~%UUDKHRZmh|UIZ$%1uf+Wh-lKnGs=)#?Pc+l$)mqW%hv|ep`2a;VhmekTdNwNggr{Zn+ zYorIi)}akIL`Z0BQl!>_1IB>?^Gx{YY0E8c@SfZs&O6CTNfzA1aA0-K7zKKI53Vx# zRz9#9Aoo8Dl?J0(>F`VucVw*NZ?zU@e_YsK5S4r@{rq!-f(irwQ8X)(u6oV$$I1$L zD{KH3Fj%gopWgY;2mpXvds>H6AoTK?#woQTJzc+0U{bzB$tf0phPw*apWe+RHGIj4e7`EqfFAd zCAT{xz6RjUzPQP!dR|siqDZ>|&Pro1Yq?l2Smy7YgJS@VLvf&2Ry?U@{cq;S8q*AR*Ah(P50^{yAE7kuF#Oj9qSWT*z#c1oTR zCfAcy!3wqcd^`ln*sH!R`~XAm6^g$H(S6-mo5ji6b2E`yYq1D6A}Fd|%Gxg|MI8DF z4I18?++8^OJ>0y^>Ub2HqZA>~O48iP_I`}tNm+Vox@$?cnEf`BKmJu~$taxibh^7idNHQ0N0AdkY`i!dkAu^^gzMgY1%;=DlO&zMcn^&d?kI_DbmPK@1E2ZB)Q_Xs~D7GVl8AfU2jH) z*B^%O+x9!r#9{MzXIU*?c5b{xCB!^_XHeo>M&bV$snQpF!b?gg=^ZL^eD6$+b9db@ z;WneK^H9d!(&)JQSjge)*=2@t7L9t6hd187cAZxIjAg@m2#*texV8X)VW!fK)gV;* zZG{*Lp=3}*8jg+R8m~3)HYgTOfI=+v-VD%NBEULj%DV-y4+KrS_B%=%X7w?s3LLz{ zv}xCggLC@TKn3UTYWbsAwh|M5|TUDKO(Efh+t5|$_Wm3#@s$R{=$->A1vD(GRY`#&mksl>I zmG9YX7P}zvxU--0nIq^i+&$xHKN$J3Q&eiJu2=a*p;2q7V@~1QLG_O38tU^cNm6M^ z{7#esjurZl*l%Jz3TOy8#86^lbwwdqS0Z`{bR%d}mYT~nKT6}x?`aC2PY1fQPLOil z(vOCEGuMj!ib&(G&byC?i%pgKKYYM&{E*!H&uWM1qu7feu1@^g!!PW&6Q~j%Z_PG= z%jbE1sCC7Ewa(cO_eB8HI;izC(fLurdzIWuNBgj2cH!=;^Zt37Id?*ui>9IiB0`8d zH92*Vnydz;#E|z3Uvx(FZ)gKOLAR2=L1UT(t zWeygQz+l&7SI!a)0?xx;s{~XoVx+>w!y`P z&FJ>1S0*OXO$!^FYHtcDps>(FsRWb+XZxHE`ZslIF<)dlnz$T!nk+VcprCXu&s6wS zK)^&Oxgaq5?ZF|h!R^%8v{0$h#hzUF?dQe$wzU$5s^-g=!2Ca8=I>b!=x89?#5yc| z7RfU%x~T&Bz82*F)RXBidReXZf=IY#T81UbC3JbBy11b*GT>R%@g3M3Ipqvy#dm~h zA=q1a3Q~!R1Vle!pG>9C7w z^s*a5mVtuFSW>}XIOv9}jv4YZw*Q+xav}`E34~#9p7Zd*E8$1Cay6`w_7{r_lBWBA z*s9u3mA)Er$wjL1zN^)WB=R;~9LW%Pdf9P1`qe6XwfZg3;;WlA#IP6=BMIy9gaPY* zs0Hy`DqdJ$xF#X~Pqpm_MRe2bUmo5cgRCo{ID$%JQQ>I51qEI=n%+XPtGe|oOFpbB z>iE5K0NVzQTJyU315R-jhQ6I^R3J0U-v?i88o6(`D0CBaees~oq-|_`B>2kP+k5F! zT#Hq|9xWiJpgylw-)8Ykksquy)h6x1Cne)Ji_^7xtt0kNun1W!MkaO1EXq6-I zCO^)r`5V4|U3bL;g5V$&RM~zu*3z&|CiL(vtv{33{4Zy}Q!16Y47_rmS#{8y8%-3V zK%W2@xB4A#M-$XUy=JuMkOKV|Y>It-u0MeI==a?}2Jbue{W08{Yu`?E=F*^I+K(hA zd0Pi!V+R3JE)EYWRl>r1|5&=u=u>%VLYy^+2M%*fbS!d69I zUc@O@i56E;B#qt4wMYamlKDn|$&fvBh(D72*c>;|Nu=?;$9V(;Vvi2c1QQ1nBJ8_MvMQ8D9%FTMH^+HZl6cf$c_ibftv?$u#LX$-IYx%*+QI z`GI>QJtl~0fq1%c9GTfSMZt40-XZhgu^L-Ce339{&YU(xN+~TP7mFt82E)b+D(svh zO&7Rrr(B$Q@dA(+K^nSIV(IeyU_PVKAuK+AD}bc9mDfcJQiNT@K{Gn)n=$bWfyREP zLy?u80Lbn{TwoA^lOGK-Ya45vMLt`#(Qmgu-Esn)*icG2uPR?D9i2Ildq2#k^uwRB zNZY&Zu_6;Q{Ra*E8Z`cmmxa!LX+qK(DLj!MG+ap{!I294rI@?rSVpNxp^!n#Iy({J zyf)`TR@r1uns3YOJZ?HBEqd7`W?oN3&(cWEh+M1#uzjg8Ts%huoF5fn#97@d z;S7vO2XOnK2_k|_pi4=1O9pZ(ti}rAAa|BWXg6$muqzFi{@mZRL-OZ?Ip zfEA$sT9J8jeq}@O74~;2Y@~KlqY9#<x*A)E86 zpB0$jZuZAK1@P?)zEV`2bt-q=pCiGGRYGb<9jfJh#zU1Jn^apnKUGvjaHk2Qew8L_ zvmu4retWx=^yOu=P=WrwOXXVp*@|I98_L^av6OcIRVFvzCJ6@Gx6%%t^e#$DVr~qt zL=etG3;lf`GDC+cz5_dL$7Mr|LkFHz6?XV5muF$GxUrGclM9h1i6BUFNgp)j)DxdW zZTd4y#6%!a(|$vHMp_8{NI|?&1t~`8QjS#AB#)L7ljhnTXeD_AS%0sjg^n$;wnkyb z!8mA{&m{l18Jk3fZW{5Hfq9r}dn>j}dIDW~y2tNJswPAeKLHm?�dgUdlcp@B>jl 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 |F#kL7`XIW<6WJ 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%0A;eaUnP`qjZf;iZrBZM{MPn6rRay!yCP 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 =jsI)?L~e_sq{QVy|veKv>=OyN7n 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 Ji$#cza3F0c}!zp5aIc+wkA20pRTT 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

    UP7gY4lYwv&LLQS_(f& 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%0DMaU;y@eN}an;m+=vQOZuVvsaGrk+Bz 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

    r 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%0Di~!;HR>4J%T0v{`(liqk95a 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

    U>WV1Hw-k#9^z1sZvuKKLo zZg2d&_%3Q{ey%g!u8kLJOYL=S9E6wQns7qgbbX%0N z8~qFj4b8C&G8f-+Z8Ay7U}6qaqSdPU_;%->*w6#%(J9aE6I+e)WmIj?Jz{4_-<94MT;cl^72xZ zuVF2O>2kS~R7%ikzFw4v2=rQkF^Jc!^%_*I--3`m`Lm9&50`)-&i86K_@6iq@Sb4& z`Kb&GU#E3p)Z?TC?|VP_JmWGQF37SN3B3E}BW_!$)HvO!Ah*_M3d~T8>8iT?wzk{6 zr~FQH4OX3Ci4%322UwR(DWCqN%FWl4hBA9oQ&XbC53DO`p$ywS{gWHjxw!}qoHvWt zt@^pTg*rL^2A`%Tuih9V;f4=yS9<`Z#SxG#0MU;Y+%kQ!BruMY0T=S}K#tELDNQU0 zmIh-rh1Whl_hPgDGz|OQxy|?oD#}{;a|C*ozTZt@*m!>wAjEXu-fecZA!@pKsWLvf zJGI`Q1QEQWW73Ns_6)12&`@kzM6V`|8ba7t@g7@TC+O#=Le;zmGNm_iIy_W9uN}_r z81aN@Do;MYeqtoQdabQae?Q0XH&aT>pV6Mbla8`Rxk64)zSM~8FwjLUourv%vRZW9?87ZUk74MjhrM6KJBUDa5SBm= z6U4x3EbxQw@A+JO@4eFFFQ0m~E)%egMQ!FTW;s$d^bmEJ;q~%)qJ@^q{plhy$F_Wm zJ$_uP`S7<9f;u*_EMKXNQ#49qknwokbT39MW2`YXk+$8leRMy2KC>)a0we7#BGi>O zIB>f5fr#I-e2V|?D6{?-Rba5T*x>g+RGsp@_0cd(pqtpJ6P>N5FZd=Z#q&C@R7w!7 z#TM9X1{bDKCeYZsm%@DH6RIb!VxeXCL|IIZZEBUAjEv-SY3ZI7=r#a#47%l}exO42 zpHuo@tubUu6{G#%GYK^1;dH5cd|J!!!w{kz0jIjir(a!^haVK!&j!$&-4us(K_kS* zZQR?-!)W~VINxws0DK2R=no-(^VjF!ol~T09e_?y_~bHu>3U^1gicq)dC_;TX31yw zZ7;Y(#ZZ$xc{;`naClzQeRhzx3I=+!%R_1q2j58JHL4vn5;)i{Zkrt)egC8*v`uUQ z?BJTbu;4x4jKXIn7v-L7unJ$-QsPjkTE0t*_k9x^wT2uT9=Ev}n#?xFAE4w3cXBrP zyPmBvZ!mOV+;UlHlM<3NYh2daDw3fl`e6L3OsLXo?fAFQ2cr*jkE%uM9ssEN&B-n* zpGRUneCg_!j43)!z1*MA_}2H0_}FOtkIUHHNOQ+st~mV|O3G?Eofy4nJ=Ny5Iq6vbPpk%~Z!XS{4cwMm{eV$4 z;QG8V>x6_N`;+v7@E7mDi4L2#NyYdzW6loZ)!BFqI9~xoP5%LYNIab&lO@aYw;tP) z7gRkg!W2}8+Wu_GX{FN~kqTY1Ni4XEdnupZLh~vyxcl%Tzx`Z>krBO^*3%osn=t7# zWHr_{$|`i`aB@R(RO*V;y$ys-3(m>7+1%yUgh6sPulij|bWET5(fGOs-59bZ>MgWe z)M3wXL0OQH0Z4M-1ItL+q#P~h0BbMO<4wkI1AJ}A9fbT3pUho@cdg$l{nBg86M~7w zL?_3;bSNyv4kAkoe9+OTV|kMJAKfher2_C!UZ3AXyBw4)c-@{YfF`Qjzca-k_DAx2 zt|)QTuvbmBY)36!q!iG2MbL+SZRO?a3eAb?(AI+}<&Qt8ajU`3yQZ%0AG8&$fS|?r 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

    8kYf^;N4GEHA~^=ZbFg63nu^Rx6Gh>rAqU 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�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

    MhzUEB8_U~=Dt52HIM#tYMeWR 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�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%0As#F3zR=*VL{5NMzo2HP+c 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Ói2cponQL`x^9ccj-*u`f!3h&u`@unw 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

    &CAo4HOREfV{$ghsp7BLtmwZ zBm26HEexMC3F0|>_q&Z#-)pj$>c=x5<;SQB1?zOYB#lpCT~gdU`QE%ZFA-5;VSQ$v z@ex&d>wAR485DuHehL>O2DyH_N#8YDtr;XG{d&sdnu>}9QicH&8E!T$k}&x{a}X}B zJP=O`(`{cU>Od#n1SNT%6uZ=0Gz$DSi%cy@IoKM4<4zP5DS({9Y*3wJH956Y)*#&B zdzu^QEu(x*I(@BxZ-xE^pA`seD~cT_TnqaWhV0ix#4K>B6+57z%bmQySms>2g#*`? zA1DE*Pd7X)f714t_0VSy`_(x_VKiV-^k2rw6^U@X-4|=aMgt}&tX37ZoCO%0A)tZ+ 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 z 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≈4tm!FPZiYR9a}@|>~iR?*}!XW+ViTJL=` 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 Date: Mon, 14 Oct 2024 12:20:23 +0100 Subject: [PATCH 108/123] Example input URLs now added and formatting tweaks. --- doc/source/tutorials/alchemical_transfer.rst | 91 ++++++++++++-------- 1 file changed, 54 insertions(+), 37 deletions(-) diff --git a/doc/source/tutorials/alchemical_transfer.rst b/doc/source/tutorials/alchemical_transfer.rst index b80ff36af..bd847ece7 100644 --- a/doc/source/tutorials/alchemical_transfer.rst +++ b/doc/source/tutorials/alchemical_transfer.rst @@ -1,6 +1,7 @@ ========================== Alchemical Transfer Method ========================== + In this tutorial, you will use BioSimSpace to set up and run a Relative Binding Free Energy (RBFE) calculation using the `alchemical transfer method `__ (ATM) on a pair of ligands bound to @@ -10,16 +11,16 @@ Free Energy (RBFE) calculation using the `alchemical transfer method ATM calculations are currently only available in OpenMM. As such, an environment containing OpenMM is required to run this tutorial. - --------------------------- +------------ System Setup --------------------------- -Import :mod:`BioSimSpace` using +------------ + +Import :mod:`BioSimSpace` using: >>> import BioSimSpace as BSS -Now load the set of molecules from a URL, via -:func:`BioSimSpace.IO.readMolecules` NEED TO UPLOAD THE MOLECULES: +Now load the set of example molecules from a URL, via +:func:`BioSimSpace.IO.readMolecules`: >>> url = BSS.tutorialUrl() >>> protein = BSS.IO.readMolecules([f"{url}/tyk2.prm7", f"{url}/tyk2.rst7"])[0] @@ -42,7 +43,7 @@ here simply defines the initial state of the system, and by extension the First, create an :class:`AToMSetup` object, which will be used to create the system. ->>> AToM_factory = BSS.FreeEnergy.AToMSetup(receptor=protein, ligand_bound=lig1, ligand_free=lig2) +>>> atm_setup = BSS.FreeEnergy.AToMSetup(receptor=protein, ligand_bound=lig1, ligand_free=lig2) Before an AToM-ready system can be created there are decisions to be made regarding the system setup, namely which atoms will be used to @@ -51,23 +52,27 @@ make up the centre of mass of each molecule. The choice of rigid core atoms is vital to the success of an ATM RBFE calculation, and as such BioSimSpace provides a helper function to visualise the -choice made by the user. +choice made by the user. ->>> BSS.FreeEnergy.AToMSetup.viewRigidCores(ligand_bound=lig1, ligand_free=lig2, ligand_bound_rigid_core=[14, 11, 15], ligand_free_rigid_core=[14, 11, 15]) +>>> BSS.FreeEnergy.AToMSetup.viewRigidCores( +... ligand_bound=lig1, +... ligand_free=lig2, +... ligand_bound_rigid_core=[14, 11, 15], +... ligand_free_rigid_core=[14, 11, 15] +... ) .. image:: images/alignment_visualisation.png :alt: Visualisation of the rigid cores of the ligands. .. note :: - In this case the choice of rigid core atoms is the same for both ligands, - but this is not always the case. The choice of these atoms should be made - on a ligand to ligand basis. + In this case the choice of rigid core atoms is the same for both ligands, + but this is not always the case. The choice of these atoms should be made + on a ligand to ligand basis. For help in choosing the correct atoms, see the `Gallichio lab tutorial `__. - Now that a sensible choice of rigid core atoms has been made, there are a few more choices to be made before the system can be prepared. The most important of these is the choice of displacement vector, which defines the direction and @@ -84,11 +89,14 @@ there if needed and can be set using the ``ligand_bound_com_atoms`` and Now that all the choices have been made, the system can be prepared ->>> system, AToMdata = AToM_factory.prepare(ligand_bound_rigid_core=[14, 11, 15], ligand_free_rigid_core=[14, 11, 15]) +>>> system, atm_data = atm_setup.prepare( +... ligand_bound_rigid_core=[14, 11, 15], +... ligand_free_rigid_core=[14, 11, 15] +... ) The ``prepare`` function returns a pair of objects, the first is the prepared protein-ligand-ligand system, and the second is a dictionary containing the -choices made during the setup process. This ``AToMdata`` object will be passed to +choices made during the setup process. This ``atm_data`` object will be passed to protocols for minimisation, equilibration and production in order to ensure that the system is correctly set up. @@ -104,9 +112,9 @@ Now all that remains is to solvate the system. >>> solvated = BSS.Solvent.tip3p(molecule=system, box=3 * [7 * BSS.Units.Length.nanometer]) --------------------------- +------------------------------ Minimisation and Equilibration --------------------------- +------------------------------ Now that the system is fully prepared, the next step is to minimise and equilibrate it. The minimisation and equilibration of systems using alchemical @@ -117,7 +125,7 @@ ATM calculations, the decision of which atoms to restrain must be made. A good choice for these atoms are the alpha carbons of the protein. These can be found using BioSimSpace search syntax. ->>> CA = [atom.index() for atom in solvated.search("atomname CA")] +>>> ca = [atom.index() for atom in solvated.search("atomname CA")] The system can now be minimised. Unlike standard minimisation, the minimisation of an ATM system requires that several restraints be applied from the start. @@ -132,7 +140,12 @@ set to a set of default values that are generally suitable for most systems, but can also be set manually by passing the relevant arguments to :data:`BioSimSpace.Protocol.AToMMinimisation`. ->>> minimisation = BSS.Protocol.AToMMinimisation(data=AToMdata, core_alignment=True, restraint=CA, com_distance_restraint=True) +>>> minimisation = BSS.Protocol.AToMMinimisation( +... data=atm_data, +... core_alignment=True, +... restraint=ca, +... com_distance_restraint=True +... ) This minimisation protocol can now be run as a standard BioSimSpace OpenMM process. @@ -143,12 +156,12 @@ process. >>> minimised = minimisation_process.getSystem(block=True) Now the first equilibration can be run. Similar to the minimisation, this -protocol has several restraints that are applied from the start. +protocol has several restraints that are applied from the start. >>> equilibration = BSS.Protocol.AToMEquilibration( -... data=AToMdata, -... core_alignment=True, -... restraint=CA, +... data=atm_data, +... core_alignment=True, +... restraint=ca, ... com_distance_restraint=True, ... runtime="100ps" ...) @@ -171,9 +184,9 @@ introduction is annealing, which by default will gradually increase the value of from 0 to 0.5 over a number of cycles. >>> annealing = BSS.Protocol.AToMAnnealing( -... data=AToMdata, +... data=atm_data, ... core_alignment=True, -... restraint=CA, +... restraint=ca, ... com_distance_restraint=True, ... runtime="100ps" ... anneal_numcycles=10 @@ -191,30 +204,34 @@ The final stage of the ATM minimisation and equilibration protocol is a post-annealing equilibration run, this time with the ATMForce present at λ=0.5. >>> post_anneal_equilibration = BSS.Protocol.AToMEquilibration( -... data=AToMdata, +... data=atm_data, ... core_alignment=True, -... restraint=CA, +... restraint=ca, ... com_distance_restraint=True, ... use_atm_force=True, ... lambda_1 = 0.5, ... lambda_2 = 0.5, ... runtime="100ps" ...) ->>> post_anneal_equilibration_process = BSS.Process.OpenMM(annealed, post_anneal_equilibration, platform="CUDA") +>>> post_anneal_equilibration_process = BSS.Process.OpenMM( +... annealed, +... post_anneal_equilibration, +... platform="CUDA" +... ) >>> post_anneal_equilibration_process.start() >>> post_anneal_equilibration_process.wait() >>> min_eq_final = post_anneal_equilibration_process.getSystem(block=True) .. note :: - A frequent soource of instability in ATM production runs is an overlap between the - bound ligand and the protein after a swap in direction. If this is encountered + A frequent soource of instability in ATM production runs is an overlap between the + bound ligand and the protein after a swap in direction. If this is encountered the first step taken should be to increase the runtime of the post-annealing equilibration. - This gives the system time to adjust to the presence of the new ligand, without the + This gives the system time to adjust to the presence of the new ligand, without the reduced stability associated with a swap in direction. --------------------------- +----------------------- Production and Analysis --------------------------- +----------------------- The system is now ready for production. The key decision to be made before beginning is the number of lambda windows, set using the ``num_lambda`` @@ -240,9 +257,9 @@ this case. >>> uh = 22 * [110.0] >>> output_directory = "tyk2_atm" >>> production_atm = BSS.Protocol.AToMProduction( -... data=AToMdata, +... data=atm_data, ... core_alignment=True, -... restraint=CA, +... restraint=ca, ... com_distance_restraint=True, ... runtime = "1ns", ... num_lambda=22, @@ -270,10 +287,10 @@ BioSimSpace UWHAM analysis tool. >>> BSS.FreeEnergy.AToM.analyse(output_directory) This will give the ΔΔG value for the perturbation, as well as the error (both in -kcal/mol). +kcal/mol). That concludes the tutorial on setting up and running an ATM RBFE calculation! For further information please visit the :data:`API documentation `, and for further information on the alchemical transfer method, see the `Gallichio lab website -`__. \ No newline at end of file +`__. From 22612afd040892cd67fc88e96afdfb8387c1998f Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 21 Oct 2024 15:26:31 +0100 Subject: [PATCH 109/123] Enhancements to the ATM tutorial. Also exposes AToMSetup to docs --- doc/source/tutorials/alchemical_transfer.rst | 103 ++++++++++--------- python/BioSimSpace/FreeEnergy/__init__.py | 1 + 2 files changed, 58 insertions(+), 46 deletions(-) diff --git a/doc/source/tutorials/alchemical_transfer.rst b/doc/source/tutorials/alchemical_transfer.rst index bd847ece7..e3c283b66 100644 --- a/doc/source/tutorials/alchemical_transfer.rst +++ b/doc/source/tutorials/alchemical_transfer.rst @@ -11,6 +11,12 @@ Free Energy (RBFE) calculation using the `alchemical transfer method ATM calculations are currently only available in OpenMM. As such, an environment containing OpenMM is required to run this tutorial. +This tutorial assumes that you are familiar with the concepts of the Alchemical +Transfer Method. If you are not, please see the `Gallichio lab website +`__ as well as the corresponding +publications for an in-depth explanation of the method, as well as the +intricacies involved in setting up an ATM calculation. + ------------ System Setup ------------ @@ -27,28 +33,32 @@ Now load the set of example molecules from a URL, via >>> lig1 = BSS.IO.readMolecules([f"{url}/ejm_31.prm7", f"{url}/ejm_31.rst7"])[0] >>> lig2 = BSS.IO.readMolecules([f"{url}/ejm_43.prm7", f"{url}/ejm_43.rst7"])[0] -In order to run an ATM calculation a single system, containing both ligands and -the protein in their correct positions, is required. This can be created using +In order to run an ATM calculation, a single system containing both ligands and +the protein in their correct positions is needed. This can be created using functionality provided in :func:`BioSimSpace.FreeEnergy.AToMSetup`. -ATM calculation require that both ligands be present in the +ATM calculations require that both ligands be present in the system simultaneously, with one ligand bound to the receptor and the other free in the solvent. As such, the first decision to be made when setting up an ATM -calculation is which ligand will be bound and which will be free. It is -important to note that, while one ligand is chosen to be bound, `both` ligands -will bound to the receptor at some point during the calculation, the choice made -here simply defines the initial state of the system, and by extension the -`direction` of the calculation. +calculation is which ligand will be bound and which will be free. + +It is important to note that, while one ligand is chosen to be bound, `both` +ligands will bound to the receptor at some point during the calculation, the +choice made here simply defines the initial state of the system, and by +extension the `direction` of the calculation. -First, create an :class:`AToMSetup` object, which will be used to create the -system. +The first step in creating an ATM-compatible system in BioSimSpace is to create +an :class:`AToMSetup` object, which will be used to prepare the system: ->>> atm_setup = BSS.FreeEnergy.AToMSetup(receptor=protein, ligand_bound=lig1, ligand_free=lig2) +>>> atm_setup = BSS.FreeEnergy.AToMSetup(receptor=protein, +... ligand_bound=lig1, +... ligand_free=lig2 +... ) -Before an AToM-ready system can be created there are decisions to be made -regarding the system setup, namely which atoms will be used to -define the rigid cores of the ligands, as well as the indices of the atoms that -make up the centre of mass of each molecule. +Before an AToM-ready system can be prepared there are decisions to be made +regarding the system setup, namely which atoms will be used to define the rigid +cores of the ligands, as well those that make up the centre of mass of each +molecule. The choice of rigid core atoms is vital to the success of an ATM RBFE calculation, and as such BioSimSpace provides a helper function to visualise the @@ -87,7 +97,7 @@ should not be necessary to change the default choice of atoms, but the option is there if needed and can be set using the ``ligand_bound_com_atoms`` and ``ligand_free_com_atoms`` arguments. -Now that all the choices have been made, the system can be prepared +Now that all the choices have been made, the system can be prepared: >>> system, atm_data = atm_setup.prepare( ... ligand_bound_rigid_core=[14, 11, 15], @@ -98,9 +108,10 @@ The ``prepare`` function returns a pair of objects, the first is the prepared protein-ligand-ligand system, and the second is a dictionary containing the choices made during the setup process. This ``atm_data`` object will be passed to protocols for minimisation, equilibration and production in order to ensure that -the system is correctly set up. +options chosen during setup are properly carried through. The prepared system can be visualised using BioSimSpace's built in visualisation +functionality: >>> v = BSS.Notebook.View(system) >>> v.system() @@ -117,28 +128,28 @@ Minimisation and Equilibration ------------------------------ Now that the system is fully prepared, the next step is to minimise and -equilibrate it. The minimisation and equilibration of systems using alchemical +equilibrate. The minimisation and equilibration of systems using alchemical transfer is more complex than standard systems, and is a multi-stage process. First, if positional restraints are needed, which is generally recommended for ATM calculations, the decision of which atoms to restrain must be made. A good choice for these atoms are the alpha carbons of the protein. These can be -found using BioSimSpace search syntax. +found using BioSimSpace search syntax: >>> ca = [atom.index() for atom in solvated.search("atomname CA")] The system can now be minimised. Unlike standard minimisation, the minimisation of an ATM system requires that several restraints be applied from the start. -These restraints are: core alignment, applied to atoms determined earlier, which -can be turned on or off by passing the ``core_alignment`` argument; positional -restraints applied to the alpha carbons listed above, set using the -``restraint`` argument; and a centre of mass distance restraint, which maintains +These restraints are: **core alignment**, applied to atoms determined earlier, which +can be turned on or off by passing the ``core_alignment`` argument; **positional +restraints** applied to the alpha carbons listed above, set using the +``restraint`` argument; and a **centre of mass distance restraint**, which maintains the distance between the centre of masses of the ligands, as well as the distance between the centre of mass of the protein and ligands, set using the ``com_distance_restraint`` argument. The strength of these restraints is automatically set to a set of default values that are generally suitable for most systems, but can also be set manually by passing the relevant arguments to -:data:`BioSimSpace.Protocol.AToMMinimisation`. +:data:`BioSimSpace.Protocol.AToMMinimisation`: >>> minimisation = BSS.Protocol.AToMMinimisation( ... data=atm_data, @@ -148,15 +159,15 @@ can also be set manually by passing the relevant arguments to ... ) This minimisation protocol can now be run as a standard BioSimSpace OpenMM -process. +process: >>> minimisation_process = BSS.Process.OpenMM(solvated, minimisation) >>> minimisation_process.start() >>> minimisation_process.wait() >>> minimised = minimisation_process.getSystem(block=True) -Now the first equilibration can be run. Similar to the minimisation, this -protocol has several restraints that are applied from the start. +Now the first stage of equilibration can be run. Similar to the minimisation, +this protocol has several restraints that are applied from the start: >>> equilibration = BSS.Protocol.AToMEquilibration( ... data=atm_data, @@ -164,7 +175,7 @@ protocol has several restraints that are applied from the start. ... restraint=ca, ... com_distance_restraint=True, ... runtime="100ps" -...) +... ) >>> equilibrate_process = BSS.Process.OpenMM(minimised, equilibration, platform="CUDA") >>> equilibrate_process.start() >>> equilibrate_process.wait() @@ -179,18 +190,18 @@ protocol has several restraints that are applied from the start. computationally expensive. Now that the system has been minimised and equilibrated without the ATMForce -being present, it needs to be added to the system. The first stage of this -introduction is annealing, which by default will gradually increase the value of λ -from 0 to 0.5 over a number of cycles. +present, it needs to be added to the system. The first stage of this +introduction is annealing, which by default will gradually increase the value of +λ from 0 to 0.5 over a number of cycles: >>> annealing = BSS.Protocol.AToMAnnealing( ... data=atm_data, ... core_alignment=True, ... restraint=ca, ... com_distance_restraint=True, -... runtime="100ps" +... runtime="100ps", ... anneal_numcycles=10 -...) +... ) >>> annealing_process = BSS.Process.OpenMM(equilibrated, annealing, platform="CUDA") >>> annealing_process.start() >>> annealing_process.wait() @@ -201,7 +212,7 @@ can be annealed. See :data:`BioSimSpace.Protocol.AToMAnnealing` for full the full list of annealing options. The final stage of the ATM minimisation and equilibration protocol is a -post-annealing equilibration run, this time with the ATMForce present at λ=0.5. +post-annealing equilibration run, this time with the ATMForce present at λ=0.5: >>> post_anneal_equilibration = BSS.Protocol.AToMEquilibration( ... data=atm_data, @@ -209,10 +220,10 @@ post-annealing equilibration run, this time with the ATMForce present at λ=0.5. ... restraint=ca, ... com_distance_restraint=True, ... use_atm_force=True, -... lambda_1 = 0.5, -... lambda_2 = 0.5, +... lambda1 = 0.5, +... lambda2 = 0.5, ... runtime="100ps" -...) +... ) >>> post_anneal_equilibration_process = BSS.Process.OpenMM( ... annealed, ... post_anneal_equilibration, @@ -223,7 +234,7 @@ post-annealing equilibration run, this time with the ATMForce present at λ=0.5. >>> min_eq_final = post_anneal_equilibration_process.getSystem(block=True) .. note :: - A frequent soource of instability in ATM production runs is an overlap between the + A frequent source of instability in ATM production runs is an overlap between the bound ligand and the protein after a swap in direction. If this is encountered the first step taken should be to increase the runtime of the post-annealing equilibration. This gives the system time to adjust to the presence of the new ligand, without the @@ -250,8 +261,7 @@ provided are all of the same length, specifically they must have length equal to of options. In the case of this TYK2 perturbation, the default values for ``alpha`` and -``uh`` will need to be set manually, as the default values are not suitable in -this case. +``uh`` will need to be set manually, as the default values are not suitable. >>> alpha = 22 * [0.1] >>> uh = 22 * [110.0] @@ -265,21 +275,22 @@ this case. ... num_lambda=22, ... alpha=alpha, ... uh=uh, -) +... ) >>> production_process = BSS.FreeEnergy.AToM( ... system=min_eq_final, ... protocol=production_atm, ... work_dir=output_directory, -... platform="CUDA" +... platform="CUDA", ... setup_only=True -) +... ) The ``setup_only`` flag is set to ``True`` here, this means that all input files will be created, but nothing will be run. It is recommended to run production protocols on HPC resources where multiple GPUs are available, as the calculations -can be very computationally expensive. Running the generated inputs is as simple -as running the ``OpenMM.py`` script contained in each of the labelled ``lambda`` -folders of the output directory. +can be very computationally expensive. + +Running the generated inputs is as simple as running the ``OpenMM.py`` script +contained in each of the labelled ``lambda`` folders of the output directory. Once production is complete, the results can be analysed using the built-in BioSimSpace UWHAM analysis tool. diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index d47e41d6c..48561420d 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -29,6 +29,7 @@ :toctree: generated/ Relative + AToMSetup AToM Functions From 0b9b29fd4a60c9019542d52b305c360a64baaabb Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Tue, 22 Oct 2024 09:50:12 +0100 Subject: [PATCH 110/123] Rotate perturbable and non-perturbable molecules independently. [closes #354] --- .../Sandpit/Exscientia/_SireWrappers/_system.py | 17 +++++++++++++---- python/BioSimSpace/_SireWrappers/_system.py | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py index 283c84ef8..282d5edfd 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py +++ b/python/BioSimSpace/Sandpit/Exscientia/_SireWrappers/_system.py @@ -1238,8 +1238,9 @@ def rotateBoxVectors( from sire.system import System - # Create a cursor. - cursor = System(self._sire_object).cursor() + # Create a cursor for the non-perturbable molecules. + system = System(self._sire_object) + cursor = system["not property is_perturbable"].cursor() # Rotate all vector properties. @@ -1267,8 +1268,15 @@ def rotateBoxVectors( except: pass + # Update the molecules in the system. + system.update(cursor.commit()) + self._sire_object = system._system + # Now deal with any perturbable molecules. if self.nPerturbableMolecules() > 0: + # Create a cursor for the perturbable molecules. + cursor = system["property is_perturbable"].cursor() + # Coordinates. try: prop_name = property_map.get("coordinates", "coordinates") + "0" @@ -1307,8 +1315,9 @@ def rotateBoxVectors( except: pass - # Commit the changes. - self._sire_object = cursor.commit()._system + # Update the perturbable molecules in the system. + system.update(cursor.commit()) + self._sire_object = system._system def reduceBoxVectors(self, bias=0, property_map={}): """ diff --git a/python/BioSimSpace/_SireWrappers/_system.py b/python/BioSimSpace/_SireWrappers/_system.py index c00beac2c..9cbf17010 100644 --- a/python/BioSimSpace/_SireWrappers/_system.py +++ b/python/BioSimSpace/_SireWrappers/_system.py @@ -1186,8 +1186,9 @@ def rotateBoxVectors( from sire.system import System - # Create a cursor. - cursor = System(self._sire_object).cursor() + # Create a cursor for the non-perturbable molecules. + system = System(self._sire_object) + cursor = system["not property is_perturbable"].cursor() # Rotate all vector properties. @@ -1215,8 +1216,15 @@ def rotateBoxVectors( except: pass + # Update the molecules in the system. + system.update(cursor.commit()) + self._sire_object = system._system + # Now deal with any perturbable molecules. if self.nPerturbableMolecules() > 0: + # Create a cursor for the perturbable molecules. + cursor = system["property is_perturbable"].cursor() + # Coordinates. try: prop_name = property_map.get("coordinates", "coordinates") + "0" @@ -1255,8 +1263,9 @@ def rotateBoxVectors( except: pass - # Commit the changes. - self._sire_object = cursor.commit()._system + # Update the perturbable molecules in the system. + system.update(cursor.commit()) + self._sire_object = system._system def reduceBoxVectors(self, bias=0, property_map={}): """ From 4095d96c9032d522c94481f1cab11a6b1e6bddb2 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Tue, 22 Oct 2024 18:40:42 +0100 Subject: [PATCH 111/123] Remove redundant jupyter nb-extension commmands. [ci skip] --- python/setup.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/python/setup.py b/python/setup.py index f5eb8b8e4..aa3fe94bb 100644 --- a/python/setup.py +++ b/python/setup.py @@ -251,24 +251,6 @@ def clear_installed_list(): if sys.platform == "win32": bin_dir = os.path.join(bin_dir, "Scripts") - command = ( - "%s/jupyter-nbextension install nglview --py --sys-prefix --log-level=0" - % bin_dir - ) - subprocess.run( - shlex.split(command, posix=posix), - shell=False, - stdout=stdout, - stderr=stderr, - ) - command = "%s/jupyter-nbextension enable nglview --py --sys-prefix" % bin_dir - subprocess.run( - shlex.split(command, posix=posix), - shell=False, - stdout=stdout, - stderr=stderr, - ) - print("Cleaning conda environment") command = "%s clean --all --yes --quiet" % conda_exe subprocess.run( From 0e1933f57d00cd6bffde4f925f3d33a9bbaf4da1 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:02:00 +0100 Subject: [PATCH 112/123] Fix indexing of tutorials. --- doc/source/index.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 3c20502b2..92ec687e1 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -63,7 +63,7 @@ Tutorials ========= .. toctree:: - :maxdepth: 2 + :maxdepth: 1 tutorials/index @@ -71,7 +71,7 @@ Detailed Guides =============== .. toctree:: - :maxdepth: 2 + :maxdepth: 1 guides/index @@ -93,7 +93,7 @@ Support Contributing ============ .. toctree:: - :maxdepth: 2 + :maxdepth: 1 contributing/index contributors From d4e7ed06c8a4f8a6d661b8f10f68bbff0ff911cf Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:02:35 +0100 Subject: [PATCH 113/123] Fix sections. --- doc/source/tutorials/protein_mutations.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/source/tutorials/protein_mutations.rst b/doc/source/tutorials/protein_mutations.rst index b75202552..28af5b8c3 100644 --- a/doc/source/tutorials/protein_mutations.rst +++ b/doc/source/tutorials/protein_mutations.rst @@ -1,6 +1,10 @@ +============================ Alchemical Protein Mutations ============================ +Introduction +============ + In this tutorial you will learn how to use BioSimSpace’s mapping functionality to set up alchemical calculations in order to compute the change in the binding affinity of a ligand as a result of a protein From dc9548ad3a80aa4764466b7cc7a465113dc0827b Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:02:46 +0100 Subject: [PATCH 114/123] Move API docs before examples. --- doc/source/api/index_Align.rst | 11 ++++++----- doc/source/api/index_FreeEnergy.rst | 13 +++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/source/api/index_Align.rst b/doc/source/api/index_Align.rst index 4b252c315..06665bfb3 100644 --- a/doc/source/api/index_Align.rst +++ b/doc/source/api/index_Align.rst @@ -4,6 +4,12 @@ BioSimSpace.Align ================= The *Align* package provides functionality for aligning and merging molecules. + +.. automodule:: BioSimSpace.Align + +.. toctree:: + :maxdepth: 1 + Molecules are aligned using a Maximum Common Substructure (MCS) search, which is used to find mappings between atom indices in the two molecules. Functionality is provided for sorting the mappings according to a scoring @@ -34,8 +40,3 @@ Some examples: # The resulting "merged-molecule" can be used in free energy perturbation # simulations. merged = BSS.Align.merge(mol0, mol1, mappings) - -.. automodule:: BioSimSpace.Align - -.. toctree:: - :maxdepth: 1 diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index 7cf56cb09..aa098157b 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -6,6 +6,13 @@ BioSimSpace.FreeEnergy The *FreeEnergy* package contains tools to configure, run, and analyse *relative* free energy simulations. +.. automodule:: BioSimSpace.FreeEnergy + +.. toctree:: + :maxdepth: 1 + +As well as the :class:`protocol ` used for production + Free-energy perturbation simulations require a :class:`System ` containing a *merged* molecule that can be *perturbed* between two molecular end states by use @@ -130,12 +137,6 @@ the path to a working directory to :class:`FreeEnergy.Relative.analyse ` used for production simulations, it is also possible to use :class:`FreeEnergy.Relative ` to setup and run simulations for minimising or equilibrating structures for each lambda window. See the From c1d8eb31b52fe2ff1a86ca11177899b95a9cbe32 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:08:04 +0100 Subject: [PATCH 115/123] Improve sectioning. --- doc/source/api/index_FreeEnergy.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index aa098157b..fa76d02b2 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -35,6 +35,9 @@ perturbable molecule created by merging two ligands, ``ligA`` and ``ligB``, perturbable molecule. We assume that each molecule/system has been appropriately minimised and equlibrated. +Relative binding free-energy (RBFE) +----------------------------------- + To setup, run, and analyse a binding free-energy calculation: .. code-block:: python @@ -145,9 +148,8 @@ for minimising or equilibrating structures for each lambda window. See the protocols for details. At present, these protocols are only supported when not using :class:`SOMD ` as the simulation engine. - -BioSimSpace.FreeEnergy.AToM ----------------------------- +Alchemical Transfer Method (ATM) +-------------------------------- This package contains tools to configure, run, and analyse *relative* free energy simulations using the *alchemical transfer method* developed by the From 24f88254786fc94147984ef38158bbad81adf6ab Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:14:03 +0100 Subject: [PATCH 116/123] Switch from AToM to ATM. --- doc/source/api/index_FreeEnergy.rst | 20 ++-- doc/source/tutorials/alchemical_transfer.rst | 30 +++--- python/BioSimSpace/FreeEnergy/__init__.py | 4 +- python/BioSimSpace/FreeEnergy/_atm.py | 96 ++++++++++---------- python/BioSimSpace/FreeEnergy/_ddg.py | 4 +- python/BioSimSpace/Process/_atm.py | 48 +++++----- python/BioSimSpace/Process/_atm_utils.py | 22 ++--- python/BioSimSpace/Process/_openmm.py | 16 ++-- python/BioSimSpace/Protocol/__init__.py | 8 +- python/BioSimSpace/Protocol/_atm.py | 55 +++++------ tests/FreeEnergy/test_atm.py | 16 ++-- tests/Process/test_atm.py | 14 +-- tests/Protocol/test_atm.py | 30 +++--- tests/conftest.py | 2 +- 14 files changed, 183 insertions(+), 182 deletions(-) diff --git a/doc/source/api/index_FreeEnergy.rst b/doc/source/api/index_FreeEnergy.rst index fa76d02b2..ccf107b53 100644 --- a/doc/source/api/index_FreeEnergy.rst +++ b/doc/source/api/index_FreeEnergy.rst @@ -172,19 +172,19 @@ single simulation. In order to perform a relative free energy calculation using the *alchemical transfer method*, the user requires a protein and two ligands, as well as knowledge of any common core shared between the two ligands. -AToM-compatible systems can be created from these elements using the -:class:`FreeEnergy.AToM ` class. +ATM-compatible systems can be created from these elements using the +:class:`FreeEnergy.ATM ` class. .. code-block:: python - from BioSimSpace.FreeEnergy import AToMSetup + from BioSimSpace.FreeEnergy import ATMSetup ... - # Create an AToM setup object. 'protein', 'ligand1' and 'ligand2' must be + # Create an ATM setup object. 'protein', 'ligand1' and 'ligand2' must be # BioSimSpace Molecule objects. # 'ligand1' is bound in the lambda=0 state, 'ligand2' is bound in the lambda=1 state. - atm_setup = AToMSetup(protein=protein, ligand1=ligand1, ligand2=ligand2) + atm_setup = ATMSetup(protein=protein, ligand1=ligand1, ligand2=ligand2) # Now create the BioSimSpace system. Here is where knowledge of the common core is required. # ligand1_rigid_core and ligand2_rigid_core are lists of integers, each of length three, @@ -197,7 +197,7 @@ AToM-compatible systems can be created from these elements using the ) # The prepare function returns two objects: a prepared BioSimSpace system that is ready - # for AToM simulation, and a data dictionary containing information relevant to AToM calculations. + # for ATM simulation, and a data dictionary containing information relevant to ATM calculations. # This dictionary does not need to be kept, as the information is also encoded in the system # object, but it may be useful for debugging. @@ -206,14 +206,14 @@ Preparing the system for production runs is slightly more complex than in the conventional approach, as the system will need to be annealed to an intermediate lambda value, and then equilibrated at that value. The :ref:`protocol ` sub-module contains functionality for -equilibrating and annealing systems for AToM simulations. +equilibrating and annealing systems for ATM simulations. Once the production simulations have been completed, the user can analyse -the data using the :func:`analyse ` function. +the data using the :func:`analyse ` function. .. code-block:: python - from BioSimSpace.FreeEnergy import AToM + from BioSimSpace.FreeEnergy import ATM # Analyse the simulation data to get the free energy difference and associated error. - ddg, error = AToM.analyse("path/to/working/directory") + ddg, error = ATM.analyse("path/to/working/directory") diff --git a/doc/source/tutorials/alchemical_transfer.rst b/doc/source/tutorials/alchemical_transfer.rst index e3c283b66..0ce5afc69 100644 --- a/doc/source/tutorials/alchemical_transfer.rst +++ b/doc/source/tutorials/alchemical_transfer.rst @@ -35,7 +35,7 @@ Now load the set of example molecules from a URL, via In order to run an ATM calculation, a single system containing both ligands and the protein in their correct positions is needed. This can be created using -functionality provided in :func:`BioSimSpace.FreeEnergy.AToMSetup`. +functionality provided in :func:`BioSimSpace.FreeEnergy.ATMSetup`. ATM calculations require that both ligands be present in the system simultaneously, with one ligand bound to the receptor and the other free @@ -48,14 +48,14 @@ choice made here simply defines the initial state of the system, and by extension the `direction` of the calculation. The first step in creating an ATM-compatible system in BioSimSpace is to create -an :class:`AToMSetup` object, which will be used to prepare the system: +an :class:`ATMSetup` object, which will be used to prepare the system: ->>> atm_setup = BSS.FreeEnergy.AToMSetup(receptor=protein, +>>> atm_setup = BSS.FreeEnergy.ATMSetup(receptor=protein, ... ligand_bound=lig1, ... ligand_free=lig2 ... ) -Before an AToM-ready system can be prepared there are decisions to be made +Before an ATM-ready system can be prepared there are decisions to be made regarding the system setup, namely which atoms will be used to define the rigid cores of the ligands, as well those that make up the centre of mass of each molecule. @@ -64,7 +64,7 @@ The choice of rigid core atoms is vital to the success of an ATM RBFE calculation, and as such BioSimSpace provides a helper function to visualise the choice made by the user. ->>> BSS.FreeEnergy.AToMSetup.viewRigidCores( +>>> BSS.FreeEnergy.ATMSetup.viewRigidCores( ... ligand_bound=lig1, ... ligand_free=lig2, ... ligand_bound_rigid_core=[14, 11, 15], @@ -149,9 +149,9 @@ distance between the centre of mass of the protein and ligands, set using the ``com_distance_restraint`` argument. The strength of these restraints is automatically set to a set of default values that are generally suitable for most systems, but can also be set manually by passing the relevant arguments to -:data:`BioSimSpace.Protocol.AToMMinimisation`: +:data:`BioSimSpace.Protocol.ATMMinimisation`: ->>> minimisation = BSS.Protocol.AToMMinimisation( +>>> minimisation = BSS.Protocol.ATMMinimisation( ... data=atm_data, ... core_alignment=True, ... restraint=ca, @@ -169,7 +169,7 @@ process: Now the first stage of equilibration can be run. Similar to the minimisation, this protocol has several restraints that are applied from the start: ->>> equilibration = BSS.Protocol.AToMEquilibration( +>>> equilibration = BSS.Protocol.ATMEquilibration( ... data=atm_data, ... core_alignment=True, ... restraint=ca, @@ -194,7 +194,7 @@ present, it needs to be added to the system. The first stage of this introduction is annealing, which by default will gradually increase the value of λ from 0 to 0.5 over a number of cycles: ->>> annealing = BSS.Protocol.AToMAnnealing( +>>> annealing = BSS.Protocol.ATMAnnealing( ... data=atm_data, ... core_alignment=True, ... restraint=ca, @@ -208,13 +208,13 @@ introduction is annealing, which by default will gradually increase the value of >>> annealed = annealing_process.getSystem(block=True) The annealing process is fully customisable, and any number of λ-specific values -can be annealed. See :data:`BioSimSpace.Protocol.AToMAnnealing` for full the +can be annealed. See :data:`BioSimSpace.Protocol.ATMAnnealing` for full the full list of annealing options. The final stage of the ATM minimisation and equilibration protocol is a post-annealing equilibration run, this time with the ATMForce present at λ=0.5: ->>> post_anneal_equilibration = BSS.Protocol.AToMEquilibration( +>>> post_anneal_equilibration = BSS.Protocol.ATMEquilibration( ... data=atm_data, ... core_alignment=True, ... restraint=ca, @@ -257,7 +257,7 @@ argument. If this value is not set, a default of 22 will be set by BioSimSpace. In addition to setting the number of lambdas, any or all of the λ-specific values can be manually set, with the only condition being that the lists provided are all of the same length, specifically they must have length equal to -``num_lambda``. See :data:`BioSimSpace.Protocol.AToMProduction` for a full list +``num_lambda``. See :data:`BioSimSpace.Protocol.ATMProduction` for a full list of options. In the case of this TYK2 perturbation, the default values for ``alpha`` and @@ -266,7 +266,7 @@ In the case of this TYK2 perturbation, the default values for ``alpha`` and >>> alpha = 22 * [0.1] >>> uh = 22 * [110.0] >>> output_directory = "tyk2_atm" ->>> production_atm = BSS.Protocol.AToMProduction( +>>> production_atm = BSS.Protocol.ATMProduction( ... data=atm_data, ... core_alignment=True, ... restraint=ca, @@ -276,7 +276,7 @@ In the case of this TYK2 perturbation, the default values for ``alpha`` and ... alpha=alpha, ... uh=uh, ... ) ->>> production_process = BSS.FreeEnergy.AToM( +>>> production_process = BSS.FreeEnergy.ATM( ... system=min_eq_final, ... protocol=production_atm, ... work_dir=output_directory, @@ -295,7 +295,7 @@ contained in each of the labelled ``lambda`` folders of the output directory. Once production is complete, the results can be analysed using the built-in BioSimSpace UWHAM analysis tool. ->>> BSS.FreeEnergy.AToM.analyse(output_directory) +>>> BSS.FreeEnergy.ATM.analyse(output_directory) This will give the ΔΔG value for the perturbation, as well as the error (both in kcal/mol). diff --git a/python/BioSimSpace/FreeEnergy/__init__.py b/python/BioSimSpace/FreeEnergy/__init__.py index 48561420d..e1e44c7af 100644 --- a/python/BioSimSpace/FreeEnergy/__init__.py +++ b/python/BioSimSpace/FreeEnergy/__init__.py @@ -29,8 +29,8 @@ :toctree: generated/ Relative - AToMSetup - AToM + ATMSetup + ATM Functions ========= diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index 14eb7d36d..b93171139 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -22,7 +22,7 @@ # Functionality for creating and viewing systems for Atomic transfer. -__all__ = ["AToMSetup", "AToM"] +__all__ = ["ATMSetup", "ATM"] import copy as _copy import json as _json @@ -52,9 +52,9 @@ from IPython.display import FileLink as _FileLink -class AToMSetup: +class ATMSetup: """ - A class for setting up a system for AToM simulations. + A class for setting up a system for ATM simulations. """ def __init__( @@ -67,13 +67,13 @@ def __init__( ligand_bound_index=1, ligand_free_index=2, ): - """Constructor for the AToM class. + """Constructor for the ATM class. Parameters ---------- system : :class:`System ` - A pre-prepared AToM system containing protein and ligands placed + A pre-prepared ATM system containing protein and ligands placed in their correct positions. If provided takes precedence over protein, ligand_bound and ligand_free. @@ -133,13 +133,13 @@ def __init__( def _setSystem(self, system, is_prepared=True): """ - Set the system for the AToM simulation. + Set the system for the ATM simulation. Parameters ---------- system : BioSimSpace._SireWrappers.System - The system for the AToM simulation. + The system for the ATM simulation. """ if system is not None: if not isinstance(system, _System): @@ -158,23 +158,23 @@ def _setSystem(self, system, is_prepared=True): self._is_prepared = False def _getSystem(self): - """Get the system for the AToM simulation. + """Get the system for the ATM simulation. Returns ------- BioSimSpace._SireWrappers.System - The system for the AToM simulation. + The system for the ATM simulation. """ return self._system def _setProtein(self, protein): - """Set the protein for the AToM simulation. + """Set the protein for the ATM simulation. Parameters ---------- protein : BioSimSpace._SireWrappers.Molecule - The protein for the AToM simulation. + The protein for the ATM simulation. """ if protein is not None: if not isinstance(protein, _Molecule): @@ -185,23 +185,23 @@ def _setProtein(self, protein): self._protein = None def _getProtein(self): - """Get the protein for the AToM simulation. + """Get the protein for the ATM simulation. Returns ------- BioSimSpace._SireWrappers.Molecule - The protein for the AToM simulation. + The protein for the ATM simulation. """ return self._protein def _setLigandBound(self, ligand_bound): - """Set the bound ligand for the AToM simulation. + """Set the bound ligand for the ATM simulation. Parameters ---------- ligand_bound : BioSimSpace._SireWrappers.Molecule - The bound ligand for the AToM simulation. + The bound ligand for the ATM simulation. """ if ligand_bound is not None: if not isinstance(ligand_bound, _Molecule): @@ -214,23 +214,23 @@ def _setLigandBound(self, ligand_bound): self._ligand_bound = None def _getLigandBound(self): - """Get the bound ligand for the AToM simulation. + """Get the bound ligand for the ATM simulation. Returns ------- BioSimSpace._SireWrappers.Molecule - The bound ligand for the AToM simulation. + The bound ligand for the ATM simulation. """ return self._ligand_bound def _setLigandFree(self, ligand_free): - """Set the free ligand for the AToM simulation. + """Set the free ligand for the ATM simulation. Parameters ---------- ligand_free : BioSimSpace._SireWrappers.Molecule - The free ligand for the AToM simulation. + The free ligand for the ATM simulation. """ if ligand_free is not None: if not isinstance(ligand_free, _Molecule): @@ -243,12 +243,12 @@ def _setLigandFree(self, ligand_free): self._ligand_free = None def _getLigandFree(self): - """Get the free ligand for the AToM simulation. + """Get the free ligand for the ATM simulation. Returns ------- BioSimSpace._SireWrappers.Molecule - The free ligand for the AToM simulation. + The free ligand for the ATM simulation. """ return self._ligand_free @@ -301,7 +301,7 @@ def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): ---------- ligand_bound_rigid_core : BioSimSpace._SireWrappers.Molecule - The rigid core of the bound ligand for the AToM simulation. + The rigid core of the bound ligand for the ATM simulation. """ if ligand_bound_rigid_core is None: self.ligand_bound_rigid_core = None @@ -336,7 +336,7 @@ def _setLigandFreeRigidCore(self, ligand_free_rigid_core): ---------- ligand_free_rigid_core : BioSimSpace._SireWrappers.Molecule - The rigid core of the free ligand for the AToM simulation. + The rigid core of the free ligand for the ATM simulation. """ if ligand_free_rigid_core is None: self.ligand_free_rigid_core = None @@ -471,7 +471,7 @@ def prepare( ligand_free_com_atoms=None, ): """ - Prepare the system for an AToM simulation. + Prepare the system for an ATM simulation. Parameters ---------- @@ -509,7 +509,7 @@ def prepare( The prepared system, including protein and ligands in their correct positions. data : dict - A dictionary containing the data needed for the AToM simulation. This is + A dictionary containing the data needed for the ATM simulation. This is also encoded in the system for consistency, but is returned so that the user can easily query and validate the data. """ @@ -567,19 +567,19 @@ def prepare( @staticmethod def _makeSystemFromThree(protein, ligand_bound, ligand_free, displacement): - """Create a system for AToM simulations. + """Create a system for ATM simulations. Parameters ---------- protein : BioSimSpace._SireWrappers.Molecule - The protein for the AToM simulation. + The protein for the ATM simulation. ligand_bound : BioSimSpace._SireWrappers.Molecule - The bound ligand for the AToM simulation. + The bound ligand for the ATM simulation. ligand_free : BioSimSpace._SireWrappers.Molecule - The free ligand for the AToM simulation. + The free ligand for the ATM simulation. displacement : BioSimSpace.Types.Length The displacement of the ligand along the normal vector. @@ -588,7 +588,7 @@ def _makeSystemFromThree(protein, ligand_bound, ligand_free, displacement): ------- BioSimSpace._SireWrappers.System - The system for the AToM simulation. + The system for the ATM simulation. """ def _findTranslationVector(system, displacement, protein, ligand): @@ -692,7 +692,7 @@ def _findTranslationVector(system, displacement, protein, ligand): def _systemInfo(self): """ - If the user gives a pre-prepared AToM system, extract the needed information. + If the user gives a pre-prepared ATM system, extract the needed information. """ for p in self.protein_index: if self._system[p].isWater(): @@ -866,7 +866,7 @@ def _setLig2ComAtoms(self, lig2_com_atoms): def _makeData(self): """ - Make the data dictionary for the AToM system + Make the data dictionary for the ATM system """ self.data = {} self.data["displacement"] = self._getDisplacement() @@ -904,7 +904,7 @@ def viewRigidCores( ---------- system : :class:`System ` - The system for the AToM simulation that has been prepared AToM.prepare(). + The system for the ATM simulation that has been prepared ATM.prepare(). All other arguments are ignored if this is provided. ligand_bound : :class:`Molecule ` @@ -1141,7 +1141,7 @@ def find_arrow_points(center1, center2, diameter1, diameter2): return ngl -class AToM: +class ATM: """ A class for setting up, running, and analysis RBFE calculations using the Alchemical Transfer Method. @@ -1163,11 +1163,11 @@ def __init__( ---------- system : BioSimSpace._SireWrappers.System - A prepared AToM system containing a protein and two ligands, one bound and one free. + A prepared ATM system containing a protein and two ligands, one bound and one free. Assumed to already be equilibrated. - protocol : BioSimSpace.Protocol.AToM - The AToM protocol to use for the simulation. + protocol : BioSimSpace.Protocol.ATM + The ATM protocol to use for the simulation. platform : str The platform for the simulation: “CPU”, “CUDA”, or “OPENCL”. @@ -1196,11 +1196,11 @@ def __init__( # Validate the protocol. if protocol is not None: - from ..Protocol._atm import AToMProduction as _Production + from ..Protocol._atm import ATMProduction as _Production if not isinstance(protocol, _Production): raise TypeError( - "'protocol' must be of type 'BioSimSpace.Protocol.AToMProduction'" + "'protocol' must be of type 'BioSimSpace.Protocol.ATMProduction'" ) else: self._protocol = protocol @@ -1466,8 +1466,8 @@ def _inititalise_runner(self, system): process._system = first_process._system.copy() process._protocol = self._protocol process._work_dir = new_dir - process._stdout_file = new_dir + "/AToM.out" - process._stderr_file = new_dir + "/AToM.err" + process._stdout_file = new_dir + "/ATM.out" + process._stderr_file = new_dir + "/ATM.err" process._rst_file = new_dir + "/openmm.rst7" process._top_file = new_dir + "/openmm.prm7" process._traj_file = new_dir + "/openmm.dcd" @@ -1491,13 +1491,13 @@ def analyse( ignore_upper=None, inflex_indices=None, ): - """Analyse the AToM simulation. + """Analyse the ATM simulation. Parameters ---------- work_dir : str - The working directory where the AToM simulation is located. + The working directory where the ATM simulation is located. method : str The method to use for the analysis. Currently only UWHAM is supported. @@ -1540,7 +1540,7 @@ def analyse( if not len(inflex_indices) == 2: raise ValueError("'inflex_indices' must have length 2.") if method == "UWHAM": - total_ddg, total_ddg_err = AToM._analyse_UWHAM( + total_ddg, total_ddg_err = ATM._analyse_UWHAM( work_dir, ignore_lower, ignore_upper, inflex_indices ) return total_ddg, total_ddg_err @@ -1548,7 +1548,7 @@ def analyse( from ._relative import Relative as _Relative # temporary version to check that things are working - ddg_forward, ddg_reverse = AToM._analyse_MBAR(work_dir) + ddg_forward, ddg_reverse = ATM._analyse_MBAR(work_dir) ddg_forward = _Relative.difference(ddg_forward) ddg_reverse = _Relative.difference(ddg_reverse) return ddg_forward, ddg_reverse @@ -1558,7 +1558,7 @@ def analyse( @staticmethod def _analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflex_indices=None): """ - Analyse the UWHAM results from the AToM simulation. + Analyse the UWHAM results from the ATM simulation. """ from ._ddg import analyse_UWHAM as _UWHAM @@ -1570,7 +1570,7 @@ def _analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflex_indices=None): @staticmethod def _analyse_MBAR(work_dir): """ - Analyse the MBAR results from the AToM simulation. + Analyse the MBAR results from the ATM simulation. """ from ._ddg import analyse_MBAR as _MBAR @@ -1580,7 +1580,7 @@ def _analyse_MBAR(work_dir): @staticmethod def _analyse_test(work_dir): """ - Analyse the test results from the AToM simulation. + Analyse the test results from the ATM simulation. """ from ._ddg import new_MBAR as _test diff --git a/python/BioSimSpace/FreeEnergy/_ddg.py b/python/BioSimSpace/FreeEnergy/_ddg.py index 5c17fe20a..fa75d6dd1 100644 --- a/python/BioSimSpace/FreeEnergy/_ddg.py +++ b/python/BioSimSpace/FreeEnergy/_ddg.py @@ -22,7 +22,7 @@ # Alchemical transfer analysis methods. UWHAM implementation adapted from -# both the `femto` and `AToM-openmm` packages. +# both the `femto` and `ATM-openmm` packages. __all__ = ["analyse_UWHAM", "analyse_MBAR"] @@ -201,7 +201,7 @@ def _get_inflection_indices(folders): def analyse_UWHAM(work_dir, ignore_lower, ignore_upper, inflection_indices=None): """ - Analyse the output of BioSimSpace AToM simulations. + Analyse the output of BioSimSpace ATM simulations. Parameters ---------- diff --git a/python/BioSimSpace/Process/_atm.py b/python/BioSimSpace/Process/_atm.py index 636fc1998..8c27f537e 100644 --- a/python/BioSimSpace/Process/_atm.py +++ b/python/BioSimSpace/Process/_atm.py @@ -25,14 +25,14 @@ from .._Exceptions import IncompatibleError as _IncompatibleError from .. import Protocol as _Protocol -from ._atm_utils import _AToMUtils +from ._atm_utils import _ATMUtils from ._openmm import OpenMM as _OpenMM -class OpenMMAToM(_OpenMM): +class OpenMMATM(_OpenMM): """ - Derived class for running AToM simulations using OpenMM. Overloads the - _generate_config() to introduce AToM-specific methods. + Derived class for running ATM simulations using OpenMM. Overloads the + _generate_config() to introduce ATM-specific methods. """ def __init__( @@ -69,15 +69,15 @@ def __init__( ) def _generate_config(self): - if isinstance(self._protocol, _Protocol.AToMMinimisation): + if isinstance(self._protocol, _Protocol.ATMMinimisation): self._generate_config_minimisation() - elif isinstance(self._protocol, _Protocol.AToMEquilibration): + elif isinstance(self._protocol, _Protocol.ATMEquilibration): self._generate_config_equilibration() - elif isinstance(self._protocol, _Protocol.AToMAnnealing): + elif isinstance(self._protocol, _Protocol.ATMAnnealing): self._generate_config_annealing() - elif isinstance(self._protocol, _Protocol.AToMProduction) and self._is_testing: + elif isinstance(self._protocol, _Protocol.ATMProduction) and self._is_testing: self._generate_config_single_point_testing() - elif isinstance(self._protocol, _Protocol.AToMProduction): + elif isinstance(self._protocol, _Protocol.ATMProduction): self._generate_config_production() def _check_space(self): @@ -173,7 +173,7 @@ def _add_simulation_instantiation(self): self.addToConfig(" simulation.context.setPeriodicBoxVectors(*box_vectors)") def _generate_config_minimisation(self): - util = _AToMUtils(self._protocol) + util = _ATMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -229,7 +229,7 @@ def _generate_config_minimisation(self): self._protocol._setCustomised(False) def _generate_config_equilibration(self): - util = _AToMUtils(self._protocol) + util = _ATMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -367,7 +367,7 @@ def _generate_config_equilibration(self): def _generate_config_annealing(self): self._protocol._set_current_index(0) - util = _AToMUtils(self._protocol) + util = _ATMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -404,11 +404,11 @@ def _generate_config_annealing(self): frc = util.create_flat_bottom_restraint(restrained_atoms) self.addToConfig(frc) - # Use utils to create AToM-specific forces + # Use utils to create ATM-specific forces # Atom force is the only window-dependent force disp = util.createDisplacement() self.addToConfig(disp) - self.addToConfig("\n# Add AToM Force.") + self.addToConfig("\n# Add ATM Force.") self.addToConfig(util.createATMForce(self._protocol._get_window_index())) if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() @@ -501,7 +501,7 @@ def _generate_config_annealing(self): def _generate_config_production(self): self._protocol.set_current_index(0) analysis_method = self._protocol.getAnalysisMethod() - util = _AToMUtils(self._protocol) + util = _ATMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -510,7 +510,7 @@ def _generate_config_production(self): # TODO: check extra_options, extra_lines and property_map if self._protocol.get_window_index() is None: raise _IncompatibleError( - "AToM protocol requires the current window index to be set." + "ATM protocol requires the current window index to be set." ) # Write the OpenMM import statements. @@ -550,11 +550,11 @@ def _generate_config_production(self): frc = util.create_flat_bottom_restraint(restrained_atoms) self.addToConfig(frc) - # Use utils to create AToM-specific forces + # Use utils to create ATM-specific forces # Atom force is the only window-dependent force disp = util.createDisplacement() self.addToConfig(disp) - self.addToConfig("\n# Add AToM Force.") + self.addToConfig("\n# Add ATM Force.") self.addToConfig(util.createATMForce(self._protocol.get_window_index())) if self._protocol.getCoreAlignment(): alignment = util.createAlignmentForce() @@ -702,11 +702,11 @@ def _generate_config_single_point_testing(self): # calculate single point energies for each lambda window # quite hacky, but not designed to be exposed to the user anyway self._protocol.set_current_index(0) - if not isinstance(self._protocol, _Protocol.AToMProduction): + if not isinstance(self._protocol, _Protocol.ATMProduction): raise _IncompatibleError( - "Single point testing requires an AToMProduction protocol." + "Single point testing requires an ATMProduction protocol." ) - util = _AToMUtils(self._protocol) + util = _ATMUtils(self._protocol) # Clear the existing configuration list. self._config = [] @@ -715,7 +715,7 @@ def _generate_config_single_point_testing(self): # TODO: check extra_options, extra_lines and property_map if self._protocol.get_window_index() is None: raise _IncompatibleError( - "AToM protocol requires the current window index to be set." + "ATM protocol requires the current window index to be set." ) # Write the OpenMM import statements. @@ -753,11 +753,11 @@ def _generate_config_single_point_testing(self): frc = util.create_flat_bottom_restraint(restrained_atoms, force_group=5) self.addToConfig(frc) - # Use utils to create AToM-specific forces + # Use utils to create ATM-specific forces # Atom force is the only window-dependent force disp = util.createDisplacement() self.addToConfig(disp) - self.addToConfig("\n# Add AToM Force.") + self.addToConfig("\n# Add ATM Force.") self.addToConfig( util.createATMForce(self._protocol.get_window_index(), force_group=10) ) diff --git a/python/BioSimSpace/Process/_atm_utils.py b/python/BioSimSpace/Process/_atm_utils.py index ad045b147..12f769c6f 100644 --- a/python/BioSimSpace/Process/_atm_utils.py +++ b/python/BioSimSpace/Process/_atm_utils.py @@ -19,22 +19,22 @@ # along with BioSimSpace. If not, see . ##################################################################### -__all__ = ["_AToMUtils"] +__all__ = ["_ATMUtils"] import math as _math import warnings as _warnings from .. import Protocol as _Protocol from ..Types import Vector as _Vector -from ..Protocol._atm import _AToM +from ..Protocol._atm import _ATM -class _AToMUtils: - # Internal class for creating openmm forces within an AToM process. +class _ATMUtils: + # Internal class for creating openmm forces within an ATM process. def __init__(self, protocol): # Check for proper typing - if not isinstance(protocol, _AToM): - raise TypeError("Protocol must be an AToM protocol") + if not isinstance(protocol, _ATM): + raise TypeError("Protocol must be an ATM protocol") self.protocol = protocol self.data = self.protocol.getData() @@ -83,9 +83,9 @@ def getATMForceConstants(self, index=None): self.SCUmax = self.protocol.getSoftCoreUmax().value() self.SCU0 = self.protocol.getSoftCoreU0().value() self.SCa = self.protocol.getSoftCoreA() - if isinstance(self.protocol, _Protocol.AToMProduction): + if isinstance(self.protocol, _Protocol.ATMProduction): if index is None: - raise ValueError("Index must be set for AToMProduction protocol") + raise ValueError("Index must be set for ATMProduction protocol") self.lambda1 = self.protocol.getLambda1()[index] self.lambda2 = self.protocol.getLambda2()[index] self.alpha = self.protocol.getAlpha()[index].value() @@ -94,7 +94,7 @@ def getATMForceConstants(self, index=None): self.direction = self.protocol.getDirection()[index] self.master_lambda = self.protocol._get_lambda_values()[index] elif isinstance( - self.protocol, (_Protocol.AToMEquilibration, _Protocol.AToMAnnealing) + self.protocol, (_Protocol.ATMEquilibration, _Protocol.ATMAnnealing) ): self.lambda1 = self.protocol.getLambda1() self.lambda2 = self.protocol.getLambda2() @@ -342,7 +342,7 @@ def createATMForce( output += "#Parameters for ATM force in original units\n" output += "lig1_atoms = {}\n".format(self.lig1_atoms) output += "lig2_atoms = {}\n".format(self.lig2_atoms) - if isinstance(self.protocol, _Protocol.AToMProduction): + if isinstance(self.protocol, _Protocol.ATMProduction): output += "window_index = {}\n".format(index) output += "lambda1 = {}\n".format(self.lambda1) output += "lambda2 = {}\n".format(self.lambda2) @@ -354,7 +354,7 @@ def createATMForce( output += "sc_U0 = {} * kilocalories_per_mole\n".format(self.SCU0) output += "sc_a = {}\n".format(self.SCa) - if isinstance(self.protocol, _Protocol.AToMProduction): + if isinstance(self.protocol, _Protocol.ATMProduction): output += self._dump_atm_constants_to_dict() output += "\n\n #Define ATM force\n" diff --git a/python/BioSimSpace/Process/_openmm.py b/python/BioSimSpace/Process/_openmm.py index 4b2cd8e5f..327c8e2cb 100644 --- a/python/BioSimSpace/Process/_openmm.py +++ b/python/BioSimSpace/Process/_openmm.py @@ -81,12 +81,12 @@ def __new__( property_map={}, **kwargs, ): - from ._atm import OpenMMAToM - from ..Protocol._atm import _AToM + from ._atm import OpenMMATM + from ..Protocol._atm import _ATM - # would like to use issubclass but _Protocol._AToM is not exposed - if isinstance(protocol, _AToM): - return super().__new__(OpenMMAToM) + # would like to use issubclass but _Protocol._ATM is not exposed + if isinstance(protocol, _ATM): + return super().__new__(OpenMMATM) else: return super().__new__(cls) @@ -1342,7 +1342,7 @@ def getSystem(self, block="AUTO"): try: # Handle minimisation protocols separately. if isinstance( - self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + self._protocol, (_Protocol.Minimisation, _Protocol.ATMMinimisation) ): # Do we need to get coordinates for the lambda=1 state. if "is_lambda1" in self._property_map: @@ -2138,7 +2138,7 @@ def _add_config_reporters( # Disable specific state information for minimisation protocols. if isinstance( - self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + self._protocol, (_Protocol.Minimisation, _Protocol.ATMMinimisation) ): is_step = False is_time = False @@ -2150,7 +2150,7 @@ def _add_config_reporters( # Work out the total number of steps. if isinstance( - self._protocol, (_Protocol.Minimisation, _Protocol.AToMMinimisation) + self._protocol, (_Protocol.Minimisation, _Protocol.ATMMinimisation) ): total_steps = 1 else: diff --git a/python/BioSimSpace/Protocol/__init__.py b/python/BioSimSpace/Protocol/__init__.py index 63d6026cb..e78c9f146 100644 --- a/python/BioSimSpace/Protocol/__init__.py +++ b/python/BioSimSpace/Protocol/__init__.py @@ -47,10 +47,10 @@ Metadynamics Steering Custom - AToMMinimisation - AToMEquilibration - AToMAnnealing - AToMProduction + ATMMinimisation + ATMEquilibration + ATMAnnealing + ATMProduction Examples ======== diff --git a/python/BioSimSpace/Protocol/_atm.py b/python/BioSimSpace/Protocol/_atm.py index 79c139674..d231492eb 100644 --- a/python/BioSimSpace/Protocol/_atm.py +++ b/python/BioSimSpace/Protocol/_atm.py @@ -32,11 +32,11 @@ from .. import Units as _Units from ..Types import Vector as _Vector -__all__ = ["AToMMinimisation", "AToMEquilibration", "AToMAnnealing", "AToMProduction"] +__all__ = ["ATMMinimisation", "ATMEquilibration", "ATMAnnealing", "ATMProduction"] -# When placed in to BSS this needs to be AToM_protocol(protocol): -class _AToM(_Protocol, _PositionRestraintMixin): +# When placed in to BSS this needs to be ATM_protocol(protocol): +class _ATM(_Protocol, _PositionRestraintMixin): def __init__( self, system=None, @@ -61,7 +61,7 @@ def __init__( # first check that EITHER system or data is passed if system is None and data is None: raise ValueError( - "Either 'system' or 'data' must be passed to the AToM protocol." + "Either 'system' or 'data' must be passed to the ATM protocol." ) if system is not None and not isinstance(system, _System): @@ -75,7 +75,7 @@ def __init__( sdata = _json.loads(system._sire_object.property("atom_data").value()) except Exception as e: raise ValueError( - f"Unable to extract AToM data from the system object. The following error was raised: {e}." + f"Unable to extract ATM data from the system object. The following error was raised: {e}." ) # convert the "displacement" key back to a vector d = sdata["displacement"] @@ -88,7 +88,7 @@ def __init__( "Both 'system' and 'data' were passed. Using 'data' and ignoring data from 'system'." ) - # Store the AToM system. + # Store the ATM system. if isinstance(data, dict): self._system_data = data elif data is not None: @@ -133,7 +133,7 @@ def __init__( def __str__(self): d = self.getData() """Return a string representation of the protocol.""" - string = ": " + string = ": " string += "timestep=%s " % self.getTimeStep() string += ", runtime=%s " % self.getRunTime() string += ", temperature=%s " % self.getTemperature() @@ -155,13 +155,13 @@ def __repr__(self): def getData(self): """ - Return the AToM data dictionary. + Return the ATM data dictionary. Returns ------- data : dict - The AToM data dictionary. + The ATM data dictionary. """ return self._system_data @@ -664,9 +664,9 @@ def setCOMWidth(self, com_restraint_width): self._com_restraint_width = com_restraint_width -class AToMMinimisation(_AToM): +class ATMMinimisation(_ATM): """ - Minimisation protocol for AToM simulations. + Minimisation protocol for ATM simulations. """ def __init__( @@ -693,9 +693,9 @@ def __init__( ---------- system : :class:`System ` - A prepared AToM system. + A prepared ATM system. data : dict - The AToM data dictionary. + The ATM data dictionary. core_alignment : bool Whether to use rigid core restraints to align the two ligands. @@ -806,8 +806,8 @@ def setSteps(self, steps): raise TypeError("'steps' must be of type 'int'") -class AToMEquilibration(_AToM): - """Equilibration protocol for AToM simulations.""" +class ATMEquilibration(_ATM): + """Equilibration protocol for ATM simulations.""" def __init__( self, @@ -850,10 +850,10 @@ def __init__( ---------- system : :class:`System `` - A prepared AToM system. + A prepared ATM system. data : dict - The AToM data dictionary. + The ATM data dictionary. timestep : str, :class:`Time ` The integration timestep. @@ -1590,8 +1590,8 @@ def restraints(cls): return cls._restraints.copy() -class AToMAnnealing(_AToM): - """Annealing protocol for AToM simulations.""" +class ATMAnnealing(_ATM): + """Annealing protocol for ATM simulations.""" def __init__( self, @@ -1632,10 +1632,10 @@ def __init__( Parameters ---------- system : :class:`System ` - A prepared AToM system. + A prepared ATM system. data : dict - The AToM data dictionary. + The ATM data dictionary. timestep : str, :class:`Time ` The integration timestep. @@ -2440,8 +2440,8 @@ def _get_window_index(self): return None -class AToMProduction(_AToM): - """Production protocol for AToM simulations.""" +class ATMProduction(_ATM): + """Production protocol for ATM simulations.""" def __init__( self, @@ -2483,10 +2483,10 @@ def __init__( Parameters ---------- system : :class:`System ` - A prepared AToM system. + A prepared ATM system. data : dict - The AToM data dictionary. + The ATM data dictionary. timestep : str, :class:`Time ` The integration timestep. @@ -2573,7 +2573,7 @@ def __init__( num_lambda : int The number of lambda values. This will be used to set the window-dependent - AToM parameters, unless they are explicitly set by the user. + ATM parameters, unless they are explicitly set by the user. lambdas : [float] The lambda values. @@ -2955,7 +2955,8 @@ def setNumLambda(self, num_lambda): if isinstance(num_lambda, int) and num_lambda > 0: if num_lambda % 2 != 0: _warnings.warn( - "Warning: The AToM protocol is optimised for an even number of lambda values. Unknown behaviour may occur if using an odd number of lambda values." + "Warning: The ATM protocol is optimised for an even number of lambda values. " + "Unknown behaviour may occur if using an odd number of lambda values." ) self._num_lambda = num_lambda self._set_lambda_values() diff --git a/tests/FreeEnergy/test_atm.py b/tests/FreeEnergy/test_atm.py index 1c1862029..f2a9b0183 100644 --- a/tests/FreeEnergy/test_atm.py +++ b/tests/FreeEnergy/test_atm.py @@ -12,7 +12,7 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): - atm_generator = BSS.FreeEnergy.AToMSetup( + atm_generator = BSS.FreeEnergy.ATMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) # check that an error is thrown in the rigid core atoms are not given to prepare @@ -76,12 +76,12 @@ def test_makeSystem(TEMOA_host, TEMOA_lig1, TEMOA_lig2): assert pytest.approx(d.z().value(), 1) == vector.z() # make a new atm_generator and check the parsing of a full system - atm_generator = BSS.FreeEnergy.AToMSetup(system=atm_system) + atm_generator = BSS.FreeEnergy.ATMSetup(system=atm_system) def test_run(TEMOA_hostguest): system, _ = TEMOA_hostguest - production_atm = BSS.Protocol.AToMProduction( + production_atm = BSS.Protocol.ATMProduction( system=system, com_distance_restraint=True, runtime="2 fs", @@ -90,7 +90,7 @@ def test_run(TEMOA_hostguest): num_lambda=2, analysis_method="UWHAM", ) - production_atm2 = BSS.Protocol.AToMProduction( + production_atm2 = BSS.Protocol.ATMProduction( system=system, com_distance_restraint=True, runtime="4 fs", @@ -100,14 +100,14 @@ def test_run(TEMOA_hostguest): analysis_method="UWHAM", ) with tempfile.TemporaryDirectory() as tmpdirname: - production = BSS.FreeEnergy.AToM(system, production_atm, work_dir=tmpdirname) + production = BSS.FreeEnergy.ATM(system, production_atm, work_dir=tmpdirname) production.run() production.wait() # read openmm.csv and make sure it has a single row df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) assert len(df) == 1 - production2 = BSS.FreeEnergy.AToM(system, production_atm2, work_dir=tmpdirname) + production2 = BSS.FreeEnergy.ATM(system, production_atm2, work_dir=tmpdirname) production2.run() production2.wait() df = pd.read_csv(os.path.join(tmpdirname, "lambda_0.0000/openmm.csv")) @@ -359,7 +359,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): 194, 195, ] - atm_generator = BSS.FreeEnergy.AToMSetup( + atm_generator = BSS.FreeEnergy.ATMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) system, data = atm_generator.prepare( @@ -414,7 +414,7 @@ def test_single_point_energies(TEMOA_host, TEMOA_lig1, TEMOA_lig2): 39, ] - production_atm = BSS.Protocol.AToMProduction( + production_atm = BSS.Protocol.ATMProduction( system=system, com_distance_restraint=True, com_k=25.0, diff --git a/tests/Process/test_atm.py b/tests/Process/test_atm.py index 5badce125..151182c54 100644 --- a/tests/Process/test_atm.py +++ b/tests/Process/test_atm.py @@ -7,7 +7,7 @@ def test_atm_minimisation(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a minimisation protocol - prot_min = BSS.Protocol.AToMMinimisation(data=data, steps=1) + prot_min = BSS.Protocol.ATMMinimisation(data=data, steps=1) run_process(system, prot_min) del system, data @@ -18,7 +18,7 @@ def test_atm_equilibration(TEMOA_hostguest, use_atm_force): # First get a system with data system, data = TEMOA_hostguest # Generate an equilibration protocol - prot_equil = BSS.Protocol.AToMEquilibration( + prot_equil = BSS.Protocol.ATMEquilibration( data=data, runtime="4 fs", use_atm_force=use_atm_force, @@ -34,7 +34,7 @@ def test_atm_anneal(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate an annealing protocol - prot_anneal = BSS.Protocol.AToMAnnealing( + prot_anneal = BSS.Protocol.ATMAnnealing( data=data, runtime="4 fs", report_interval=1, @@ -62,7 +62,7 @@ def test_custom_atm_anneal(TEMOA_hostguest): "W0_start": 0.0, "W0_end": 0.5, } - protocol = BSS.Protocol.AToMAnnealing( + protocol = BSS.Protocol.ATMAnnealing( data=data, anneal_values=annealing_dict, anneal_numcycles=1, @@ -77,7 +77,7 @@ def test_atm_production(TEMOA_hostguest): # First get a system with data system, data = TEMOA_hostguest # Generate a production protocol - prot_prod = BSS.Protocol.AToMProduction( + prot_prod = BSS.Protocol.ATMProduction( data=data, runtime="2 fs", report_interval=1, @@ -87,7 +87,7 @@ def test_atm_production(TEMOA_hostguest): run_process(system, prot_prod) # now test "MBAR" analysis method - prot_prod = BSS.Protocol.AToMProduction( + prot_prod = BSS.Protocol.ATMProduction( data=data, runtime="2 fs", analysis_method="MBAR", @@ -97,7 +97,7 @@ def test_atm_production(TEMOA_hostguest): run_process(system, prot_prod) # finally, test the "both" analysis method - prot_prod = BSS.Protocol.AToMProduction( + prot_prod = BSS.Protocol.ATMProduction( data=data, runtime="2 fs", analysis_method="both", diff --git a/tests/Protocol/test_atm.py b/tests/Protocol/test_atm.py index 4439f4840..c2f066bc4 100644 --- a/tests/Protocol/test_atm.py +++ b/tests/Protocol/test_atm.py @@ -7,10 +7,10 @@ def test_atm_minimisation(TEMOA_hostguest): # First need to test that both forms of the `data` input work system, data = TEMOA_hostguest - BSS.Protocol.AToMMinimisation(data=data) - BSS.Protocol.AToMMinimisation(system=system) + BSS.Protocol.ATMMinimisation(data=data) + BSS.Protocol.ATMMinimisation(system=system) # Now test the optional inputs, first using biosimspace Units - protocol_units = BSS.Protocol.AToMMinimisation( + protocol_units = BSS.Protocol.ATMMinimisation( data=data, core_alignment=False, com_distance_restraint=False, @@ -28,7 +28,7 @@ def test_atm_minimisation(TEMOA_hostguest): ) # Now test parsing options as floats - protocol_floats = BSS.Protocol.AToMMinimisation( + protocol_floats = BSS.Protocol.ATMMinimisation( data=data, force_constant=1.0, positional_restraint_width=0.1, @@ -43,7 +43,7 @@ def test_atm_minimisation(TEMOA_hostguest): ) # Finally try parsing strings - protocol_strings = BSS.Protocol.AToMMinimisation( + protocol_strings = BSS.Protocol.ATMMinimisation( data=data, force_constant="1.0 kcal mol^-1 angstrom^-2", positional_restraint_width="0.1 angstrom", @@ -109,7 +109,7 @@ def test_atm_equilibration(TEMOA_hostguest): # Testing equilibration-specific inputs system, data = TEMOA_hostguest - protocol_units = BSS.Protocol.AToMEquilibration( + protocol_units = BSS.Protocol.ATMEquilibration( data=data, timestep=1 * BSS.Units.Time.femtosecond, runtime=0.1 * BSS.Units.Time.nanosecond, @@ -129,7 +129,7 @@ def test_atm_equilibration(TEMOA_hostguest): ) # test setting alpha,uh and w0 as floats - protocol_floats = BSS.Protocol.AToMEquilibration( + protocol_floats = BSS.Protocol.ATMEquilibration( data=data, alpha=0.1, uh=0.1, @@ -137,7 +137,7 @@ def test_atm_equilibration(TEMOA_hostguest): ) # test setting alpha,uh and w0 as strings - protocol_strings = BSS.Protocol.AToMEquilibration( + protocol_strings = BSS.Protocol.ATMEquilibration( data=data, timestep="1 fs", runtime="0.1 ns", @@ -184,7 +184,7 @@ def test_atm_annealing(TEMOA_hostguest): "invalid_key": 0.0, } with pytest.raises(ValueError): - BSS.Protocol.AToMAnnealing(data=data, anneal_values=annealing_dict) + BSS.Protocol.ATMAnnealing(data=data, anneal_values=annealing_dict) # now test passing a valid dictionary annealing_dict = { @@ -199,7 +199,7 @@ def test_atm_annealing(TEMOA_hostguest): "W0_start": 0.0, "W0_end": 0.5, } - protocol = BSS.Protocol.AToMAnnealing( + protocol = BSS.Protocol.ATMAnnealing( data=data, anneal_values=annealing_dict, anneal_numcycles=10, @@ -214,7 +214,7 @@ def test_atm_production(TEMOA_hostguest): system, data = TEMOA_hostguest # fist create a production protocol with num_lambda=6 - protocol = BSS.Protocol.AToMProduction( + protocol = BSS.Protocol.ATMProduction( data=data, num_lambda=6, ) @@ -251,7 +251,7 @@ def test_atm_production(TEMOA_hostguest): 1, ] - protocol = BSS.Protocol.AToMProduction( + protocol = BSS.Protocol.ATMProduction( data=data, num_lambda=6, alpha=list_of_units, @@ -266,19 +266,19 @@ def test_atm_production(TEMOA_hostguest): assert protocol.getW0() == end_product # now check that all of the allowed analysis options can be set - protocol = BSS.Protocol.AToMProduction( + protocol = BSS.Protocol.ATMProduction( data=data, num_lambda=6, analysis_method="UWHAM", ) - protocol = BSS.Protocol.AToMProduction( + protocol = BSS.Protocol.ATMProduction( data=data, num_lambda=6, analysis_method="MBAR", ) - protocol = BSS.Protocol.AToMProduction( + protocol = BSS.Protocol.ATMProduction( data=data, num_lambda=6, analysis_method="both", diff --git a/tests/conftest.py b/tests/conftest.py index 3dd1ea079..04106d872 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -114,7 +114,7 @@ def TEMOA_lig2(): @pytest.fixture(scope="session") def TEMOA_hostguest(TEMOA_host, TEMOA_lig1, TEMOA_lig2): - atm_generator = BSS.FreeEnergy.AToMSetup( + atm_generator = BSS.FreeEnergy.ATMSetup( receptor=TEMOA_host, ligand_bound=TEMOA_lig1, ligand_free=TEMOA_lig2 ) rigid_core = [1, 2, 3] From c2665aba48df03fa939163d1831953c086525c9c Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 10:32:42 +0100 Subject: [PATCH 117/123] Make class attributes private. --- python/BioSimSpace/FreeEnergy/_atm.py | 104 +++++++++++++------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index b93171139..ef61a42f4 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -256,30 +256,30 @@ def _setDisplacement(self, displacement): """Set the displacement of the free ligand along the normal vector.""" if isinstance(displacement, str): try: - self.displacement = _Length(displacement) + self._displacement = _Length(displacement) except Exception as e: raise ValueError( f"Could not convert {displacement} to a BSS length, due to the following error: {e}" ) elif isinstance(displacement, _Length): - self.displacement = displacement + self._displacement = displacement elif isinstance(displacement, list): if len(displacement) != 3: raise ValueError("displacement must have length 3") if all(isinstance(x, (float, int)) for x in displacement): - self.displacement = _Vector(*displacement) + self._displacement = _Vector(*displacement) elif all(isinstance(x, _Length) for x in displacement): - self.displacement = _Vector([x.value() for x in displacement]) + self._displacement = _Vector([x.value() for x in displacement]) else: raise TypeError("displacement must be a list of floats or BSS lengths") elif isinstance(displacement, _Vector): - self.displacement = displacement + self._displacement = displacement else: raise TypeError( f"displacement must be a string, BSS length or list. It is currently {type(displacement)}." ) if self._is_prepared: - if not isinstance(self.displacement, _Vector): + if not isinstance(self._displacement, _Vector): raise ValueError( "Displacement must be a vector or list if a pre-prepared system is given" ) @@ -292,7 +292,7 @@ def _getDisplacement(self): BioSimSpace.Types.Length The displacement of the free ligand along the normal vector. """ - return self.displacement + return self._displacement def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): """Set the indices for the rigid core atoms of ligand 1. @@ -304,7 +304,7 @@ def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): The rigid core of the bound ligand for the ATM simulation. """ if ligand_bound_rigid_core is None: - self.ligand_bound_rigid_core = None + self._ligand_bound_rigid_core = None else: if not isinstance(ligand_bound_rigid_core, list): raise TypeError("ligand_bound_rigid_core must be a list") @@ -313,11 +313,11 @@ def _setLigandBoundRigidCore(self, ligand_bound_rigid_core): # make sure all indices are ints if not all(isinstance(x, int) for x in ligand_bound_rigid_core): raise TypeError("ligand_bound_rigid_core must contain only integers") - if any(x >= self.ligand_bound_atomcount for x in ligand_bound_rigid_core): + if any(x >= self._ligand_bound_atomcount for x in ligand_bound_rigid_core): raise ValueError( "ligand_bound_rigid_core contains an index that is greater than the number of atoms in the ligand" ) - self.ligand_bound_rigid_core = ligand_bound_rigid_core + self._ligand_bound_rigid_core = ligand_bound_rigid_core def _getLigandBoundRigidCore(self): """Get the indices for the rigid core atoms of ligand 1. @@ -327,7 +327,7 @@ def _getLigandBoundRigidCore(self): list The indices for the rigid core atoms of ligand 1. """ - return self.ligand_bound_rigid_core + return self._ligand_bound_rigid_core def _setLigandFreeRigidCore(self, ligand_free_rigid_core): """Set the indices for the rigid core atoms of ligand 2. @@ -339,7 +339,7 @@ def _setLigandFreeRigidCore(self, ligand_free_rigid_core): The rigid core of the free ligand for the ATM simulation. """ if ligand_free_rigid_core is None: - self.ligand_free_rigid_core = None + self._ligand_free_rigid_core = None else: if not isinstance(ligand_free_rigid_core, list): raise TypeError("ligand_free_rigid_core must be a list") @@ -348,11 +348,11 @@ def _setLigandFreeRigidCore(self, ligand_free_rigid_core): # make sure all indices are ints if not all(isinstance(x, int) for x in ligand_free_rigid_core): raise TypeError("ligand_free_rigid_core must contain only integers") - if any(x >= self.ligand_free_atomcount for x in ligand_free_rigid_core): + if any(x >= self._ligand_free_atomcount for x in ligand_free_rigid_core): raise ValueError( "ligand_free_rigid_core contains an index that is greater than the number of atoms in the ligand" ) - self.ligand_free_rigid_core = ligand_free_rigid_core + self._ligand_free_rigid_core = ligand_free_rigid_core def _getLigandFreeRigidCore(self): """Get the indices for the rigid core atoms of ligand 2. @@ -362,7 +362,7 @@ def _getLigandFreeRigidCore(self): list The indices for the rigid core atoms of ligand 2. """ - return self.ligand_free_rigid_core + return self._ligand_free_rigid_core def _setProteinIndex(self, protein_index): """ @@ -419,7 +419,7 @@ def _setLigandBoundIndex(self, ligand_bound_index): _warnings.warn( f"The molecule at index {ligand_bound_index} is a water molecule, check your ligand_bound_index." ) - self.ligand_bound_index = ligand_bound_index + self._ligand_bound_index = ligand_bound_index def _getLigandBoundIndex(self): """Get the index of the bound ligand molecule in the system. @@ -429,7 +429,7 @@ def _getLigandBoundIndex(self): int The index of the bound ligand molecule in the system. """ - return self.ligand_bound_index + return self._ligand_bound_index def _setLigandFreeIndex(self, ligand_free_index): """Set the index of the free ligand molecule in the system. @@ -449,7 +449,7 @@ def _setLigandFreeIndex(self, ligand_free_index): _warnings.warn( f"The molecule at index {ligand_free_index} is a water molecule, check your ligand_free_index." ) - self.ligand_free_index = ligand_free_index + self._ligand_free_index = ligand_free_index def _getLigandFreeIndex(self): """Get the index of the free ligand molecule in the system. @@ -459,7 +459,7 @@ def _getLigandFreeIndex(self): int The index of the free ligand molecule in the system. """ - return self.ligand_free_index + return self._ligand_free_index def prepare( self, @@ -525,9 +525,9 @@ def prepare( self._findAtomIndices() self._makeData() serialisable_disp = [ - self.displacement.x(), - self.displacement.y(), - self.displacement.z(), + self._displacement.x(), + self._displacement.y(), + self._displacement.z(), ] temp_data = self.data.copy() temp_data["displacement"] = serialisable_disp @@ -539,7 +539,7 @@ def prepare( # the final value will be set after the system is made, but the initial value is needed to make the system self._setDisplacement(displacement) system, prot_ind, lig1_ind, lig2_ind, dis_vec = self._makeSystemFromThree( - self._protein, self._ligand_bound, self._ligand_free, self.displacement + self._protein, self._ligand_bound, self._ligand_free, self._displacement ) self._setSystem(system, is_prepared=False) self._setDisplacement(dis_vec) @@ -555,9 +555,9 @@ def prepare( self._findAtomIndices() self._makeData() serialisable_disp = [ - self.displacement.x(), - self.displacement.y(), - self.displacement.z(), + self._displacement.x(), + self._displacement.y(), + self._displacement.z(), ] temp_data = self.data.copy() temp_data["displacement"] = serialisable_disp @@ -700,21 +700,21 @@ def _systemInfo(self): f"The molecule at index {self.protein_index} appears to be a water molecule." " This should be a protein." ) - if self._system[self.ligand_bound_index].isWater(): + if self._system[self._ligand_bound_index].isWater(): _warnings.warn( - f"The molecule at index {self.ligand_bound_index} appears to be a water molecule." + f"The molecule at index {self._ligand_bound_index} appears to be a water molecule." " This should be the bound ligand." ) - if self._system[self.ligand_free_index].isWater(): + if self._system[self._ligand_free_index].isWater(): _warnings.warn( - f"The molecule at index {self.ligand_free_index} appears to be a water molecule." + f"The molecule at index {self._ligand_free_index} appears to be a water molecule." " This should be the free ligand." ) self._protein_atomcount = sum( self._system[i].nAtoms() for i in self.protein_index ) - self.ligand_bound_atomcount = self._system[self.ligand_bound_index].nAtoms() - self.ligand_free_atomcount = self._system[self.ligand_free_index].nAtoms() + self._ligand_bound_atomcount = self._system[self._ligand_bound_index].nAtoms() + self._ligand_free_atomcount = self._system[self._ligand_free_index].nAtoms() def _findAtomIndices(self): """ @@ -727,22 +727,22 @@ def _findAtomIndices(self): """ protein_atom_start = self._system[self.protein_index[0]].getAtoms()[0] protein_atom_end = self._system[self.protein_index[-1]].getAtoms()[-1] - self.first_protein_atom_index = self._system.getIndex(protein_atom_start) - self.last_protein_atom_index = self._system.getIndex(protein_atom_end) + self._first_protein_atom_index = self._system.getIndex(protein_atom_start) + self._last_protein_atom_index = self._system.getIndex(protein_atom_end) - ligand_bound_atom_start = self._system[self.ligand_bound_index].getAtoms()[0] - ligand_bound_atom_end = self._system[self.ligand_bound_index].getAtoms()[-1] - self.first_ligand_bound_atom_index = self._system.getIndex( + ligand_bound_atom_start = self._system[self._ligand_bound_index].getAtoms()[0] + ligand_bound_atom_end = self._system[self._ligand_bound_index].getAtoms()[-1] + self._first_ligand_bound_atom_index = self._system.getIndex( ligand_bound_atom_start ) - self.last_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_end) + self._last_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_end) - ligand_free_atom_start = self._system[self.ligand_free_index].getAtoms()[0] - ligand_free_atom_end = self._system[self.ligand_free_index].getAtoms()[-1] - self.first_ligand_free_atom_index = self._system.getIndex( + ligand_free_atom_start = self._system[self._ligand_free_index].getAtoms()[0] + ligand_free_atom_end = self._system[self._ligand_free_index].getAtoms()[-1] + self._first_ligand_free_atom_index = self._system.getIndex( ligand_free_atom_start ) - self.last_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_end) + self._last_ligand_free_atom_index = self._system.getIndex(ligand_free_atom_end) def _getProtComAtoms(self): """ @@ -818,7 +818,7 @@ def _setLig1ComAtoms(self, lig1_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand_bound = self._system[self.ligand_bound_index] + ligand_bound = self._system[self._ligand_bound_index] else: ligand_bound = self._ligand_bound com = ligand_bound._sire_object.coordinates() @@ -855,7 +855,7 @@ def _setLig2ComAtoms(self, lig2_com_atoms): else: # Find com of the ligand if self._is_prepared: - ligand_free = self._system[self.ligand_free_index] + ligand_free = self._system[self._ligand_free_index] else: ligand_free = self._ligand_free com = ligand_free._sire_object.coordinates() @@ -876,14 +876,14 @@ def _makeData(self): self.data["ligand_bound_rigid_core"] = self._getLigandBoundRigidCore() self.data["ligand_free_rigid_core"] = self._getLigandFreeRigidCore() self.data["mol1_atomcount"] = self._protein_atomcount - self.data["ligand_bound_atomcount"] = self.ligand_bound_atomcount - self.data["ligand_free_atomcount"] = self.ligand_free_atomcount - self.data["first_protein_atom_index"] = self.first_protein_atom_index - self.data["last_protein_atom_index"] = self.last_protein_atom_index - self.data["first_ligand_bound_atom_index"] = self.first_ligand_bound_atom_index - self.data["last_ligand_bound_atom_index"] = self.last_ligand_bound_atom_index - self.data["first_ligand_free_atom_index"] = self.first_ligand_free_atom_index - self.data["last_ligand_free_atom_index"] = self.last_ligand_free_atom_index + self.data["ligand_bound_atomcount"] = self._ligand_bound_atomcount + self.data["ligand_free_atomcount"] = self._ligand_free_atomcount + self.data["first_protein_atom_index"] = self._first_protein_atom_index + self.data["last_protein_atom_index"] = self._last_protein_atom_index + self.data["first_ligand_bound_atom_index"] = self._first_ligand_bound_atom_index + self.data["last_ligand_bound_atom_index"] = self._last_ligand_bound_atom_index + self.data["first_ligand_free_atom_index"] = self._first_ligand_free_atom_index + self.data["last_ligand_free_atom_index"] = self._last_ligand_free_atom_index self.data["protein_com_atoms"] = self._mol1_com_atoms self.data["ligand_bound_com_atoms"] = self._lig1_com_atoms self.data["ligand_free_com_atoms"] = self._lig2_com_atoms From 613c58c5ea0f48115513a1dafeac6886041ad955 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 11:12:28 +0100 Subject: [PATCH 118/123] Blacken. --- python/BioSimSpace/FreeEnergy/_atm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/BioSimSpace/FreeEnergy/_atm.py b/python/BioSimSpace/FreeEnergy/_atm.py index ef61a42f4..4d1fe516d 100644 --- a/python/BioSimSpace/FreeEnergy/_atm.py +++ b/python/BioSimSpace/FreeEnergy/_atm.py @@ -735,7 +735,9 @@ def _findAtomIndices(self): self._first_ligand_bound_atom_index = self._system.getIndex( ligand_bound_atom_start ) - self._last_ligand_bound_atom_index = self._system.getIndex(ligand_bound_atom_end) + self._last_ligand_bound_atom_index = self._system.getIndex( + ligand_bound_atom_end + ) ligand_free_atom_start = self._system[self._ligand_free_index].getAtoms()[0] ligand_free_atom_end = self._system[self._ligand_free_index].getAtoms()[-1] From 58dba1c886664bb05c94113b367d3ac218032c95 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 12:03:48 +0100 Subject: [PATCH 119/123] Guard test against missing OpenFF package. --- tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py index 47bbdc69d..af2a8bdb3 100644 --- a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py +++ b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py @@ -2,7 +2,7 @@ import BioSimSpace.Sandpit.Exscientia as BSS -from tests.Sandpit.Exscientia.conftest import url, has_amber, has_pyarrow +from tests.Sandpit.Exscientia.conftest import url, has_amber, has_openff, has_pyarrow from tests.conftest import root_fp @@ -129,6 +129,10 @@ def test_extract(system): @pytest.mark.parametrize("lipid", [True, False]) +@pytest.mark.skipif( + has_openff is False, + reason="Requires OpenFF to be installed.", +) def test_lipid(lipid): ff = "openff_unconstrained-2.0.0" mol = BSS.Parameters.parameterise("c1ccccc1C", ff).getMolecule() From e33f4993df6cea2a7a404c4a72f3f11b1820b673 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 12:08:16 +0100 Subject: [PATCH 120/123] Remove redundant variable. --- python/BioSimSpace/Align/_align.py | 18 ------------------ .../Sandpit/Exscientia/Align/_align.py | 18 ------------------ 2 files changed, 36 deletions(-) diff --git a/python/BioSimSpace/Align/_align.py b/python/BioSimSpace/Align/_align.py index bf5d94792..bdbe025cb 100644 --- a/python/BioSimSpace/Align/_align.py +++ b/python/BioSimSpace/Align/_align.py @@ -1547,12 +1547,6 @@ def _rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_ma mol0 = molecule0._getSireObject() mol1 = molecule1._getSireObject() - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) @@ -2534,12 +2528,6 @@ def _score_rdkit_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -2770,12 +2758,6 @@ def _score_sire_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Initialise a list to hold the mappings. mappings = [] diff --git a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py index e8ef52d5b..27b0d373c 100644 --- a/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py +++ b/python/BioSimSpace/Sandpit/Exscientia/Align/_align.py @@ -1151,12 +1151,6 @@ def rmsdAlign(molecule0, molecule1, mapping=None, property_map0={}, property_map # Convert the mapping to AtomIdx key:value pairs. sire_mapping = _to_sire_mapping(mapping) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Perform the alignment, mol0 to mol1. if len(mapping) == 1: idx0 = list(mapping.keys())[0] @@ -1785,12 +1779,6 @@ def _score_rdkit_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Get the set of matching substructures in each molecule. For some reason # setting uniquify to True removes valid matches, in some cases even the # best match! As such, we set uniquify to False and account for duplicate @@ -2021,12 +2009,6 @@ def _score_sire_mappings( .commit() ) - # Do we have a monatomic ion? - if (molecule0.nAtoms() == 1) or (molecule1.nAtoms() == 1): - is_ion = True - else: - is_ion = False - # Initialise a list to hold the mappings. mappings = [] From 0365150da516ea1da075c3f1c58264e46d79f9d1 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 13:36:16 +0100 Subject: [PATCH 121/123] Test requires AMBER and OpenFF. [ci skip] --- tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py index af2a8bdb3..c9c9ea60b 100644 --- a/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py +++ b/tests/Sandpit/Exscientia/_SireWrappers/test_molecule.py @@ -130,8 +130,8 @@ def test_extract(system): @pytest.mark.parametrize("lipid", [True, False]) @pytest.mark.skipif( - has_openff is False, - reason="Requires OpenFF to be installed.", + has_amber is False or has_openff is False, + reason="Requires AMBER and OpenFF to be installed.", ) def test_lipid(lipid): ff = "openff_unconstrained-2.0.0" From e446721ab605b4f3f69f37b35b3252b3dbbc8bc4 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 13:39:26 +0100 Subject: [PATCH 122/123] Update Sire version. --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9b0e83d9a..4acb396f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ # BioSimSpace runtime requirements. # main -#sire~=2024.2.0 +sire~=2024.3.0 # devel -sire==2024.3.0.dev +#sire==2024.4.0.dev configargparse ipywidgets From 3435cdc03238d4313d2aa771cbab87f8c310284e Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Thu, 24 Oct 2024 14:06:43 +0100 Subject: [PATCH 123/123] Update CHANGELOG for the 2024.3.0 release. --- doc/source/changelog.rst | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst index 48716ecec..fc1b815f6 100644 --- a/doc/source/changelog.rst +++ b/doc/source/changelog.rst @@ -9,6 +9,22 @@ company supporting open-source development of fostering academic/industrial coll within the biomolecular simulation community. Our software is hosted via the `OpenBioSim` `GitHub `__ organisation. +`2024.3.0 `_ - Oct 24 2024 +------------------------------------------------------------------------------------------------- + +* Fixed link in protein free-energy perturbation tutorial (`#310 `__). +* Fixed alignment of monatomic molecules (`#313 `__ and (`#333 `__). +* Expose missing ``extra_args`` keyword argument for the :class:`Process.Somd ` class (`#319 `__). +* Add support for the Alchemical Transfer Method (ATM) (`@mb2055 `_) (`#327 `__). +* Fixed :meth:`system.updateMolecules ` method when updating multiple molecules at once (`#336 `__). +* Added a new :meth:`system.removeBox ` method to remove the box from a system (`#338 `__). +* Fixed bug when using position restraints with OpenMM for perturbable systems (`#341 `__). +* Include both end states in the GROMACS restraint file when using position restraints with perturbable systems (`#342 `__). +* Set end state connectivity properties when a perturbation involves a change in connectivity (`#345 `__). +* Use direct Sire-to-RDKit conversion when parameterising with OpenFF to avoid issues with intermediate file formats (`#349 `__). +* Preserve SMILES based molecular properties during parameterisation (`#352 `__). +* Rotate perturbable and non-perturbable molecules independently when rotating box vectors (`#355 `__). + `2024.2.0 `_ - Jul 09 2024 ------------------------------------------------------------------------------------------------- @@ -35,7 +51,6 @@ within the biomolecular simulation community. Our software is hosted via the `Op * Add a ``getRestraintType`` method to the base protocol that returns ``None`` (`#276 `__). * Add missing ``themostat_time_constant`` kwarg to the :class:`Metadynamics ` protocol (`#276 `__). - `2023.5.1 `_ - Mar 20 2024 ------------------------------------------------------------------------------------------------- @@ -73,7 +88,6 @@ within the biomolecular simulation community. Our software is hosted via the `Op * Ensure all searches for disulphide bonds are convert to a ``SelectorBond`` object (`#224 `__). * Fix injection of custom commands into ``LEaP`` script (`#226 `__). - `2023.4.0 `_ - Oct 13 2023 -------------------------------------------------------------------------------------------------

    (}~= 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�-N(a@-B?f4hb_Kd2Op<({yin`)t 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